
/* Variables globals */

var arNomUni = new Array();
var arResOri = new Array();
var arResDes = new Array();
var arResXOri = new Array();
var arResYOri = new Array();
var arResXDes = new Array();
var arResYDes = new Array();
var iNom;
var iX;
var iY;
var SUFIX_LOCALITZACIO_GMAPS = ", Catalunya, Espanya";
var ZONA_UTM = 31;

var _inputOrigen = new Array(2);
_inputOrigen[0] = "Adreca1";
_inputOrigen[1] = "Facultat1";

var _inputDesti = new Array(2);
_inputDesti[0] = "Adreca2";
_inputDesti[1] = "Facultat2";

var xyOrigen = new Array(2);
var xyDesti = new Array(2);
var desX = 93.74636705;
var desY = 204.2073194;

var resultadosObt=0;
var resultadosObtPar=0;

function makeVisible(id){
	var el=document.getElementById(id);
	el.style.display = "";
}

function makeInVisible(id){
	var el=document.getElementById(id);
	el.style.display = "none";
}

function onclickOrigen(id){
	var i;
	for (i = 0; i < _inputOrigen.length; i++)
    {
        if (i==id){
        	document.getElementById(_inputOrigen[i]).style.display = "";
        }
        else{
        	document.getElementById(_inputOrigen[i]).style.display = "none";
        }        
    }
	document.formOrigen.inputorigen[id].checked = true;
	if(id==0){
		OriAdre = "true";
	}else{
		OriAdre = "false";
	}
	
}

function onclickDesti(id){
	var i;
	for (i = 0; i < _inputDesti.length; i++)
    {
        if (i==id){
        	document.getElementById(_inputDesti[i]).style.display = "";
        }
        else{
        	document.getElementById(_inputDesti[i]).style.display = "none";
        }        
    }
	document.formDesti.inputdesti[id].checked = true;
	if(id==0){
		DestAdre = "true";
	}else{
		DestAdre = "false";
	}
}

function putPuntDesti(x,y){
	var dest = document.FormSearch.DESTINO;
	dest.value= x + "," + y;
    resultadosObt++;
	if(resultadosObt==2){
    	submitFormSearch();
    }
}

function putPuntOrigen(x,y){
	var orig = document.FormSearch.ORIGEN;	
	orig.value= x + "," + y;
	resultadosObt++;
	if(resultadosObt==2){
    	submitFormSearch();
    }
}

function omplirFacultats(){
	
	var xmlHttp;
	try {
		xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
	} catch (e) {
		try	{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer 6.0+
	} catch (e) {
		try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 5.5+
			} catch (e) {
				return null;
			}
	}
	}
	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState==4) {
			arRes = String(xmlHttp.responseText);
			var comboUniOri = document.getElementById('comboUniOri');
			var comboUniDes = document.getElementById('comboUniDes');
			var s1=document.getElementById('combo1');
			var s2=document.getElementById('combo2');
			    		       		   
			arRes = arRes.split("\n");
			var arPar = arRes[0].split("|");
			var i;
			for(i=0;i<arPar.length;i++){
				if(arPar[i]=="NOM"){
			    	iNom = i;
			    }else if (arPar[i]=="X") {
			  		iX = i;
				} else {
					iY = i;
				}
			}
			
			var numUni=0;
			var numFac=0;
			var lasUni=0;
			var arResAux = new Array();
			var arResAuxX = new Array();
			var arResAuxY = new Array();
			var obj = new Object();
			for(i=1;i<arRes.length-2;i++){
				var nom = arRes[i].split("|")[iNom];
				var x = arRes[i].split("|")[iX];
				var y = arRes[i].split("|")[iY];
				if(nom!=""&&nom.length>0){				   
				   if(lasUni==0){
					   obj.Nom =  nom.split("_")[0];
					   arResAux[0] = nom.split("_")[1];
					   arResAuxX[0] = x;
					   arResAuxY[0] = y;
					   lasUni = nom.split("_")[0];
					   numFac++;
				   }else{
					   if(lasUni==nom.split("_")[0]){
						   arResAux[numFac] = nom.split("_")[1];
						   arResAuxX[numFac] = x;
						   arResAuxY[numFac] = y;		
						   numFac++;
					   }else{						   
						   obj.Facultats = arResAux;
						   obj.PosX = arResAuxX;
						   obj.PosY = arResAuxY;
						   arNomUni[numUni] = obj;
						   obj = new Object();
						   obj.Nom =  nom.split("_")[0];
						   numFac = 0; 
						   numUni++;
						   arResAux = new Array();
						   arResAuxX = new Array();
						   arResAuxY = new Array();
						   arResAux[0] = nom.split("_")[1];
						   arResAuxX[0] = x;
						   arResAuxY[0] = y;
						   lasUni = nom.split("_")[0];
						   numFac++;
					   }
				   }
			   }
			}
			obj.Facultats = arResAux;
			obj.PosX = arResAuxX;
			obj.PosY = arResAuxY;
			arNomUni[numUni] = obj;			
			
			arResOri = arNomUni[cUniOri].Facultats;
			arResDes = arNomUni[cUniDesti].Facultats;
			arResXOri = arNomUni[cUniOri].PosX;
			arResYOri = arNomUni[cUniOri].PosY;
			arResXDes = arNomUni[cUniDesti].PosX;
			arResYDes = arNomUni[cUniDesti].PosY;
			
			var dest = document.forms.FormSearch.DESTINO;	
			dest.value = arResXDes[cFacDesti] + "," + arResYDes[cFacDesti];
			var desc_dest = document.forms.FormSearch.DESC_DESTINO;
			desc_dest.value = arResDes[cFacDesti];
			
			for(i=0;i<arNomUni.length;i++){
				op = document.createElement("OPTION");
			    op.value = i; 
			    op.text = arNomUni[i].Nom;
			    if(cUniOri!=null && i==cUniOri){
			    	op.selected=true;			    	
			    }
			    comboUniOri.options[i]= op;
			    
			    op = document.createElement("OPTION");
			    op.value = i; 
			    op.text = arNomUni[i].Nom;
			    if(cUniDesti!=null && i==cUniDesti){
			    	op.selected=true;
			    }
			    comboUniDes.options[i]= op;
			}

			for(i=0;i<arResOri.length;i++){
				op = document.createElement("OPTION");
			    op.value = i; 
			    op.text = arResOri[i];
			    if(cFacOri!=null && i==cFacOri){
			    	op.selected=true;
			    }
			    s1.options[i]= op;
			       
			    op = document.createElement("OPTION");
			    op.value = i; 
			    op.text = arResDes[i];
			    if(cFacDesti!=null && i==cFacDesti){
			    	op.selected=true;
			    }
			    s2.options[i]= op;
			}
		}
	}
		xmlHttp.open("POST","http://amtu.sitep.com/Exportador/ServeisBD?OPERACIO=SELECT&TAULA=TA_POI&ORDER=NOM&NOM&X&Y",true);
		xmlHttp.send(null);
}

function omplirMunicipis(){	
	
	var xmlHttp;
	try {
		xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
	} catch (e) {
		try	{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer 6.0+
	} catch (e) {
		try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 5.5+
			} catch (e) {
				return null;
			}
	}
	}
	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState==4) {
			
			var arResmuni = String(xmlHttp.responseText);
		    var s1=document.getElementById('comboMuni1');
		    var s2=document.getElementById('comboMuni2');
		    		       		   
		    arResmuni = arResmuni.split("\n");
		    		   
		    for(i=1;i<arResmuni.length-2;i++){
		    	if(arResmuni[i].split("|")[iNom]!=""){
					op = document.createElement("OPTION");
		        	op.value = arResmuni[i]; 
		        	op.text = arResmuni[i];
		        	if(cMuniOri!=null && i==cMuniOri){
				    	op.selected=true;
				    }
		        	s1.options[i-1]= op;
		        	op = document.createElement("OPTION");
		        	op.value = arResmuni[i]; 
		        	op.text = arResmuni[i];
		        	if(cMuniDesti!=null && i==cMuniDesti){
				    	op.selected=true;
				    }
		        	s2.options[i-1]= op;
		        }
		    } 

	  	}
		
	}
	xmlHttp.open("POST","http://amtu.sitep.com/Exportador/ServeisBD?OPERACIO=SELECT&TAULA=TR_MUNICIPI&ORDER=NOM&NOM",true);
	xmlHttp.send(null);
   
	  	
}

function changeUniOri(id){
	var orig = document.forms.FormSearch.ORIGEN;	
	orig.value = arResXOri[id] + "," + arResYOri[id];
	 var desc_orig = document.forms.FormSearch.DESC_ORIGEN;
	 desc_orig.value = arResOri[id];
}

function changeUniDesti(id){
	var dest = document.forms.FormSearch.DESTINO;	
	dest.value = arResXDes[id] + "," + arResYDes[id];
	var desc_dest = document.forms.FormSearch.DESC_DESTINO;
	desc_dest.value = arResDes[id];
}

function changeComboUniOri(id){
	var s1=document.getElementById('combo1');
	s1.length = 0;
	arResOri = arNomUni[id].Facultats;
	arResXOri = arNomUni[id].PosX;
	arResYOri = arNomUni[id].PosY;
	
	for(i=0;i<arResOri.length;i++){

		op = document.createElement("OPTION");
	    op.value = i; 
	    op.text = arResOri[i];
	    s1.options[i]= op;
	}
	changeUniOri(0);
}

function changeComboUniDesti(id){
	var s2=document.getElementById('combo2');
	s2.length = 0;
	arResDes = arNomUni[id].Facultats;
	arResXDes = arNomUni[id].PosX;
	arResYDes = arNomUni[id].PosY;
	
	for(i=0;i<arResDes.length;i++){
	    op = document.createElement("OPTION");
	    op.value = i; 
	    op.text = arResDes[i];
	    s2.options[i]= op;
	}	
	changeUniDesti(0);
}

/* onSubmit() */
function onSubmit(){
	resultadosObt=0;
	resultadosObtPar=0;
	
	var orig = document.FormSearch.ORIGEN;	
    var dest = document.FormSearch.DESTINO;
    var desc_orig = document.FormSearch.DESC_ORIGEN;	
    var desc_dest = document.FormSearch.DESC_DESTINO;
    var desc_orig_show = document.FormSearch.DESC_ORIGEN_SHOW;	
    var desc_dest_show = document.FormSearch.DESC_DESTINO_SHOW;
    var bShowPopUpTriar = false;
    var strHtmlPopup = "<html><head><title>Escull l'adre&ccedil;a correcta</title></head>";
    strHtmlPopup += " <!-- Carreguem els estils -->";
    strHtmlPopup += "<link rel='stylesheet' type='text/css' href='../css/RoutingAMTU.css' />";
    strHtmlPopup += "<body><table class='red'>";
    strHtmlPopup += '<script type="text/javascript">';
    strHtmlPopup += 'function put_radio_valueOri()';
    strHtmlPopup += '{';
    strHtmlPopup += 'for (var i=0; i < document.forms.formOrigen.origen.length; i++)';
    strHtmlPopup += '{';
    strHtmlPopup += 'if (document.forms.formOrigen.origen[i].checked)';
    strHtmlPopup += '{';
    strHtmlPopup += 'var rad_val = document.forms.formOrigen.origen[i].value;';
    strHtmlPopup += 'opener.putPuntOrigen(rad_val);';
    strHtmlPopup += 'return false;';
    strHtmlPopup += '}';
    strHtmlPopup += '}';
    strHtmlPopup += '}';
    strHtmlPopup += 'function put_radio_valueDest()';
    strHtmlPopup += '{';
    strHtmlPopup += 'for (var i=0; i < document.forms.formDesti.desti.length; i++)';
    strHtmlPopup += '{';
    strHtmlPopup += 'if (document.forms.formDesti.desti[i].checked)';
    strHtmlPopup += '{';
    strHtmlPopup += 'var rad_val = document.forms.formDesti.desti[i].value;';
    strHtmlPopup += 'opener.putPuntDesti(rad_val);';
    strHtmlPopup += 'return false;';
    strHtmlPopup += '}';
    strHtmlPopup += '}';
    strHtmlPopup += '}';
    strHtmlPopup += '</script>';

    
    if(document.formOrigen.inputorigen[0].checked&&OriAdre=="true"){
    	geocoder.getLocations(document.formOrigen.text_adreca_origen.value + "," + document.formOrigen.comboMuni1.value + SUFIX_LOCALITZACIO_GMAPS, function (result)
		          { 
    				if (result.Status.code == 200) {
			            var iter;
			            desc_orig_show.value = document.formOrigen.text_adreca_origen.value;
			            desc_orig.value = document.formOrigen.text_adreca_origen.value+ "," + document.formOrigen.comboMuni1.value;
			            if(result.Placemark.length==1){
			            	var p = result.Placemark[0].Point.coordinates;
			            	//desc_orig.value= result.Placemark[0].address;
			            	LatLonToUTMXY(DegToRad(p[1]), DegToRad(p[0]), ZONA_UTM, xyOrigen);
			         	    xyOrigen[0] = xyOrigen[0] + desX;
			         	    xyOrigen[1] = xyOrigen[1] + desY;
			            	orig.value=xyOrigen[0] + "," + xyOrigen[1];
			            	resultadosObt++;
			            }
			            else{
			            	bShowPopUpTriar = true;
			            	desc_orig.value = document.formOrigen.text_adreca_origen.value;
			            	strHtmlPopup +="<tr><th class='borderbck'>Selecciona l'adre&ccedil;a d'origen correcta<th><tr>";
			            	strHtmlPopup +="<form name='formOrigen'>";
			            	
			            	for(iter=0;iter<result.Placemark.length;iter++){
			            		var p = result.Placemark[iter].Point.coordinates;
				            	LatLonToUTMXY(DegToRad(p[1]), DegToRad(p[0]), ZONA_UTM, xyDesti);
				            	xyDesti[0] = xyDesti[0] + desX;
				            	xyDesti[1] = xyDesti[1] + desY;
				            	strHtmlPopup += '<tr><td><input type="radio" name="origen" value="'+xyDesti[0] + ',' +xyDesti[1] +'" checked=true>'+result.Placemark[iter].address+'</input></td></tr>';
							}	
			            	
			            	strHtmlPopup +="</form>";
			            }			            			              
		            }else{
		            	alert("No s'ha trobat l'adre\u00e7a d'origen indicada.");
		            }
    				resultadosObtPar++;
    				if(resultadosObtPar==2){
    					strHtmlPopup += "<tr><th><button class='boto' type='button' onclick='javascript:if(document.forms.formDesti){put_radio_valueDest();}if(document.forms.formOrigen){put_radio_valueOri();}self.close();'>Seleccionar</button></th></tr></table></body></html>";
    				    
    				    if(bShowPopUpTriar){
    				    	var popup = window.open("", "popup", "menubar=no, width=550, height=330, top=300, left= 250, resizable=no");
    						popup.document.body.style.overflow="auto";
    						popup.document.writeln(strHtmlPopup);
    				    }
		            }
		            
		            if(resultadosObt==2){
		            	submitFormSearch();
		            }
		         }
      	);
    }else{
    	resultadosObtPar++;
    	resultadosObt++;
    	if(resultadosObt==2){
        	submitFormSearch();
        }
    }

    if(document.formDesti.inputdesti[0].checked&&DestAdre=="true"){
    	geocoder.getLocations(document.formDesti.text_adreca_desti.value + "," + document.formDesti.comboMuni2.value + SUFIX_LOCALITZACIO_GMAPS, function (result)
		          { 
  				// If that was successful
		            if (result.Status.code == 200) {
			            var iter;
			            desc_dest_show.value = document.formDesti.text_adreca_desti.value;
			            desc_dest.value = document.formDesti.text_adreca_desti.value+ "," + document.formDesti.comboMuni2.value;
			            if(result.Placemark.length==1){
			            	var p = result.Placemark[0].Point.coordinates;
			            	//desc_dest.value= result.Placemark[0].address;
			            	
			            	LatLonToUTMXY(DegToRad(p[1]), DegToRad(p[0]), ZONA_UTM, xyDesti);
			            	xyDesti[0] = xyDesti[0] + desX;
			            	xyDesti[1] = xyDesti[1] + desY;
			            	dest.value=xyDesti[0] + "," + xyDesti[1];
			            	resultadosObt++;
			            }
			            else{
			            	bShowPopUpTriar = true;
			            	desc_dest.value = document.formDesti.text_adreca_desti.value;
			            	strHtmlPopup +="<tr><th class='borderbck'>Selecciona l'adre&ccedil;a de destinaci&oacute; correcta<th><tr>";
			            	strHtmlPopup +="<form name='formDesti'>";
			            	for(iter=0;iter<result.Placemark.length;iter++){
			            		var p = result.Placemark[iter].Point.coordinates;
				            	LatLonToUTMXY(DegToRad(p[1]), DegToRad(p[0]), ZONA_UTM, xyDesti);
				            	xyDesti[0] = xyDesti[0] + desX;
				            	xyDesti[1] = xyDesti[1] + desY;
				            	strHtmlPopup += '<tr><td><input type="radio" name="desti" value="'+xyDesti[0] + ',' +xyDesti[1] +'" checked=true>'+result.Placemark[iter].address+'</input></td></tr>';
				            }
			            	strHtmlPopup +="</form>";
			            }
			            
			            resultadosObtPar++;
	    				if(resultadosObtPar==2){
	    					strHtmlPopup += "<tr><th><button class='boto' type='button' onclick='javascript:if(document.forms.formDesti){put_radio_valueDest();}if(document.forms.formOrigen){put_radio_valueOri();}self.close();'>Seleccionar</button></th></tr></table></body></html>";
	    				    
	    				    if(bShowPopUpTriar){
	    				    	var popup = window.open("", "popup", "menubar=no, width=550, height=330, top=300, left= 250, resizable=no");
	    						popup.document.body.style.overflow="auto";
	    						popup.document.writeln(strHtmlPopup);
	    				    }
			            }
			            
			            if(resultadosObt==2){
			            	submitFormSearch();
			            }
		            }
		            else{
		            	alert("No s'ha trobat l'adre\u00e7a de destinaci\u000f3 indicada.");
		            }
		         }
    	);
    }else{
    	resultadosObtPar++;
    	resultadosObt++;
    	if(resultadosObt==2){
        	submitFormSearch();
        }
    }
}

function submitFormSearch(){
	showCarregant(true);
	//document.getElementById("myframe").style.height = "100%";
	
	var arModo = new Array();
    var modo  = document.FormSearch.MODO;

    if(document.formModesTrans.C1.checked) { arModo.push(document.formModesTrans.C1.value); }
    if(document.formModesTrans.C2.checked) { arModo.push(document.formModesTrans.C2.value); }
    if(document.formModesTrans.C3.checked) { arModo.push(document.formModesTrans.C3.value); }
    if(document.formModesTrans.C4.checked) { arModo.push(document.formModesTrans.C4.value); }
    if(document.formModesTrans.C5.checked) { arModo.push(document.formModesTrans.C5.value); }
    if(document.formModesTrans.C6.checked) { arModo.push(document.formModesTrans.C6.value); }
    if(document.formModesTrans.C7.checked) { arModo.push(document.formModesTrans.C7.value); }
    if(document.formModesTrans.C7.checked||document.formModesTrans.C1.checked) { arModo.push("8"); }
    modo.value = arModo.join(",");
	document.FormSearch.submit();
}

function omplir(){
	if(OriAdre=="true"){
		document.formOrigen.inputorigen[0].checked = true;
	}else{
		document.formOrigen.text_adreca_origen.value = "";
		document.formOrigen.inputorigen[1].checked = true;
		onclickOrigen(1);
	}
	if(DesAdre=="true"){
		document.formDesti.inputdesti[0].checked = true;
	}else{
		document.formDesti.text_adreca_desti.value = "";
		document.formDesti.inputdesti[1].checked = true;
		onclickDesti(1);
	}
	
	omplirFacultats();
	omplirMunicipis();
	
}

function fOnAdressaOrigen(punt) {
	pntOrigen = punt;
}

function fOnAdressaDesti(punt) {	
    pntDesti = punt;  
}