function checkForm(formname) {
	var form = document.forms[formname];	
	var elemArray = form.elements;
	var a=0;
	var parametri="";
	errore = Array();
	
	for (var i = 0; i < elemArray.length; i++) {
	
		switch(elemArray[i].type.toLowerCase()) {
			case("text"):
			case("select-one"):
				if(!validate(elemArray[i].type.toLowerCase(), elemArray[i].id, elemArray[i].value)) errore[a] = 1;
				else {
					errore[a] = 0;
					parametri += elemArray[i].name+'='+elemArray[i].value+'&';
				}
			 break;
			 
			case("checkbox"):
				if(!validate(elemArray[i].type.toLowerCase(), elemArray[i].id, elemArray[i].checked)) errore[a] = 1;
				else {
					errore[a] = 0;
					parametri += elemArray[i].name+'='+elemArray[i].value+'&';
				}
					
			 break;
		}
		a++;
	}
	
	for (var j = 0; j < errore.length; j++) {
		if(errore[j]==1) var check_error = 1;
	}

	if(check_error!=1) {
		//form.submit();
		parametri = parametri.replace(/&$/,"");
		pulisci_ajax("contenuto_casella_3", "<div id='loading'><img src='http://www.hotelkeys.it/HK/images/loading.gif'></div>");
		showPagina("http://www.hotelkeys.it/HK/send_mail.php", parametri, "contenuto_casella_3", "<div id='loading'><img src='http://www.hotelkeys.it/HK/images/loading.gif'></div>");
	}
}

function validate(tipo, id, valore) {	
	var tipo = tipo.toLowerCase();
	
	if(valore=="Nome Struttura" || valore=="Nome e Cognome Referente" || valore=="Indirizzo Email" || valore=="Recapito Telefonico" || valore=="Note") valore="";
	
	switch(tipo) {
		case("text"):
			if(valore=="") {
				var class_id = document.getElementById(id);
				class_id.className = "errore";
				return false;
			}
			else {
				var class_id = document.getElementById(id);
				
				if(id.indexOf("mail")!=-1 && !emailCheck(valore)) {
					class_id.className = "errore";
					return false;
				}
				else {
					var class_id = document.getElementById(id);
					class_id.className = class_id.className.replace(/\errore/g,"");
					return true;
				}
			}
		 break;
		 
		case("select-one"):
			if(valore==0 || valore=="") {
				var class_id = document.getElementById(id);
				class_id.className = "errore";
				return false;
			}
			else {
				var class_id = document.getElementById(id);
				class_id.className = class_id.className.replace(/\errore/g,"");
				return true;
			}
		 break;
		
		case("checkbox"):
			if(valore==false) {
				var class_id = document.getElementById(id);
				class_id.className = "errore";
				return false;
			}
			else {
				var class_id = document.getElementById(id);
				class_id.className = class_id.className.replace(/\errore/g,"");
				return true;
			}
		 break;
	}
}

function emailCheck(emailStr) {
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "[^\\s" + specialChars + "]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + "+";
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) {
	    //alert("L'email sembra essere sbagliata: (controlla @ e .)");
	    return false;
	}
	var user = matchArray[1];
	var domain = matchArray[2];
	if (user.match(userPat) == null) {
	    //alert("La parte dell'email prima di '@' non sembra essere valida!");
	    return false;
	}
	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
	    for (var i = 1; i <= 4; i++) {
	        if (IPArray[i] > 255) {
	            //alert("L'IP di destinazione non  valido!");
	            return false;
	        }
	    }
	    return true;
	}
	var domainArray = domain.match(domainPat);
	if (domainArray == null) {
	    //alert("La parte dell'email dopo '@' non sembra essere valida!");
	    return false;
	}
	var atomPat = new RegExp(atom, "g");
	var domArr = domain.match(atomPat);
	var len = domArr.length;
	if (domArr[domArr.length - 1].length < 2 ||
	    domArr[domArr.length - 1].length > 6) {
	    //alert("Il dominio di primo livello (es: .com e .it) non sembra essere valido!");
	    return false;
	}
	if (len < 2) {
	    var errStr = "L'indirizzo manca del dominio!";
	    //alert(errStr);
	    return false;
	}
	return true;
}

function animateSite() {
	$("#contenitore").animate({opacity: 1, height: 768}, {queue:false, duration:1000, easing: 'quadEaseInOut'});
	
	$("#logo").animate({opacity: 1}, {queue:false, duration:1000, easing: 'quadEaseInOut',
		complete:function() {
			$("#logo_testo").animate({opacity: 1}, {queue:false, duration:500, easing: 'quadEaseInOut',
				complete:function() {
					$("#casella_1").animate({height: 349}, {queue:false, duration:500, easing: 'quadEaseInOut'});
					$("#casella_2").animate({height: 349}, {queue:false, duration:500, easing: 'quadEaseInOut'});
					$("#casella_3").animate({height: 349}, {queue:false, duration:500, easing: 'quadEaseInOut',
						complete:function() {
							$("#contenuto_casella_1").animate({opacity: 1}, {queue:false, duration:500, easing: 'quadEaseInOut'});
							$("#contenuto_casella_2").animate({opacity: 1}, {queue:false, duration:500, easing: 'quadEaseInOut'});
							$("#contenuto_casella_3").animate({opacity: 1}, {queue:false, duration:500, easing: 'quadEaseInOut'});
						}
					});
				}
			});
		}
	});
}

function showPagina(pagina, params, div, el_loading) {
	
	xmlhttp2=GetxmlhttpObject();

	if (xmlhttp2==null) {
  		alert ("Browser does not support HTTP Request");
  		return;
  	}
  	
	url= pagina;
	xmlhttp2.onreadystatechange=function() {stateChanged(div, el_loading, pagina)};

	xmlhttp2.open("POST",url,true);
	xmlhttp2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp2.setRequestHeader("Content-length", params.length);
	xmlhttp2.setRequestHeader("Connection", "close");
	xmlhttp2.send(params);
}


function stateChanged(div, el_loading, pagina) {
	
	if (xmlhttp2.readyState==4) {	
		pulisci_ajax(div, el_loading);
		document.getElementById(div).innerHTML= xmlhttp2.responseText;
		ahahEvalJS(div);
		return false;
	} 
}

function GetxmlhttpObject() {

	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			return new XMLHttpRequest();
    	} 
    	catch(e) {
			return false;
    	}
		// branch for IE/Windows ActiveX version
	} 
	else if(window.ActiveXObject) {
   		try {
   			return new ActiveXObject("Msxml2.xmlhttp");
 	 	} 
 	 	catch(e) {
	    	try {
    			return new ActiveXObject("Microsoft.xmlhttp");
    		} 
    		catch(e) {
      			return false;
    		}
		}
	}  
}

function ahahEvalJS(elementId) {
	var scripts = document.getElementById(elementId).getElementsByTagName('script');
	var code;
	for (var i = 0; i < scripts.length; i++) {
		code =	scripts[i].innerHTML ? scripts[i].innerHTML : 
			scripts[i].text ? scripts[i].text : 
			scripts[i].textContent;
		try {
			eval(code);
		} catch(e) {
			alert(e);
		}
	}
}

function pulisci_ajax(div, el_loading) {
	document.getElementById(div).innerHTML = '';
	//alert(el_loading);
	document.getElementById(div).innerHTML= el_loading;
}