// ===================================================================
//	il file contiene le seguenti funzioni valide per i seguenti Browser:
//  MS Internet Explorer
//  NetScape
//  Mozilla
//  Scaricate lo stesso file per includerlo nelle vostre pagine, anzichè
//  includere questo prensente nella mia macchina, questo per evitare
//  di appesantire la stessa, Grazie.
//  Cirella Pietro, Roma 09/03/2004 p.cirella@email.it
//  
// ===================================================================
//-------------------------------------------------------------------
// Funzioni per la Trim
//   Ritorna stringhe senza spazi
//-------------------------------------------------------------------
function LTrim(str){
	if (str==null){return null;}
	for(var i=0;str.charAt(i)==" ";i++);
	return str.substring(i,str.length);
	}
function RTrim(str){
	if (str==null){return null;}
	for(var i=str.length-1;str.charAt(i)==" ";i--);
	return str.substring(0,i+1);
	}
function Trim(str){return LTrim(RTrim(str));}
function LTrimAll(str) {
	if (str==null){return str;}
	for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
	return str.substring(i,str.length);
	}
function RTrimAll(str) {
	if (str==null){return str;}
	for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
	return str.substring(0,i+1);
	}
function TrimAll(str) {
	return LTrimAll(RTrimAll(str));
	}
function LPAD(sValore, sLunghezza, sCarattere) {
	var sRisposta;
	sRisposta = sValore
	var i;
	var strTmp = "";
	if(sRisposta.length < sLunghezza)
	{
		for(i=0;i < sLunghezza.length; i++)
		{
			strTmp = strTmp + sCarattere
		}
	}
	return sRisposta + strTmp
}

function RPAD(sValore, sLunghezza, sCarattere) {
	var sRisposta;
	sRisposta = sValore
	var i;
	var strTmp = "";
	if(sRisposta.length < sLunghezza)
	{
		for(i=0;i < sLunghezza.length; i++)
		{
			strTmp = strTmp + sCarattere
		}
	}
	return strTmp + sRisposta
}

function bVerificaRadio(sNameRadio){
	var bRitorno;
	var coll = document.all.item(sNameRadio);
	bRitorno = false;
	if (coll!=null) {
		if (typeof(coll.length) == 'undefined')
		{
			if (eval('document.forms(0).'+ sNameRadio+'.checked') == true) {
				bRitorno=true;				
			}
		}else{
			for (i=0; i<coll.length; i++)
			    if (document.all.item(sNameRadio,i).checked){
					bRitorno=true;
					i=coll.length;
			    }
		}
	}
	return bRitorno;
}

function ValoreRadio(sNameRadio){
	var lRitorno;
	var coll = document.all.item(sNameRadio);
	lRitorno = -1;
	if (coll!=null) {
		if (typeof(coll.length) == 'undefined')
		{
			if (eval('document.forms(0).'+ sNameRadio+'.checked') == true) {
				lRitorno=eval('document.forms(0).'+ sNameRadio+'.value');
			}
		}else{
			for (i=0; i<coll.length; i++)
			    if (document.all.item(sNameRadio,i).checked){
					lRitorno=document.all.item(sNameRadio,i).value;
					i=coll.length;
			    }
		}
	}
	return lRitorno;
}

//-------------------------------------------------------------------
// isNull(value)
//   Ritorna true se il valore è null
//-------------------------------------------------------------------
function isNull(val){return(val==null);}

//-------------------------------------------------------------------
// isBlank(value)
//   Ritorna true se il valore contiener solo spazi
//-------------------------------------------------------------------
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}	function isBlank1(val){
	if(val==null)		{
			alert("vuoto");
		}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}
	
//-------------------------------------------------------------------
// isInteger(value)
//   Ritorna true se il valore contiene numeri
//-------------------------------------------------------------------
function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
}

//-------------------------------------------------------------------
// isNumeric(value)
//   Ritorna true se il valore passato è numerico
//-------------------------------------------------------------------
function isNumeric(val){return(parseFloat(val,10)==(val*1));}

//-------------------------------------------------------------------
// isArray(obj)
// Ritorna true se l'oggetto è un array altrimenti false
//-------------------------------------------------------------------
function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}

//-------------------------------------------------------------------
// isDigit(value)
//   Ritorna true se un singolo carattere è numerico
//-------------------------------------------------------------------
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

//-------------------------------------------------------------------
// isCharacter(value)
//   Ritorna true se il valore è una carattere, compreso l'apice,
//   senza caratteri speciali
//-------------------------------------------------------------------
function isCharacter(Carattere) {
	if (Carattere.length>1){return false;}
	var string="1234567890aàbcdeèéfghiìjklmnoòpqrstuùvwzABCDEFGHIJKLMNOPQRSTUVWZ'";
	if (string.indexOf(Carattere)!=-1){return true;}
	return false;
}

//-------------------------------------------------------------------
// isCharacter(value)
//   Ritorna true se il valore è una carattere, compreso l'apice,
//   senza caratteri speciali
//-------------------------------------------------------------------
function isCharacters(val) {
	if (isBlank(val)){return false;}
	var i;
	var bool;
	for(i=0;i < val.length; i++)
	{
		//alert(val.charAt(i));
		if(isCharacter(val.charAt(i)))
		{
			//alert("si");
		}
		else
		{
			//alert("no");
			return false;
			break;
		};
	}
	return true;
}

//-------------------------------------------------------------------
// setNullIfBlank(input_object)
//   Imposta il campo di un form a "" se è il suo valore isBlank()
//-------------------------------------------------------------------
function setNullIfBlank(obj){if(isBlank(obj.value)){obj.value="";}}

//-------------------------------------------------------------------
// setFieldsToUpperCase(input_object)
//   Imposta toUpperCase() per ogni carattere contenuto nel campo passato 
//-------------------------------------------------------------------
function setFieldsToUpperCase(){
	for(var i=0;i<arguments.length;i++) {
		arguments[i].value = arguments[i].value.toUpperCase();
		}
	}

//-------------------------------------------------------------------
// disallowBlank(input_object[,message[,true]])
//   Verifica se un campo contiene un valore blank.
//   Opzionalmente mostra il messaggio ed imposta il fuoco allo stesso
//-------------------------------------------------------------------
function disallowBlank(obj){
	var msg=(arguments.length>1)?arguments[1]:"";
	var dofocus=(arguments.length>2)?arguments[2]:false;
	if (isBlank(getInputValue(obj))){
		if(!isBlank(msg)){alert(msg);}
		if(dofocus){
			if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
			if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
			obj.focus();
			}
		return true;
		}
	return false;
	}

//-------------------------------------------------------------------
// disallowModify(input_object[,message[,true]])
//   Verifica se il campo passato contiene un valore diverso dal defautValue.
//   Opzionalmente mostra il messaggio ed imposta il fuoco allo stesso
//-------------------------------------------------------------------
function disallowModify(obj){
	var msg=(arguments.length>1)?arguments[1]:"";
	var dofocus=(arguments.length>2)?arguments[2]:false;
	if (getInputValue(obj)!=getInputDefaultValue(obj)){
		if(!isBlank(msg)){alert(msg);}
		if(dofocus){
			if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
			if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
			obj.focus();
			}
		setInputValue(obj,getInputDefaultValue(obj));
		return true;
		}
	return false;
	}

//-------------------------------------------------------------------
// commifyArray(array)
//   Preleva i valori dall'array passato e ritorna gli stessi in una
//   stringa comma-separated
//-------------------------------------------------------------------
function commifyArray(obj){
	var s="";
	if(obj==null||obj.length<=0){return s;}
	for(var i=0;i<obj.length;i++){
		s=s+((s=="")?"":",")+obj[i].toString();
		}
	return s;
	}

//-------------------------------------------------------------------
// getSingleInputValue(input_object,use_default)
//   Funzione di utilizzata dal altre funzioni
//-------------------------------------------------------------------
function getSingleInputValue(obj,use_default) {
	switch(obj.type){
		case 'radio': case 'checkbox': return(((use_default)?obj.defaultChecked:obj.checked)?obj.value:null);
		case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
		case 'password': return((use_default)?null:obj.value);
		case 'select-one':
			if (obj.options==null) { return null; }
			if(use_default){
				var o=obj.options;
				for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].value;}}
				return o[0].value;
				}
			if (obj.selectedIndex<0){return null;}
			return(obj.options.length>0)?obj.options[obj.selectedIndex].value:null;
		case 'select-multiple': 
			if (obj.options==null) { return null; }
			var values=new Array();
			for(var i=0;i<obj.options.length;i++) {
				if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
					values[values.length]=obj.options[i].value;
					}
				}
			return (values.length==0)?null:commifyArray(values);
		}
	alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return null;
	}

//-------------------------------------------------------------------
// getSingleInputText(input_object,use_default)
//   Funzione di utilizzata dal altre funzioni
//-------------------------------------------------------------------
function getSingleInputText(obj,use_default) {
	switch(obj.type){
		case 'radio': case 'checkbox': 	return "";
		case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
		case 'password': return((use_default)?null:obj.value);
		case 'select-one':
			if (obj.options==null) { return null; }
			if(use_default){
				var o=obj.options;
				for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].text;}}
				return o[0].text;
				}
			if (obj.selectedIndex<0){return null;}
			return(obj.options.length>0)?obj.options[obj.selectedIndex].text:null;
		case 'select-multiple': 
			if (obj.options==null) { return null; }
			var values=new Array();
			for(var i=0;i<obj.options.length;i++) {
				if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
					values[values.length]=obj.options[i].text;
					}
				}
			return (values.length==0)?null:commifyArray(values);
		}
	alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return null;
	}

//-------------------------------------------------------------------
// setSingleInputValue(input_object,value)
//   Funzione di utilizzata dal altre funzioni
//-------------------------------------------------------------------
function setSingleInputValue(obj,value) {
	switch(obj.type){
		case 'radio': case 'checkbox': if(obj.value==value){obj.checked=true;return true;}else{obj.checked=false;return false;}
		case 'text': case 'hidden': case 'textarea': case 'password': obj.value=value;return true;
		case 'select-one': case 'select-multiple': 
			var o=obj.options;
			for(var i=0;i<o.length;i++){
				if(o[i].value==value){o[i].selected=true;}
				else{o[i].selected=false;}
				}
			return true;
		}
	alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return false;
	}

//-------------------------------------------------------------------
// getInputValue(input_object)
//   Ritorna i valori di ogni input field presente nel form
//   i campi selezionabili sono restituiti nel formato comma-separated
//   (non ritora i valori degli input type:file,reset,submit)
//-------------------------------------------------------------------
function getInputValue(obj) {
	var use_default=(arguments.length>1)?arguments[1]:false;
	if (isArray(obj) && (typeof(obj.type)=="undefined")) {
		var values=new Array();
		for(var i=0;i<obj.length;i++){
			var v=getSingleInputValue(obj[i],use_default);
			if(v!=null){values[values.length]=v;}
			}
		return commifyArray(values);
		}
	return getSingleInputValue(obj,use_default);
	}

//-------------------------------------------------------------------
// getInputText(input_object)
//   Recupera il testo mostrato nel campo passato
//   Per i campi selezionabili ritorna una stringa nel formato comma-separated
//   (Non ritorna valori per gli input type: button,file,reset,submit)
//-------------------------------------------------------------------
function getInputText(obj) {
	var use_default=(arguments.length>1)?arguments[1]:false;
	if (isArray(obj) && (typeof(obj.type)=="undefined")) {
		var values=new Array();
		for(var i=0;i<obj.length;i++){
			var v=getSingleInputText(obj[i],use_default);
			if(v!=null){values[values.length]=v;}
			}
		return commifyArray(values);
		}
	return getSingleInputText(obj,use_default);
	}

//-------------------------------------------------------------------
// getInputDefaultValue(input_object)
//   Recupera i valori di default, impostato nella creazione, per ogni
//   campo passato.
//   Per i campi selezionabili ritorna una stringa nel formato comma-separated
//   (Non ritorna valori per gli input type: button,file,password,reset,submit)
//-------------------------------------------------------------------
function getInputDefaultValue(obj){return getInputValue(obj,true);}

//-------------------------------------------------------------------
// isChanged(input_object)
//   Ritorna true se il valore dell'input object passato è cambiato
//   dal momento nel quale è stato creato.
//-------------------------------------------------------------------
function isChanged(obj){return(getInputValue(obj)!=getInputDefaultValue(obj));}

//-------------------------------------------------------------------
// setInputValue(obj,value)
//   Imposta il valore per ogni campo del form. Nel caso in cui non ci
//   siano valori disponibili come (select, radio, etc) non saranno 
//   visualizzati gli option per la selezione.
//   (Non ritorna valori per gli input type: button,file,password,reset,submit)
//-------------------------------------------------------------------
function setInputValue(obj,value) {
	var use_default=(arguments.length>1)?arguments[1]:false;
	if(isArray(obj)&&(typeof(obj.type)=="undefined")){
		for(var i=0;i<obj.length;i++){setSingleInputValue(obj[i],value);}
		}
	else{setSingleInputValue(obj,value);}
	}
	
//-------------------------------------------------------------------
// isFormModified(form_object,hidden_fields,ignore_fields)
//   Verifica qualunque campo presente nel form sia stato cambiato.
//   Per default la funzione verificherà tutti i campi visibili del
//   form passato, ignorando tutti i campi hidden
//   Si può passare una lista comma-separated di nomi di campi da 
//   verificare oltre i campi visibili (per i hiddens, etc).
//   Si può anche passare una lista comma-separated di nomi di campi
//   che saranno ignorati nella verifica
//-------------------------------------------------------------------
function isFormModified(theform,hidden_fields,ignore_fields){
	if(hidden_fields==null){hidden_fields="";}
	if(ignore_fields==null){ignore_fields="";}
	var hiddenFields=new Object();
	var ignoreFields=new Object();
	var i,field;
	var hidden_fields_array=hidden_fields.split(',');
	for (i=0;i<hidden_fields_array.length;i++) {
		hiddenFields[Trim(hidden_fields_array[i])]=true;
		}
	var ignore_fields_array=ignore_fields.split(',');
	for (i=0;i<ignore_fields_array.length;i++) {
		ignoreFields[Trim(ignore_fields_array[i])]=true;
		}
	for (i=0;i<theform.elements.length;i++) {
		var changed=false;
		var name=theform.elements[i].name;
		if(!isBlank(name)){
			var type=theform[name].type;
			if(!ignoreFields[name]){
				if(type=="hidden"&&hiddenFields[name]){changed=isChanged(theform[name]);}
				else if(type=="hidden"){changed=false;}
				else {changed=isChanged(theform[name]);}
				}
			}
		if(changed){return true;}
		}
		return false;
	}
function sololettere(){
	if (((window.event.keyCode>64) && (window.event.keyCode<91)) || ((window.event.keyCode>96) && (window.event.keyCode<123)))
	return true;
	else
	return false; 
}

function Interi(){
	if ((window.event.keyCode>=48) && (window.event.keyCode <= 57))
	return true;
	else
	return false; 
}

function RealiOLD(charDecimale){
	if((charDecimale.charCodeAt(0) == '46') || (charDecimale.charCodeAt(0) == '44'))
	{
		if(window.event.keyCode == charDecimale.charCodeAt(0))
		return true;
		else
		if ((window.event.keyCode>47) && (window.event.keyCode<58))
		return true;
		else
		return false; 
	}
	else
		return false; 
}
function Reali(campo, charDecimale){	if((charDecimale.charCodeAt(0) == '46') || (charDecimale.charCodeAt(0) == '44'))
	{
		if(window.event.keyCode == charDecimale.charCodeAt(0) && (campo.value.indexOf(charDecimale.charAt(0)) < 1))
			return true;
		else
		if ((window.event.keyCode>47) && (window.event.keyCode<58))
			return true;		else
			return false; 
	}
	else
		return false; 
}

function Upper(){
	if((window.event.keyCode >= 97) && (window.event.keyCode <= 122))
		{
		window.event.keyCode = window.event.keyCode-32;
		window.event.returnValue = true;
		}
}

function Lower(){
	if((window.event.keyCode >= 65) && (window.event.keyCode <= 90))
		{
		window.event.keyCode = window.event.keyCode+32;
		window.event.returnValue = true;
		}
}

function alfabetici(){
	if(((window.event.keyCode >= 65) && (window.event.keyCode <= 90)) || ((window.event.keyCode >= 97) && (window.event.keyCode <= 122)))
		return true;
	else
		return false; 
}

function apiceLettere(){
	if (((window.event.keyCode>=65) && (window.event.keyCode <= 90)) || ((window.event.keyCode>=97) && (window.event.keyCode <= 122)) || ((window.event.keyCode>=39) && (window.event.keyCode <= 39)))
	return true;
	else
	return false; 
}

function apiceLettereAccentate(){
	if (((window.event.keyCode>=65) && (window.event.keyCode <= 90)) || ((window.event.keyCode>=97) && (window.event.keyCode <= 122)) || ((window.event.keyCode>=39) && (window.event.keyCode <= 39)) || ((window.event.keyCode>=224) && (window.event.keyCode <= 224)) || ((window.event.keyCode>=232) && (window.event.keyCode <= 233)) || ((window.event.keyCode>=236) && (window.event.keyCode <= 236)) || ((window.event.keyCode>=242) && (window.event.keyCode <= 242)) || ((window.event.keyCode>=249) && (window.event.keyCode <= 249)))
	return true;
	else
	return false; 
}

function NumeriPuntoSlash(){
	if (((window.event.keyCode>=48) && (window.event.keyCode <= 57)) || ((window.event.keyCode>=45) && (window.event.keyCode <= 47)))
	return true;
	else
	return false; 
}

function bloccato(){
	window.event.keyCode=0
	return false; 
}
function soloCaratteri(caratteri){
	var test = String.fromCharCode(window.event.keyCode);
	if(caratteri.indexOf(test)!=-1){return true;};
	return false;
}

function PaginaTuttoSchermo(Ie,other){
	x=screen.availWidth;
	y=screen.availHeight;
	target = parseFloat(navigator.appVersion.substring(navigator.appVersion.indexOf('.')-1,navigator.appVersion.length));
	if((navigator.appVersion.indexOf("Mac")!=-1) &&(navigator.userAgent.indexOf("MSIE")!=-1) &&(parseInt(navigator.appVersion)==4))
	window.open(other,"sub",'scrollbars=yes');
	if (target >= 4){
		if (navigator.appName=="Netscape"){
	    var PaginaTuttoSchermo=window.open(other,"PaginaTuttoSchermo",'scrollbars=yes','width='+x+',height='+y+',top=0,left=0');
		PaginaTuttoSchermo.moveTo(0,0);
		PaginaTuttoSchermo.resizeTo(x,y);}
	if (navigator.appName=="Microsoft Internet Explorer")
		window.open(Ie,"PaginaTuttoSchermo","fullscreen=yes");
		}
		else window.open(other,"sub",'scrollbars=yes');
		}

