function obrirVissir(nF){
	//window.location = "http://www.icc.cat/vissir2/index2.html?utmfile="+nF;
	//var urlVissir = "../../../../../vissir2/index.html?utmfile="+nF;
	var urlVissir = "/vissir2/index.html?utmfile="+nF;
	var vissirWindowSettings = "menubar=no,toolbar=no,scrollbars=yes,location=no,width=1200, height=800";  
	var vissirWindow = window.open(urlVissir,"windowVissir", '');
	vissirWindow.focus();
}

var req;
var nameFile = "";

function Initialize()
{
	try
	{
		req=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(oc)
		{
			req = null;
		}
	}

	if(!req&&typeof XMLHttpRequest!="undefined")
	{
		req=new XMLHttpRequest();
	}
}

function SendQuery(area)
{	
	switch(area)
	{
	case 1:
		// Primer es neteja caixa de resultats
		document.forms["formGPSCarto"].utmH.value = "";
		var encodedPar = escape(document.forms["formGPSCarto"].gpsgeod.value);
		var par = "gpsgeod=" + encodedPar;
		//var url = "../../../php/geotex/calc1.php";
		var url= "/web/content/php/geotex/calc1.php";
		if(req!=null)req.onreadystatechange = Process1;
	break;    
	case 2:
		var encodedPar1 = escape(document.forms["formProGeodUTM"].geodUTM.value);
		//var encodedPar2 = escape(document.forms["formProGeodUTM"].projectionIN.value);
		var encodedPar2 = escape(getCheckedValue(document.forms['formProGeodUTM'].elements['projectionIN']));
		var encodedPar3 = escape(getCheckedValue(document.forms['formProGeodUTM'].elements['cotaIN']));
		var encodedPar4 = escape(getCheckedValue(document.forms['formProGeodUTM'].elements['cotaOUT']));
		var encodedPar5 = escape(getCheckedValue(document.forms['formProGeodUTM'].elements['projectionOUT']));
		var par = "geodUTM=" + encodedPar1 +"&projectionIN="+encodedPar2 +"&projectionOUT="+encodedPar5 +"&cotaIN="+encodedPar3 +"&cotaOUT=" +encodedPar4;
		//var url = "../../../php/geotex/lonlatToUTM.php";
		var url = "/web/content/php/geotex/lonlatToUTM.php";
		if(req!=null)req.onreadystatechange = Process2;
	break;
	case 3:
		// Primer es neteja caixa de resultats
		document.forms["formCartoGPS"].geod.value = "";
		//var encodedPar2 = escape(document.forms["formCartoGPS"].utmMap.value);
		var encodedPar2 = escapeVal(document.forms["formCartoGPS"].utmMap,"%0A");
		var par = "utmMap=" + encodedPar2;
		//var url = "../../../php/geotex/calc2.php";
		var url = "/web/content/php/geotex/calc2.php";
		if(req!=null)req.onreadystatechange = Process3;
	break;  
	default:
	}
	
	Initialize();
	
	document.getElementById('loading').style.visibility = "visible";
	
	if(req!=null)
	{
		switch(area)
		{
			case 1:
				if(req!=null)req.onreadystatechange = Process1;
				req.onreadystatechange = Process1;
			break;    
			case 2:
				if(req!=null)req.onreadystatechange = Process2;
				req.onreadystatechange = Process2;
			break;
			case 3:
				if(req!=null)req.onreadystatechange = Process3;
				req.onreadystatechange = Process3;
			break;
			default:
		}
		
		//req.onreadystatechange = Process1;
		
		req.open("POST", url, true);
		// Necessari per enviar formulari via post
	  	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      	req.setRequestHeader("Content-length", par.length);
      	req.setRequestHeader("Connection", "close");
        req.send(par);
	}
}

function Process1()
{
	if (req.readyState == 4)
    {
		if (req.status == 200)
		{
			document.getElementById('loading').style.visibility = "hidden";
			var resp = req.responseText
			//alert('rsp '+resp);
			data = eval("("+resp+")");
			//alert('Ln ' + data.length);
			if(!(data[0].UTMX)) alert('Error en les coordenades proporcionades. Verifiqueu:\n - Les coordenades són de Catalunya\n - El format introduďt és correcte');
			else{
				var utmlist = "";
				for(var i=0;i<data.length-1;i++) {
					var coords = data[i];
					if(coords.UTMX != "" && coords.UTMX != null && !isNaN(coords.UTMX)){
						utmlist = utmlist+coords.UTMX+','+coords.UTMY+','+coords.H+'\n';
					}else utmlist = utmlist + '\n';
				}
				document.forms["formGPSCarto"].utmH.value = utmlist;
				nameFile = data[data.length-1]['NAMEFILE'];
				/**** Per oferir link de descŕrrega d'arxiu amb coordenades ***
				document.getElementById('linkUtmFile').innerHTML="Descarregar arxiu de coordenades";
				document.getElementById('linkUtmFile').href = nameFile + ".zip";
				*/
				document.getElementById('linkVissir').innerHTML="Veure sobre el mapa de Catalunya";
				document.getElementById('linkVissir').href="javascript:obrirVissir('"+nameFile+"')";
			}
		}
	}
}

function Process2()
{
	if (req.readyState == 4)
    {
		if (req.status == 200)
		{
			document.getElementById('loading').style.visibility = "hidden";
			var resp = req.responseText
			data = eval("("+resp+")");
			//alert('data '+data+' '+data.length);
			var utmlist = "";
			for(var i=0;i<data.length-1;i++) {
				var coords = data[i];
				//alert(i +" H2: "+ coords.H);
				utmlist = utmlist+coords.UTMX+','+coords.UTMY+','+coords.H+'\n';
			}
			document.forms["formProGeodUTM"].UTMtransformed.value = utmlist;
			nameFile = data[data.length-1]['NAMEFILE'];
			//document.getElementById('linkUtmFile').innerHTML="Descarregar arxiu de coordenades";
			//document.getElementById('linkUtmFile').href = nameFile + ".zip";
			
			//document.getElementById('linkVissir').innerHTML="Veure al Vissir";
			//document.getElementById('linkVissir').href="javascript:obrirVissir('"+nameFile+"')";
		}
	}
}

function Process3()
{
	if (req.readyState == 4)
    {
		if (req.status == 200)
		{
			document.getElementById('loading').style.visibility = "hidden";
			var resp = req.responseText
			//alert('resp '+resp);
			data = eval("("+resp+")");
			//alert('Ln ' + data.length);
			//alert('data glon '+data[0].GLON);
			//alert('data '+data[0].GLON);
			if(isNaN(data[0].GLON)) alert('Error en les coordenades proporcionades. Verifiqueu:\n - Les coordenades són de Catalunya\n - El format introduďt és correcte');
			else{
				var geolist = "";
				var geolistTransformed = "";
				for(var i=0;i<data.length-1;i++) {
					var coords = data[i];
					if(coords.GLON != "" && coords.GLON != null && !isNaN(coords.GLON)){
						geolist = geolist+coords.GLON+' '+coords.MLON+' '+coords.SLON+' '+coords.GLAT+' '+coords.MLAT+' '+coords.SLAT+'\n';
						//alert('MLON '+coords.MLON+' '+parseInt(coords.MLON)/60+' '+'SLON '+coords.SLON+' '+parseInt(coords.SLON)/3600);
						var tempTransCoordX = parseInt(coords.GLON) + parseInt(coords.MLON)/60 + parseFloat(coords.SLON)/3600;
						var tempTransCoordY = parseInt(coords.GLAT) + parseInt(coords.MLAT)/60 + parseFloat(coords.SLAT)/3600;
						tempTransCoordX = tempTransCoordX.toString();
						tempTransCoordY = tempTransCoordY.toString();
						tempTransCoordX = tempTransCoordX.substring(0,11); // Per tenir 9 decimals de grau, precissió de milimetre
						tempTransCoordY = tempTransCoordY.substring(0,12); // Per tenir 9 decimals de grau, precissió de milimetre
						geolistTransformed = geolistTransformed + tempTransCoordX+','+tempTransCoordY+'\n';
					}else geolist = geolist + '\n';
				}
				//alert('geolist '+geolist);
				document.forms["formCartoGPS"].geod.value = geolistTransformed;
				nameFile = data[data.length-1]['NAMEFILE'];
				/**** Per oferir link de descŕrrega d'arxiu amb coordenades  ***
				document.getElementById('linkUtmFile2').innerHTML="Descarregar arxiu de coordenades";
				document.getElementById('linkUtmFile2').href = nameFile + ".zip";
				*/
				document.getElementById('linkVissir2').innerHTML="Veure sobre el mapa de Catalunya";
				document.getElementById('linkVissir2').href="javascript:obrirVissir('"+nameFile+"')";
			}
		}
	}
}

function escapeVal(textarea,replaceWith){ 
	//textarea is reference to that object, replaceWith is string that will replace the encoded return
	var tempText = escape(textarea.value) //encode textarea string's carriage returns
	for(i=0; i<tempText.length; i++){ 
	//loop through string, replacing carriage return encoding with HTML break tag

		if(tempText.indexOf("%0D%0A") > -1){ 
		//Windows encodes returns as \r\n hex
			tempText = tempText.replace("%0D%0A",replaceWith);
		}
		else if(tempText.indexOf("%0A") > -1){ 
		//Unix encodes returns as \n hex
			tempText = tempText.replace("%0A",replaceWith);
		}
		else if(tempText.indexOf("%0D") > -1){ 
		//Macintosh encodes returns as \r hex
			tempText = tempText.replace("%0D",replaceWith);
		}
	}

	//textarea.value=unescape(textarea.value) //unescape all other encoded characters
	
	//return unescape(textarea.value);
	return tempText;
}

function sendGpsGeod(op){
	//********* Num. de caracters al textarea ****************
	//alert(document.forms["formGPSCarto"].gpsgeod.value.length);
	
	if(op == 1) var area = document.getElementById("gpsgeod");
	else var area = document.getElementById("utmMap");
	// trim trailing return char if exists
	var text = area.value.replace(/\s+$/g,"");
	var split = text.split("\n");
	var numLines = split.length;
	if(numLines < 201) SendQuery(op);
	else{
		alert("Heu introduďt "+numLines+" punts i el límit són 200.\nÉs transformaran els primers 200 punts.");
		var newList = new Array();
		// Copia els 200 primers punts a array auxiliar
		for(i=0;i<200;i++){
			newList[i] = split[i];
		}
		// Es reescriuen els 200 primers punts al textarea
		area.value = newList.join("\n");
		SendQuery(op);
	}
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function send(){
	//document.forms["formProGeodUTM"].action = "lonlatToUTM.php";
	//document.forms["formProGeodUTM"].submit();
	var chkProject = getCheckedValue(document.forms['formProGeodUTM'].elements['projectionIN']);
	var chkCota = getCheckedValue(document.forms['formProGeodUTM'].elements['cotaIN']);
	if(chkProject == "" && chkCota == ""){
		alert('Cal seleccionar el dŕtum i el tipus d\'altura');
	}else{
		alert(getCheckedValue(document.forms['formProGeodUTM'].elements['projectionIN']));
		alert(getCheckedValue(document.forms['formProGeodUTM'].elements['cotaIN']));
		SendQuery(2);
	}
}

