/*
* author: diegomrp
* date: 19/09/2007
* copyright: INDITEX S.A. - All rights reserved
*/

function loadTotalStores() {
	datos= GXmlHttp.create();
	datos.open("POST", '/map_home/loadTotalStoreAction.do', false);
	datos.send(null);
	var jSonText=datos.responseText;
	changeTotalStore(jSonText);
}

function changeTotalStore(num){
	var div=document.getElementById("totalGeneral");
	var list=div.childNodes;
	for(i=0;i<list.length;i++){
		if(list[i].className=='valor'){
			list[i].innerHTML=num;
		}
	}
}

function loadMenuIzqContinents(){
	viewCargando();
	var bounds=map.getBounds();
	datos= GXmlHttp.create();
	datos.open("POST", '/map_home/loadContinentsAction.do?latIni=-90&latFin=90&lngIni=-180&lngFin=180', false);
	datos.send(null);
	var jListContinent=eval("(" + datos.responseText + ")");
	if(jListContinent!=null) {
		changeListToContinent(jListContinent);
		// carga los continentes en el mapa
		loadOverlayContinentes(jListContinent);
		// fin de la carga de los continentes en el mapa
	}
	hideCargando();
}

function changeListToContinent(array){

	// Ocultamos los span necesarios
	hideSpan("continente"); hideSpan("pais"); hideSpan("provincia"); hideSpan("localidad");

	var div=document.getElementById("texto");
	var html="";
	for(i=0;i<array.length;i++){
		html=html+"<span class=\"continente\">"+
		"<a href=\"#\" onClick=\"loadContinent('"+array[i].continente.idZonaGeografica+"','"+
		array[i].continente.descripcion+"','"+array[i].num+"');\">"+
		"<span class=\"titulo\">"+array[i].continente.descripcion+"</span>"+
		"<span class=\"valor\">"+array[i].num+"</span>"+
		"</a>"+"</span>";
	}
	div.innerHTML=html;

	// hace aparecer o desaparecer el scroll
	changeHeight();
	// fin de scroll
}

function loadMenuIzqCountries(continent){
	if(continent==null){
		continent=loadContinentMenuIzq();
	}
	if(continent!=null){
		loadCountriesMenuIzq(continent);
	}
}

function loadContinentMenuIzq(){
	/*
	* reciclamos la funcion loadContinentsAction ya que sabemos que con este nivel de zoom
	* solo se esta mostrando un continente
	*/
	var bounds=map.getBounds();
	datos= GXmlHttp.create();
	datos.open("POST", '/map_home/loadContinentsAction.do?latIni='+bounds.getSouthWest().lat()+
	'&latFin='+bounds.getNorthEast().lat()+'&lngIni='+bounds.getSouthWest().lng()+
	'&lngFin='+bounds.getNorthEast().lng(), false);
	datos.send(null);
	var jSonArray=eval("(" + datos.responseText + ")");
	if(jSonArray!=null) {
		// cargamos en el menu izquierdo el continente y su total de tiendas
		changeSpanContinent(jSonArray[0]);
		// fin de la carga del continente en el menu izquierdo
		return jSonArray[0].continente.idZonaGeografica;
	} else {
		return null;
	}
}

function changeSpanContinent(object) {
	var span=document.getElementById("continente");
	span.className="totales";
	var list=span.childNodes;
	var html='<a href="#" onClick="loadContinent('+object.continente.idZonaGeografica+',\''+
	object.continente.descripcion+'\','+object.num+')">';
	var finHtml='</a>';
	for(i=0;i<list.length;i++){
		if(list[i].className=='titulo'){
			list[i].innerHTML=html+object.continente.descripcion+finHtml;
		}
		if(list[i].className=='valor'){
			list[i].innerHTML=html+object.num+finHtml;
		}
	}
}

function loadCountriesMenuIzq(continent){
	// Ocultamos los span necesarios
	hideSpan("pais"); hideSpan("provincia"); hideSpan("localidad");

	//Cargamos la lista de paises para el continente seleccionado
	var div=document.getElementById("texto");
	var html="";

	document.getElementById("listado").className="listaPaises";
	document.getElementById("area3").className="listaPaises";

	info= GXmlHttp.create();
	info.open("POST", '/map_home/loadCountriesByContinentAction.do?id='+continent, false);
	info.send(null);
	var jListCountries=eval("(" + info.responseText + ")");
	for(i=0;i<jListCountries.length;i++){
		html=html+"<span class=\"continente\">"+
		"<a href=\"#\" onClick=\"loadCountry('"+jListCountries[i].pais.idPais+"','"+
		jListCountries[i].pais.descripcion+"','"+jListCountries[i].num+"');\">"+
		"<span class=\"titulo\">"+jListCountries[i].pais.descripcion+"</span>"+
		"<span class=\"valor\">"+jListCountries[i].num+"</span>"+
		"</a>"+"</span>";
	}
	div.innerHTML=html;
	// hace aparecer o desaparecer el scroll
	changeHeight();
	// fin de scroll

	// cargamos los paises en el mapa
	loadOverlayPaises(jListCountries);
}

function loadMenuIzqRegion(country){
	if(country==null){
		country=loadCountryMenuIzq();
	}
	loadRegionsMenuIzq(country);
}

function loadCountryMenuIzq(){
	/*
	* reciclamos la funcion loadCountriesAction ya que sabemos que con este nivel de zoom
	* solo se esta mostrando un pais
	*/
	var bounds=map.getBounds();
	datos= GXmlHttp.create();
	datos.open("POST", '/map_home/loadCountriesAction.do?latIni='+bounds.getSouthWest().lat()+
	'&latFin='+bounds.getNorthEast().lat()+'&lngIni='+bounds.getSouthWest().lng()+
	'&lngFin='+bounds.getNorthEast().lng(), false);
	datos.send(null);
	var jSonArray=eval("(" + datos.responseText + ")");
	if(jSonArray!=null) {
		// cargamos en el menu izquierdo el pais y su total de tiendas
		changeSpanCountry(jSonArray[0]);
		// fin de la carga del pais en el menu izquierdo

		return jSonArray[0].pais.idPais;
	} else {
		return null;
	}
}

function changeSpanCountry(object) {
	var span=document.getElementById("pais");
	span.className="totales";
	var list=span.childNodes;
	var html='<a href="#" onClick="loadCountry('+object.pais.idPais+')">';
	var finHtml='</a>';
	for(i=0;i<list.length;i++){
		if(list[i].className=='titulo'){
			list[i].innerHTML=html+object.pais.descripcion+finHtml;
		}
		if(list[i].className=='valor'){
			list[i].innerHTML=html+object.num+finHtml;
		}
	}
}

function loadRegionsMenuIzq(country){
	if(country!=11){
		loadMenuIzqLocali(null);
	} else {
		/*
		* Ocultamos los span necesarios
		*/
		hideSpan("provincia"); hideSpan("localidad");

		/*
		* Cargamos la lista de provincias para el pais seleccionado
		*/
		//var div=document.getElementById("texto");

		info= GXmlHttp.create();
		info.open("POST", '/map_home/loadRegionAction.do?id='+country, false);
		info.send(null);
		var jListRegions=eval("(" + info.responseText + ")");
		loadRegions(jListRegions);
	}
}

function loadRegions(jListRegions) {
	var html="";
	var div=document.getElementById("texto");
	
	document.getElementById("listado").className="listaRegiones";
	document.getElementById("area3").className="listaRegiones";
	
	if(jListRegions!=null) {
		for(i=0;i<jListRegions.length;i++){
			// cargamos la provincia con id seleccionado.
			//var p=loadRegionById(jListRegions[i].idProvincia);
			// fin de la carga
			html=html+"<span class=\"continente\">"+
			"<a href=\"#\" onClick=\"loadRegion('"+jListRegions[i].idProvincia+"','"+
			jListRegions[i].nombre+"','"+jListRegions[i].num+"');\">"+
			"<span class=\"titulo\">"+jListRegions[i].nombre+"</span>"+
			"<span class=\"valor\">"+jListRegions[i].num+"</span>"+
			"</a>"+"</span>";
		}
		div.innerHTML=html;

		// hace aparecer o desaparecer el scroll
		changeHeight();
		// fin de scroll

		// cargamos las provincias en el mapa
		//loadOverlayRegion(jListRegions);
	}
}

function hideSpan(object){
	var span=document.getElementById(object);
	span.className="oculto";
}

function loadMenuIzqLocali(locali){
	if(paisSel==11) {
		var region=locali;
		if(region==null){
			region=loadUniqueRegionMenuIzq();
		}
		var jSonLocalidades=loadMenuIzqLocaliByRegion(region);
		return jSonLocalidades;
	} else {
		var jSonLocalidades=loadMenuIzqLocaliByCountry(paisSel);
		return jSonLocalidades;
	}
}

function loadUniqueRegionMenuIzq(){
	var bounds=map.getBounds();
	info= GXmlHttp.create();
	info.open("POST", '/map_home/loadRegionsByLatLngAction.do?latIni='+bounds.getSouthWest().lat()+
	'&latFin='+bounds.getNorthEast().lat()+'&lngIni='+bounds.getSouthWest().lng()+
	'&lngFin='+bounds.getNorthEast().lng(), false);
	info.send(null);
	var jSonProvincias=eval("(" +info.responseText + ")");
	if(jSonProvincias!=null) {
		// cargamos la estructura necesaria para mostrar el span de provincia
		var region=new Object();
		var provincia=new Object();
		provincia.idProvincia=jSonProvincias[0].idProvincia;
		provincia.descripcion=jSonProvincias[0].nombre;
		region.provincia=provincia;
		region.num=jSonProvincias[0].num;
		changeSpanRegion(region);
		// fin de la carga del  span

		return jSonProvincias[0].idProvincia;
	} else {
		return null;
	}
}

function loadMenuIzqLocaliByRegion(region) {
	/*
	* Obtener la region a traves del id de la region
	* para crear el span en el menu izquierdo
	*/
	info= GXmlHttp.create();
	info.open("POST",'/map_home/loadRegionByIdAction.do?id='+region,false);
	info.send(null);
	var jSonProvincia=eval("(" +info.responseText + ")");
	if(jSonProvincia!=null) {
		changeSpanRegion(jSonProvincia);
	}
	return loadLocalyByRegionId(region);
}

function loadLocalyByRegionId(region){
	info= GXmlHttp.create();
	info.open("POST", '/map_home/loadCityByRegionAction.do?id='+region, false);
	info.send(null);
	var jSonLocalidades=eval("(" +info.responseText + ")");
	if(jSonLocalidades!=null) {
		loadCitiesMenuIzq(jSonLocalidades);
		return jSonLocalidades;
	} else {
		return null;
	}
}

function loadMenuIzqLocaliByCountry(country) {
	info= GXmlHttp.create();
	info.open("POST", '/map_home/loadCityAction.do?id='+country, false);
	info.send(null);
	var jSonLocalidades=eval("(" +info.responseText + ")");
	if(jSonLocalidades!=null) {
		loadCitiesMenuIzq(jSonLocalidades);
		return jSonLocalidades;
	} else {
		return null;
	}
}

function loadCitiesMenuIzq(array){

	// Ocultamos los span necesarios
	hideSpan("localidad");

	var div=document.getElementById("texto");
	document.getElementById("listado").className="listaLocalidades";
	document.getElementById("area3").className="listaLocalidades";
	var html="";

	for(i=0;i<array.length;i++){
		html=html+"<span class=\"continente\">"+
		"<a href=\"#\" onClick=\"loadCity('"+ array[i].localidad +"',false);\">"+
		"<span class=\"titulo\">"+ array[i].localidad +"</span>"+
		"<span class=\"valor\">"+ array[i].num +"</span>"+
		"</a>"+"</span>";
	}
	div.innerHTML=html;

	// hace aparecer o desaparecer el scroll
	changeHeight();
	// fin de scroll
}

function changeSpanRegion(region) {
	if(region!=null) {
		var span=document.getElementById("provincia");
		span.className="totales";
		var list=span.childNodes;
		var html='<a href="#" onClick="loadRegion(\''+region.provincia.idProvincia+'\',\''+
		region.provincia.descripcion+'\',\''+region.num+'\')">';
		var finHtml='</a>';
		for(i=0;i<list.length;i++){
			if(list[i].className=='titulo'){
				list[i].innerHTML=html+region.provincia.descripcion+finHtml;
			}
			if(list[i].className=='valor'){
				list[i].innerHTML=html+region.num+finHtml;
			}
		}
	}
}

function loadRegionById(id){
	// cargamos la provincia con id seleccionado.
	info2= GXmlHttp.create();
	info2.open("POST", '/map_home/loadRegionByIdAction.do?id='+id, false);
	info2.send(null);
	var provincia=eval("(" + info2.responseText + ")");
	// fin de la carga

	return provincia;
}

function loadMenuIzqLocaliMarker(locali){
	if(locali==null){
		locali=loadLocaliByLatLngMarker();
	} else {
		locali=loadStoresByLocaliMarker(locali);
	}
	changeSpanLocalidad(locali);

	loadMenuIzqMarkers(locali);
}

function loadLocaliByLatLngMarker(){
	var bounds=map.getBounds();
	info2= GXmlHttp.create();
	info2.open("POST", '/map_home/loadJSonAction.do?latIni='+bounds.getSouthWest().lat()+
	'&latFin='+bounds.getNorthEast().lat()+'&lngIni='+bounds.getSouthWest().lng()+
	'&lngFin='+bounds.getNorthEast().lng(), false);
	info2.send(null);
	var jSonTiendas=eval("(" + info2.responseText + ")");
	/* el numero de tiendas por localidad no puede depender de la latitud y longitud que se este mostrando.
	* por eso seleccionamos la localidad e invocamos el metodo loadStoresByLocaliMarker pasandole la localidad devuelta
	* por loadJSonAction
	*/
	if(jSonTiendas[0]!=null) {
		return loadStoresByLocaliMarker(jSonTiendas[0][0].poblacion);
	} else {
		return null;
	}
}

function loadStoresByLocaliMarker(locali){
	info2= GXmlHttp.create();
	info2.open("POST", '/map_home/loadStoresByLocaliAction.do?id='+convertUtf8(locali), false);
	info2.send(null);
	var jSonTiendas=eval("(" + info2.responseText + ")");
	return jSonTiendas;
}

function changeSpanLocalidad(array){
	if(array.length>0) {
		var span=document.getElementById("localidad");
		span.className="totales";
		var list=span.childNodes;
		var html='<a href="#" onClick="loadCity(\''+array[0][0].poblacion+'\',false)">';
		var finHtml='</a>';
		for(i=0;i<list.length;i++){
			if(list[i].className=='titulo'){
				list[i].innerHTML=html+array[0][0].poblacion+finHtml;
			}
			if(list[i].className=='valor'){
				list[i].innerHTML=html+array.length+finHtml;
			}
		}
	}
}

function loadMenuIzqMarkers(array) {
	var div=document.getElementById("texto");
	var html="";

	document.getElementById("listado").className="listaMarkers";
	document.getElementById("area3").className="listaMarkers";

	for(i=0;i<array.length;i++){
		for(j=0;j<array[i].length;j++) {
			html=html+"<span class=\"continente\">"+
			"<a href=\"#\" onClick=\"loadMarker("+array[i][j].id+","+array[i][j].latitud+","+
			array[i][j].longitud+");\">"+
			"<span class=\"titulo2\">"+array[i][j].direccion+"</span>"+
			"</a>"+"</span>";
		}
	}
	div.innerHTML=html;

	// hace aparecer o desaparecer el scroll
	changeHeight();
	// fin de scroll
}

function viewWorld() {
	map.setCenter(new GLatLng(37, 2), 2);
	hideSpan("continente"); hideSpan("pais"); hideSpan("provincia"); hideSpan("localidad");
}