//--- Ajax controllo mail --------------

function getMeteo()
{	

	var y = 0;
	var status = 'true';
	
	//var myCookie = readCookie('sessionLoc');
	//var myCookie2 = readCookie('meteoLoc');
	//alert(myCookie + ' - ' + myCookie2);
	
	//verifico che i SERVER non siano DOWN
	var statusServer = getCookie('sessionLoc', 'stato:');
	if (statusServer) {
		if (statusServer == 'false') status='false';
	}
	//alert(statusServer);	
	
	if (status == 'true') {
	
		//LOCALITA' GEOLOCALIZZAZIONE
		var sessionL = getCookie('sessionLoc', 'loc:'); 
		//alert('locS:' + sessionL);
		if (sessionL) {	
		
			var arrayLoc = sessionL.split("|");
			document.getElementById('meteo1').innerHTML = getDivMeteo('loc', arrayLoc[0], arrayLoc[1], arrayLoc[2], arrayLoc[3], arrayLoc[4]);
			y = y + 1;
			
		} else {
					
			//lettura cookie di geolocalizzazione
			var myLoc = getCookie('meteoLoc', 'loc:'); 
			//alert('myLoc:' + myLoc);
			if (myLoc) {			
				if (myLoc != 'false') {
					//chiamata di geocalizzazione
					callWSMeteo ('loc', 'true');
					y = y + 1;
				}
					
			} else {		
				
				//chiamata di geocalizzazione
				callWSMeteo ('loc', 'true'); 
				y = y + 1;
			}			
		}
		
		//RESTITUISCO LE ICONE DEL METEO
		document.getElementById('icone_meteo').innerHTML = "<div class='floatL pT2 pleft5'><a href='http://classmeteo.weather.com/' target='_blank'><img src='/common/img/mf/meteo/classmeteo_logo.png' height='30' width='63' border='0'/></a></div>";
		
		//LOCALITA' 1
		var sessionL1 = getCookie('sessionLoc', 'loc1:');
		//alert('locS1:' + sessionL1);
		if (sessionL1) {	
		
			var arrayLoc1 = sessionL1.split("|");
			document.getElementById('meteo2').innerHTML = getDivMeteo('loc1', arrayLoc1[0], arrayLoc1[1], arrayLoc1[2], arrayLoc1[3], arrayLoc1[4]); 
			y = y + 1;
			
		} else {
											
			//lettura cookie localita' 1
			var loc1 =  getCookie('meteoLoc', 'loc1:');
			//alert ('loc1:' + loc1);
			if (loc1) {		
				//chiamare ws x localita' 1
				callWSMeteo ('loc1', loc1);
				y = y + 1;
			}
			
		}
		
		//LOCALITA' 2
		var sessionL2 = getCookie('sessionLoc', 'loc2:');
		//alert('locS2:' + sessionL2);
		if (sessionL2) {	
		
			var arrayLoc2 = sessionL2.split("|");
			document.getElementById('meteo3').innerHTML = getDivMeteo('loc2', arrayLoc2[0], arrayLoc2[1], arrayLoc2[2], arrayLoc2[3], arrayLoc2[4]); 	
			y = y + 1;
			
		} else {
										
			//lettura cookie localita' 2
			var loc2 = getCookie('meteoLoc', 'loc2:');
			//alert ('loc2:' + loc2);
			if (loc2) {			
				//chiamare ws x localita' 2
				callWSMeteo ('loc2', loc2);
				y = y + 1;
			}			
		}			
			
			//rendo visibile o meno il link aggiungi localita
			if (status == 'true') {
				if (y<2) document.getElementById('meteo_aggiungi').style.display='block';
			}
	}
}


//CHIAMATA WS METEO
function callWSMeteo (tipo, valore)
{
	//alert('chiamata WS: ' + tipo + ' ' + valore);
	if (valore.length==0)
	{ 
		return;
	}
	
	var divMeteo = '';
	var ipAdress = '';
	var arrayLoc = '';
	var locId = '';
	var locTxt = '';
	var status = 'true';
		
	if (tipo == 'loc') {
		ipAdress = valore;
	} else {
		arrayLoc = valore.split("|");
		locId = arrayLoc[0];
		locTxt = arrayLoc[1];
	}
	var pars = 'locId=' + locId + '&list=&ricerca=&ipAdress=' + ipAdress;
	new Ajax.Request('/common/inc/meteo/meteo.asp',
		{   method:'get',
			parameters: pars,
			onSuccess: function(transport)
			{    
			//alert(transport.responseText);
			
			if (window.DOMParser)
			{
				var parser = new window.DOMParser();
				var docXml = parser.parseFromString(transport.responseText,'text/xml');
			}
			else // Internet Explorer
			{
				docXml = new ActiveXObject("Microsoft.XMLDOM");
				docXml.async="false";
				docXml.loadXML(transport.responseText);								  
			} 
				
				if(transport.responseText.indexOf('result="KO">')> -1) {	
					var codeStatus = docXml.getElementsByTagName("Code")[0].childNodes[0].nodeValue
					if (codeStatus == '16')	{
						status = 'false';
						setCookie('sessionLoc', 'stato:', 'false', '5');
					}
				}			
				if (status == 'true') {

					var root = docXml.getElementsByTagName('return').item(0);
					if (root.childNodes.length > 0 ) {
										
						if (tipo == 'loc') {																	
							
							document.getElementById('meteo1').innerHTML = getDivMeteo('loc', docXml.getElementsByTagName("locId")[0].childNodes[0].nodeValue, docXml.getElementsByTagName("sky")[0].childNodes[0].nodeValue, docXml.getElementsByTagName("prsntNm")[0].childNodes[0].nodeValue, docXml.getElementsByTagName("wx")[0].childNodes[0].nodeValue, docXml.getElementsByTagName("tmpC")[0].childNodes[0].nodeValue); 
							//creo i cookie
							setCookie('meteoLoc', 'loc:', 'true', '525600');
							setCookie('sessionLoc','loc:', docXml.getElementsByTagName("locId")[0].childNodes[0].nodeValue + '|' + docXml.getElementsByTagName("sky")[0].childNodes[0].nodeValue + '|' + docXml.getElementsByTagName("prsntNm")[0].childNodes[0].nodeValue + '|' + docXml.getElementsByTagName("wx")[0].childNodes[0].nodeValue + '|' + docXml.getElementsByTagName("tmpC")[0].childNodes[0].nodeValue,'10');
							
						} else if (tipo == 'loc1') {
						
							document.getElementById('meteo2').innerHTML = getDivMeteo('loc1', locId, docXml.getElementsByTagName("sky")[0].childNodes[0].nodeValue, locTxt, docXml.getElementsByTagName("wx")[0].childNodes[0].nodeValue, docXml.getElementsByTagName("tmpC")[0].childNodes[0].nodeValue);  
							//creo i cookie
							setCookie('meteoLoc','loc1:', valore,'525600');
							setCookie('sessionLoc','loc1:', locId + '|' + docXml.getElementsByTagName("sky")[0].childNodes[0].nodeValue + '|' + locTxt + '|' + docXml.getElementsByTagName("wx")[0].childNodes[0].nodeValue + '|' + docXml.getElementsByTagName("tmpC")[0].childNodes[0].nodeValue,'10');
						
						} else if (tipo == 'loc2') {
						
							document.getElementById('meteo3').innerHTML = getDivMeteo('loc2', locId, docXml.getElementsByTagName("sky")[0].childNodes[0].nodeValue, locTxt, docXml.getElementsByTagName("wx")[0].childNodes[0].nodeValue, docXml.getElementsByTagName("tmpC")[0].childNodes[0].nodeValue);   
							//creo i cookie
							setCookie('meteoLoc','loc2:', valore,'525600');
							setCookie('sessionLoc','loc2:', locId + '|' + docXml.getElementsByTagName("sky")[0].childNodes[0].nodeValue + '|' + locTxt + '|' + docXml.getElementsByTagName("wx")[0].childNodes[0].nodeValue + '|' + docXml.getElementsByTagName("tmpC")[0].childNodes[0].nodeValue,'10');
						}					
					}
				}
			}	
		}
	);
}

//HTML LOCALITA'
function getDivMeteo(tipo, locId, imgMeteo, titMeteo, testoMeteo, tempMeteo) {
	
	var divMeteo = "";
	var idMeteo = "meteo_" + tipo
	var linkSitoMeteo = "http://classmeteo.weather.com/classmeteo/opencms/it/previsioni/oggi/" + locId;
	if (imgMeteo == '44') {
		srcImage = "/common/img/mf/meteo/" + imgMeteo + ".png";
	} else {
		srcImage = "http://classmeteo.weather.com/icons/31x31/" + imgMeteo + ".png";
	}
	divMeteo =	"<div id='" + idMeteo + "' class='floatL'>";
	divMeteo +=	"<div class='floatL h32'>"
	divMeteo += "<div class='pT0 floatL h32'><a href='" + linkSitoMeteo + "' target='_blank'><img src='" + srcImage + "' height='31px' width='31px' border='0' hspace='5'/></a></div>"
	divMeteo += "<div class='floatL pT3 pright8'>"
	divMeteo += "<div align='left'><a href='" + linkSitoMeteo + "' target='_blank' class='dataHeader'><span class='white b'>" + titMeteo + "</span></a></div>"
	divMeteo += "<div align='left'><span class='dataHeader'>" + testoMeteo + "</span></div></div>"
	divMeteo += "<div class='floatL pT0 pright8'><span class='headerL b'>" + tempMeteo + "°</span></div>"
	divMeteo += "<div class='floatL chiudi_meteo'><a onclick =javascript:delLoc('" + tipo + "') class='cur'><img src='/common/img/mf/meteo/close.png' width='10' height='10' /></a></div></div>";
	
	return divMeteo;
}

//AGGIUNGO LOCALITA'
function addLoc(localita)
{		
	document.getElementById('Location').style.display='none';
	document.getElementById('fade').style.display='none';
	
	//alert(localita);
	var loc1 =  getCookie('meteoLoc', 'loc1:');
	if (loc1) {
		callWSMeteo ('loc2', localita);	
		document.getElementById('meteo_aggiungi').style.display='none';		
	} else {
		callWSMeteo ('loc1', localita);
		var myLoc = getCookie('meteoLoc', 'loc:');
		if (myLoc && myLoc != 'false') document.getElementById('meteo_aggiungi').style.display='none';
		var loc2 = getCookie('meteoLoc', 'loc2:');
		if (loc2) document.getElementById('meteo_aggiungi').style.display='none';		
	}
	
	document.getElementById('locAdd').value='';
	document.getElementById("showIploc").innerHTML="";	
}

//CANCELLO LOCALITA'
function delLoc(tipo)
{	
	if (tipo == 'loc') {
		document.getElementById('meteo_loc').style.display='none';
		setCookie('meteoLoc', 'loc:', 'false', '525600');
		delCookie('sessionLoc', 'loc:','10');
	} else if (tipo == 'loc1') {
		document.getElementById('meteo_loc1').style.display='none';
		delCookie('meteoLoc', 'loc1:','525600');
		delCookie('sessionLoc', 'loc1:','10');
	} else if (tipo == 'loc2') {
		document.getElementById('meteo_loc2').style.display='none';
		delCookie('meteoLoc', 'loc2:','525600');
		delCookie('sessionLoc', 'loc2:','10');
	}
	
	document.getElementById('meteo_aggiungi').style.display='block';		
}

//TENDINA CON ELENCO LOCALITA'
function showLoc(str) {
	
	var ricerca = document.getElementById('ricerca').checked;
	var ricerca2 = document.getElementById('ricerca2').checked;
	var status = 'true';
		
	if (ricerca2 == false){
		cerca = 'italy';
	} else {
		cerca = 'world';
	}
	//alert(cerca);
	if (str.length==0)
	{ 
		document.getElementById("showIploc").innerHTML="";
		return;
	} else if (str.length==1) { 
		return;
	} else {
		
		var pars = 'locId=&ipAdress=&list=' + str + '&ricerca=' + cerca;
		new Ajax.Request('/common/inc/meteo/meteo.asp',
		{   method:'get',
			parameters: pars,
			onSuccess: function(transport)
			{    
			//alert(transport.responseText);
						
			if (window.DOMParser)
			{
			    var parser = new window.DOMParser();
			    var docXml = parser.parseFromString(transport.responseText,'text/xml');
			}
			else // Internet Explorer
			{
			    docXml = new ActiveXObject("Microsoft.XMLDOM");
			    docXml.async="false";
			    docXml.loadXML(transport.responseText);								  
			} 
				
				var statusServer = getCookie('sessionLoc', 'stato:');
				if (statusServer) {
					if (statusServer == 'false') status='false';
					
				} else if(transport.responseText.indexOf('result="KO">')> -1) {	
				
					var codeStatus = docXml.getElementsByTagName("Code")[0].childNodes[0].nodeValue
					if (codeStatus == '16')	{
						status = 'false';
						setCookie('sessionLoc', 'stato:', 'false', '5');
					}
				}
				
				if (status == 'true') {
				
					var selectLoc =  "";
					var root = docXml.getElementsByTagName('return');
					//alert(root.length);
					if (root.length > 0) {
						
						selectLoc = "<select name='iploc' id='iploc' class='w180 peT2 h18 titLogBK'>";
						for (i=0;i<root.length;i++)
						{
							descrLoc = docXml.getElementsByTagName("prsntNm")[i].childNodes[0].nodeValue;
							descrLoc = ReplaceAll(descrLoc,"'","&#39;")
							descrLoc = descrLoc.replace("^","");
							descrLoc = descrLoc.replace(":","");
							selectLoc += "<option value='" + docXml.getElementsByTagName("locId")[i].childNodes[0].nodeValue + "|" + descrLoc + "'>" + docXml.getElementsByTagName("prsntNm")[i].childNodes[0].nodeValue + ", " + docXml.getElementsByTagName("stCd")[i].childNodes[0].nodeValue + ", " + docXml.getElementsByTagName("cntryCd")[i].childNodes[0].nodeValue + "</option>";
						}
						selectLoc += "</select>";
						//alert(selectLoc);
						document.getElementById("showIploc").innerHTML = selectLoc;
					} else {
						document.getElementById("showIploc").innerHTML = "<span class='pT5'>nessun risultato</span>";
					}
				} else {
					document.getElementById("showIploc").innerHTML = "<span class='pT5'>servizio KO</span>";
				}
			}
		});											
	}
}

function ReplaceAll(Source,stringToFind,stringToReplace){

  var temp = Source;
    var index = temp.indexOf(stringToFind);
        while(index != -1){
            temp = temp.replace(stringToFind,stringToReplace);
            index = temp.indexOf(stringToFind);
        }
        return temp;
}

//COOKIE
function getCookie(name, value) {
	var myCookie = readCookie(name);
	//alert(myCookie);
	if (myCookie) {
		var arrayLoc = myCookie.split("^");
		var valore = '';
		for (var i = 0; i < arrayLoc.length; i++) {
			//alert (arrayLoc[i]);
			if(arrayLoc[i].indexOf(value)> -1) {
				valore = arrayLoc[i].replace(value,'');
				if ( valore != '')	return valore;
			}
		}
	} 
	return null;	
}

function delCookie(name, value, expires) {
	var myCookie = readCookie(name);
	//alert(myCookie);
	if (myCookie) {
		var arrayLoc = myCookie.split("^");
		var valore = '';
		for (var i = 0; i < arrayLoc.length; i++) {
			if(arrayLoc[i].indexOf(value)> -1) {
				valore += arrayLoc[i].replace(arrayLoc[i],value) + '^';
			} else {
				valore += arrayLoc[i] + '^';
			}
		}
		//alert(valore);
		createCookie(name, valore.replace('stato:true^','stato:true'), expires);	
	} 
}

function setCookie(name, name2, value, expires) {
	var myCookie = readCookie(name);	
	var valore = '';		
	if (myCookie) {
		var arrayLoc = myCookie.split("^");
		for (var i = 0; i < arrayLoc.length; i++) {
			if(arrayLoc[i].indexOf(name2)> -1) {
				valore += arrayLoc[i].replace(arrayLoc[i],name2 + value) + '^';
			} else {
				valore += arrayLoc[i] + '^';
			}
		}				
		
	} else {
		var valueC = 'loc:^loc1:^loc2:^stato:true';
		valore = valueC.replace(name2,name2 + value);		
	}
	createCookie(name, valore.replace('stato:true^','stato:true'), expires);
}

function createCookie(name,value,minute) {	
	if (minute) {
		var date = new Date();
		date.setTime(date.getTime()+(minute*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function createCookieOld(name,value,days) {	
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	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(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function keyDown(valore) 
{ 
  var t;
  if ( t ) 
  { 
    clearTimeout( t ); 
    t = setTimeout(function() { showLoc(valore); }, 1000);
  } 
  else 
  { 
    t = setTimeout(function() { showLoc(valore); }, 1000);	
  } 
} 

var typewatch = function(){

    var timer = 0;
    return function(valore, ms){
        clearTimeout (timer);
        timer = setTimeout(function() { showLoc(valore); }, ms);
    }
}()

