var ge = null;
var kmlUrl = '';
var tour;
var WROTA_LANGUAGE = 'pl';
google.load("earth", "1");

function loadTour(url)
{
   ge.getWindow().setVisibility(true);
   ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
   google.earth.fetchKml(ge, url, kmlFinishedLoading);
   $('<div class="tour_msg" style="width: 180px; padding: 3px; position: absolute; left: 10px; font-size: 12px; text-align: center; top: 50%; margin-top: -140px; border: 1px solid black; background: #ddd; color: black;">trwa wczytywanie</div>').appendTo('body');
   $('.tour_msg').fadeIn(300);
}

function kmlFinishedLoading(object) {
   ge.getTourPlayer().setTour(object);
   ge.getTourPlayer().play();
   $('.tour_msg').fadeOut(300);
}


function start(file)
{
	kmlUrl = file;
	google.earth.createInstance("map3d", initCallback, failureCallback);
}

function loadLayers(data)
{
	var json = eval("("+data+")");
	var cnt = 0;
	for(var i in json)
	{
		var id = 'feature_'+cnt;
		var networkLink = ge.createNetworkLink(id);
		networkLink.setName(json[i]['name']);
		networkLink.setFlyToView(false);  
		
		var link = ge.createLink("");
		link.setHref(json[i]['url']);
		
		if(json[i]['adjust'] == 1)
			layers_list.push(cnt);
		
		networkLink.setLink(link);
		if(json[i]['visible']==1)
			networkLink.setVisibility(true);
		else	
			networkLink.setVisibility(false);
		ge.getFeatures().appendChild(networkLink);
		cnt++;
	}
	updateLayersList();
}

function initCallback(object,file)
{
	ge = object;
	ge.getWindow().setVisibility(true);
	
	GDownloadUrl('/wrotaodry/3d/kml/layers.php',loadLayers);
	ge.getOptions().setScaleLegendVisibility(true);
	ge.getOptions().setAtmosphereVisibility(true);
	ge.getOptions().setMouseNavigationEnabled(true);
	ge.getOptions().setStatusBarVisibility(true);
	ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
	var navControl = ge.getNavigationControl();
	var screenXY = navControl.getScreenXY();
	screenXY.setXUnits(ge.UNITS_PIXELS);
	screenXY.setYUnits(ge.UNITS_INSET_PIXELS);

	insertSidebar();
	ls.toggle('terrain');
	ls.toggle('roads');
	ls.toggle('borders');
	ls.toggle('buildings');

	setTimeout('setStartView()',2500);
}

function GDownloadUrl(url, func, method)
{
	var httpObj;
	if(!method)
		var method = 'get';
	var browser = navigator.appName;
	if(browser.indexOf("Microsoft") > -1)
		httpObj = new ActiveXObject("Microsoft.XMLHTTP");
	else
		httpObj = new XMLHttpRequest();
	httpObj.open(method, url, true);
	httpObj.onreadystatechange = function()
	{
		if(httpObj.readyState == 4)
		{
			if (httpObj.status == 200)
			{
				var contenttype = httpObj.getResponseHeader('Content-Type');
				if (contenttype.indexOf('xml')>-1)
				{
					func(httpObj.responseXML);
				}
				else
				{
					func(httpObj.responseText);
				}
			}
			else
			{
				func('Error: '+httpObj.status);
			}
		}
	};
	httpObj.send(null);
}

function loadKml(adres,ge,flytoview)
{	
	var networkLink = ge.createNetworkLink("");
	networkLink.setFlyToView((flytoview ? false : true));
	var link = ge.createLink("");
	link.setHref(adres);
	networkLink.setLink(link);
	ge.getFeatures().appendChild(networkLink);
}

function lookAtView(lat,lon,range,tilt,heading)
{
	if(!tilt)
		var tilt = parseInt(Math.random()*30+20);
	if(!heading)
		var heading = parseInt(Math.random()*60-30);
	var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
	la.set(lat, lon, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, heading, tilt, range);
	ge.getView().setAbstractView(la);
}

function setStartView(_lat,_lon,_range,_tilt,_heading)
{
	var lat 		= _lat 		|| 53.4382409266607;
	var lon 		= _lon 		|| 14.79513719900869;
	var range 		= _range 	|| 101267;
	var tilt		= _tilt 	|| 48.54345485332043
	var heading 	= _heading 	|| 35.47874876307631;
	lookAtView(lat,lon,range,tilt,heading);
}

function failureCallback(object)
{
	window.location = '../about/plugin.php';
}