/*#####################################################################################
## STRINGHE																			 ##
#####################################################################################*/
function ContaChar(variabile,char){
	variabile=variabile.match('/['+char+']/g');
	if(!variabile) return 0; else return variabile.length;
}
//-------------------------------------------------------------------------------------
function ContaNumeri(variabile){
	variabile=variabile.match(/[0-9]/g);
	if(!variabile) return 0; else return variabile.length;
}
//-------------------------------------------------------------------------------------
function ContaMinuscole(variabile){
	variabile=variabile.match(/[a-z]/g);
	if(!variabile) return 0; else return variabile.length;
}
//-------------------------------------------------------------------------------------
function ContaMaiuscole(variabile){
	variabile=variabile.match(/[A-Z]/g);
	if(!variabile) return 0; else return variabile.length;
}
//-------------------------------------------------------------------------------------
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;
}

/*#####################################################################################
## CONTROLLI																		 ##
#####################################################################################*/
function check($nomecampo){
	var $msg="";
	for ($nomeform in forms){
		if(forms[$nomeform][$nomecampo]){
			if(forms[$nomeform][$nomecampo]["etichetta"]) $etichetta=forms[$nomeform][$nomecampo]["etichetta"]; else $etichetta="";
			if(forms[$nomeform][$nomecampo]["opzioni"]  ) $opz      =forms[$nomeform][$nomecampo]["opzioni"];   else $opz="";
			if(forms[$nomeform][$nomecampo]["min_len"]  ) $min      =parseInt(forms[$nomeform][$nomecampo]["min_len"]);   else $min=0;
			if(forms[$nomeform][$nomecampo]["max_len"]  ) $max      =parseInt(forms[$nomeform][$nomecampo]["max_len"]);   else $max=0;
			if(forms[$nomeform][$nomecampo]["charset"]  ) $charset  =forms[$nomeform][$nomecampo]["charset"];   else $charset="";

			$$($nomecampo).value=trim($$($nomecampo).value);
			if($opz=="lower") $$($nomecampo).value=$$($nomecampo).value.toLowerCase();
			if($opz=="upper") $$($nomecampo).value=$$($nomecampo).value.toUpperCase();

			$valore=$$($nomecampo).value;
			
			if(!$msg && $min>0 && $min==$max && $valore.length!==$min) $msg="Il campo "+$etichetta+" deve contenere "+$min+" caratteri."
			if(!$msg && $min>0 && $valore.length<$min) $msg="Il campo "+$etichetta+" deve contenere almeno "+$min+" caratteri.";
			if(!$msg && $max>0 && $valore.length>$max) $msg="Il campo "+$etichetta+" può contenere al massimo "+$max+" caratteri.";

			if(!$msg && $charset){
				$charset=$charset.replace("09","0123456789");
				$charset=$charset.replace("az","abcdefghijklmnopqrstuvwxyz");
				$charset=$charset.replace("AZ","ABCDEFGHIJKLMNOPQRSTUVWXYZ");

				for(i=0;i<$valore.length;i++){
					$k=$valore.charAt(i);
					if (($charset).indexOf($k) < 0) $msg="Il campo "+$etichetta+" contiene caratteri non consentiti. [ => "+$k+"]";
				}
			}
		}
	}
	return $msg;
};
//-------------------------------------------------------------------------------------
function addControlliKeys($nomeform){
	for ($input in forms[$nomeform]){
		if($$($input))$$($input).onkeypress=function(){return controllokey(this);}
		if($$($input))$$($input).onchange = function(){return controllochange(this);}
		if(forms[$nomeform][$input]['max_len'] && $$($input)) $$($input).setAttribute('maxLength', parseInt(forms[$nomeform][$input]['max_len']));
	};
};
//-------------------------------------------------------------------------------------
function controllochange($obj){
	for ($nomeform in forms){
		for ($input in forms[$nomeform]){
			if($input==$obj.name){
				if(forms[$nomeform][$input]['opzioni'])$opz=forms[$nomeform][$input]['opzioni']; else $opz="";
				if($opz=="lower") $$($input).value=$$($input).value.toLowerCase();
				if($opz=="upper") $$($input).value=$$($input).value.toUpperCase();
			}
		}
	}
}
//-------------------------------------------------------------------------------------
function controllokey($obj){
	for ($nomeform in forms){
		for ($input in forms[$nomeform]){
			if($input==$obj.name){
				if(forms[$nomeform][$input]['opzioni'])$opz=forms[$nomeform][$input]['opzioni']; else $opz="";
				if(forms[$nomeform][$input]['charset'])$charset=forms[$nomeform][$input]['charset']; else $charset="";
			}
		}
	}
	$v=window.event.keyCode;
	if(!$v || $v==0 || $v==8 || $v==9 || $v==13 || $v==27) return null;
	if($opz=="upper"){
		if ($v>=97 && $v<=122) {window.event.keyCode=$v-32; $v-=32;}
	}
	if($opz=="lower"){
		if ($v>=65 && $v<=90) {window.event.keyCode=$v+32; $v+=32;}
	}
	if(!$charset) return true;
	$k=String.fromCharCode($v);
	$charset=$charset.replace("09","0123456789");
	$charset=$charset.replace("az","abcdefghijklmnopqrstuvwxyz");
	$charset=$charset.replace("AZ","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	if (($charset).indexOf($k) > -1) return true; else return false;
}
//-------------------------------------------------------------------------------------
function controlla_form($nomeform){
	$errore=false;
	for ($input in forms[$nomeform]){
		if(!$errore){
			$errore=check($input);
			if($errore) $input_focus=$input;
		}
	}
	return $errore;
}
/*#####################################################################################
## AJAX																				 ##
#####################################################################################*/
function assegnaXMLHttpRequest() {
	var
	XHR = null,
	browserUtente = navigator.userAgent.toUpperCase();
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
	XHR = new XMLHttpRequest();
	else if(
	window.ActiveXObject &&
	browserUtente.indexOf("MSIE 4") < 0
	) {
	if(browserUtente.indexOf("MSIE 5") < 0)
	XHR = new ActiveXObject("Msxml2.XMLHTTP");
	else
	XHR = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return XHR;
}
function controllo_mail(mail){
	var espressione = /^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-_]+(\.[a-z0-9-_]+)+$/;	
	if (espressione.test(mail)) return true;
	else return false;
}
function $$(id){
	return document.getElementById(id);
}