/****************************************************************

jsFormUt.js vers. 020314
Script by support@gruppo4.com - http://www.gruppo4.com
You can use this code if you leave this message

history:
versione 001005 = prima release
versione 010318 = automatizzata la definizione di nOp in selectOption()
versione 010423 = inserite le funzioni upperText() loverText() trimText() noBreakText(); modificato niceText()
versione 010524 = inserite le funzioni formReset(), formSubmit() formControlSubmit()
versione 020115 = inserita la funzione doPsw()
versione 020116 = inserita la funzione checkAll(), inserito il parametro action in formSubmit() formControlSubmit()
versione 020314 = corretta la funzione checkAll() con if nRec>0

n.b.: se si utilizzano versioni ³ 010318 vanno modificate tutte le chiamate a selectOption() v.001005

****************************************************************/

/****************************************************************
	COUNTER
****************************************************************/

function counter(formElm,formLyr,counterElm,counterLyr){
	if (ns4 && formLyr!=null) {eval('document.'+counterLyr+'.document.'+counterElm+'.value=document.'+formLyr+'.document.'+formElm+'.value.length')}
	else {eval('document.'+counterElm+'.value=document.'+formElm+'.value.length')}
}

/****************************************************************
TRIMTEXT() UPPERTEXT() LOWERTEXT() NOBREAKTEXT() NICETEXT()
***************************************************************/

function trimmedString(stringTT) {
	if (stringTT.slice(0,2)==String.fromCharCode(13,10)) {stringTT=stringTT.slice(2)}
	else {if (stringTT.slice(0,1)==String.fromCharCode(13)) {stringTT=stringTT.slice(1)}}
	if (stringTT.slice(0,1)==" ") {stringTT=stringTT.slice(1)}

	if (stringTT.slice(stringTT.length-2)==String.fromCharCode(13,10)) {stringTT=stringTT.slice(0,stringTT.length-2)}
	else {if (stringTT.slice(stringTT.length-1)==String.fromCharCode(13)) {stringTT=stringTT.slice(0,stringTT.length-1)}}
	if (stringTT.slice(stringTT.length-1)==" ") {stringTT=stringTT.slice(0,stringTT.length-1)}

	if (stringTT.slice(0,1)==" " || stringTT.slice(0,1)==String.fromCharCode(13) || stringTT.slice(stringTT.length-1)==" " || stringTT.slice(stringTT.length-1)==String.fromCharCode(13)) {
		stringTT=new trimmedString(stringTT)
		stringTT=stringTT.trimmed
	}
	this.trimmed=stringTT
}

function trimText(formElm,formLyr) {

	var theString =""

	if (ns4 && formLyr!=null) {eval('theString=document.'+formLyr+'.document.'+formElm+'.value')}
	else {eval('theString=document.'+formElm+'.value')}

	if (theString.slice(0,1)==" " || theString.slice(0,1)=="\r" || theString.slice(theString.length-1)==" " || theString.slice(theString.length-1)=="\r") {
		theString=new trimmedString(theString)
		theString=theString.trimmed
	}

	if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.value=theString')}
	else {eval('document.'+formElm+'.value=theString')}
}

function niceText(formElm,formLyr) {

	var theString =""

	if (ns4 && formLyr!=null) {eval('theString=document.'+formLyr+'.document.'+formElm+'.value')}
	else {eval('theString=document.'+formElm+'.value')}

	if (theString.slice(0,1)==" " || theString.slice(0,1)=="\r" || theString.slice(theString.length-1)==" " || theString.slice(theString.length-1)=="\r") {
		theString=new trimmedString(theString)
		theString=theString.trimmed
	}

	firstLetter=theString.slice(0,1).toUpperCase()
	otherText=theString.slice(1).toLowerCase()
	theString=firstLetter.concat(otherText)

	if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.value=theString')}
	else {eval('document.'+formElm+'.value=theString')}
}

function upperText(formElm,formLyr) {

	var theString =""

	if (ns4 && formLyr!=null) {eval('theString=document.'+formLyr+'.document.'+formElm+'.value')}
	else {eval('theString=document.'+formElm+'.value')}

	theString=theString.toUpperCase()

	if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.value=theString')}
	else {eval('document.'+formElm+'.value=theString')}
}

function lowerText(formElm,formLyr) {

	var theString =""

	if (ns4 && formLyr!=null) {eval('theString=document.'+formLyr+'.document.'+formElm+'.value')}
	else {eval('theString=document.'+formElm+'.value')}

	theString=theString.toLowerCase()

	if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.value=theString')}
	else {eval('document.'+formElm+'.value=theString')}
}

function noBreakedString(stringNB) {
	if (stringNB.indexOf(String.fromCharCode(13,10))!=-1) {theBreak=String.fromCharCode(13,10);nChar=2}
	else {if (stringNB.indexOf(String.fromCharCode(13))!=-1) {theBreak=String.fromCharCode(13);nChar=1}}

	if (stringNB.indexOf(theBreak)!=-1) {
		stringA=stringNB.slice(0,stringNB.indexOf(theBreak))
		stringB=stringNB.slice(stringNB.indexOf(theBreak)+nChar)

		stringA=new trimmedString(stringA)
		stringA=stringA.trimmed
		stringB=new trimmedString(stringB)
		stringB=stringB.trimmed

		stringNB=stringA+" "+stringB
	}

	if (stringNB.indexOf(theBreak)!=-1) {
		stringNB=new noBreakedString(stringNB)
		stringNB=stringNB.noBreaked
	}
	stringNB=new trimmedString(stringNB)
	stringNB=stringNB.trimmed
	this.noBreaked=stringNB
}

function noBreakText(formElm,formLyr) {

	var theString =""

	if (ns4 && formLyr!=null) {eval('theString=document.'+formLyr+'.document.'+formElm+'.value')}
	else {eval('theString=document.'+formElm+'.value')}

	if (theString.indexOf(String.fromCharCode(13))!=-1) {
		theString=new noBreakedString(theString)
		theString=theString.noBreaked
	}

	if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.value=theString')}
	else {eval('document.'+formElm+'.value=theString')}
}

/****************************************************************
	SELECTOPTION
****************************************************************/

function selectOption(formLyr,formElm,selectValue) {

	if (ns4 && formLyr!=null) {
		nOp=eval('document.'+formLyr+'.document.'+formElm+'.length')
	}
	else {
		nOp=eval('document.'+formElm+'.length')
	}

	for (var i=0; i < nOp; i++) {

	if (ns4 && formLyr!=null) {
		if (eval('document.'+formLyr+'.document.'+formElm+'.options[i].value=="'+selectValue+'"')){
			(eval('document.'+formLyr+'.document.'+formElm+'.options[i].selected=true'))
			}
		}

	else {
		if (eval('document.'+formElm+'.options[i].value=="'+selectValue+'"')){
			(eval('document.'+formElm+'.options[i].selected=true'))
			}
		}
	}
}

/****************************************************************
	RESET E SUBMIT DA LINK
****************************************************************/

function formSubmit(formName,formLyr,action) {

	if (ns4 && formLyr!=null) {
		if (action!=null) {eval('document.'+formLyr+'.document.'+formName+'.action="'+action+'"')}
		eval('document.'+formLyr+'.document.'+formName+'.submit()')
		}
	else {
		if (action!=null) {eval('document.'+formName+'.action="'+action+'"')}
		eval('document.'+formName+'.submit()');
	}
}

function formControlSubmit(formName,formLyr,action) {

	if (ns4 && formLyr!=null) {
		if (action!=null) {eval('document.'+formLyr+'.document.'+formName+'.action="'+action+'"')}
		theReturn=controllaForm(eval('document.'+formLyr+'.document.'+formName));
		if (theReturn!=false) {eval('document.'+formLyr+'.document.'+formName+'.submit()')}
	}
	else {
		if (action!=null) {eval('document.'+formName+'.action="'+action+'"')}
		theReturn=controllaForm(eval('document.'+formName));
		if (theReturn!=false) {eval('document.'+formName+'.submit()')}
	}
}

function formReset(formName,formLyr) {

	if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formName+'.reset()')}
	else {eval('document.'+formName+'.reset()')}
}

/****************************************************************
	DO PASSWORD
****************************************************************/

function doPsw(formElm,formLyr,n) {
	var thePsw=""
	for (i = 0; i < n; i++) {
		var r = Math.round(100/Math.random())%3
		switch (r) {
			case 0:thePsw+=String.fromCharCode(Math.round(100/Math.random())%26+65);break;
			case 1:thePsw+=String.fromCharCode(Math.round(100/Math.random())%26+97);break;
			default :thePsw+=(Math.round(100/Math.random())%9);
		}
	}
	if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.value=thePsw')}
	else {eval('document.'+formElm+'.value=thePsw')}
}

/****************************************************************
	CHECKALL
****************************************************************/

function checkAll(checknName,what,nRec,formElm,formLyr)	{
	if (nRec>0) {
		if (nRec>1) {
			for (var i=0; i < nRec; i++) {
				if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.'+checknName+'[i].checked='+what)}
				else {eval('document.'+formElm+'.'+checknName+'[i].checked='+what)}
			}
		}
		else {
			if (ns4 && formLyr!=null) {eval('document.'+formLyr+'.document.'+formElm+'.'+checknName+'.checked='+what)}
			else {eval('document.'+formElm+'.'+checknName+'.checked='+what)}
		}
	}
}

/****************************************************************
	DOPOS
****************************************************************/

function doPos(nome,formElm,formLyr) {

	tempArray = new Array()
	var e=0

	if (ns4 && formLyr!=null) {
		for (i = 0; i < eval('document.'+formLyr+'.document.'+formElm+'.length'); i++) {
			if (eval('(document.'+formLyr+'.document.'+formElm+'[i].name!="")&&(document.'+formLyr+'.document.'+formElm+'[i].name.indexOf(\''+nome+'\')!=-1)')) {tempArray[e]=i; e= e+1;}
		}
	}
	else {
		for (i = 0; i < eval('document.'+formElm+'.length'); i++) {
			if (eval('(document.'+formElm+'[i].name!="")&&(document.'+formElm+'[i].name.indexOf(\''+nome+'\')!=-1)')) {tempArray[e]=i; e= e+1;}
		}
	}

	for (i = 0; i < tempArray.length; i++) {
		if (ns4 && formLyr!=null) {
			eval('document.'+formLyr+'.document.'+formElm+'['+tempArray[i]+'].selectedIndex='+i+'+1')
		}
		else {
			eval('document.'+formElm+'['+tempArray[i]+'].selectedIndex='+i+'+1')
		}
	}

	if(confirm('vuoi aggiornare subito i dati per registrare\nle posizioni proposte?')) {
		if (ns4 && formLyr!=null) {
			eval('document.'+formLyr+'.document.'+formElm+'.submit()')
		}
		else{
			eval('document.'+formElm+'.submit()')
		}
	}
}


