function doit() {

	if (valid(document.forms[0],'s')) {
		document.forms[0].submit();
		return true;
	} else {
		return false;
	}	
}



function shw(){
}

function setChkBox(fld){
	fldroot = fld.name.substr(2);
	for(i=0;i<fld.form.length;i++){
		if(fld.form.elements[i].name.indexOf(fldroot)==2){
			if(fld.form.elements[i].name.slice(0,2)!='nn'){
				if(fld.form.elements[i].value==0){
					fld.form.elements[i].value=1;
				}else{
					fld.form.elements[i].value=0;
				}
				break;
			}
		}
	}
}

function confdel(){
	if (confirm("Vuoi cancellare il record?")== true){
		return true;
	}else{
		return false;
	}
}
function confrecall(){
	if (confirm("Vuoi riattivare il record?")== true){
		return true;
	}else{
		return false;
	}
}
function Trim(String,TrimChar){
 String += ""        // Force argument to string.
 TrimChar += ""      // Force argument to string.
 if((TrimChar == "") || (!(TrimChar.length == 1)))
 TrimChar = " "
 if(String.length == 0)
  return(String)
 var Count = 0
 for(Count = 0;Count < String.length;Count++)
 {
  if(!(String.charAt(Count) == TrimChar)){
   String = String.substring(Count,String.length);
	 break;
	}
 }
 var Count = 0
 for(Count = String.length -1;Count >= 0;Count--)
 {
  if(!(String.charAt(Count) == TrimChar)){
   String = String.substring(0,Count + 1);
	 break;
	}
 }
 return(String);
}

function chgHidden(ctl){
	for (i = 0; i < ctl.form.length; i++){
		if (ctl.form.elements[i].name == ctl.name){
			if (ctl.form.elements[i-1].value==1){
				ctl.form.elements[i-1].value = 0;
			}else{
				ctl.form.elements[i-1].value = 1
			}
			break;
		}
	}
}

function valid(frm,req){
	//alert('entrato');
	var retval = true;
	var etichetta;
	for (i = 0; i < frm.length; i++){
		if(frm.elements[i].title != ""){
			etichetta = frm.elements[i].title;
		}else{
			etichetta = frm.elements[i].name.substr(2);
		}
		if (retval == true){
			if(frm.elements[i].type == "checkbox"){
				if (frm.elements[i-1].name.substr(0,1) == req){
					if (frm.elements[i-1].value == 0){
						alert("Campo " + etichetta + " obbligatorio!");
						try{
							frm.elements[i].focus();
						}catch(e){
						}
						retval = false;
						break;
					}
				}
			}
			if (frm.elements[i].type.search("hidden") != -1 ){
				if (frm.elements[i].name.substr(0,1) == req){
					switch (frm.elements[i].name.substr(1,1)) {
						case "n" :
							if (frm.elements[i].value == 0||frm.elements[i].value==""){
								alert("Campo " + etichetta + " obbligatorio!");
								retval = false;
								break;
							}
						case "x" :
							if (frm.elements[i].value==""){//frm.elements[i].value == 0||
								alert("Campo " + etichetta + " obbligatorio!");
								retval = false;
								break;
							}
						default :
							if (frm.elements[i].value == ""){
								alert("Campo " + etichetta + " obbligatorio!");
								retval = false;
								break;
							}
					}
				}
			}
			if (frm.elements[i].type.search("text") != -1 || frm.elements[i].type.search("password") != -1){
				if (frm.elements[i].name.substr(0,1) == req){
					switch (frm.elements[i].name.substr(1,1)) {
						case "e" :
							if (frm.elements[i].value==""){
								alert("Campo " + etichetta + " obbligatorio!");
								try{
									frm.elements[i].focus();
								}catch(e){
								}
								retval = false;
								break;
							}
							retval = emailCheck(frm.elements[i].value);
							break;
						case "n" :
							if (frm.elements[i].value == 0||frm.elements[i].value==""){
								alert("Campo " + etichetta + " obbligatorio!");
								try{
									frm.elements[i].focus();
								}catch(e){
								}
								retval = false;
								break;
							}
						case "x" :
							if (frm.elements[i].value==""){//frm.elements[i].value == "0"||
								alert("Campo " + etichetta + " obbligatorio!");
								try{
									frm.elements[i].focus();
								}catch(e){
								}
								retval = false;
								break;
							}
						default :
							if (frm.elements[i].value == ""){
								alert("Campo " + etichetta + " obbligatorio!");
								try{
									frm.elements[i].focus();
								}catch(e){
								}
								retval = false;
								break;
							}
					}
				}
				if(frm.elements[i].value != ""){
					//alert(frm.elements[i].name.substr(1,1));
					switch (frm.elements[i].name.substr(1,1)) {
						case "d" :
				 			retval = isValidDate(frm.elements[i].value);
							break;
				 		case "e" :
				 			retval = emailCheck(frm.elements[i].value);
							break;
				 		case "n" :
							re = /[\.,]/gi;
							if(isNaN(frm.elements[i].value.replace(re, ""))){
								alert("Campo '" + etichetta + "' non è un numero!");
								try{
									frm.elements[i].focus();
								}catch(e){
								}
								retval = false;
							}
							break;
				 		case "v" :
							re = /[\.,]/gi;
							if(isNaN(frm.elements[i].value.replace(re, ""))){
								alert("Campo '" + etichetta + "' non è un numero!");
								try{
									frm.elements[i].focus();
								}catch(e){
								}
								retval = false;
							}
							break;
				 		case "p" :
							if(frm.elements[i].name.substr(0,1)=="s"){
					 			if(frm.elements[i].value != eval(frm.elements["np" + frm.elements[i].name.substr(2)]).value){
									alert("Le password non corrispondono!");
									retval = false;
									try{
										frm.elements[i].focus();
									}catch(e){
									}
								}
							}
							if(frm.elements[i].name.substring(2).toLowerCase()=="password"){
									frm.elements[i].value = Trim(frm.elements[i].value," ");
									re = /[ ]/gi;
									var spaz = frm.elements[i].value.search(re);
									if(spaz!=-1){
										alert("Spazi non permessi nella Password!");
										retval = false;
										break;
									}
								if(frm.elements[i].value.length < 4 || frm.elements[i].value.length > 12){
									alert("Password min. 4 e max. 12 caratteri!");
									retval = false;
									try{
										frm.elements[i].focus();
									}catch(e){
									}
								}else{
								}
							}
							break;
				 		case "t" :
							if(frm.elements[i].name.substring(2).toLowerCase()=="userid"){
									frm.elements[i].value = Trim(frm.elements[i].value," ");
									re = /[ ]/gi;
									var spaz = frm.elements[i].value.search(re);
									if(spaz!=-1){
										alert("Spazi non permessi nel Username!");
										retval = false;
										break;
									}
								if(frm.elements[i].value.length < 4 || frm.elements[i].value.length > 8){
									alert("Username min. 4 e max. 8 caratteri!");
									retval = false;
									try{
										frm.elements[i].focus();
									}catch(e){
									}
								}else{
								}
							}
							if(frm.elements[i].name.substring(2,3).toLowerCase()=="tel"){
								re = /[ \.\/]/gi;
								frm.elements[i].value = frm.elements[i].value.replace(re, "");
								/*re = /^+[0-9]{2}/gi;
								frm.elements[i].value = frm.elements[i].value.replace(re, "");*/
								var valtel = 1;
								if(frm.elements[i].value.length < 5 ){
									valtel=0;
								}
								if(frm.elements[i].value.length < 5 ){
									valtel=0;
								}
								if(valtel==0){
									alert("Numero telefono non esistente!");
									retval = false;
									try{
										frm.elements[i].focus();
									}catch(e){
									}
								}
							}
							break;
						default :
							retval = true;
					}
				}
			}
			if (frm.elements[i].type == "radio"){
				var chkfrm = false;
				if (frm.elements[i].name.substr(0,1) == req){
					for (h = 0; h < frm.elements[frm.elements[i].name].length; h++) {
						rb = frm.elements[frm.elements[i].name][h];
						if (rb.checked&&rb.value!=0&&rb.value!='') {
							chkfrm = rb.checked;
							break;
						}
					}
					if (chkfrm == false){
					alert("Campo " + etichetta + ' ' + 'obbligatorio');
					retval = chkfrm;
					break;
					}
				}
			}
			if (frm.elements[i].type.search("select") != -1){
				if (frm.elements[i].name.substr(0,1) == req){
					if (frm.elements[i].selectedIndex == 0){
						//if (navigator.appName.indexOf("Microsoft") != -1){
							//alert("Campo " + frm.elements[i].title + " obbligatorio!")
						//}else{
							alert("Campo " + etichetta + " obbligatorio!")
						//}
					frm.elements[i].focus();
					retval = false;
					break;
					}
				}
			}
		}
	}
	return eval(retval);
}

function isValidDate(dateStr) {
	// DD/MM/YY   DD/MM/YYYY   DD-MM-YY   DD-MM-YYYY
	var datePat = /^(\d{1,2})(\/|-|\.)(\d{1,2})\2(\d{2}|\d{4})$/;
	// 4 digit year entry: var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		alert("Il formato della data non è valido!");
		return false;
	}
	month = matchArray[3]; 
	day = matchArray[1];
	year = matchArray[4];
	if (month < 1 || month > 12) { 
		alert("Il mese deve essere compreso tra 1 e 12");
		return false;
	}
	if (day < 1 || day > 31) {
		alert("Il giorno deve essere compreso tra 1 e 31");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("Mese "+month+" non ha 31 giorni!");
		return false;
	}
	if (month == 2) {
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
		alert("Febbraio " + year + " non ha " + day + " giorni!");
		return false;
	  }
	}
	return true;
}



function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var firstChars=validChars
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom="(" + firstChars + 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("E-mail non corretta (controlla @ e . )")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
	    alert("la tua \'user name\' non è valida!")
	    return false
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("Email non valida! (dominio non valido)")
	  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>4) {
	   alert("E-mail deve finire con 2 a 4 lettere!")
	   return false
	}
	if (domArr[domArr.length-1].length==3 && len<2) {
	   var errStr="Email non valida! (nome host mancante)"
	   alert(errStr)
	   return false
	}
	return true;
}

function changestatus(frm,campo,ulimit){
	//alert(campo+ulimit);
	fld = frm.elements[campo];
	if(fld.value < ulimit){
		 fld.value++;
	}else{
		fld.value = 0;
	}
	 document.images[campo].src = document.images[campo].src.slice(0,-5) + fld.value +".gif";
	 //eseguire un onchange se esiste
	 if(frm.elements[campo].onchange){
		 frm.elements[campo].onchange();
	 }
}
