/*  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
	@author kecheverri
	Muestra los centros de votaci?n por estado, municipio y parroquia
    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-  */

    function makeRequest(url,type,function_handler,params) {
	var http_request = false;
	var doc = null;

   	if(window.XMLHttpRequest){ // Mozilla, Safari,...
    	http_request = new XMLHttpRequest();
        if(http_request.overrideMimeType){
        	http_request.overrideMimeType('text/xml');
            // Ver nota sobre esta linea al final
        }
	}else if(window.ActiveXObject){ // IE
        try{
        	http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
        	try{
            	http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }catch(e){}
        }
  	}

    if(!http_request){
    	alert('Falla :( No es posible crear una instancia XMLHTTP');
        return false;
    }
	//http_request.async = false;
    http_request.onreadystatechange = function (){
	    if(http_request.readyState == 4){
	    	if(http_request.status == 200){
				if(type == 'xml') 
					doc = http_request.responseXML;
				else
					doc = http_request.responseText;
				if(function_handler != null) function_handler(doc,params);
			}else{
            	alert('Hubo problemas con la petici?n. Error: '+http_request.status);
            }
		}
	}
//	prompt("debug",url);
	var index=url.indexOf('?');
	if(index!=-1){
		http_request.open('POST', url.substring(0,index), true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.send(url.substring(index+1));
	}else{
		http_request.open('POST', url, true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.send(null);
	}
}

function findAddress(lista, id) 
{
		for(ind=0; ind<lista.length; ind++)
   		{
    		if (lista[ind] == id)
    		{
    			return (lista[ind+1]);
      			break;
      		}
    	}
} 

function showStates()
{
	makeRequest('http://www.eluniversal.com/elec06/do/showStates','html',showStatesHandler,null);
}

function showMunicipalities(stateId)
{
	if (stateId>0)
	{	document.getElementById('imgLoading1').style.display='block';
		makeRequest('http://www.eluniversal.com/elec06/do/showMunicipalities?stateId='+stateId,'html',showMunicipalitiesHandler,stateId);
	}
	else
	{
		document.getElementById('municipality').options.length=0;
		document.getElementById('department').options.length=0;
		document.getElementById('votingCenter').options.length=0;
		document.getElementById('address').value='';
		document.getElementById('showMesas').innerHTML = '';
		document.getElementById('showStatics').innerHTML = '';
	}		
}

function showDepartments(municipalityId)
{
	stateId= document.getElementById('state').options[document.getElementById('state').options.selectedIndex].value;
	if ((municipalityId>0) && (stateId>0))
	{	
		document.getElementById('imgLoading2').style.display='block';
		makeRequest('http://www.eluniversal.com/elec06/do/showDepartments?municipalityId='+municipalityId+'&stateId='+stateId,'html',showDepartmentsHandler,null);
	}
	else
	{
		document.getElementById('department').options.length=0;
		document.getElementById('votingCenter').options.length=0;
		document.getElementById('address').value='';
		document.getElementById('showMesas').innerHTML = '';
		document.getElementById('showStatics').innerHTML = '';
	}
}
function showVotingCenter(departmentId)
{
	document.getElementById('imgState').style.display='block';
	if (departmentId>0)
		makeRequest('http://www.eluniversal.com/elec06/do/showVotingCenter?departmentId='+departmentId,'html',showVotingCenterHandler,null);
	else
	{
		document.getElementById('votingCenter').options.length=0;
		document.getElementById('address').value='';
		document.getElementById('showMesas').innerHTML = '';
		document.getElementById('showStatics').innerHTML = '';
	}
}

function showVotingTables(centerId)
{
	document.getElementById('imgLoading').style.display='block';
	if (centerId>0)
		makeRequest('http://www.eluniversal.com/elec06/do/showVotingTables?centerId='+centerId,'html',showVotingTablesHandler,centerId);
	else
	{
		document.getElementById('address').value='';
		document.getElementById('showMesas').innerHTML = '';
		document.getElementById('showStatics').innerHTML = '';
	}
}

function showStatesHandler(doc,params)
{
	document.getElementById('municipality').options.length=0;
	document.getElementById('department').options.length=0;
	document.getElementById('votingCenter').options.length=0;
	document.getElementById('address').value='';
	document.getElementById('showMesas').innerHTML = '';
	document.getElementById('showStatics').innerHTML = '';
	estados = doc.split('~');
	totEstados = new Array(estados.length);
	document.getElementById('state').options[0] = new Option("Seleccione","-1", false, false);
	j = 0;
	for(i=0;i<estados.length;i++){
		if(estados[i]!=""){
			attrs = estados[i].split('^');
			document.getElementById('state').options[i+1] = new Option(attrs[1], attrs[0], false, false);
		}		
	}
	
}

function showMunicipalitiesHandler(doc,params)
{
	document.getElementById('imgLoading1').style.display='none';
	municipios = doc.split('~');
	document.getElementById('municipality').options.length=0;
	document.getElementById('department').options.length=0;
	document.getElementById('votingCenter').options.length=0;
	document.getElementById('address').value='';
	document.getElementById('showMesas').innerHTML = '';
	document.getElementById('showStatics').innerHTML = '';
	document.getElementById('municipality').options[0] = new Option("Seleccione","-1", false, false);
	for(i=0;i<municipios.length-1;i++){
		if(municipios[i]!=""){
			attrs = municipios[i].split('^');
			document.getElementById('municipality').options[i+1] = new Option(attrs[1], attrs[0], false, false);
		}		
	}
	document.getElementById('showStatics').innerHTML = municipios[municipios.length-1];
}

function showDepartmentsHandler(doc,params)
{
	document.getElementById('imgLoading2').style.display='none';
	parroquias = doc.split('~');
	document.getElementById('department').options.length=0;
	document.getElementById('votingCenter').options.length=0;
	document.getElementById('address').value='';
	document.getElementById('showMesas').innerHTML = '';
	document.getElementById('showStatics').innerHTML = '';
	document.getElementById('department').options[0] = new Option("Seleccione","-1", false, false);
	for(i=0;i<parroquias.length-1;i++){
		if(parroquias[i]!=""){
			attrs = parroquias[i].split('^');
			document.getElementById('department').options[i+1] = new Option(attrs[1], attrs[0], false, false);
		}		
	}
	document.getElementById('showStatics').innerHTML = municipios[municipios.length-1]+ parroquias[parroquias.length-1];
}

function showVotingCenterHandler(myDoc,params)
{
	document.getElementById('imgState').style.display='none';
	centrosArr = myDoc.split('~');
	direccion = new Array(0);	
	document.getElementById('votingCenter').options.length=0;
	document.getElementById('address').value='';
	document.getElementById('showMesas').innerHTML = '';
	document.getElementById('showStatics').innerHTML = '';
	document.getElementById('votingCenter').options[0] = new Option("Seleccione","-1", false, false);
	j = 0;
	for(i=0;i<centrosArr.length-1;i++){
		if(centrosArr[i]!=""){
			attrs = centrosArr[i].split('^');
			document.getElementById('votingCenter').options[i+1] = new Option(attrs[1], attrs[0], false, false);
			direccion[j] = new Array(attrs[0]);
			direccion[j+1] = new Array(attrs[2]);
			j = j+2;
		}		
	}
	document.getElementById('showStatics').innerHTML = municipios[municipios.length-1]+ parroquias[parroquias.length-1]+ centrosArr[centrosArr.length-1];
}

function showVotingTablesHandler(doc,params)
{
	document.getElementById('imgLoading').style.display='none';
	mesas = doc.split('<div id="es">');
	document.getElementById('showMesas').innerHTML = mesas[0];
	document.getElementById('showStatics').innerHTML = municipios[municipios.length-1]+ parroquias[parroquias.length-1]+ centrosArr[centrosArr.length-1] + mesas[1];
	document.getElementById('address').value = findAddress(direccion,params);
}

