// JavaScript Document

var xmlFile = "../files/distribuidores.xml";//file xml
var imgDir = "images/";  // directory path for images
var largeScreenEnabled = true;  // make this value true for a large amount of data and users on a screen resolution > 1024x768 
/*************************************************** */
var personArr = new Array();
var res = 1;
var largeScreen = (largeScreenEnabled && screen.availHeight > 780)? 1 : 0;
var estado ='';
var pais = '';

function loadXML()
{
	var xmlDoc;
	personArr = new Array();

	try
	{
		if (window.ActiveXObject)
		{
			xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
			xmlDoc.async = false;
			xmlDoc.onreadystatechange = function() { if (xmlDoc.readyState==4) grabPeopleData(xmlDoc, 0); }
			xmlDoc.load(xmlFile);
			//Set xmlDoc = Nothing;
		}

		else if (document.implementation && document.implementation.createDocument)
		{
			xmlDoc = document.implementation.createDocument('','doc',null);
			xmlDoc.async = false;
			xmlDoc.onload = function() { grabPeopleData(xmlDoc, 1); }
			xmlDoc.load(xmlFile);
			//Set xmlDoc = Nothing;
		}

		else alert('Lo siento, este browser no permite cargar información del archivo XML.');
	}

	catch(e)
	{
		alert ('Ocurrio un error en (' + e + ') al momento de cargar el documento XML');
	}
	//Set xmlDoc = Nothing
}

/*
*/

function xmlLoadCombos(){
	
	var xmlDoc;
	personArr = new Array();

	try
	{
		if (window.ActiveXObject)
		{
			 
			xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//grabPeopleData(xmlDoc, 0);
			xmlDoc.async = false;
			xmlDoc.onreadystatechange = function() { if (xmlDoc.readyState==4) comboPaises(xmlDoc); }
			xmlDoc.load(xmlFile);
			//Set xmlDoc = Nothing;
		}
		else alert('Lo siento, este browser no permite cargar la información del archivo XML.');
	}

	catch(e)
	{
		alert ('Ocurrio un error (' + e + ') al cargar la información del archivo XML');
	}

}

function xmlLoadCombosEstados(clavePais){
	var xmlDoc;
	personArr = new Array();

	try
	{
		if (window.ActiveXObject)
		{
			 
			xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//grabPeopleData(xmlDoc, 0);
			xmlDoc.async = false;
			xmlDoc.onreadystatechange = function() { if (xmlDoc.readyState==4) comboEstados(xmlDoc,clavePais); }
			xmlDoc.load(xmlFile);
			//Set xmlDoc = Nothing;
		}
		else alert('Lo siento, este browser no permite cargar la información del archivo XML.');
	}

	catch(e)
	{
		alert ('Ocurrio un error (' + e + ') al momento de cargar el documento XML');
	}

}

function comboPaises(xmlDoc){
	//Arreglo para el sort
	var arrPaises = new Array();
	
	//limpia el combo
	var lista = document.all("selPaises").options.length;
	     for(var x=0; x < lista; x++){
    	    document.all("selPaises").options.remove(0);
	     }
	var newElem = document.createElement("OPTION");
		newElem.value='';
		newElem.text='Selecciona un Pais';
	    document.all("selPaises").options.add(newElem);
		
	var peopleMayor = xmlDoc.getElementsByTagName('distribuidores')[0];
	
	for(i=0;i<(peopleMayor.childNodes.length);i++){
		arrPaises[i] = new apais(Trim(peopleMayor.childNodes(i).getAttribute('clave')), Trim(peopleMayor.childNodes(i).getAttribute('des')));			
	}
	
	arrPaises.sort(sortFdesc_Uno);
		
	for(i=0;i<(arrPaises.length);i++){
		//peopleMayor.childNodes(i).getAttribute('clave')
		var newElem = document.createElement("OPTION");		
		newElem.value=arrPaises[i]['clave'];
		newElem.text=arrPaises[i]['desc'];
	    document.all("selPaises").options.add(newElem);
	}
}

function comboEstados(xmlDoc,clave){
	//Arreglo para el sort
	arrEstados = new Array();
	
   if (clave!=""){	
   		// limpia el combo
    	 var lista = document.all("selEstados").options.length;
	     for(var x=0; x < lista; x++){
    	    document.all("selEstados").options.remove(0);
	     }
		 var newElem = document.createElement("OPTION");
		newElem.value='';
		newElem.text='Selecciona un Estado';
	    document.all("selEstados").options.add(newElem);
		var peopleMayor = xmlDoc.getElementsByTagName('distribuidores')[0];
		for(i=0;i<(peopleMayor.childNodes.length);i++){			
			if (Trim(peopleMayor.childNodes(i).getAttribute('clave'))==Trim(clave)){				
				for(j=0;j<(peopleMayor.childNodes(i).childNodes.length);j++){
					arrEstados[j] = new apais(Trim(peopleMayor.childNodes(i).childNodes(j).getAttribute('clave')), Trim(peopleMayor.childNodes(i).childNodes(j).getAttribute('des')));			
				}
				arrEstados.sort(sortFdesc_Uno);
				for(j=0;j<(peopleMayor.childNodes(i).childNodes.length);j++){
					var newElem = document.createElement("OPTION");					
					newElem.value=arrEstados[j]['clave'];
					newElem.text=arrEstados[j]['desc'];
					document.all("selEstados").options.add(newElem);
				}
				break;
			}
		}
   }
}


function grabPeopleData(xmldoc, f)
{
	var k = 0;
	
	var peopleMayor = xmldoc.getElementsByTagName('distribuidores')[0];
		for(i=0;i<(peopleMayor.childNodes.length);i++){
				//alert('p '+peopleMayor.childNodes(i).getAttribute('clave')+'ps '+pais);
			if (Trim(peopleMayor.childNodes(i).getAttribute('clave'))==Trim(pais)){
				for(j=0;j<(peopleMayor.childNodes(i).childNodes.length);j++){
					//alert('e '+peopleMayor.childNodes(i).childNodes(j).getAttribute('clave')+'es '+estado);
					if (Trim(peopleMayor.childNodes(i).childNodes(j).getAttribute('clave'))==Trim(estado)){
						var people = peopleMayor.childNodes(i).childNodes(j);
						if (f) cleanWhiteSpace(people);
							var nombre = '', direccion = '', ciudad = '', telefono = '', email = '', web = '';
							var numPeople = people.childNodes.length; 
							for (; k < numPeople; k++)
							{						
							   //alert(people.childNodes[k].childNodes[0].firstChild.nodeValue);
							
								if (people.childNodes[k].childNodes[0].firstChild!=null){
									nombre = people.childNodes[k].childNodes[0].firstChild.nodeValue;
								}else{
									nombre = "&nbsp;";
								 }
								if (people.childNodes[k].childNodes[1].firstChild!=null){
									direccion = people.childNodes[k].childNodes[1].firstChild.nodeValue;
								}else{
									 direccion = "&nbsp;";
								 }
								if (people.childNodes[k].childNodes[2].firstChild!=null){
									ciudad = people.childNodes[k].childNodes[2].firstChild.nodeValue;
								}else{
									ciudad= "&nbsp;";
								 }
								 if (people.childNodes[k].childNodes[3].firstChild!=null){
									telefono = people.childNodes[k].childNodes[3].firstChild.nodeValue;
								 }else{
									telefono = "&nbsp;";
								  }
								 if (people.childNodes[k].childNodes[4].firstChild!=null){
									email = people.childNodes[k].childNodes[4].firstChild.nodeValue;
								 }else{
									  email = "&nbsp;";
								  }
								 if (people.childNodes[k].childNodes[5].firstChild!=null){
									 web = people.childNodes[k].childNodes[5].firstChild.nodeValue;
								 }else{
									 web = "&nbsp;"; 
									}
								
								personArr[k] = new person(nombre, direccion, ciudad, telefono, email, web);
							}
					}
					
				}
				break;
			}
			
		}

	
}

function apais(clave, desc)
{
	this.clave = clave;
	this.desc = desc;	
}


function person(nombre, direccion, ciudad, telefono, email, web)
{
	this.nombre = nombre;
	this.direccion = direccion;
	this.ciudad = ciudad;
	this.telefono = telefono;
	this.email = email;
	this.web = web;
}

function cleanWhiteSpace(node)
{
	// function by Alex Vincent

	var notWS = /\S/;
	var cN, i;

	for (i=0; i< node.childNodes.length; i++)
	{
		cN=node.childNodes[i];

		if ((cN.nodeType == 3) && (!notWS.test(cN.nodeValue)))
		{
			node.removeChild(node.childNodes[i]);
			i--;
		}

		if (cN.nodeType == 1) cleanWhiteSpace(cN);
	}
}

function personDisplay_Uno()
{     
var os = '';
document.getElementById('personWin').innerHTML ='';
    os += ' <table width=\"480\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr> ';
        os +=  ' <td width=\"94\" class=\"fama\">Distribuidor<\/td> ';
        os +=  '    <td width=\"1\"  class=\"fazul\"><\/td>';
        os +=  '   <td width=\"100\" class=\"fama\">Direcci&oacute;n<\/td>';
        os +=  '    <td width=\"1\" class=\"fazul\"><\/td>';
        os +=  '    <td width=\"60\" class=\"fama\">Ciudad<\/td>';
        os +=  '    <td width=\"1\" class=\"fazul\"><\/td>';
        os +=  '    <td width=\"100\" class=\"fama\">Tel&eacute;fono<\/td>';
        os +=  '    <td width=\"1\" class=\"fazul\"><\/td>';
        os +=  '    <td width=\"100\" class=\"fama\">E-mail y Web <\/td>';
        os +=  '  <\/tr> ';


	for(n=0;n<personArr.length;n++){		  
		    estilo = (n % 2 == 0) ? "flineazul" : "txtazul";
		     os += '<TR>';
			 os += '<TD width=\"94\" height=\"30\" class=\"'+ estilo +'\" align=\"left\">' + personArr[n].nombre + '<\/td>';
			 os += '<td width=\"1\"  class=\"fazul\"><\/td>';
			 os += '<TD width=\"100\" class=\"'+ estilo +'\">' + personArr[n].direccion + '<\/td>';
			 os +=  '    <td width=\"1\" class=\"fazul\"><\/td>';
			 os += '<TD width=\"60\" class=\"'+ estilo +'\">' + personArr[n].ciudad + '<\/td>';
			 os +=  '    <td width=\"1\" class=\"fazul\"><\/td>';
			 os += '<TD width=\"100\" class=\"'+ estilo +'\">' + personArr[n].telefono + '<\/td>';
			 os +=  '    <td width=\"1\" class=\"fazul\"><\/td>';
 			 if ((personArr[n].email=="&nbsp;")||(personArr[n].email=="")){
			 	os += '<TD width=\"100\" class=\"'+ estilo +'\"> <br>';							
			 }else {
			  	os += '<TD width=\"100\" class=\"'+ estilo +'\">' + '<a href="mailto:'+personArr[n].email+'">'+personArr[n].email + '</a><br>';
			  }
			  if ((personArr[n].web=="&nbsp;")||(personArr[n].web=="")){
			 	os += '<\/td>' ;
			 }else {
			  	os += '<a href="http://'+personArr[n].web +'">' + personArr[n].web + '<\/td>' ;
			  }
			 //os += '<TD width=\"100\" class=\"'+ estilo +'\">' + '<a href="mailto:'+personArr[n].email+'">'+personArr[n].email + '</a><br><a href="http://'+personArr[n].web +'">' + personArr[n].web + '<\/td>' ;
			 os += '<\/TR>';
	}
	os += '<\/table>';
	
	document.getElementById('personWin').innerHTML = os;
		
	
}

function sortFdesc_Uno(a,b)
{
	var x = a.desc.toLowerCase();
	var y = b.desc.toLowerCase();
	if (x < y) return -1;
	else if (x > y) return 1;
	else return 0;
}

function sortFname_Uno(a,b)
{
	var x = a.nombre.toLowerCase();
	var y = b.nombre.toLowerCase();
	if (x < y) return -1;
	else if (x > y) return 1;
	else return 0;
}


function init()
{	
	pais = document.all.selPaises.value;
	estado = document.all.selEstados.value;
	loadXML();	
	personArr.sort(sortFname_Uno);	
    window.setTimeout('personDisplay_Uno()',600);    
	if (largeScreen) extwin(1);
}

/***/
/*
* Metodo Trim quita los espacios de la derecha y de la izquierda
* @data el string al que se le debe de quitar los espacios
*/
function Trim(data)
{
	data = Ltrim (data);
	data = Rtrim (data);
	return data;
}//Trim

/*
* Metodo Ltrim quitar los espacios de la izquierda
* @strString palabra que se le debe de quitar los espacios
*/
function Ltrim(strString)
{
 var i=0;
 var intLen = strString.length;

 while((strString.charAt(i) == " ") && ( i < intLen))
  i++;
 strString = strString.substring(i,intLen);
 return  strString;
}//Ltrim

/*
* Metodo Rtrim quitar los espacios de la derecha
* @strString palabra que se le debe de quitar los espacios
*/
function Rtrim(strString)
{
 var i= strString.length-1;
 while((strString.charAt(i) == " ") && ( i > 0 ))
   i--;
 strString = strString.substring(0,i+1);
 return strString;
}// Rtrim
/**/
