﻿	var map;
	var mgr;
    var geocoder;
	var address;
	var direccion;
	var nombre;
	var aviso = false;
	var txtaviso = "<span style='font-size:11px;color:red;font-family:arial;'>(Localizaci&oacute;n aproximada)</span>";
	var previd = '';
	var pet1;
	var pet2;
	var pet3;
	var pet4;
	var elems = 4;
	var maxdocs = 2000;
	var pag = 1;
	var objpeticion;
	var inicializado = false;
	var cambiando = false;
	var tmptxt;
	var tmptipo;
	var mismoid = false;
	var icoOrange;
	var pointini = '';
	var inipet1;
	var inipet2;
	var inipet3;
	var inipet4;

	function resetfilters(cerrar){
		if (cerrar)
			abrirFiltros(false);
		document.formfiltrar.tipo[0].checked = true;
		document.formfiltrar.filtro.value = '';		
	}

    function initialize(obj,pag) {
		cambiando = true;
		var i = elems*(pag-1);
		var num = elems*pag;
		var results = obj.response.docs;
		var iconoOrange = new GIcon(G_DEFAULT_ICON);
		iconoOrange.image = "http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/logo_orange.png";  
		iconoOrange.iconSize = new GSize(20,20);
		iconoOrange.shadow = "http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/sombra.png";
		iconoOrange.shadowSize = new GSize(34,24); 
		iconoOrange.iconAnchor = new GPoint(13, 22);
		icoOrange = iconoOrange;
		if (!inicializado){
			geocoder = new GClientGeocoder();
			map = new GMap2(document.getElementById("map_canvas"));
			// insertar los controles
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
			resetfilters();
			//centro el mapa
			map.setCenter(new GLatLng(40.452557, -3.510673), 5);
			var mgrOptions = { borderPadding: 50, maxZoom: 15, trackMarkers: true };
			mgr = new MarkerManager(map,mgrOptions);		
		}else{
			mgr.clearMarkers();
		}

		pointini = '';
		inipet1 = '';
		inipet2 = '';
		inipet3 = '';
		inipet4 = '';

		if (results.length == 0){
			pintapag(1,1);
			$2('items').innerHTML = '<i>No se ha encontrado ning&uacute;n resultado</i>';
		}
		
		if (inicializado){
			for (var p = i;p<num;p++){
				if (results[p]){
					if (results[p].googlelen != 0 && results[p].googlelat != 0){
						var peticion = '(' + results[p].googlelat + ' , ' + results[p].googlelen + ')';
					}else{
						inipet1 = results[p].cp + " , " + results[p].pobl + " , " + results[p].prov;
						inipet2 = results[p].cp + " , " + results[p].pobl;
						inipet3 = results[p].cp + " , " + results[p].prov;
						inipet4 = results[p].pobl + " , " + results[p].prov;
						var peticion = results[p].dir + ", " + results[p].cp + ", " + results[p].pobl + ", " + results[p].prov;
					}
					if(/MSIE 6.0/i.test(navigator.userAgent)){
						setTimeout("localiza('" + peticion + "','" + results[p].cp + "','" + results[p].pobl + "','" + results[p].prov + "','" + results[p].nombre + "','" + results[p].dir + "'," + results[p].id + ")",10);
					}else{
						localiza(peticion,results[p].cp,results[p].pobl,results[p].prov,results[p].nombre,results[p].dir,results[p].id);
					}
				}
			}
		}else{
			inicializado = true;
		}				
	}
	

		function localiza(peticion,cp,pobl,prov,nom,dir,id){
			geocoder.getLatLng(peticion,function(point) {
				if (!point) {	
					if (inipet1 != ''){
					localiza(inipet1,cp,pobl,prov,nom,dir,id);
					inipet1 = '';
					}else if (inipet2 != ''){
					localiza(inipet2,cp,pobl,prov,nom,dir,id);
					inipet2 = '';
					}else if (inipet3 != ''){
					localiza(inipet3,cp,pobl,prov,nom,dir,id);
					inipet3 = '';
					}else if (inipet4 != ''){
					localiza(inipet4,cp,pobl,prov,nom,dir,id);
					inipet4 = '';
					}	  
				} else {
				  var marker = new GMarker(point, icoOrange);
				  GEvent.addListener(marker, 'click', function() {
						despliega(id);
						showLocation(peticion,cp,pobl,prov,nom,dir,id);
						marker.openInfoWindowHtml("<span style='width:400px; font-size: 10pt; font-family: arial; font-weight:700; color:#FF6600; float:left;'><img src='/moviloes/img/particularesoes/buscadores/buscadorpdv/logo_orange.png'/>&nbsp;" + nom + "</span><br/><span style='width:400px; font-family: arial; float:left; padding: 5px 0 0 0;'>" + dir + "</span>" + (aviso?txtaviso:""));
					});
				  if (pointini==''){ 
				  	pointini = point;
				  	map.setCenter(point, 10);
				  }
				  if (cambiando){
					cambiando=false;
				  }
				  mgr.addMarker(marker,0,0);
				}
			  });
		}

    // addAddressToMap() is called when the geocoder returns an
    // answer.  It adds a marker to the map with an open info window
    // showing the nicely formatted version of the address and the country code.
    function addAddressToMap(response) {
      if (!response || response.Status.code != 200) {
		  aviso = true;
		  if (pet1 != ''){
			showLocation(pet1);
			pet1 = '';
		  }else if (pet2 != ''){
			showLocation(pet2);
			pet2 = '';
		  }else if (pet3 != ''){
			showLocation(pet3);
			pet3 = '';
		  }else if (pet4 != ''){
			showLocation(pet4);
			pet4 = '';
		  }	  
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
        map.setCenter(point, 17);
        //icono de orange
		var iconoOrange = new GIcon(G_DEFAULT_ICON);
		iconoOrange.image = "http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/logo_orange.png";  
		iconoOrange.iconSize = new GSize(20,20);
		iconoOrange.shadow = "sombra.png";
		iconoOrange.shadowSize = new GSize(34,24); 
		iconoOrange.iconAnchor = new GPoint(13, 22);
      }
    }

    // showLocation() is called when you click on the Search button
    // in the form.  It geocodes the address entered into the form
    // and adds a marker to the map at that location.
    function showLocation(addr,cp,pobl,prov,nom,dir,id) {
		if (!mismoid){
		  address = addr;
		  if (typeof(nom)!='undefined')
			  nombre = nom;
		  if (typeof(dir)!='undefined')
			  direccion = dir.toLowerCase();
		  if (typeof(cp)!='undefined' & typeof(pobl)!='undefined' & typeof(prov)!='undefined'){
			  aviso = false;
			  pet1 = cp + " , " + pobl + " , " + prov;
			  pet2 = cp + " , " + pobl;
			  pet3 = cp + " , " + prov;
			  pet4 = pobl + " , " + prov;
		  }
		  geocoder.getLocations(address, addAddressToMap);
		}
    }

	function $2(id){return document.getElementById(id);}

	function cleantxt(txt){
		var espacio = true;
		for (var i=0;i<txt.length;i++){
			if ((txt.charAt(i)=='*' && espacio)|| (txt.charAt(i)=='?' && espacio)||(txt.charAt(i)=='+' && espacio)){
				txt = txt.substring(0,i) + txt.substring(i+1,txt.length);
				i = -1;
			}else{
				if (txt.charAt(i)==' '){
					espacio=true
				}else{
					espacio=false;
				}
			}
		}
		return txt;
	}

	// Llamada desde buscador principal. Buscador interior recibe busqavan. Filter = false salvo en cambio de radio

	function genera(busqavan,filtrando,param){	
		if (filtrando){
			var texto = tmptxt;
			var seleccion = tmptipo;
			pag = 1;
			var txtfilter = cleantxt(document.formfiltrar.filtro.value);
			if (txtfilter != '')
				txtfilter = '&fq=text%3A' + cleantxt(txtfilter.replace(/ /gi,' AND '));
			var valor;
			for(var l=0; l<document.formfiltrar.tipo.length; l++){
				if(document.formfiltrar.tipo[l].checked){
				  valor = document.formfiltrar.tipo[l].value;
				}
			}
			$2("buscerror").style.display = 'none';
			$2("buscerror2").style.display = 'none';
			if (valor=='care')
				var filter = '&fq=care%3Atrue';
			else if (valor=='post')
				var filter = '&fq=postvta%3Atrue';
			else
				var filter = '&fq=ptovta%3Atrue';
			ajax.url = '';
			if (seleccion == 'pobl'){
				ajax.url='/busquedapdv/?q=pobl%3A' + encodeURI(acentos(texto)) + filter + txtfilter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';					
			}else if (seleccion == 'dir'){
				ajax.url='/busquedapdv/?q=dir%3A' + encodeURI(acentos(texto)) + filter + txtfilter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';					
			}else if (seleccion == 'prov'){
				ajax.url='/busquedapdv/?q=prov%3A' + encodeURI(acentos(texto)) + filter + txtfilter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';					
			}else if (seleccion == 'cp'){
				if (isNaN(texto)){
					$2("buscerror").style.display = 'block';
					$2("buscerror2").style.display = 'block';
				}else{
					$2("buscerror").style.display = 'none';
					$2("buscerror2").style.display = 'none';
					ajax.url='/busquedapdv/?q=cp%3A' + encodeURI(acentos(texto)) + filter + txtfilter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';
				}
			}
			ajax.f= function(){
					ajax.hideLabel();
					var obj = eval('(' + ajax.xmlDoc.responseText + ')');				
					//Inicializamos el mapa de google
					initialize(obj,pag);
					pinta(obj);
				}
			ajax.loading = function(){
				ajax.showLabel("<img src='/moviloes/img/particularesoes/buscadores/buscadorpdv/actualizando_datos.gif'>")
			}	
			if (ajax.url != '')
				ajax.run();			
		}else{
			$2("buscerror").style.display = 'none';
			$2("buscerror2").style.display = 'none';
			if (busqavan){
				var texto = cleantxt($2("qry").value.replace(/ /gi,' AND '));
			}else if (typeof(param)=='undefined'){
				var texto = cleantxt($2("qryini").value.replace(/ /gi,' AND '));
				 $2("qry").value = cleantxt($2("qryini").value);;
			}
			if (texto != '' || typeof(param)!='undefined'){
				if (busqavan){
					var seleccion = document.busquedavan.tipobusc.options[document.busquedavan.tipobusc.selectedIndex].value;
				}else{
					var seleccion = document.busqueda.tipobuscini.options[document.busqueda.tipobuscini.selectedIndex].value;
					document.busquedavan.tipobusc.selectedIndex = document.busqueda.tipobuscini.selectedIndex;
				}
				if (typeof(param)!='undefined'){
					texto = cleantxt(param.replace(/ /gi,' AND '));
					seleccion = 'prov';
					$2("qry").value = param;
					document.busquedavan.tipobusc.selectedIndex = 2;
				}
				pag = 1;
				ajax = new AjaxPdv();
				var filter = '&fq=ptovta%3Atrue';
				resetfilters(false);
				ajax.url = '';
				if (seleccion == 'pobl'){
				ajax.url='/busquedapdv/?q=pobl%3A' + encodeURI(acentos(texto)) + filter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';					
				}else if (seleccion == 'dir'){
				ajax.url='/busquedapdv/?q=dir%3A' + encodeURI(acentos(texto)) + filter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';					
				}else if (seleccion == 'prov'){
				ajax.url='/busquedapdv/?q=prov%3A' + encodeURI(acentos(texto)) + filter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';					
				}else if (seleccion == 'cp'){
					if (isNaN(texto)){
						$2("buscerror").style.display = 'block';
						$2("buscerror2").style.display = 'block';
					}else{
						$2("buscerror").style.display = 'none';
						$2("buscerror2").style.display = 'none';
						ajax.url='/busquedapdv/?q=cp%3A' + texto + filter + '&sort=tipo desc&version=1.0&start=0&rows=' + maxdocs + '&indent=on&wt=json';					
					}
				}
				if (ajax.url != ''){
					$2("items").innerHTML = '';
					$2("numresults").innerHTML = '';
				}
				tmptxt = texto;
				tmptipo = seleccion;
				ajax.f= function(){
					ajax.hideLabel();
					var obj = eval('(' + ajax.xmlDoc.responseText + ')');				
					if (!busqavan){
						$2("cabini").style.display = "none";
						$2("cabsec").style.display = "block";				
						$2("mapa").style.display = "none";
						$2("topmapa").style.display = "none";
						$2("gmapa").style.display = "block";
						$2("zonainferior").style.display = "block";
						document.body.focus();
					}
					//Inicializamos el mapa de google
					initialize(obj,pag);
					pinta(obj);
				}
				ajax.loading = function(){
					ajax.showLabel("<img src='/moviloes/img/particularesoes/buscadores/buscadorpdv/actualizando_datos.gif'>")
				}
				if (ajax.url != '')
				ajax.run();
			}
		}
	} 

	function vertienda(addr,cp,pobl,prov,nom,dir,id){
		if(previd!=id){
			despliega(id);
			showLocation(addr,cp,pobl,prov,nom,dir,id);
		}	
	}

	function despliega(id){			
		if (previd && $2(previd) && previd != ''){
			$2(previd).style.display = "none";
			$2("ico" + previd).innerHTML = "<img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_cerr.gif\" />";
			$2("ir_" + previd).className = "itemresult";
		}
		previd = id;
		$2(id).style.display="block";
		$2("ico" + id).innerHTML = "<img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_abi.gif\" />";
		$2("ir_" + previd).className = "itemresult sel";
	}

	function pinta(obj, pagina){
		if (obj){
			if (!pagina)	pagina = 1;
			objpeticion = obj;
			var i = elems*(pagina-1);
			var num = elems*pagina;
			var total = obj.response.numFound;
			$2("items").innerHTML = '';
			$2('numresults').innerHTML = '( ' + total + ' )';
			if ((total%elems)>0)
				var pagtotales = parseInt(total/elems)+1;
			else
				var pagtotales = total/elems;
			var results = obj.response.docs;
			var tfno = '';
			var iconos = '';
			for (i;i<num;i++){
				if (results[i]){
					if(results[i].tfno != '')
						tfno = "<br/>Tel&eacute;fono: " + results[i].tfno;
					else
						tfno = '';
					if (results[i].googlelen != 0 && results[i].googlelat != 0)
						var peticion = '(' + results[i].googlelat + ' , ' + results[i].googlelen + ')';
					else
						var peticion = results[i].dir + ", " + results[i].cp + ", " + results[i].pobl + ", " + results[i].prov;
					if (results[i].postvta && results[i].care)
						iconos = '<img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_postv.gif" alt="Servicio Postventa" title="Servicio Postventa"/>&nbsp;<img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_servtecnico.gif" alt="Centro de reparación Express" title="Centro de reparación Express"/>';
					else if (results[i].postvta)
						iconos = '<img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_postv.gif" alt="Servicio Postventa" title="Servicio Postventa"/>';
					else if (results[i].care)
						iconos = '<img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_servtecnico.gif" alt="Centro de reparación Express" title="Centro de reparación Express"/>';
					$2('items').innerHTML += "<div id=\"ir_" + results[i].id + "\" class=\"itemresult\" onclick=\"vertienda('" + peticion + "','" + ajustar(results[i].cp) + "','"  + results[i].pobl + "','" + results[i].prov + "','" + results[i].nombre +"','" + results[i].dir + "','" + results[i].id + "'); return false;\"><div class=\"itemgroup\"><div class=\"itemtitulo\"><img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_flechaPQ.gif\" /> " + (results[i].nombre).toLowerCase() +"</div><div class=\"itemdir\">" + (results[i].dir).toLowerCase() + ", " + (results[i].pobl).toLowerCase() + " &nbsp;<span id=\"ico" + results[i].id +"\"><img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_cerr.gif\" /></span></div><div style=\"display:none;\" class=\"info\" id=\"" + results[i].id +"\">CP: " + ajustar(results[i].cp) + ", " + (results[i].prov[0]).toLowerCase() + tfno + "</div></div><div class=\"iconos\">" + iconos + "</div></div>";
					if (i!=(num-1))	$2('items').innerHTML += "<div class=\"separador\"></div>";
				}
			}
			pintapag(pagina,pagtotales);
			initialize(obj,pagina);
		}
	}

	function pintapag(pag,pagtotales){
		var topepaginacion = 5;
		if (pag>0){
			var pagini = 1;
			var pagfin = pagtotales;
			if (pagtotales > topepaginacion){
				if ((pag > parseInt(topepaginacion/2)) && (pag< (pagtotales - (parseInt(topepaginacion/2))))){
				pagini = pag - (parseInt(topepaginacion/2));
				pagfin = pag + (parseInt(topepaginacion/2));
				}
				if (pag <= parseInt(topepaginacion/2)){
				pagini = 1;
				pagfin = topepaginacion;
				}
				if (pag >= (pagtotales - (parseInt(topepaginacion/2)))){
				pagini = pagtotales - topepaginacion + 1;
				pagfin = pagtotales;
				}
			} 			
		}
		$2("paglist").innerHTML = '';//reinicializo
		//primera pagina
		if (pag==1){
			$2("paglist").innerHTML += "<li class=\"pre\"> <img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_1aG.gif\" width=8 height=6 alt=\"primera\" title=\"primera\" /></li>";
			$2("paglist").innerHTML += "<li class=\"pre\"> <img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_rwG.gif\" width=5 height=6 alt=\"anterior\" title=\"anterior\" /></li>";
		}else{
			$2("paglist").innerHTML += "<li class=\"pre\"><a href=\"javascript:;\" onclick=\"pinta(objpeticion,1);\"><img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_1a.gif\" width=8 height=6 alt=\"primera\" title=\"primera\" /></a></li>";
			$2("paglist").innerHTML += "<li class=\"pre\"><a href=\"javascript:;\" onclick=\"pinta(objpeticion," + (pag-1) + ");\"><img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_rw.gif\" width=5 height=6 alt=\"anterior\" title=\"anterior\" /></a></li>";
		}
		//paginas intermedias
		for (var i=pagini;i<=pagfin;i++){			
			$2("paglist").innerHTML += "<li class=\"pages\">" + (pag==i?("<span class=\"sel\">" + i + "</span>" + ((pagfin==i)?"":"<li class=\"sep\">|</li>")):("<a href=\"javascript:;\" onclick=\"pinta(objpeticion," + i + ");\" alt=\"ir a página " + i + "\" title=\"ir a página " + i + "\">" + i + "</a>"  + ((pagfin==i)?"":"<li class=\"sep\">|</li>"))) + "</li>";
		}	
		// de x paginas
		$2("paglist").innerHTML += "<li class=\"pages\">de " + pagtotales + "</li>";		
		//paginador izdo
		if (pag==pagfin){
			$2("paglist").innerHTML += "<li class=\"post\"> <img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_fwG.gif\" width=5 height=6 alt=\"siguiente\" title=\"siguiente\" /></li>";
		}else{
			$2("paglist").innerHTML += "<li class=\"post\"><a href=\"javascript:;\" onclick=\"pinta(objpeticion," + (pag+1) + ");\"><img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_fw.gif\" width=5 height=6 alt=\"siguiente\" title=\"siguiente\" /></a></li>";
		}
		//ultima pagina
		if (pag==pagtotales){
			$2("paglist").innerHTML += "<li class=\"post\"> <img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_ultiG.gif\" width=8 height=6 alt=\"&uacute;ltimo\" title=\"&uacute;ltimo\" /></li>";
		}else{
			$2("paglist").innerHTML += "<li class=\"post\"><a href=\"javascript:;\" onclick=\"pinta(objpeticion," + pagtotales + ");\"><img src=\"http://movil.orange.es/moviloes/img/particularesoes/buscadores/buscadorpdv/ico_ulti.gif\" width=8 height=6 alt=\"&uacute;ltimo\" title=\"&uacute;ltimo\" /></a></li>";
		}
	}

	function filtra (){
		genera(true,true);
	}

	function selecciona(param){
		genera(false,false,param);
	}

	function abrirFiltros(abrir){
		if (abrir){
			$2('filtrosdes').style.display = 'none'
			$2('filtros').style.display = 'block'
		}else{
			$2('filtrosdes').style.display = 'block'
			$2('filtros').style.display = 'none'
		}			
	}

	function inicio(){
		$2("cabini").style.display = "block";
		$2("cabsec").style.display = "none";				
		$2("mapa").style.display = "block";
		$2("topmapa").style.display = "block";
		$2("gmapa").style.display = "none";
		$2("zonainferior").style.display = "none";
	}

	function acentos(palabra){		
 		return palabra.replace(/á|é|í|ó|ú|ä|ë|ï|ö|ü/ig,function (str,offset,s) {
        var str =str=="á"?"a":str=="é"?"e":str=="í"?"i":str=="ó"?"o":str=="ú"?"u":str=="ñ"?"n":str;
		   str =str=="Á"?"A":str=="É"?"E":str=="Í"?"I":str=="Ó"?"O":str=="Ú"?"U":str=="Ñ"?"N":str;
		   str =str=="Á"?"A":str=="É"?"E":str=="Í"?"I":str=="Ó"?"O":str=="Ú"?"U":str;
		   str =str=="ä"?"a":str=="ë"?"e":str=="ï"?"i":str=="ö"?"o":str=="ü"?"u":str;
		   str =str=="Ä"?"A":str=="Ë"?"E":str=="Ï"?"I":str=="Ö"?"O":str=="Ü"?"U":str;
        return (str);
        })	
	}
	
	function ajustar(cp) {
		if (cp.toString().length < 5) return ajustar("0" + cp)
		else return cp;
	}
