//////////////////////////////////////////////////
//FUNCION OBJETO AJAX
function objetoAjax() {	
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			xmlhttp = false;
  		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}
//
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION OBTIENE ELEMENTOS DEL FORMULARIO
function getFormValues(x) { 
                var str = ""; var valueArr = null; var val = ""; var cmd = ""; 
                for(var i = 0; i < document.forms[x].elements.length;i++) { 
                               switch(document.forms[x].elements[i].type) { 
                                               case "hidden": 
                                                               str += document.forms[x].elements[i].name + "=" + escape(document.forms[x].elements[i].value) + "&"; 
                                                               break;
                                               case "text":
                                                               cmd = "(" + 'document.forms[x].elements[i].value' + ")"; 
                                                               val = eval(cmd)
                                                               str += document.forms[x].elements[i].name + "=" + escape(document.forms[x].elements[i].value) + "&";
                                                               break;
                                               case "checkbox":
                                                               cmd = "(" + 'document.forms[x].elements[i]' + ")"; 
                                                               val = eval(cmd)
                                                               if (val.checked==true) {
                                                                              str += document.forms[x].elements[i].name + "=" + escape(document.forms[x].elements[i].value) + "&";
                                                               }
                                                               break;
                                               case "password":
                                                               cmd = "(" + 'document.forms[x].elements[i].value' + ")"; 
                                                               val = eval(cmd)
                                                               str += document.forms[x].elements[i].name + "=" + escape(document.forms[x].elements[i].value) + "&";
                                                               break;
                                               case "textarea": 
                                                               cmd = "(" + 'document.forms[x].elements[i].value' + ")"; 
                                                               val = eval(cmd) 
                                                               str += document.forms[x].elements[i].name + "=" + escape(document.forms[x].elements[i].value) + "&"; 
                                                               break;                                  
                                               case "radio": 
                                                               var nombre=document.forms[x].elements[i].name;
                                                               var form_nombre=document.forms[x].name;
                                                               var numero_radios = eval("(" + 'document.'+form_nombre+'.'+nombre+'.length' + ")"); 
                                                               var elvalor; var aux; var k = 0;
                                                               while(k < numero_radios) {
                                                                              aux = eval("(" + 'document.'+form_nombre+'.'+nombre+'[' + k + ']' + ")")
                                                                              if(aux.checked) elvalor = aux.value;
                                                                              k++;
                                                               }
                                                               str += nombre + "=" + escape(elvalor) + "&"; 
                                                               break;
                                               case "select-one": 
                                                               str += document.forms[x].elements[i].name + "=" + document.forms[x].elements[i].options[document.forms[x].elements[i].selectedIndex].value + "&"; 
                                                               break; 
                               } 
                } 
                str = str.substr(0,(str.length - 1)); 
                return str; 
}
//
//////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION CAMBIAR TAB
function cambiarTab(n,t) {
	for (i=1; i<=t; i++) {
		document.getElementById("tabheader"+i).style.display="none";
	}
	document.getElementById("tabheader"+n).style.display="block";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION MOSTRAR DATOS BOLETIN BASICO
function mostrardatos_boleb(capa,id) {
	var menos=document.getElementById(id);
	menos.innerHTML='<a href="#" onclick="ocultardatos_boleb(\''+capa+'\',\''+id+'\'); return false;">[-] Ocultar</a>';
	var muestra=document.getElementById(capa);
	muestra.style.display="block";
	cambiarConfig(capa, 1);
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION OCULTAR DATOS BOLETIN BASICO
function ocultardatos_boleb(capa,id) {
	var menos=document.getElementById(id);
	menos.innerHTML='<a href="#" onclick="mostrardatos_boleb(\''+capa+'\',\''+id+'\'); return false;">[+] Mostrar</a>';
	var muestra=document.getElementById(capa);
	muestra.style.display="none";
	cambiarConfig(capa, 0);
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

//*****************************************************//

/////////////////////////////////////////////////
//PROVEEDORES
//formar array proveedores
var arrayprov=new Array();
//elementos plus proveedores
//0 => no tiene
//1 => si tiene
arrayprov[2]=new Array(0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1,  1, 0, 0, 0); //proveedor 2 (id=2)
arrayprov[5]=new Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  0, 0, 0, 1); //proveedor 5 (id=5)
arrayprov[7]=new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 1, 0); //proveedor 7 (id=7)
//0 => Aniversarios
//1 => Asociaciones
//2 => Cï¿½maras
//3 => Certificados
//4 => Chat
//5 => Congresos
//6 => Cursos
//7 => Descargas
//8 => Distribuidores
//9 => Expos
//10 => Ferias
//11 => Foros
//12 => ISO
//13 => Marcas
//14 => Miembros
//15 => Premios
//16 => Simposiums

//17 => nivel alto
//18 => nivel medio
//19 => nivel bajo
//20 => nivel optimo

/////////////////////////////////////////////////
//FUNCION BUSCANDO
function buscando(){
      var buscador='<font style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">Buscando...</font>';
      return buscador;
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION BUSCAR PROVEEDORES
function buscarProveedoresPlus(frm) {
	var divBuscar=document.getElementById("buscador_plus");
	divBuscar.innerHTML=buscando();
	var arraybus=new Array();
	var vc="";
	for (i=0; i < 18; i++) {
		c=(frm["plus"+i].checked==true)?1:0; //
		arraybus[i]=c;
		vc+=c+"|";
	}
	vc+="@cosmos.com.mx"
	var nc="ep"+url();
	crearCookie(nc,vc,1);
	var e=0;

	for (i=0; i<arrayprov.length; i++) {
		if (typeof(arrayprov[i])=="undefined")
			continue;
		mostrar=0;
		cp=0;
		for (j=0; j < 17; j++) {
			cp+=arrayprov[i][j];
			((arraybus[j]==1) && (arrayprov[i][j]==1))?mostrar++:"";
		}
		((cp == 0) && (arraybus[17]==1))?mostrar++:"";
		(mostrar > 0)?e++:"";
		var divProveedor=document.getElementById("proveedor"+i);
		(divProveedor!=null)?divProveedor.style.display=(mostrar>0)?"block":"none":"";
	}
	document.getElementById("pencontrados").innerHTML=e;
	var por=((e * 100) / total_prov);
	var por2d=Math.round(por * 100) / 100;
	document.getElementById("pporcentaje").innerHTML=por2d;
	document.getElementById("resultado_proveedores").style.display="block";
	document.location="#proveedores";
	divBuscar.innerHTML="";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION BUSCAR PROVEEDORES NIVEL
function buscarProveedoresNivel(frm) {
	var divBuscar=document.getElementById("buscador_nivel");
	divBuscar.innerHTML=buscando();
	var a=(frm["nivel1"].checked==true)?1:0;
	var m=(frm["nivel2"].checked==true)?1:0;
	var b=(frm["nivel3"].checked==true)?1:0;
	var e=0;
	for (i=0; i<arrayprov.length; i++) {
		if (typeof(arrayprov[i])=="undefined")
			continue;
		mostrar=0;
		((a==1) && (arrayprov[i][17]==1))?mostrar++:"";
		((m==1) && (arrayprov[i][18]==1))?mostrar++:"";
		((b==1) && (arrayprov[i][19]==1))?mostrar++:"";
		(arrayprov[i][20]==1)?mostrar++:"";
		(mostrar > 0)?e++:"";
		var divProveedor=document.getElementById("proveedor"+i);
		(divProveedor!=null)?divProveedor.style.display=(mostrar>0)?"block":"none":"";
	}
	document.getElementById("pencontrados").innerHTML=e;
	var por=((e * 100) / total_prov);
	var por2d=Math.round(por * 100) / 100;
	document.getElementById("pporcentaje").innerHTML=por2d;
	document.getElementById("resultado_proveedores").style.display="block";
	document.location="#proveedores";
	divBuscar.innerHTML="";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION GENERAR COOKIE
function crearCookie(nombre,valor,dc) {
	//dc=>dias para caducar
	if (dc) {
		var date = new Date();
		date.setTime(date.getTime()+(dc*24*60*60*1000));
		var expira = "; expires="+date.toGMTString();
	} else
		var expira = "";
	document.cookie = nombre+"="+valor+expira+"; path=/";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION BORRAR COOKIE
function borrarCookie(nombre) {
	var date = new Date();
	date.setTime(date.getTime()+(-1*24*60*60*1000));
	var expira = "; expires="+date.toGMTString();
	document.cookie = nombre+"="+expira+"; path=/";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION LEER COOKIE
function leerCookie(nombre) {
	var nombrec = nombre + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ')
			c = c.substring(1,c.length);
		if (c.indexOf(nombrec) == 0)
			return c.substring(nombrec.length,c.length);
	}
	return null;
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION OBTENER URL
function url() {
	var url = document.location.href; 
	var sep = url.split("/");
	var na=sep[sep.length - 2] + sep[sep.length - 1];
	var nom = na.split(".");
	return nom[0];
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION CONSOLA DE HERRAMIENTAS
function consola() {
	var frm=document.forms["consola_herramientas"];
	var nc="ep"+url();
	var valorc=leerCookie(nc);
	if (valorc) {
		var vs=valorc.split("|");
		for (i=0; i < 18; i++) {
			cb=frm["plus"+i];
			cb.checked=((cb.disabled==false) && (vs[i]==1))?true:false;
		}
	}
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION COOKIE GENERAL DE CONFIGURACION
function config() {
	var nc="gconfig";
	var vc=leerCookie(nc);
	if (vc) {
		var v=vc.split("|");
		var dh=v[0].split("=");
		var dd=v[1].split("=");
		var dr=v[2].split("=");
		var dn=v[3].split("=");
		(dh[1]==0)?ocultardatos_boleb("herramientas","m_herramientas"):"";
		(dd[1]==0)?ocultardatos_boleb("distancias","m_distancias"):"";
		(dr[1]==0)?ocultardatos_boleb("recipientes","m_recipientes"):"";
		(dn[1]==0)?ocultardatos_boleb("noticias","m_noticias"):"";
	}
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION COOKIE GENERAL DE CONFIGURACION
function cambiarConfig(nombre, valor) {
	var nc="gconfig";
	var vc=leerCookie(nc);
	if (vc) {
		var v=vc.split("|");
		var valores="";
		for (i=0; i < v.length - 1; i++) {
			sv=v[i].split("=");
			valores+=(sv[0]==nombre)?nombre+"="+valor+"|":sv[0]+"="+sv[1]+"|";
		}
		valores+="@cosmos.com.mx";
	} else {
		var dh=(document.getElementById("herramientas").style.display=="none")?0:1;
		var dd=(document.getElementById("distancias").style.display=="none")?0:1;
		var dr=(document.getElementById("recipientes").style.display=="none")?0:1;
		var dn=(document.getElementById("noticias").style.display=="none")?0:1;
		var valores="herramientas="+dh+"|distancias="+dd+"|recipientes="+dr+"|noticias="+dn+"|@cosmos.com.mx";
	}
	crearCookie(nc,valores,1);
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//BASE64
var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split("");
var base64inv = {}; 
for (var i = 0; i < base64chars.length; i++) {
   base64inv[base64chars[i]] = i; 
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION CODIFICA A BASE64
function encode(s) {
	//s=>string a codoficar
	var r = "";
	var p = "";
	var c = s.length % 3;
	
	if (c > 0) {
		for (; c < 3; c++) {
			p += '='; s += "\0";
		}
	}
	for (c = 0; c < s.length; c += 3) {
		if (c > 0 && (c / 3 * 4) % 76 == 0) {
			r += "\r\n";
		}
		var n = (s.charCodeAt(c) << 16) + (s.charCodeAt(c+1) << 8) + s.charCodeAt(c+2);
		n = [(n >>> 18) & 63, (n >>> 12) & 63, (n >>> 6) & 63, n & 63];
		r += base64chars[n[0]] + base64chars[n[1]] + base64chars[n[2]] + base64chars[n[3]];
	}
	return r.substring(0, r.length - p.length) + p;
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION DECODIFICA A BASE64
function decode(s){
	//s=>string a decodificar
	var p = (s.charAt(s.length-1) == '=' ? (s.charAt(s.length-2) == '='	? 'AA' : 'A') : "");
	var r = "";
	s = s.substr(0, s.length - p.length) + p;
	s = s.replace(new RegExp('[^'+base64chars.join("")+']', 'g'), "");
	
	for (var c = 0; c < s.length; c += 4) {
		var n = (base64inv[s.charAt(c)] << 18) + base64inv[s.charAt(c+3)] +	(base64inv[s.charAt(c+1)] << 12) + (base64inv[s.charAt(c+2)] << 6);
		r += String.fromCharCode((n >>> 16) & 255, (n >>> 8) & 255, n & 255);
	}
	return r.substring(0, r.length - p.length);
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION DATOS USUARIO
function datosWWWUsuario(frm) {
	var nom=encode(frm.c_nombre.value);
	var ape=encode(frm.c_apellidos.value);
	var car=encode(frm.c_cargo.value);
	var ocu=encode(frm.c_ocupa.options[frm.ocupa.selectedIndex].value);
	var sexo=(frm.c_sexo[0].checked==true)?encode(frm.c_sexo[0].value):encode(frm.c_sexo[1].value);
	var cdia=encode(frm.c_day.options[frm.c_day.selectedIndex].value);
	var cmes=encode(frm.c_month.options[frm.c_month.selectedIndex].value);
	var canio=encode(frm.c_year.options[frm.c_year.selectedIndex].value);
	var rs=encode(frm.c_organizaci.value);
	var dir=encode(frm.c_direccion.value);
	var cp=encode(frm.c_codipost.value);
	var ciu=encode(frm.c_ciudad.value);
	var pais=encode(frm.c_pais.options[frm.c_pais.selectedIndex].value);
	var edo=encode(frm.c_estado.options[frm.c_estado.selectedIndex].value);
	var tarea=encode(frm.c_telareacod.value);
	var tel=encode(frm.c_telefonos.value);
	var farea=encode(frm.c_faxareacod.value);
	var fax=encode(frm.c_fax.value);
	var email=encode(frm.c_email.value);
	var url=encode(frm.c_url.value);
	var usu=encode(frm.c_user.value);
	var pass=encode(frm.c_pass.value);
	
	var datos="nombre#&"+nom+"|apellido#&"+ape+"|cargo#&"+car+"|ocupacion#&"+ocu+"|sexo#&"+sexo+"|cdia#&"+cdia+"|cmes#&"+cmes+"|canio#&"+canio+"|social#&"+rs+"|direccion#&"+dir+"|cp#&"+cp+"|ciudad#&"+ciu+"|pais#&"+pais+"|estado#&"+edo+"|telefonoarea#&"+tarea+"|telefono#&"+tel+"|faxarea#&"+farea+"|fax#&"+fax+"|email#&"+email+"|url#&"+url+"|usuario#&"+usu+"|password#&"+pass+"|@cosmos.com.mx";
	crearCookie("datos",datos,1);
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION LEER DATOS
function leerDatos() {
	var nc="datos";
	var datos=leerCookie(nc);
	var valor="";
	if (datos) {
		var valor=new Array();
		var ds=datos.split("|");
		for (i=0; i < ds.length - 1; i++) {
			v=ds[i].split("#&");
			valor[v[0]]=decode(v[1]);
		}
	}
	return valor;
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION DEFAULT SELECTED
function defaultSelected(combo, valor) {
	for (i=0; i<combo.length; i++) {
		if (combo[i].value==valor) {
			combo[i].selected=true;
			break;
		}
	}
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION CARGAR DATOS
function QQQQcargarDatos(frm, f) {
	var dato=leerDatos();
	if (dato && f==1) {
		frm.c_nombre.value=dato["nombre"];
		frm.c_apellidos.value=dato["apellido"];
		frm.c_cargo.value=dato["cargo"];
		defaultSelected(frm.c_ocupa, dato["ocupacion"]);
		(dato["sexo"]=="H")?frm.c_sexo[0].checked=true:frm.c_sexo[1].checked=true;
		defaultSelected(frm.c_day, dato["cdia"]);
		defaultSelected(frm.c_month, dato["cmes"]);
		defaultSelected(frm.c_year, dato["canio"]);
		frm.c_organizaci.value=dato["social"];
		frm.c_direccion.value=dato["direccion"];
		frm.c_codipost.value=dato["cp"];
		frm.c_ciudad.value=dato["ciudad"];
		defaultSelected(frm.c_pais, dato["pais"]);
		defaultSelected(frm.c_estado, dato["estado"]);
		frm.c_telareacod.value=dato["telefonoarea"];
		frm.c_telefonos.value=dato["telefono"];
		frm.c_faxareacod.value=dato["faxarea"];
		frm.c_fax.value=dato["fax"];
		frm.c_email.value=dato["email"];
		frm.c_url.value=dato["url"];
		frm.c_user.value=dato["usuario"];
		frm.c_pass.value=dato["password"];
		frm.rcontrasena.value=dato["password"];
	} else if (dato && f==2) {
		frm.c_nombre.value=dato["nombre"];
		frm.c_apellidos.value=dato["apellido"];
		frm.c_organizaci.value=dato["social"];
		frm.c_cargo.value=dato["cargo"];
		frm.c_email.value=dato["email"];
		frm.c_telareacod.value=dato["telefonoarea"];
		frm.c_telefonos.value=dato["telefono"];
		frm.c_direccion.value=dato["direccion"];
		frm.c_codipost.value=dato["cp"];
		frm.c_ciudad.value=dato["ciudad"];
		defaultSelected(frm.c_pais, dato["pais"]);
		defaultSelected(frm.c_estado, dato["estado"]);
		frm.c_url.value=dato["url"];
	}
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION LATITUD Y LONGITUD
function latLon() {
	var nc="latlong";
	var cookie=leerCookie(nc);
	if (!cookie) {
		var ajax=new objetoAjax();
		ajax.open("GET", "/cgi-win/iis.exe?c_ip2latlon=x", true);
		ajax.onreadystatechange=function() {
			if (ajax.readyState==4 && ajax.status==200) {
				var resp=ajax.responseText;
				var ll=resp.split(",");
				var datos=ll[0]+"|"+ll[1]+"|@cosmos.com.mx";
				crearCookie(nc,datos,1);
			}
		}
		ajax.send(null);
	}
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION CARGA LATITUD Y LONGITUD
function cargaLatLon() {
	var nc="latlong";
	var cookie=leerCookie(nc);
	if (cookie) {
		var ll=cookie.split("|");
		document.getElementById("lat").value=ll[0];
		document.getElementById("long").value=ll[1];
	}
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
var arrayprovdis=new Array();
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION CARGA LATITUD Y LONGITUD  DE TODOS LOS PROVEEDORES
function latLonLoad() {
	var nc="latlong";
	var cookie=leerCookie(nc);
	if (cookie) {
		var llc=cookie.split("|");
		for (i=0; i<arrayprovll.length; i++) {
			var idp=arrayprovll[i][0];
			arrayprovdis[i]=new Array();
			arrayprovdis[i][0]=idp;
			for (j=1; j<arrayprovll[i].length; j++) {
				var ll=arrayprovll[i][j].split(",");
				var spll=document.getElementById("dis"+idp+"_"+j);
				if (spll!=null) {
					dis=calculaDistancia(llc[0], llc[1], ll[0], ll[1]);
					arrayprovdis[i][j]=dis;
					spll.innerHTML=dis;
				}
			}
		}
	}
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION MOVER OPCIONES ENTRE SELECTS
function moverOpcion(de, a) {
	for(i = 0; i < de.options.length; i++ ) {
		if(de.options[i].selected) {
			de.options[i].selected = false;
			a.appendChild(de.removeChild(de.options[i]));
			i--;
		}
	}
	var error=document.getElementById("error_ubicacion");
	//(document.ubicacion.alugar.options.length==0)?error.style.display="block":error.style.display="none";
}
//
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION MOSTRAR PROVEEDORES UBICADOS EN LAS REGIONES
function mostrarProveedorRegion(frm,nProd) {
	var ded=document.getElementById("dinicial").value;
	var ad=document.getElementById("dfinal").value;
	var lat=document.getElementById("lat").value;
	var lon=document.getElementById("long").value;
	var inc=document.getElementById("cmbFiltro");
	var cValores="";
	var divEspera = document.getElementById("tiempoenespera");
	var divTotalProv = document.getElementById("divTotalProv");
	divEspera.style.display="inline";
	
	for(i = 0; i < inc.options.length; i++ ){
		cValores+=escape(inc.options[i].value)+",";
	}	
	var ajax=new objetoAjax();
	var cNavega="/latlon/cem2.vfp?n_prod="+nProd+"&n_lat="+escape(lat)+"&n_lon="+escape(lon)+"&n_inicio="+escape(ded)+"&n_final="+escape(ad)+"&c_ciudad="+cValores;
	ajax.open("GET",cNavega, true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4 && ajax.status==200) {
		   var str = ajax.responseText;
			var ninicial = 0;
			var nfinal = 0;
			var fragmento = "";
			var nTotal = 0;
			var nTotalVeo = 0;
			while ( true ) {
				nfinal = str.indexOf("|", nfinal+1);
				fragmento = str.substring(ninicial,nfinal);
				ninicial = nfinal+1;
				oJSON = eval("("+fragmento+")");
				var oTabla = document.getElementById("p"+oJSON["p"]);
				if (oTabla){
					oTabla.style.display = oJSON["v"];
					var divOculto = document.getElementById("sucur"+oJSON["p"]);
					var spanDista = document.getElementById("dista"+oJSON["p"]);
					divOculto.style.display = "inline";
					spanDista.innerHTML = oJSON["d"];
					if (oTabla.style.display=="inline"){nTotalVeo++}
				}
				nTotal++;
				if (ninicial>str.length-1){break}
			}
			divEspera.style.display = "none";
			divTotalProv.innerHTML = "<center><b>Se muestran "+nTotalVeo+" de "+nTotal+" proveedores</b></center>";
		}
	}
	ajax.send(null);

	document.location="#proveedores";
}
//
//////////////////////////////////////////////////

//----------------------------------------------//


//----------------------------------------------//

/////////////////////////////////////////////////
//FUNCION CENTRAR DIV
function centrarDiv(divObj){
	var ie=document.all && !window.opera;
	var dom=document.getElementById;
	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
	var scroll_top=(ie)? standardbody.scrollTop : window.pageYOffset;
	var scroll_left=(ie)? standardbody.scrollLeft : window.pageXOffset;
	var docwidth=(ie)? standardbody.clientWidth : window.innerWidth-16;
	var docheight=(ie)? standardbody.clientHeight: window.innerHeight;
	var docheightcomplete=(standardbody.offsetHeight>standardbody.scrollHeight)? standardbody.offsetHeight : standardbody.scrollHeight;
	var objwidth=divObj.offsetWidth;
	var objheight=divObj.offsetHeight;
	var topposition=(docheight>objheight)? scroll_top+docheight/2-objheight/2+"px" : scroll_top+"px";
	divObj.style.left=docwidth/2-objwidth/2+"px";
	divObj.style.top=Math.floor(parseInt(topposition))+"px";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

/////////////////////////////////////////////////
//FUNCION MOSTRAR TRANSPARENCIA
function transparent(){
	var trans=document.getElementById("trans");
	
	var ie=document.all && !window.opera;
	var dom=document.getElementById;
	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
	var docwidth=(ie)? standardbody.clientWidth : window.innerWidth-16;
	var docheight=(ie)? standardbody.clientHeight: window.innerHeight;
	var docheightcomplete=(standardbody.offsetHeight>standardbody.scrollHeight)? standardbody.offsetHeight : standardbody.scrollHeight;
	
	trans.style.width=docwidth+"px";
	trans.style.height=docheightcomplete+"px";
	trans.style.visibility="visible";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION CERRAR TRANSPARENT
function cerrarVentana() {
	var cont=document.getElementById("contenido");
	cont.style.visibility="hidden";
	
	var trans=document.getElementById("trans");
	trans.style.visibility="hidden";
}
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION RECOMENDAR PAGINA
function recomendarPagina() {
	transparent();
	var car=document.getElementById("cargador");
	centrarDiv(car);
	car.style.visibility="visible";
	var divResultado=document.getElementById("contenido");
	
	var ajax=new objetoAjax();
	ajax.open("GET","recomendar.php", true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4 && ajax.status==200)	{ 
			divResultado.innerHTML=ajax.responseText;
			centrarDiv(divResultado);
			car.style.visibility="hidden";
			divResultado.style.visibility="visible";
		} 
	}
	ajax.send(null);
}
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION RECOMENDAR PAGINA ENVIO
function recomendarPaginaEnvio(frm) {
	var btn=frm.enviar;
	btn.value="Enviando...";
	btn.disabled=true;
	var e=document.getElementById("exito");
	e.style.display="none";
	
	var str = getFormValues(frm.name);
	var ajax=new objetoAjax();
	ajax.open("POST", "recomendar_envio.php", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(str);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4 && ajax.status==200) {
			e.style.display="block";
			frm.reset();
			btn.value="Enviar";
			btn.disabled=false;
		}
	}
}
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION ENVIAR EMAIL
function enviarEmail() {
	transparent();
	var car=document.getElementById("cargador");
	centrarDiv(car);
	car.style.visibility="visible";
	var divResultado=document.getElementById("contenido");
	
	var ajax=new objetoAjax();
	ajax.open("GET","mail.php", true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4 && ajax.status==200)	{ 
			divResultado.innerHTML=ajax.responseText;
			centrarDiv(divResultado);
			car.style.visibility="hidden";
			divResultado.style.visibility="visible";
		} 
	}
	ajax.send(null);
}
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION  ENVIAR EMAIL ENVIO
function enviarEmailEnvio(frm) {
	var btn=frm.enviar;
	btn.value="Enviando...";
	btn.disabled=true;
	var e=document.getElementById("exito");
	e.style.display="none";
	
	var str = getFormValues(frm.name);
	var ajax=new objetoAjax();
	ajax.open("POST", "mail_envio.php", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(str);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4 && ajax.status==200) {
			e.style.display="block";
			frm.reset();
			btn.value="Enviar";
			btn.disabled=false;
		}
	}
}
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION MOSTRAR TODOS LOS PROVEEDORES
function restaurarProveedores() {
	for (i=0; i<arrayprovsuc.length; i++) {
		var divProveedor=document.getElementById("proveedor"+arrayprovsuc[i][0]);
		(divProveedor!=null)?divProveedor.style.display="block":"";
	}
	document.getElementById("pencontrados").innerHTML=total_prov;
	document.getElementById("pporcentaje").innerHTML=100;
}
//
//////////////////////////////////////////////////

//----------------------------------------------//

//////////////////////////////////////////////////
//FUNCION MOSTRAR U OCULTAR UBICACION
function moUbicacion(m) {
	var u1=document.getElementById("tubicacion1");
	var u2=document.getElementById("tubicacion2");
	u1.style.display="none";
	u2.style.display="none";
	document.getElementById("tubicacion"+m).style.display="block";
}
//
//////////////////////////////////////////////////

//----------------------------------------------//

/////////////////////////////////////////////////
//FUNCION CARGA ESTADOS
function cargaEstados(idp) {
	var comboE=document.getElementById("u_estado");
	comboE.length=0;
	var nuevaOpcionE=document.createElement("option");
	nuevaOpcionE.value="";
	if (idp!="") {
		var ajax=new objetoAjax();
		ajax.open("GET", "/cgi-win/iis.exe?c_cc2region2="+idp+"&AUTHENTICATED_USERNAME=geoip&AUTHENTICATED_PASSWORD=l4tl0n&c_uestado=u", true);
		ajax.onreadystatechange=function() {
			  if (ajax.readyState==1) {
					nuevaOpcionE.innerHTML="Cargando...";
					comboE.appendChild(nuevaOpcionE);
			  }
			  if (ajax.readyState==4 && ajax.status==200) { 
					document.getElementById("fila_estadou").innerHTML=ajax.responseText;
			  }
		}
		ajax.send(null);
	} else {
		nuevaOpcionE.innerHTML="[Seleccione Estado]";
		comboE.appendChild(nuevaOpcionE);
	}
}

//

var arrayprovdis=new Array();
/////////////////////////////////////////////////

//----------------------------------------------//

////////////////////////////////////////////////
//FUNCION ACTUALIZA LATITUD Y LONGITUD
//
function latLonActualizaUbicacion(nProd) {
	var cargador=document.getElementById("cargador_latlon2");
	cargador.style.visibility="hidden";
	var error=document.getElementById("error_latlon2");
	error.style.display="none";
	var objp=document.getElementById("u_pais");
	var obje=document.getElementById("u_estado");
	var pa=objp.options[objp.selectedIndex].value;
	var edo=obje.options[obje.selectedIndex].value;
	var cp=document.getElementById("u_cp").value;
	var ded=document.getElementById("dinicial").value;
	var ad=document.getElementById("dfinal").value;
	var nc="latlong";
	var lat=document.getElementById("lat").value;
	var lon=document.getElementById("long").value;
	var datos=lat+"|"+lon+"|@cosmos.com.mx";
	crearCookie(nc,datos,1);
	var inc=document.getElementById("cmbInclu");
	var cValores="";
	var divEspera = document.getElementById("tiempoenespera");
	divEspera.style.display="inline";

	if ((pa=="") && (edo=="") && (cp=="")) {
		error.style.display="block";
		return false;
	}
	if ((pa=="") && (cp!="")) {
		error.style.display="block";
		return false;
	} else if ((pa!="") && (cp!="")) {
		if (pa!="MX"){
			//&&cargador.innerHTML="Solo C.P. en México.";
			//&&cargador.style.visibility="visible";
			return false;
		}
		url="/cgi-win/iis.exe?c_cczip2LatLon="+pa+cp;
	} else if ((pa!="") && (edo!="")) {
		url="/cgi-win/iis.exe?c_ccrr2latlon="+edo;
	} else {
		url="/cgi-win/iis.exe?c_ccrr2latlon="+pa;
	}
	cargador.innerHTML="Cargando...";
	cargador.style.visibility="visible";
	
	var ajax=new objetoAjax();

	ajax.open("GET", url, true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4 && ajax.status==200) { 
			var latlon=ajax.responseText;
			var latlon=latlon.split(",");
			document.getElementById("lat").value=latlon[0];
			document.getElementById("long").value=latlon[1];
			var nc="latlong";
			var datos=latlon[0]+"|"+latlon[1]+"|@cosmos.com.mx";
			crearCookie(nc,datos,1);
			cargaLatLon();
			//alert("Su ubicación geográfica ha cambiado");
	  }
	}
	
	cargador.style.visibility="hidden";
	ajax.send(null);

	var lat=document.getElementById("lat").value;
	var lon=document.getElementById("long").value;
	var ajax2=new objetoAjax();
	for(i = 0; i < inc.options.length; i++ ){
		cValores+=escape(inc.options[i].value)+",";
	}
  	var cNavega="/latlon/cem2.vfp?n_prod="+nProd+"&n_lat="+escape(lat)+"&n_lon="+escape(lon)+"&n_inicio="+escape(ded)+"&n_final="+escape(ad)+"&c_ciudad="+cValores+"&c_paisedo="+edo+"@"+cp;

	ajax2.open("GET", cNavega, true);
	ajax2.onreadystatechange=function() {
		if (ajax2.readyState==4 && ajax2.status==200) {
			var str = ajax2.responseText;
			var ninicial = 0;
			var nfinal = 0;
			var fragmento = "";
			var nTotal = 0;
			var nTotalVeo = 0;
			while ( true ) {
				nfinal = str.indexOf("|", nfinal+1);
				fragmento = str.substring(ninicial,nfinal);
				ninicial = nfinal+1;
				oJSON = eval("("+fragmento+")");
				var oTabla = document.getElementById("p"+oJSON["p"]);
				if (oTabla){
					oTabla.style.display = oJSON["v"];
					var divOculto = document.getElementById("sucur"+oJSON["p"]);
					var spanDista = document.getElementById("dista"+oJSON["p"]);
					divOculto.style.display = "inline";
					spanDista.innerHTML = oJSON["d"];
					if (oTabla.style.display=="inline"){nTotalVeo++}
				}
				nTotal++;
				if (ninicial>str.length-1){break}
			}
			divEspera.style.display = "none";
			divTotalProv=document.getElementById("divTotalProv");
			divTotalProv.innerHTML = "<center><b>Se muestran "+nTotalVeo+" de "+nTotal+" proveedores</b></center>";
		}
	}
	
	ajax2.send(null);
	document.location="#proveedores";
}
//
/////////////////////////////////////////////////

//----------------------------------------------//

//FUNCION ACTUALIZA LATITUD Y LONGITUD
///
function latLonActualiza(nProd) {
	var cargador=document.getElementById("cargador_latlon");
	cargador.style.visibility="visible";
	var nc="latlong";
	var lat=document.getElementById("lat").value;
	var lon=document.getElementById("long").value;
	var datos=lat+"|"+lon+"|@cosmos.com.mx";
	crearCookie(nc,datos,1);
	var ded=document.getElementById("dinicial").value;
	var ad=document.getElementById("dfinal").value;
	var inc=document.getElementById("cmbInclu");
	var cValores="";
	for(i = 0; i < inc.options.length; i++ ){
		cValores+=escape(inc.options[i].value)+",";
	}
	var ajax=new objetoAjax();
  	var cNavega="/latlon/cem2.vfp?n_prod="+nProd+"&n_lat="+escape(lat)+"&n_lon="+escape(lon)+"&n_inicio="+escape(ded)+"&n_final="+escape(ad)+"&c_ciudad="+cValores;
	var divEspera = document.getElementById("tiempoenespera");
	divEspera.style.display="inline";
  	
	ajax.open("GET", cNavega, true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4 && ajax.status==200) {
			var str = ajax.responseText;
			var ninicial = 0;
			var nfinal = 0;
			var fragmento = "";
			var nTotal = 0;
			var nTotalVeo = 0;
			while ( true ) {
				nfinal = str.indexOf("|", nfinal+1);
				fragmento = str.substring(ninicial,nfinal);
				ninicial = nfinal+1;
				oJSON = eval("("+fragmento+")");
				var oTabla = document.getElementById("p"+oJSON["p"]);
				if (oTabla){
					oTabla.style.display = oJSON["v"];
					var divOculto = document.getElementById("sucur"+oJSON["p"]);
					var spanDista = document.getElementById("dista"+oJSON["p"]);
					divOculto.style.display = "inline";
					spanDista.innerHTML = oJSON["d"];
					if (oTabla.style.display=="inline"){nTotalVeo++}
				}
				nTotal++;
				if (ninicial>str.length-1){break}
			}
			divEspera.style.display = "none";
			divTotalProv=document.getElementById("divTotalProv");
			divTotalProv.innerHTML = "<center><b>Se muestran "+nTotalVeo+" de "+nTotal+" proveedores</b></center>";
		}
	}
	ajax.send(null);
	//alert("Su ubicación geográfica ha cambiado");
	cargador.style.visibility="hidden";
	document.location="#proveedores";
}
//

