function checkForm(objForm, btnToHide){
	var oForm = objForm;
	var aInput = oForm.getElementsByTagName("input");
	var aSelect = oForm.getElementsByTagName("select");
	
	for(var i = 0; i < aInput.length; i++){
		switch(aInput[i].type){
			case "text":
				if((aInput[i].getAttribute("obbligo") == 1) && (trim(aInput[i].value) == '')){
					alert(aInput[i].getAttribute("alert"));
					aInput[i].focus();
					try{
						lockSubmit(document.getElementById("wait"), "submitBtn");
					}
					catch(e){}
					return false;
					break;
				}
				else{
					if((aInput[i].getAttribute("checkTel") == 1) && (aInput[i].value.substr(0, 1) != "0") && (aInput[i].value.substr(0, 1) != "3")){
						alert("Il numero di telefono inserito non e' valido");
						aInput[i].focus();
						try{
							lockSubmit(document.getElementById("wait"), "submitBtn");
						}
						catch(e){}
							return false; 
						}
					if((aInput[i].getAttribute("checkEmail") == 1) && !isValidEmail(aInput[i].value)){
						alert("L'indirizzo e-mail inserito non e' valido");
						aInput[i].focus();
						try{
							lockSubmit(document.getElementById("wait"), "submitBtn");
						}
						catch(e){}
						return false; 
					}
					break;
				}
			/*case "radio":
				if((aInput[i].getAttribute("obbligo") == 1) && !controlloCheck(aInput[i].name, aInput)){
					alert(aInput[i].getAttribute("alert"));
					return false;
					try{
						lockSubmit(document.getElementById("wait"), "submitBtn");
					}
					catch(e){}
					break;
				}
				else{break;}
			case "checkbox":
				if((aInput[i].getAttribute("obbligo") == 1) && !controlloCheck(aInput[i].name, aInput, 0)){
					alert(aInput[i].getAttribute("alert"));
					return false;
					try{
						lockSubmit(document.getElementById("wait"), "submitBtn");
					}
					catch(e){}
					break;
				}
				else{break;}*/
		}
	}

	for(var i = 0; i < aSelect.length; i++){
		if((aSelect[i].getAttribute("obbligo") == 1) && (trim(aSelect[i].options[aSelect[i].selectedIndex].value) == '')){
			alert(aSelect[i].getAttribute("alert"));
			aSelect[i].focus();
			try{
				lockSubmit(document.getElementById("wait"), "submitBtn");
			}
			catch(e){}
			return false;
		}
	}

	try{
		if(!document.getElementsByName("privacy")[0].checked){
			alert("E' necessario dare il consenso al trattamento dei dati personali");
			document.getElementsByName("privacy")[0].focus();
			try{
				lockSubmit(document.getElementById("wait"), "submitBtn");
			}
			catch(e){return false;}
			return false;

		}
	}
	catch(e){}
	
	try{
		if(!document.getElementsByName("parameter_privacy")[0].checked){
			alert("E' necessario dare il consenso al trattamento dei dati personali");
			document.getElementsByName("parameter_privacy")[0].focus();
			try{
				lockSubmit(document.getElementById("wait"), "submitBtn");
			}
			catch(e){return false;}
			return false;
		}
	}
	catch(e){}

	return true;
}

var bCinque = false;
var oInputPromo;

function controlloCheck(sNome, aCampi, nLimite){
	var cnt = false;
	for(var k = 0; k != aCampi.length; k++){
		if((aCampi[k].getAttribute("name") == sNome) && ((aCampi[k].checked == true) || ((aCampi[k].value != "") && (aCampi[k].type == "text")))){
			cnt = true;
		}
	}
	return cnt;
}

function isValidEmail(emailAddress){
	var address = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
	return address.test(emailAddress);
} 

var aEventiFF = {
    "click": "click",
    "keyup": "keyup",
    "keydown": "keydown",
    "keypress": "keypress",
    "focus": "focus",
    "change": "change",
    "load": "DOMContentLoaded"
}
var aEventiIE = {
    "click": "onclick",
    "keyup": "onkeyup",
    "keydown": "onkeydown",
    "keypress": "onkeypress",
    "focus": "onfocus",
    "change": "onchange",
    "load": "DOMContentLoaded"
}

function checkCodice(){
	var nVal = oInputPromo.value;
	if((nVal.length == 5) || bCinque){
		var xml = loadXMLDoc("/webservices/capFiliale.asp?cap=" + nVal);
	
		document.getElementsByName("filiale")[0].value = "sssss";
		document.getElementsByName("filiale")[0].value = xml.selectSingleNode("/xml/@nome").text;
		bCinque = !bCinque;
	}
}

function loadXMLDoc(xmlFile) {
	var xdoc;

	if( window.ActiveXObject && /Win/.test(navigator.userAgent)){
		xdoc = new ActiveXObject("Msxml2.DOMDocument.4.0");

		xdoc.async = false;
		xdoc.load(xmlFile);
		return xdoc;
	}
	else if( document.implementation && document.implementation.createDocument ){
		xdoc = document.implementation.createDocument("", "", null);
		xdoc.load(xmlFile);
		return xdoc;
	}
	else
	{
		return false;
	}
}

function estraiDaXML(oXml, sTag, sAttributo){
	try{
		if (window.ActiveXObject) {
			ret = oXml.selectSingleNode("//zoneCap/cap[contains(text(), '," + sTag + ",')]/@filiale").nodeValue;
			if(ret == null){
				ret = "CAP non riconosciuto";
			}
		}
		// code for Mozilla, Firefox, Opera, etc.
		else if (document.implementation && document.implementation.createDocument) {
			aRet = oXml.getElementsByTagName("cap");
			for(var f = 0; f != aRet.length; f++){
				if(aRet[f].childNodes[0].nodeValue.indexOf("," + sTag + ",") != -1){
					ret = aRet[f].getAttribute("filiale");
				}
			}
		} 
		return ret;
	}
	catch (exc) { return "CAP non riconosciuto"; }
}

function aggiungiListener(sEvento, fFunzione, oObj){
    if(oObj.addEventListener){
        oObj.addEventListener(eval("aEventiFF." + sEvento), fFunzione, true);
    }
    else {
        oObj.attachEvent(eval("aEventiIE." + sEvento), fFunzione);
    }
}

function trim(stringa) {
	while (stringa.substring(0, 1) == ' ') {
		stringa = stringa.substring(1, stringa.length);
	}
	while (stringa.substring(stringa.length - 1, stringa.length) == ' ') {
		stringa = stringa.substring(0, stringa.length - 1);
	}
	return stringa;
}

try{
	oInputPromo = document.getElementsByName("cap")[0];

	aggiungiListener("keyup", checkCodice, oInputPromo);
}
catch(exc) {}