google.load("earth","1");
var ge=null;
var whandle;
var map;

function init(){
google.earth.createInstance("map3d",initCB,failureCB);

}

function initCB(object){
ge=object;
ge.getWindow().setVisibility(true);
if (!getUrlVariable("nc")){
ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
}
var options = ge.getOptions();
// set center and zoom
if (getUrlVariable("ll")){
      var ll=getUrlVariable("ll"); 
     if (getUrlVariable("r")) {var z=getUrlVariable("r");} else {var z=5000;}
     if (getUrlVariable("t")) {var t=getUrlVariable("t");} else {var t=0;}
     if (getUrlVariable("h")) {var h=getUrlVariable("h");} else {var h=0;}
      
      var lookAt = ge.createLookAt('');
      lookAt.set(parseFloat(ll.split(',')[0]), parseFloat(ll.split(',')[1]), 25, ge.ALTITUDE_RELATIVE_TO_GROUND, parseFloat(h), parseFloat(t), parseFloat(z));
      ge.getView().setAbstractView(lookAt);  }
     if (getUrlVariable("lrs")){
      var lrs = getUrlVariable("lrs");
      if (lrs.indexOf("t")>-1){
     
      ge.getLayerRoot().enableLayerById(ge.LAYER_TERRAIN, true);
      }
      if (lrs.indexOf("u")>-1){
      
      ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS, true);
      }
      if (lrs.indexOf("b")>-1){
     
      ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
      }
      if (lrs.indexOf("r")>-1){
  
      ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);
      }
      if (lrs.indexOf("a")>-1){
      options.setAtmosphereVisibility(false);
      }
      }
      
      if (getUrlVariable("opt")){
      if (opt.indexOf("s")>-1){
      options.setStatusBarVisibility(true);
      }
      if (opt.indexOf("l")>-1){
      options.setScaleLegendVisibility(true);
      }
      if (opt.indexOf("g")>-1){
      options.setGridVisibility(true);
      }
      }
      
      //create logo overlay
      var maplifylogo=ge.createScreenOverlay('');
      maplifylogo.setIcon(ge.createIcon(''));
      maplifylogo.getIcon().setHref("http://maplify.com/images/maplify120.png");
      maplifylogo.getOverlayXY().setXUnits(ge.UNITS_PIXELS);
      maplifylogo.getOverlayXY().setYUnits(ge.UNITS_PIXELS);
      maplifylogo.getOverlayXY().setX(50);
      maplifylogo.getOverlayXY().setY(22);
      maplifylogo.getSize().setXUnits(ge.UNITS_PIXELS);
      maplifylogo.getSize().setYUnits(ge.UNITS_PIXELS);
      maplifylogo.getSize().setX(60);
      maplifylogo.getSize().setY(30);
      ge.getFeatures().appendChild(maplifylogo);
      
      //google.earth.addEventListener(ge.getGlobe(),"click",globeWindowEventListener);
      google.earth.addEventListener(ge.getWindow(),"click",globeWindowEventListener);

      loadGEMaps();
}

function failureCB(object){}

// in this sample we will purposely attempt
// to fetch a bad KML file (one that doesnt exist)

function finished(object) {
  if (!object) {
    alert('Your KML link does not appear valid.  Please check it and try again.');
    return;
  }
  ge.getFeatures().appendChild(object);  
  return object;     
}


function loadGEMaps(){
       var url = '';
       var msid = getUrlVariable("msid");
       if (msid){
       url = 'http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&output=kml&msid='+msid;
       }
       var tmpurl  = getUrlVariable("url"); 
       if (tmpurl){
       
       url = getUrlVariable("url");
       url = url.replace(/%26/g,"&").replace(/%3F/g,"?").replace(/%3D/g,"=").replace(/%2F/g,"/");
       //alert (url.substring(0,4));
       if (url.substring(0,4)!="http") 
       {url = 'http://'+url; }
       }
      if (url!=''){
      google.earth.fetchKml(ge, url, finished);}
      if (getUrlVariable('keywords')){viewQuery();}
      } 
      
  
  function takitwithme(){
  if (getUrlVariable("msid")){
  var url = 'http://www.takitwithme.com/?msid='+getUrlVariable("msid");
  }
  if (getUrlVariable("url")){
  var url = 'http://www.takitwithme.com/?url='+getUrlVariable("url");
  }  
  window.open(url);  
  }
  
  function gelink(){
  if (getUrlVariable("msid")){
  var url = 'http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&output=nl&msid='+getUrlVariable("msid"); 
  }
  if (getUrlVariable("url")){
  var url = getUrlVariable("url");
  url = url.replace(/%26/g,"&").replace(/%3F/g,"?").replace(/%3D/g,"=").replace(/%2F/g,"/"); 
  }  
  window.open(url);  
  }
    
  
function getUrlVariable(variable) {
  var url = document.location.href.split('?');
  if (url[1]){
  var vars = url[1].split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
    return pair[1];
    }
  }
  }
}

  function zoomToGeoXML(geoXml) {
  if (getUrlVariable("ll") && getUrlVariable("z")){
       var ll=getUrlVariable("ll"); var z=getUrlVariable("z");
       map.setCenter(new GLatLng(parseFloat(ll.split(',')[0]),parseFloat(ll.split(',')[1])), parseFloat(z));
       } else {
      var center = geoXml.getDefaultCenter();
      var span = geoXml.getDefaultSpan();
      var sw = new GLatLng(center.lat() - span.lat() / 2,
                       center.lng
      () - span.lng() / 2);
      var ne = new GLatLng(center.lat() + span.lat() / 2,
                       center.lng() + span.lng() / 2);
      var bounds = new GLatLngBounds(sw, ne);
      map.setCenter(center);
      map.setZoom
      (map.getBoundsZoomLevel(bounds));
      }
    }

  function loadMyMaps(){
       map.clearOverlays();
       
       var msid = getUrlVariable("msid");
       if (msid){
       var url = 'http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&output=kml&msid='+msid;
       }
       var tmpurl  = getUrlVariable("url"); 
       if (tmpurl){
       var url = getUrlVariable("url");
       url = url.replace(/%26/g,"&").replace(/%3F/g,"?").replace(/%3D/g,"=").replace(/%2F/g,"/");
       //document.getElementById('debug').innerHTML=url;
       }
       var geoXml = new GGeoXml(url, function() {
        zoomToGeoXML(geoXml);}); 
       map.addOverlay(geoXml);
    }
    


    function load() {
      if (GBrowserIsCompatible()) {     
        map = new GMap2(document.getElementById("map3d"));
        map.addMapType(G_PHYSICAL_MAP);
        map.removeMapType(G_SATELLITE_MAP);
        map.setMapType(gmaptype);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(38, -96), 4);       
      }
 
     if (getUrlVariable("url")) {loadMyMaps();}
    }
    
   globeWindowEventListener=function(event){
   //document.getElementById('debug').innerHTML=event.getClientX()+' '+(frameheight-event.getClientY());
   if (event.getClientX()<80 && (frameheight-event.getClientY())<50){window.open("http://maplify.com");}
  }
  
