function txtboxlen(obj, objcounter, lenlimit){
	tmpT=obj.value
	tmpOK=""
	tmpPre=""
	tmpPost=tmpT
	idx=0
	while (tmpPost!=""){
		pre=tmpPost.indexOf("<")
		post=tmpPost.indexOf(">")
		if (pre!=-1 && post!=-1 && (pre < post)){
			tmpOK=tmpOK+tmpPost.substring(0,pre)
			tmpPost=tmpPost.substring(post+1)
		}
		if (pre!=-1 && post!=-1 && (pre > post)){
			tmpOK=tmpOK+tmpPost.substring(post,pre+post)
			tmpPost=tmpPost.substring(pre+post+1)
		}
		if (pre==-1 && post==-1){
			tmpOK=tmpOK+tmpPost
			tmpPost=""
		}
		if (pre!=-1 && post==-1){
			tmpOK=tmpOK+tmpPost.substring(0, pre)
			tmpPost=""
		}
		if (pre==-1 && post!=-1){
			tmpOK=tmpOK+tmpPost.substring(0, post)
			tmpPost=""
			obj.value=obj.value.substring(0,(obj.value.length-1))
		}

	}
	//objcounter.value=lenlimit-tmpOK.length
	nowstr=tmpOK.length
	if(nowstr>lenlimit){
			obj.value=obj.value.substring(0,(obj.value.length-1))
		objcounter.value=0
	}else{
		objcounter.value=lenlimit-tmpOK.length
	}
}

function enterSubmit(form){
	if (CTRL_form(form, 'req')){
		form.submit()
	}
}

function LOADfocus(form){					//Mette il focus sul primo elemento text, textarea o password della form
	j=0;
	while (form.elements[j]!=null){
		if (form.elements[j].type=="text" || form.elements[j].type=="password" || form.elements[j].type=="textarea"){
			form.elements[j].focus();
			break;
		}
		j++;
	}
}

function toNEXTselect(id, CORRArray, SELarray, TDidentity){
	DESCR='<select="'+TDidentity+'" onchange="menu_form.id_'+TDidentity+'.value=this.value; menu_form.submit();"><option value="0">----Scegli----</option>';
	i=0;
	ok=0;
	while (CORRArray[i]!=null){
		if (CORRArray[i]['COM']==id){
			ok=1;
			DESCR=DESCR+ '<option value="'+CORRArray[i]['STR']+'">'+SELarray[CORRArray[i]['STR']]+'</option>';
		}		
		i++;		
	}	
	DESCR=DESCR+'</select>';
	if(ok!=1){
		DESCR="Nessuna inserita";
	}
	document.getElementById(TDidentity).innerHTML  =DESCR;
}

function FirstUPPERCASE(field){
	TXT=field.value;
	if (TXT!="")
	{
		TXT=TXT.substring(0,1).toUpperCase() + TXT.substring(1,TXT.length);		
	}
	field.value=TXT;
};
function AllUPPERCASE(field){
	TXT=field.value;
	if (TXT!="")
	{
		TXT=TXT.toUpperCase();		
	}
	field.value=TXT;
};

function NOquote(text){					//change "char in \" and ' char in \'
	txt=text.value.replace(/"/g,'&#34;');
	txt=txt.replace(/'/g,"&#39;");
	text.value=txt;
}

function DELquote(form){
	j=0;
	while (form.elements[j]!=null){
		if (form.elements[j].type=="text" || form.elements[j].type=="password" || form.elements[j].type=="textarea"){
			NOquote(form.elements[j]);
		}
		j++;
	}
}

function CTRLdata(form){//change "char in \" and ' char in \'	
	j=0;
	count=1;
	while (form.elements[j]!=null && form.elements[j].name != null){
		if (form.elements[j].name.substr(0,4)=="data"){			
			X=form.elements[j].value;
			if(X!=""){	
				pos1=X.indexOf("-");
				if (pos1==2){
					pos2=X.substr(pos1+1,X.length-pos1);
					pos2=pos2.indexOf("-");
					if (pos2==2){
						pos3=X.substr(pos1+pos2+1,X.length-pos2);
						pos3=pos3.indexOf("-");
					}else{
						pos3=100;
					}
				}else{
					pos3=100;
				}
				if ((X.length!=10)||(pos3!=0)){			
					form.elements[j].focus();
					alert ("ATTENZIONE!\n Formato errato nel "+count+" campo data\n la data deve essere immessa con formato: 23-02-1978.");
					return false;	
				}
			}
			count++;
		}
	j++;
	}
	return true;
}

	// this 3 are reassumed in CTRL_form
function CTRL_char(form){		//extract all text fields from form and truncate text by text field size attribute		j=0;
	while (form.elements[j]!=null){
		if (form.elements[j].type=="text" || form.elements[j].type=="password" || form.elements[j].type=="textarea"){
			if(form.elements[j].maxLength > 0 && form.elements[j].value.length != 0 && form.elements[j].value.length != form.elements[j].maxLength){
				form.elements[j].focus();
				alert("ATTENZIONE: Il numero di caratteri inseriti nel campo indicato " + form.elements[j].name + "\n E' diverso dal numero richiesto:"+form.elements[j].maxLength);
				return false;
			}
		}
		j++;
	}
	return true;
}	
	
	function CTRL_2pass(form,nchar){   //limit text field value by text field size, verify correc form of mail address and the presence of all requested fields.
		if(form.pass.value.length<nchar){
			alert ("ATTENZIONE!\n La password immessa non rispetta i criteri di lunghezza minima\n Reimmettere una password di almeno "+nchar+" caratteri.");
				return false;	
		}else{
			if (form.pass.value==form.pass1.value){			
				return true;
			}else{
				alert ("ATTENZIONE!\n Le passwords immesse nei 2 campi non coincidono.");
				return false;			
			}		
		}
	}
	
	function LEN_pass(form, minC, MaxC){
		STR=form.pass.value;
		L=STR.length;
		if ((L<minC)||(L>MaxC)){		
			alert("Controllare lunghezza password.\n Deve essere compresa tra "+minC+" caratteri e "+MaxC+" caratteri.");
			form.pass.value="";		
		}
	}
	
	function CTRLmail(form){				//a mail must have only one @ cahr and one or more . char
		j=0;
		OK=true;
		Error="";
		while (form.elements[j]!=null){
			if (form.elements[j].name=="mail" && form.elements[j].value!=""){			
				form.elements[j].value=form.elements[j].value.toLowerCase()
				mail_addr=form.elements[j].value;
				
				if (mail_addr.indexOf("@")!=-1){
					if (mail_addr.indexOf("@")!=mail_addr.lastIndexOf("@")){
						Error=Error+"Il formato dell'indirizzo mail � errato.\n";
						OK=false;
					}
				}else{
					Error=Error+"Ha inserito un indirizzo mail senza @.\n";
						OK=false;
				}
				if (mail_addr.indexOf(".")==-1){
					Error=Error+"Ha inserito un indirizzo mail senza un punto.\n";
					OK=false;
				}	
				form.elements[j].value=form.elements[j].value.toLowerCase();
			}
			j++;
		}
		if (Error!=""){
			alert("ATTENZIONE!\n"+Error);
		}
		return OK;
	}
	
	function reqOK(form, identifier){		/*extract from a form all the field that have id=req%n with %n=progressive number	
											control that value in that fields are !="". If verified return true else false.*/			
		j=0;
		k=0;
		idlen=identifier.length;				//aggiunta per XHTML per cambiare gli id
												//controlla solo la stringa per la lunghezza dell'identificatore.
		while (form.elements[j]!=null){
			X=form.elements[j]; 
			if (X.id.substr(0,idlen)==(identifier)){	//+k
				//k++;
				if (X.value==""){
					alert ("ATTENZIONE!\n Compili tutti i campi richiesti (*).");
					return false;
				}
			}
			j++;
		}
		return true;
	}
// HERE

	function CTRL_form(form, id){   //limit text field value by text field size, verify correc form of mail address and the presence of all requested fields.
		//limit_char(form);
		DELquote(form);
		if ( reqOK(form,id)){
			X=form;
			if (CTRLmail(X)){	
				if (CTRLdata(form)){
					if (CTRL_char(form)){					
						return true;
					}
				}
			}
		}
		return false;
	}
	
	function removeRow(id) {
	//alert(id);
    var tr = document.getElementById( id );
    if ( tr ) {
      if ( tr.nodeName == 'TR' ) {
        var tbl = tr;                  // Look up the hierarchy for TABLE
        while ( tbl != document && tbl.nodeName != 'TABLE' ) {
          tbl = tbl.parentNode;
        }
        if ( tbl && tbl.nodeName == 'TABLE' ) {
          while ( tr.hasChildNodes() ) {
            tr.removeChild( tr.lastChild );
          }
          tr.parentNode.removeChild( tr );
        }
      } else {
        alert( 'Specified document element is not a TR.  id=' + id );
      }
    } else {
      alert( 'Specified document element is not found.  id=' + id );
    }
}


/* function delLastRow(tablename,controlField,delay,FirstCase,SecondCase){
	var tbl = document.getElementById(tablename);
	var lastRow = tbl.rows.length - delay -1;
	if(controlField!=""){
		if(document.getElementById(controlField)!=null){ //c'&egrave; il domicilio
			if(lastRow>=FirstCase){
				tbl.deleteRow(lastRow);
			}
		}else{
			if(lastRow>=SecondCase){
				tbl.deleteRow(lastRow);
			}
		}

	}else{
		if(lastRow >= FirstCase){
			tbl.deleteRow(lastRow);
		}
	}
} */

//Aggiunge una riga alla tabella con il bottone per rimuoverla
//tablename-->nome della tabella.
//arr-->array di colonne da aggiungere alla riga.
//delay--> specifica quante righe sopra all'ultima deve essere inserita la riga.
//indica se è un elemento foglia o meno (non utilizzato)
//contPlus--> (non utilizzato)
function addrowplus(tablename, arr , delay, p, contPlus) {			
	
	var tbl = document.getElementById(tablename);
	
	var righetotali=tbl.rows.length;
	var lastRow = tbl.rows.length - delay;
	if (righetotali < contPlus) {
		var row = tbl.insertRow(lastRow);
		for (r = 0; r < arr.length; r++) {
			var cell = row.insertCell(r);
			cell.innerHTML = arr[r];
		}
		var rowInd = row.rowIndex;
		row.id = rowInd;
		var cell = row.insertCell(r);
		//cell.innerHTML = '<img src="images/bt/bt_rimuovi.gif" onclick="removeRow(' + rowInd + ')" onmouseover="cambiaimmagine(this);" onmouseout="cambiaimmagine(this)"; >';
         cell.innerHTML = '<input type="button" value="Rimuovi" onclick="removeRow(' + rowInd + ')" />';
	// 	get_tableRow(tablename)
	}
}

	
