

var currentLocation = "http://dev.starwardhomes.brickworkscomm.com/dev_kitty_murray/";
//var currentLocation = "http://www.starwardhomes.com/dev_kitty_murray/";


// <![CDATA[

var ge;
var DS_geHelpers;
var DS_map;
var kml2d = null;

var tour = null;

//google.load("jquery", "1");
google.load("maps", "2.x");
google.load("earth", "1");

function DS_init() {
  $('#directions-form input').attr('disabled', 'disabled');
  $('#simulator-form input').attr('disabled', 'disabled');
  
  google.earth.createInstance(
    'map3d',
    function(ge) {
	
      DS_ge = ge;
      ge.getWindow().setVisibility(true);
      ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS, true);
      ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
      DS_geHelpers = new GEHelpers(ge);
	  
	  //displayNoneWorkaround('map3d');
	//ge = DS_ge;
  	//ge.getWindow().setVisibility(true);
  	loadModels(ge);
  	goHome(ge);
  	//loadLogos(ge); this is done in goHome()
  	ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW); 
	//ge.getView().setAbstractView(camera);	
	ge.getWindow().setVisibility(true); 
	ge.getLayerRoot().enableLayerById(ge.LAYER_TERRAIN, false);
	
	setTimeout("$('#welcomeOverlay').hide();", 2000);
	setTimeout("$('#extraContent').innerHTML = '';", 3000);
	//directionsform
	setTimeout("$('#directionsform').show();", 3000);
      
      ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
	 
	 initTour();	 
	  
      DS_map = new GMap2($('#map-container').get(0));
      DS_map.setCenter(new GLatLng(43.216574, -79.955379), 11);
	 
       
      DS_map.addControl(new GSmallMapControl());
      DS_map.enableContinuousZoom();
	  
	  var marker = new GMarker(new GLatLng(43.216574, -79.955379));
	  GEvent.addListener(marker, 'click', function() {  
	  	marker.openInfoWindowHtml('Kitty Murray Woods',  {maxWidth: '150'});
	  }); 
	  DS_map.addOverlay(marker);  
      
      $('#directions-form input').removeAttr('disabled');
    },
    function() {
    });

  function onresize() {
    var clientHeight = document.documentElement.clientHeight;

    $('#route-details, #earth-container, #map-container').each(function() {
      $(this).css({
        height: '449px' });      
    });
  }
  
  $(window).resize(onresize);
  onresize();

}

google.setOnLoadCallback(DS_init);

// ]]>

//var ge = null;
var geocoder;
var t = null;


function goHome(ge) {
	geocoder = new GClientGeocoder();
	clearTimeout(t);
	DS_ge.setBalloon(null);
	if (DS_directions) { DS_directions.clear(); $('route-details').innerHTML = ""; }
	loadLogos(DS_ge);
  var address = "Kitty Murray Lane and Stonehenge";
  geocoder.getLatLng(
    address, 
    function(point) {
      if (point && ge != null) {
        var la = ge.createLookAt('');     
		//la.set(point.x, point.x, 100, ge.ALTITUDE_RELATIVE_TO_GROUND, 150, 60, 100); //address based lookup
        la.set(43.216574, point.x, 100, ge.ALTITUDE_RELATIVE_TO_GROUND, 150, 60, 100); 
		//la.set( 43.215774, -79.955379, 100, ge.ALTITUDE_RELATIVE_TO_GROUND, 150, 60, 200); //hard coded view from the corner
		ge.getView().setAbstractView(la);
      }
    }
  );
}



function loadModels(ge) {
 baseTiles = getNL(ge, currentLocation+'kml/basemap.kml');
 baseTiles.setVisibility(true);	

//models_placed.kmz

/*
 allModels = getNL(ge, currentLocation+'kml/models_placed.kmz');
 allModels.setVisibility(true);	
*/

 availModels = getNL(ge, currentLocation+'kml/kmw.kml');
 availModels.setVisibility(true);	
 
 /*

 placeModel(ge, 'dae/from_scratch.dae?', 43.215054, -79.954679);
 placeModel(ge, 'dae/from_scratch.dae?', 43.215054, -79.954479); 
  
 */
 
 videoSearch(); // as good a place as any

}


function placeModel(ge, file, lat, long) {
	//file = 'dae/from_scratch.dae';
	model1 = ge.createPlacemark('');
	model1.setName('model');
	model = ge.createModel('');
	ge.getFeatures().appendChild(model1);
	loc = ge.createLocation('');
	model.setLocation(loc);
	link = ge.createLink('');
	link.setHref(currentLocation+file);
	model.setLink(link);
	loc.setLatitude(lat);
	loc.setLongitude(long);
	model1.setGeometry(model);

}

//FOR OVERLAY CONTROLS (BORDERS, ROADS, 3D)
function bron()	{	DS_ge.getLayerRoot().enableLayerById(DS_ge.LAYER_BORDERS, true); 		DS_ge.getLayerRoot().enableLayerById(DS_ge.LAYER_ROADS, true);	
//<a href="#" onClick="broff();"/>Hide Roads & Borders</a>
document.getElementById('roads').innerHTML = '<span class="white">Show Roads: </span><input type="checkbox" onClick="broff();" class="controllink" id="roads" name="roads"  checked />'; 
//<p style="margin:0; padding-top:17px;"><span class="white">Hide Roads:</span><input type="checkbox" onClick="broff();" class="controllink" id="roads" name="roads" /></p>

}
function broff() 	{	DS_ge.getLayerRoot().enableLayerById(DS_ge.LAYER_BORDERS, false);		DS_ge.getLayerRoot().enableLayerById(DS_ge.LAYER_ROADS, false);	
//<a href="#" onClick="bron();"/>Show Roads & Borders</a>
document.getElementById('roads').innerHTML = '<span class="white">Show Roads: </span><input type="checkbox" onClick="bron();" class="controllink" id="roads" name="roads"/>'; 
}

function loadLogos(ge) {
	//FOR LOGO OVERLAY
	var screenOverlay = ge.createScreenOverlay('');
	screenOverlay.setIcon(ge.createIcon(''));
	screenOverlay.getIcon().
	//---- Get overlay
	  setHref(currentLocation+"web_images/logo_transparent.png");
	
	//---- Screen position in pixels
	  screenOverlay.getOverlayXY().setXUnits(ge.UNITS_PIXELS); screenOverlay.getOverlayXY().setYUnits(ge.UNITS_PIXELS);
	  screenOverlay.getOverlayXY().setX(60);
	  screenOverlay.getOverlayXY().setY(45);
	//---- Rotation around object's center point
	  screenOverlay.getRotationXY().setXUnits(ge.UNITS_FRACTION); screenOverlay.getRotationXY().setYUnits(ge.UNITS_FRACTION);
	  screenOverlay.getRotationXY().setX(0);
	  screenOverlay.getRotationXY().setY(0);
	//---- Object's size in pixels
	  screenOverlay.getSize().setXUnits(ge.UNITS_PIXELS); screenOverlay.getSize().setYUnits(ge.UNITS_PIXELS);
	  screenOverlay.getSize().setX(80);
	  screenOverlay.getSize().setY(58);
	//---- Rotation in degrees
	  screenOverlay.setRotation(0);
	ge.getFeatures().appendChild(screenOverlay);
	
	//*** start oogletours
	var screenOverlay = ge.createScreenOverlay('');
	screenOverlay.setIcon(ge.createIcon(''));
	screenOverlay.getIcon().
	//---- Get overlay
	  setHref(currentLocation+"web_images/oogle_tours_logo.png");
	
	//---- Screen position in pixels
	  screenOverlay.getOverlayXY().setXUnits(ge.UNITS_PIXELS); screenOverlay.getOverlayXY().setYUnits(ge.UNITS_PIXELS);
	  
	  screenOverlay.getOverlayXY().setX(100);
	
	  //var logo_y_position = 430; //based on 450px map3d height
	  var logo_y_position = 541; //based on 561px map3d height
	 // var logo_y_position = $('map3d').height() - 30; //427 //jquery
	  screenOverlay.getOverlayXY().setY(logo_y_position);
	
	//---- Rotation around object's center point
	  screenOverlay.getRotationXY().setXUnits(ge.UNITS_FRACTION); screenOverlay.getRotationXY().setYUnits(ge.UNITS_FRACTION);
	  screenOverlay.getRotationXY().setX(0);
	  screenOverlay.getRotationXY().setY(0);
	//---- Object's size in pixels
	  screenOverlay.getSize().setXUnits(ge.UNITS_PIXELS); screenOverlay.getSize().setYUnits(ge.UNITS_PIXELS);
	  screenOverlay.getSize().setX(201);
	  screenOverlay.getSize().setY(50);
	//---- Rotation in degrees
	  screenOverlay.setRotation(0);
	ge.getFeatures().appendChild(screenOverlay);
	//*** end oogletours

}


function getNL(ge, kmlURL){
  nl = ge.createNetworkLink("");
  var link = ge.createLink("");
  link.setHref(kmlURL);
  nl.setLink(link);
	nl.setFlyToView(false);
  ge.getGlobe().getFeatures().appendChild(nl);
  return nl;
}

function fetchKmlCallback(object) {
  if(!object){ alert('Bad or NULL kml!'); }
  	DS_ge.getGlobe().getFeatures().appendChild(object);
    features = object.getFeatures();
	full_map = features.getFirstChild();
    inside_features = full_map.getFeatures();
    fc = inside_features.getFirstChild(); 
	

	getNext(fc);

}


function getNext(fc) {
	//alert("next!");
	balloon = DS_ge.createFeatureBalloon('');
	next = fc.getNextSibling();
	balloon.setFeature(next);
	DS_ge.setBalloon(balloon);
	
	if (next != null) {
  		DS_ge.getView().setAbstractView(next.getAbstractView()); 
		t = setTimeout("getNext(next)", 4500);
	}	
	
	//ge.setBalloon(null);

}

function swapKml(kmlfile) {
	
	if (kmlfile == "home") {
			DS_geHelpers.clearFeatures();
			loadModels(DS_ge);
			goHome(DS_ge);
	}
	else {
	clearTimeout(t);
	DS_ge.setBalloon(null);
	$('#extraContent').innerHTML = "";
	//var url = currentLocation+"kml/tour_"+kmlfile+".kml?"; 
	var url = currentLocation+"kml/"+kmlfile+".kml?"; 
	//google.earth.fetchKml(ge, url, finished);
	google.earth.fetchKml(DS_ge, url, fetchKmlCallback);
	//alert("swapping KML");
	//alert(ge);
 	if (kml2d != null) { DS_map.removeOverlay(kml2d); }
	kml2d = new GGeoXml(currentLocation+"/kml/"+kmlfile+".kml");
	DS_map.addOverlay(kml2d);
	}
}	


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function displayNoneWorkaround(earthNodeID) {
  // IE isn't affected by this bug
  if (navigator.userAgent.toLowerCase().indexOf('msie') < 0) {
    // Firefox, Safari, etc. are affected
    var earthNode = document.getElementById(earthNodeID);
    var earthWatchNode = earthNode.parentNode;
    
    earthNode.style.position = 'absolute';
    earthNode.style.left = earthNode.style.top = '0';
    earthNode.style.width = earthNode.style.height = '0';
    document.body.appendChild(earthNode);
    
    function repositionEarth() {
      earthNode.style.height = earthWatchNode.offsetHeight + 'px';
      //earthNode.style.width = earthWatchNode.offsetWidth + 'px';
      earthNode.style.width = '664px'; //use hardcoded width for two panels
      // calculate position on page
      var left = earthWatchNode.offsetLeft;
      var top = earthWatchNode.offsetTop;
      var p = earthWatchNode.offsetParent;
      
      while (p && p != document.body) {
        if (isFinite(p.offsetLeft) && isFinite(p.offsetTop)) {
          left += p.offsetLeft;
          top += p.offsetTop;
        }
        
        p = p.offsetParent;
      }
      
      earthNode.style.left = left + 'px';
      earthNode.style.top = top + 'px';
    }
    
    repositionEarth();
    
    // reposition every 100ms
    window.setInterval(function() {
      repositionEarth();
    }, 100);
  }
}


function initTour() {
		      //************ tour test start

			// create the tour by fetching it out of a KML file
			var href = currentLocation +'/kml/test_tour.kmz';
			google.earth.fetchKml(DS_ge, href, function(kmlObject) {
			  if (!kmlObject) {
				// wrap alerts in API callbacks and event handlers
				// in a setTimeout to prevent deadlock in some browsers
				setTimeout(function() {
				  alert('Bad or null KML.');
				}, 0);
				return;
			  }
			  // Show the entire KML file in the plugin.
			  ge.getFeatures().appendChild(kmlObject);
			  // Walk the DOM looking for a KmlTour
			  walkKmlDom(kmlObject, function() {
				if (this.getType() == 'KmlTour') {
				  tour = this;
				  return false; // stop the DOM walk here.
				}
			  });
			});
			//************ tour test end	
}

function enterTour() {
  if (!tour) {
    alert('No tour found!');
    return;
  }

  DS_ge.getTourPlayer().setTour(tour);
}

function playTour() {
  DS_ge.getTourPlayer().play();
}

function pauseTour() {
  DS_ge.getTourPlayer().pause();
}

function resetTour() {
  DS_ge.getTourPlayer().reset();
}

function exitTour() {
  // just like setBalloon(null)
  DS_ge.getTourPlayer().setTour(null);
}

var playing = 0;
function playVideo(which) {
//alert("play: "+which);

if (which == 'videoPlayerFilman') { document.getElementById('videoPlayerFilman').innerHTML = '<center><embed src="flv/filman.swf" height="139"  width="220" type="application/x-shockwave-flash" play="true" loop="false" menu="false"></center>'; }
if (which == 'videoPlayerSydenham') { document.getElementById('videoPlayerSydenham').innerHTML = '<center><embed src="flv/sydenham.swf" height="139"  width="220" type="application/x-shockwave-flash" play="true" loop="false" menu="false"></center>'; }
if (which == 'videoPlayerCanterbury') { document.getElementById('videoPlayerCanterbury').innerHTML = '<center><embed src="flv/canterbury.swf" height="139"  width="220" type="application/x-shockwave-flash" play="true" loop="false" menu="false"></center>'; }


playing = 1;
videoSearch();
}

function checkVideo(which) {
	var which;
	var videoElementFilman = document.getElementById("videoPlayerFilman");
	var videoElementSydenham = document.getElementById("videoPlayerSydenham");
	var videoElementCanterbury = document.getElementById("videoPlayerCanterbury");
	//alert(videoElementFilman);

	if (videoElementFilman) {		
		if (playing != 1) {
		//videoControls("on")
		  playVideo('videoPlayerFilman'); 
		  	playing = 1; 
			//resetVideo();
		}
	}
	else if (videoElementSydenham) {
		if (playing != 1) {
		//videoControls("on")
		  playVideo('videoPlayerSydenham'); 
		  	playing = 1; 
			//resetVideo();
			
		}
	}
	else if (videoElementCanterbury) {
		if (playing != 1) {
		//videoControls("on")
		  playVideo('videoPlayerCanterbury'); 
		  	playing = 1; 
			//resetVideo();
			
		}
	}
	else {
	resetVideo();
	
	//videoControls("off");
	}
	videoSearch();
	//alert("checked");
}

function videoSearch() {
	vid = setTimeout("checkVideo()", 1500);
	//alert("search");
	
}

function resetVideo() {
	//clearTimeout(vid);
	playing = 0;
 	//alert("reset");
	}
	

function pause() {
	
	clearTimeout(timed);
	clearTimeout(progressTime);
	paused = 1;
	timed ="";
	ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
	document.getElementById("pause").innerHTML = '<a href="javascript: unpause();"><img src="web_images/play.png" border="0" alt="play" title="play" /></a>';
	//<a href="#"><img onClick="unpause();"  src="web_images/play.png" border="0" alt="" /></a>
	
	}

function unpause() {
	videoSearch();
clearTimeout(timed);
clearTimeout(progressTime);

paused = 0;	
document.getElementById("pause").innerHTML = '<a href="javascript: pause();"><img src="web_images/pause.png" border="0" alt="pause" title="pause"/></a>';
//<a href="#"><img onClick="pause();"   src="web_images/pause.png" border="0" alt="" /></a>
	
	if (progPercentage == 100) {
	progPercentage = 0;
	swapKml(document.getElementById('tourSelect').value);
	}
	else {
	if(placemarks < 0) {
		placemarks = 0;
	}
	placemarks++;
	placemarks++;
	placemarks++;
	timed = setTimeout("swapto_next(1)",1000);	
	}

}

