// JavaScript Document
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;

function getMouseXY(e) {
 	if (IE) { 
    	tempX = event.clientX + document.body.scrollLeft;
    	tempY = event.clientY + document.body.scrollTop;
  	} else {  
    	tempX = e.pageX;
    	tempY = e.pageY;
  	}  
 
  	if (tempX < 0) 
		tempX = 0;
	else 
		tempX -= 125;
		
  	if (tempY < 0) 
		tempY = 0;
	else
		tempY+= 150;
	
	return (true)
}
	
function OpenWindow (URL, WinName, width, height, pos) { 
	if (pos==false) { 
		tempX = (screen.width-width)/2;
		tempY = (screen.height-width)/2;
	}
	var Features = "width=" + width;
	Features += ",height="+ height;
	Features += ",left=" + tempX +",top=" + tempY + ",screenX=" + tempX +",screenY=" + tempY + ",resizable=no,status=no,toolbar=no,menubar=no,scrollbars=no";
	window.open(URL, WinName, Features);
	}
	
function OpenCalendar(sender,lang){
	OpenWindow('calendario.aspx?date=' + sender + '&lang=' + lang,'calendar',190,165,true);
}

function OpenToFriend(lang){
	var page = "";
	switch(lang)
	{
		case "IT":
			page = "";
			break;
	}
	OpenWindow(page,'',250,220,false);
}

function Print() { 
	if (window.print)
		window.print();
	else 
		alert ('Utilizzare la funzione di Stampa del browser.'); 
}

//Close Window
function Close() { 
	window.close();
}


function Redirect(page) {
    if(!opener) self.location.href = page;
}

// JavaScript Document
function domTableEnhance()
{
	if(!document.createTextNode){return;}
	var tableClass='table';
	var colourClass='tablecolouredrow';
	var uncolourClass='tableuncolouredrow';
	var hoverClass='tablerowhover';
	var activeClass='tableactive';
	var alltables,bodies,i,j,k,addClass,trs,c,a;
	alltables=document.getElementsByTagName('table');
	for (k=0;k<alltables.length;k++)
	{
		if(!alltables[k].className.match(tableClass))
		{
			return;
		}
		bodies=alltables[k].getElementsByTagName('tbody');
		for (i=0;i<bodies.length;i++)
		{
			trs=bodies[i].getElementsByTagName('tr');
			for (j=0;j<trs.length;j++)
			{
				tds = trs[j].getElementsByTagName('td');
				if(tds.length>0)
				{
					addClass=j%2==0?' '+colourClass:' ' + uncolourClass ;
					trs[j].className=trs[j].className+addClass;
					for (t=0;t<tds.length;t++)
					{
						/*
						tds[t].onclick=function()
						{
							if(this.className.match(activeClass))
							{
								var rep=this.className.match(' '+activeClass)?' '+activeClass:activeClass;
								this.className=this.className.replace(rep,'');
							} else {
								this.className+=this.className?' '+activeClass:activeClass;
							}
						}
						*/
						tds[t].onmouseover=function()
						{
							this.className=this.className+' '+hoverClass;
						}
						tds[t].onmouseout=function()
						{
							var rep=this.className.match(' '+hoverClass)?' '+hoverClass:hoverClass;
							this.className=this.className.replace(rep,'');
						}
					}
				}
			}
		}
	}		
} 

function ValidaForm(form,lang) {
	var msg = "";
	notAlpha = /[^a-z\'\ä\à\à\è\é\ì\ò\ö\ù\ü\ß\s+]/gi;
	var bfocus;
	var validdarrivo;
	var validdpartenza;
	var who;
	
	//Data oggi
	var currdate = new Date();
	var curryear = currdate.getYear();
	var currmonth = currdate.getMonth() + 1;
	var currday = currdate.getDate();
	var datenow = parseInt(curryear + (currmonth<10?'0':'') + currmonth + (currday<10?'0':'') + currday);
			
	//Validazione Nome
 	if (form.nome.value.length == 0){
    	switch(lang){
			case "IT":
				msg = "Inserire	il campo \"Nome\"\n";
				break;
			case "DE":
				msg = "Tragen Sie ins Feld ein \"Nachname\"\n";
				break;
			case "EN":
				msg = "Enter the field \"First Name\"\n";
				break;
		}
		form.nome.focus();
		bfocus = true; 
	}
    else if (notAlpha.test(form.nome.value)) {
    	switch(lang){
			case "IT":
				msg += "Inserire un valore valido nel campo \"Nome\"\n";
				break;
			case "DE":
				msg += "Tragen Sie in ein gültiges Feld ein \"Nachname\"\n";
				break;
			case "EN":
				msg += "Enter a valid field \"First Name\"\n";
				break;
		}
		form.nome.focus();
		bfocus = true; 
	} 
 	
	//Validazione Cognome
  	if (form.cognome.value.length == 0){
		switch(lang){
			case "IT":
				msg += "Inserire il campo \"Cognome\"\n";
				break;
			case "DE":
				msg += "Tragen Sie ins Feld ein \"Vorname\"\n";
				break;
			case "EN":
				msg += "Enter the field \"Last Name\"\n";
				break;
		}
		if (!bfocus) {
			form.cognome.focus();
			bfocus = true; 
		}
  	}
	else if (notAlpha.test(form.cognome.value)) {
		switch(lang){
			case "IT":
				msg += "Inserire un valore valido nel campo \"Nome\"\n";
				break;
			case "DE":
				msg += "Tragen Sie in ein gültiges Feld ein \"Vorname\"\n";
				break;
			case "EN":
				msg += "Enter a valid field \"Last Name\"\n";
				break;
		}
    	if (!bfocus){
			form.cognome.focus();
			bfocus = true; 
		} 
   }
	
	// Validazione Email
	if (form.email.value.length == 0){
		switch(lang){
			case "IT":
				msg += "Inserire il campo \"Email\"\n";
				break;
			case "DE":
				msg += "Tragen Sie ins Feld ein \"Email\"\n";
				break;
			case "EN":
				msg += "Enter the field \"Email\"\n";
				break;
		}
		if (!bfocus){
			form.email.focus();
			bfocus = true; 
		} 
 	 }
 	else {
    	rem = /^\w+((\.\w+)|(\-\w+))*\@[a-z0-9]+((\.[a-z0-9]+)|(\-[a-z0-9]+))*\.[a-z0-9]+$/i;
    	if (!(rem.test(form.email.value))) {
       		switch(lang){
				case "IT":
					msg += "Inserire un valore valido nel campo \"Email\"\n";
					break;
				case "DE":
					msg += "Tragen Sie in ein gültiges Feld ein \"Email\"\n";
					break;
				case "EN":
					msg += "Enter a valid field \"Email\"\n";
					break;
			}
  			if (!bfocus){
				form.email.focus();
				form.email.select();
				bfocus = true; 
			}  
		} 	
   	}
	
	//Validazione data arrivo
	if(form.darrivo.value.length>0){
		if(checkdate(form.darrivo.value)==false){
			switch(lang){
				case "IT":
					msg += "Inserire un valore valido (gg/mm/aaaa) nel campo \"Arrivo\"\n";
					break;
				case "DE":
					msg += "Tragen Sie in ein gültiges Feld ein (dd/mm/yyyy) \"Anreise\"\n";
					break;
				case "EN":
					msg += "Enter a valid value (dd/mm/yyyy) in the field \"Arrival\"\n";
					break;
				
			}
			if (!bfocus){
				form.darrivo.focus();
				form.darrivo.select();
				bfocus = true; 
			} 
		} 
		else{
			var darrivof = parseInt(form.darrivo.value.substr(6,4) + '' + form.darrivo.value.substr(3,2) + '' + form.darrivo.value.substr(0,2));
			// Data arrivo>=Oggi
			if(darrivof < datenow){
				switch(lang){
					case "IT":
						msg += "La data di arrivo deve essere posteriore alla data odierna\n";
						break;
					case "EN":
						msg += "The arrival date must be greater then today\n";
						break;
					case "DE":
						msg += "Das Ankunftsdatum muss in der Zukunft sein\n";
						break;
				}
				if (!bfocus){
					form.darrivo.focus();
					form.darrivo.select();
					bfocus = true; 
				}

			}
			else validdarrivo = true;
		} 
	}

	//Validazione data partanza
	if(form.dpartenza.value.length>0){
		if(checkdate(form.dpartenza.value)==false){
			switch(lang){
				case "IT":
					msg += "Inserire un valore valido (gg/mm/aaaa) nel campo \"Partenza\"\n";
					break;
				case "EN":
					msg += "Enter a valid value (dd/mm/yyyy) in the field \"Departure\"\n";
					break;
				case "DE":
					msg += "Tragen Sie in ein gültiges Feld ein (dd/mm/yyyy) \"Abreise\"\n";
					break;
			}
			if (!bfocus){
				form.dpartenza.focus();
				form.dpartenza.select();
				bfocus = true; 
			} 
		} 
		else{
			var dpartenzaf = parseInt(form.dpartenza.value.substr(6,4) + '' + form.dpartenza.value.substr(3,2) + '' + form.dpartenza.value.substr(0,2));
			// Data partenza>=Oggi
			if(dpartenzaf < datenow){
				switch(lang){
				case "IT":
					msg += "La data di partenza deve essere posteriore alla data odierna\n";
					break;
				case "EN":
					msg += "The departure date must be greater then today\n";
					break;
				case "DE":
					msg += "Das Abreisedatum muss in der Zukunft sein\n";
					break;
				}
				if (!bfocus){
					form.dpartenza.focus();
					form.dpartenza.select();
					bfocus = true; 
				}
			}
			else validdpartenza = true;
		} 
	}
	
	//Confronto data arrivo e di partenza
	if (validdarrivo && validdpartenza){
		var darrivof = parseInt(form.darrivo.value.substr(6,4) + '' + form.darrivo.value.substr(3,2) + '' + form.darrivo.value.substr(0,2));
		var dpartenzaf = parseInt(form.dpartenza.value.substr(6,4) + '' + form.dpartenza.value.substr(3,2) + '' + form.dpartenza.value.substr(0,2));
	 	if(dpartenzaf < darrivof){
			switch(lang){
				case "IT":
					msg += "La data di partenza deve essere posteriore alla data di arrivo\n";
					break;
				case "EN":
					msg += "The departure date must be greater then the arrival day\n";
					break;
				case "DE":
					msg += "Das Abreisedatum muss nach dem Ankunftsdatum sein\n";
					break;
			}
			if (!bfocus){
				form.dpartenza.focus();
				form.dpartenza.select();
				bfocus = true; 
			}
	 	}
	}
	if (msg.length>0) {
	 	alert(msg);
	 	return (false);
	 }
}


function checkdate(sData){
	var Ddata= new Date();
	var Dcuryear = Ddata.getFullYear();
	var Dgiorno=0;
	var Dmese=0;
	var Danno=0;

	if (sData.length<10) return false;
	Dgiorno=(sData.substr(0,2));
	Dmese=(sData.substr(3,2));
	Danno=(sData.substr(6,4));

	if (!( (sData.substr(2,1)=='/')&&(sData.substr(5,1)=='/') ))
 		return false;
	
	if ((isNaN(Dgiorno)) || (isNaN(Dmese)) || (isNaN(Danno))) 
		return false;
		
	if ((Dgiorno<=0) || (Dmese<=0)) 
		return false;
	
	if (Dmese==2)
		{
			if (Danno % 4!=0)
				{
				if (Dgiorno>28) return false;
				}
				else
				{
				if (Dgiorno>29) return false;
				}
		}
	else
	{
		if ( (Dmese==4) || (Dmese==6) || (Dmese==9) || (Dmese==11))
			{
				if (Dgiorno>30) return false;
			}
		else
		{
			if ((Dmese==1) || (Dmese==3) || (Dmese==5) || (Dmese==7) || (Dmese==8) || (Dmese==10) || (Dmese==12))
				{
					if (Dgiorno>31) return false;
				}
			else
				{ return false; }
		}
	}
	return true;
}

// JavaScript Document
IE4=(document.all)? 1:0;
NN6=(!document.all && document.getElementById)? 1:0;
checkbr=(parseInt(navigator.appVersion) > 2)?true:false;
	
function clickswap(numero) {
	if (checkbr)
		{
		 document[String(nome[0])].src=sourceclick[numero].src;			
		 }
}
function changecoloron(qualefoto) {
		if (IE4) document.all[String(qualefoto)].style.borderColor="#B4B47A";
		if (NN6) document.getElementById(qualefoto).style.borderColor="#B4B47A";
   }
function changecoloroff(qualefoto) {
		if (IE4) document.all[String(qualefoto)].style.borderColor="#FFFFFF";
		if (NN6) document.getElementById(qualefoto).style.borderColor="#FFFFFF";
   }
