var map = null;
var geocoder = null;
var locales = null;
//var progressBar = null;
var cocaIcon = null;
var casaIcon = null;
var address = "Onda Sabanera";
var sinMapa = false;

function initialize() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("divMapa"));
		map.setCenter(new GLatLng(-12.045633,-77.028122), 11);
		map.enableScrollWheelZoom() 
		map.addControl(new GSmallMapControl());
        map.enableDoubleClickZoom();
        map.enableContinuousZoom();

		geocoder = new GClientGeocoder();
		//progressBar = new ProgressbarControl(map);
		cocaIcon = new GIcon();
		casaIcon = new GIcon();
		setIconoCoca(cocaIcon);
		setIconoCasa(casaIcon);
	}
}
function setIconoCoca(cocaIcon){
	cocaIcon.image = "img/mapa/botella.png";
	cocaIcon.shadow = "img/mapa/sombra.png";
	cocaIcon.iconSize = new GSize(24, 34);
	cocaIcon.shadowSize = new GSize(24, 34);
	cocaIcon.iconAnchor = new GPoint(12, 34);
	cocaIcon.infoWindowAnchor = new GPoint(5, 1);
}
function setIconoCasa(casaIcon){
	casaIcon.image = "img/mapa/casa.png";
	casaIcon.shadow = "img/mapa/sombraCasa.png";
	casaIcon.iconSize = new GSize(42, 34);
	casaIcon.shadowSize = new GSize(42, 34);
	casaIcon.iconAnchor = new GPoint(21, 34);
	casaIcon.infoWindowAnchor = new GPoint(5, 1);
}


function showAddress() {
	//alert(document.getElementById('txtDir').value);
	//alert(document.getElementById('txtProv').value);
	//alert(document.getElementById('txtCiudad').value);
	var ciudad = document.getElementById('txtCiudad').value;
	var address = document.getElementById('txtDir').value+", "+ciudad+", peru";
	crearDownload(ciudad);

	switch(ciudad){
		case 'ABANCAY':
		case 'ANDAHUAYLAS':
		case 'AREQUIPA':
		case 'BAGUA':
		case 'CERRO DE PASCO':
		case 'CAJAMARCA':
		case 'CHICLAYO':
		case 'CHIMBOTE':
		case 'CHINCHA':
		case 'CUSCO':
		case 'HUACHO':
		case 'HUARAL':
		case 'ICA':
		case 'ILO':
		case 'JAUJA':
		case 'JAEN':
		case 'JULIACA':
		case 'MOQUEGUA':
		case 'PALPA':
		case 'PIURA':
		case 'PUCALLPA':
		case 'TACNA':
		case 'LIMA':
		case 'HUANCAVELICA':
		case 'HUANCAYO':
		case 'HUARAZ':
		case 'IQUITOS':
		case 'PISCO':
		case 'PUCALLPA':
		case 'PUNO':
		case 'SULLANA':
		case 'TINGO MARIA':
		case 'TRUJILLO':
		case 'TUMBES':
			if(sinMapa){
				initialize();
				sinMapa = false;
			}
			borrarLocales();
			geocoder.getLatLng(address,
				function(point) {
					var ciudad = document.getElementById('txtCiudad').value;
					var address = document.getElementById('txtDir').value+", "+ciudad+", peru";
					if (!point) {
						//alert(address + " Sin resultados.");
					} else {
						map.setCenter(point, 15);
						markerOptions = { icon:casaIcon };
						var marker = new GMarker(point, markerOptions);
						map.addOverlay(marker);
						var locales = obtenerLocalesCercanos(point, ciudad);
					}
				}
			);	
		break;
		default:
			sinMapa = true;
			jQuery.ajax({
				type: "POST",
				url: "traerExelLocales.php",
				data: "ciudad="+ciudad,
				success: function(msg){
					//alert(msg);
					//$('#divMapa').html = "";
					$('#divMapa').html(msg);
					//document.getElementById('divMapa').innerHTML = msg;
				}
			});
		break;
	}
}
function cargarPuntos(locales){
	for (var i=0; i<locales.length; i++){
		markerOptions = { icon:cocaIcon };
		var marker = new GMarker(locales[i][0], markerOptions);
		marker.value = i;
		var direccion = "<div id=\"googleMapVentanaInfo\"><p>Direcci&oacute;n:&nbsp;</p>"+locales[i][1]+"</div>";
		marker.bindInfoWindowHtml(direccion); 
		//marker.bindInfoWindowHtml(direccion, {maxWidth: 10});
		//alert(marker.value);
		map.addOverlay(marker);
		//map.openInfoWindowHtml(locales[i], address);
		//marker.bindInfoWindowHtml(address) 
		//marker.openInfoWindowHtml(address);
		/*GEvent.addListener(marker, "click", function() {
			//alert(marker.value);
			//var myHtml = "<b>#" + h+1 + "</b><p>Q onda capo.</p><br/>";
			map.openInfoWindowHtml(locales[i], address);
		});*/
	}
map.panTo(locales[0][0]); 
}

var pointPrueba = null;
function obtenerLocalesCercanos(point, ciudad){
	pointPrueba = point;
	var indice = 0;
	locales = new Array;
	GDownloadUrl("xml/"+ciudad+".xml", function(data) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		//alert(markers);
		var cantidadArray = markers.length;
		//alert(cantidadArray);
		//progressBar.start(cantidadArray);
		//alert("i="+pointPrueba.lat()+" - j = "+pointPrueba.lng())
		var masCercanos = getMasCercanos(markers, pointPrueba);
		//alert("masCercanos="+masCercanos.length);
		var contador = 0;
		for(var unCercano in masCercanos){
			var local = new Array(2);
			local[0] = new GLatLng( masCercanos[unCercano][1], masCercanos[unCercano][2]);
			local[1] = masCercanos[unCercano][3];
			contador++;
			locales[indice] = local;
			indice++;
			if(contador > 5){
				break;
			}
		}
		cargarPuntos(locales);
	});	
	
	return locales;
}
function getMasCercanos(markers, point){
	var locales = new Array();
	var stringa = "";
	for (var i = 0; i < markers.length; i++) {
		var lng = Math.abs(point.lng() - markers[i].getAttribute("lng"));
		var lat = Math.abs(point.lat() - markers[i].getAttribute("lat"));
		var suma = lng + lat;
		//alert("sima= "+suma);
		var unLocal = new Array(4);
		unLocal[0] = suma;
		unLocal[1] = markers[i].getAttribute("lat");
		unLocal[2] = markers[i].getAttribute("lng");
		unLocal[3] = markers[i].getAttribute("dir");
		locales.push(unLocal);
		//progressBar.updateLoader(1);
	}
	/*for(var local in locales){
		stringa += "i="+locales[local][1]+" - j = "+locales[local][2]+"\n";
	}
	//alert(stringa);*/
	locales.sort(ordenar);
	/*stringa = "";
	for(var local in locales){
		stringa += "i="+locales[local][1]+" - j = "+locales[local][2]+"\n";
	}
	//alert(stringa);*/
return locales;
}
function ordenar(a, b){
	if(a[0] > b[0]){
		return 1;
	}else if(a[0] == b[0]){
		return 0;
	}else{
		return -1;
	}
}
function borrarLocales(){
	map.clearOverlays();
	//progressBar.remove();
}
/*function cargarLocalesPeru(){
	var indice = 0;
	locales = new Array;
	GDownloadUrl("TARMA.xml", function(data) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		var cantidadArray = markers.length;
		progressBar.start(cantidadArray);
		/*for (var i = 0; i < markers.length; i++) {
			alert(markers[i].getAttribute("dir"));
		}*/
		/*for (var i = 0; i < markers.length; i++) {
			var dir = markers[i].getAttribute("dir")+" ,tarma,  peru";
			geocoder.getLatLng(dir,
				function(point) {
					markerOptions = { icon:cocaIcon };
					var marker = new GMarker(point, markerOptions);
					map.addOverlay(marker);
					progressBar.updateLoader(1);
					GEvent.addListener(marker, "click", function() {
						marker.openInfoWindowHtml("HOLA");
						//marker.openInfoWindowHtml("TOCADO");
					});
				}
			);
		}
	});	
}*/
function crearDownload(ciudad){
	//alert(ciudad.toLowerCase());
	var msg = "<a id=\"lnkDescargaPDF\" href=\"gestorDescargas.php?f="+ciudad.toLowerCase()+".pdf\">Descargar todos los Locales.<a>"
	//$('#archivoPDF').html(msg);
	document.getElementById('archivoPDF').innerHTML = msg;
}