

var countryCountLayer = null;
var deptoCountLayer = null;
var countryDeptoLayer = null;
var deptoLayer = null;
var arrPlaceMarks = [];
var isBlocked = false;



function init() {
  google.earth.createInstance("map3d", initCallback, failureCallback);
}

function initCallback(object) {
  ge = object;
  ge.getWindow().setVisibility(true);
  
  
  var navControl = ge.getNavigationControl();
  navControl.setVisibility(ge.VISIBILITY_SHOW);

  var url = urlBaseServer+'static/kudoshead2.kml';
  google.earth.fetchKml(ge, url, finished);
  
  url = urlBaseServer+'departamento/deptoskml.kml';
  google.earth.fetchKml(ge, url, deptosKmlLoadOk);
}



function failureCallback(object) {
}


function finished(object) {
  if (!object) {
    alert('bad or NULL kml');
    return;
  }
  ge.getFeatures().appendChild(object);
  
  //ge.getNavigationControl().visibility = true;
  //var la = ge.createLookAt('');
  //la.set(-75, 2, 500, ge.ALTITUDE_MODE_RELATIVE_TO_GROUND, 180, 60, 500);
  //ge.getView().setAbstractView(la);
}

function showBaseLayers(visibility){
	//countryCountLayer.setVisibility(visibility);
	deptosLayer.setVisibility(visibility);
}





////////////////////////////////////////////////////
// Carga de estadisticas totales para todos los deptos
///////////////////////////////////////////////////
function showGeneralDeptosStat(){
	var form = document.options;
	var showData = form.genDeptoStatsChk.checked;
	
	if(showData){
		if(countryCountLayer == null){
			var url = urlBaseServer+'departamento/deptocountkml.kml'; 
			google.earth.fetchKml(ge, url, showGeneralDeptosStatLoadOK);
		}else{
			countryCountLayer.setVisibility(true);
		}
	}else{
		countryCountLayer.setVisibility(false);
	}
} 

function showGeneralDeptosStatLoadOK(object){
	if (!object) {
    	alert('bad or NULL kml');
    	return;
	}
	countryCountLayer = object;
	ge.getFeatures().appendChild(object);
}

////////////////////////////////////////////////////
function deptosKmlLoadOk(object){
	if (!object) {
    	alert('bad or NULL deptos kml');
    	return;
	}
	countryDeptoLayer = object;
	ge.getFeatures().appendChild(object);
	traverseNodes(countryDeptoLayer);
	
	var la = ge.createLookAt('');
	la.set(3.558586871253922, -72.88493508887353, 500, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 60, 2615130);
	ge.getView().setAbstractView(la);
}

//traverseNodes(KmlFeature node) 
////////////////////////////////////////////////////
//Recursively iterates through the KmlDocument
//makes the menu using folder names as headings and placemark names as links
function traverseNodes(node) {
	if(node.getFeatures().hasChildNodes()) {
		var subNodes = node.getFeatures().getChildNodes();
		var length = subNodes.getLength();
		for(var i = 0; i < length; i++) {
			var eachSubNode = subNodes.item(i);
			var nodeType = eachSubNode.getType();
			var nodeName = eachSubNode.getName();
			var nodeId = eachSubNode.getId();
						
			switch(nodeType) {
				case 'KmlFolder' :
					//if(nodeName != 'Projects Folder') {
					//	strMenuHtml += '<b class="folderHeading">' + nodeName + '</b><br />';
					//}
					traverseNodes(eachSubNode); //recurse..
				break;
				case 'KmlPlacemark' :
					//alert(nodeName+nodeId+nodeType);
					//if(nodeId =! ''){
						arrPlaceMarks[nodeId] = eachSubNode;
					//}
					
					//strMenuHtml += '<a href="javascript:getProject(\'' + nodeId + '\')">' + nodeName + '</a><br />'; 
					/*
					google.earth.addEventListener(eachSubNode, "click", function(event) {
						event.stopPropagation();
						event.preventDefault();
						getProject(intPlaceMarks);
					});
					*/
				break;
				case 'KmlScreenOverlay' :	
				default :	
				break;
			}
		}
	}
}



function myLookat(x, y, a) {
	var la = ge.createLookAt('');
	la.set(x, y, a, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 60, 280000);
	ge.getView().setAbstractView(la);
}

////////////////////////////////////////////////////
// Carga de estadisticas por depto
///////////////////////////////////////////////////
function loadMunicipiosByDeptoLayer(){
	if(isBlocked){
		return;
	}

	//$.blockUI(); 
	//$('div.blockMe').block({ message: null }); 
	$('div.blockMe').block({  
	        message: '<h3>Loading...</h3>',  
	        css: { border: '3px solid #a00' }  
	    }); 
	isBlocked = true;    

	var form = document.optionsDeptos;
	var idDepto = form.stateSelect.value;
	//alert(idDepto);
	if(deptoCountLayer != null){
		deptoCountLayer.setVisibility(false);
		deptoCountLayer = null;
	}
	
	if(deptoLayer != null){
		deptoLayer.setVisibility(false);
		deptoLayer = null;
	}
	
	var url = urlBaseServer+'departamento/munibydeptokml.kml?id='+idDepto; 
	google.earth.fetchKml(ge, url, loadMunicipiosByDeptoLayerLoadOK);
	
	url = urlBaseServer+'departamento/municipioskml.kml?id='+idDepto; 
	google.earth.fetchKml(ge, url, loadMunicipiosByDeptoPolyLayerLoadOK);
	
	getPolyMuncipiosByDep(idDepto);
}

function loadMunicipiosByDeptoLayerLoadOK(object){
	if (!object) {
    	alert('bad or NULL kml');
    	return;
	}
	deptoCountLayer = object;
	ge.getFeatures().appendChild(object);
	//$.unblockUI();
	$('div.blockMe').unblock();
	isBlocked = false; 
}

function loadMunicipiosByDeptoPolyLayerLoadOK(object){
	if (!object) {
    	alert('bad or NULL kml');
    	return;
	}
	deptoLayer = object;
	ge.getFeatures().appendChild(object);
}


function getPolyMuncipiosByDep(id) {
	//alert(id);
	var placemark = arrPlaceMarks[id];
	//var absView = placemark.getAbstractView();
	var point = placemark.getGeometry();
	//alert(point.getLatitude());
	myLookat(point.getLatitude(), point.getLongitude(), 200); 
	//ge.getView().setAbstractView(placemark.getAbstractView())
	//currentPlaceMark = placemark;
	//openBalloon();
}

function showContratoDetail(idContrato){
	var urlDetail = urlBaseServer+'contrato/show/'+idContrato;
	var myTitle = 'Detalles del Contrato';
	var modal = $('#modalWindow');
	var $modalContent = $("iframe", modal);
    $modalContent.html('').attr('src', urlDetail);
	$('#jqmTitleText').text(myTitle);
	modal.jqm({trigger: false}).jqmShow().animate({
            width: 700,
            height: 480,
            top: 40
        }, 500);
    //$('#map3d_container').hide();
}
            