/*INTERCETTA UN TASTO PREMUTO E RITORNA IL CODICE DECIMALE DEL CARATTERE PREMUTO
	ES:
	onKeyPress="if (keypressed(event))=='97' {alert('Tasto premuto: a');}"
*/
function keyPressed(e) {
	var code='';
 	if (e.which)
		code= e.which;	//Mozilla
	else
		code = window.event.keyCode;	//IE
	return (code);
}

//ELIMINA IL CONTENUTO (O DESELEZIONA) L'ELEMENTO DI UN FORM
function deleteValue(obj) {
	var i;
	//Se si utilizza la proprietà 'id' (e non 'name') nel tag form
	if (typeof (obj)!='object' && typeof (obj)=='string') { var o=document.getElementById(obj);} else {var o=obj;}
	switch (o.type) {
		case 'select-one':
			o.selectedIndex=0;
			break
		case 'select-multiple':
			o.selectedIndex=-1;
			break
		case 'checkbox':
		case 'radio':
			o.checked=false;
			break
		case 'text':
		case 'password':
		case 'file':
		case 'textarea':
			o.value="";
			break
	}
	return true;
}

//IMPOSTA UNO STILE (DEFINITO IN UN CSS) AD UN ELEMENTO HTML
function setClassName(objIdx, classNamex) {
	document.getElementById(objIdx).className = classNamex;
}

//IMPOSTA IL COLORE DI SFONDO AI TD FIGLI DI UN TR SPECIFICATO COME PARAMETRO
function setTableRowBackground(rowid,color) {
 	var child=document.getElementById(rowid).childNodes;
 	for (i=0;i<child.length;i++) {
 		if (child[i].tagName=='TD') {child[i].style.backgroundColor=color;}
 	}
}

//REIMPOSTA LA CLASSE PREDIFINITA AI TD FIGLI DI UN TR SPECIFICATO COME PARAMETRO
function resetTableRowBackground(rowid,td_class_name,color) {
	var child=document.getElementById(rowid).childNodes;
 	for (i=0;i<child.length;i++) {
		if (child[i].tagName=='TD' && child[i].className==td_class_name) {child[i].style.backgroundColor=color;}
 	}
}

//SELEZIONA UN ELEMENTO IN BASE ALLA CLASSE DI APPARTENENZA
function getElementsByClass(searchClass,node,tag) {
  var classElements = new Array();
  if (node == null)
    node = document;
  if (tag == null)
    tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

/*ABILITA/DISABILITA I CAMPI DELL'OGGETTO FORM
	Tutti gli argomenti di enableFields sono stringhe.

	FormName							:e' il nome del form corrente che contienei campi disabilitati
	EnableFlag						:e' un flag che indica se attivare (true) o disattivare (false) gli elementi passati
	(parametri successivi):sono le proprieta' NAME/ID degli elementi del form che vengono attivati/disattivati.

	ES (dentro un tag input type=radio) disabilita un campo:
	onClick="enableFields('form_nuovo_elemento',false,'NAME del campo1 da disabilitare','NAME del campo2 da disabilitare');"

	ES (dentro un tag input type=button) abilita un campo:
	onClick="enableFields('form_nuovo_elemento',true,'NAME del campo1 da abilitare','NAME del campo2 da abilitare');"
*/
function enableFields(FormName,EnableFlag)
{
	if (arguments.length< 3) {
		alert("Funzione EnableFields:\tparametri insufficenti");
		return false;
	}
	else {
		if (EnableFlag!=true) {EnableFlag==false};
		for (var i=2; i<arguments.length; i++)
		{	var elem=arguments[i];	//per ogni argomento passato alla funzione
			//Recupera elemento da ID o NAME
			if (typeof (elem)!='object' && typeof (elem)=='string') {var obj=document.getElementById(elem);} else {var obj=elem;}
			if ( (typeof obj.length!="undefined") && (typeof obj[0].name=="string") ) {
				for (var j=0; j<obj.length;j++)
					obj[j].disabled=!EnableFlag;
					//if (EnableFlag) {obj[j].style.backgroundColor=bgColorOriginal;} else {obj[j].style.backgroundColor=bgColorDisabled;}
			}
			else {
				obj.disabled=!EnableFlag;
				//if (EnableFlag) {obj.style.backgroundColor=bgColorOriginal;} else {obj.style.backgroundColor=bgColorDisabled;}
			}
		}
		return true;
	}
}

//CONTROLLA SE UN GRUPPO DI CHECKBOX È SELEZIONATO (ALMENO UNA SELEZIONE) OPPURE NO
function isCheckboxSelected(CBoxField)
{	var i;
	var status;
	if (typeof(CBoxField.length)!='undefined') {
		status=false;
		for (i=0;(i<CBoxField.length) && !(status);i++){
			if (CBoxField[i].checked)
				status=true;
		}
	}
	else {status=CBoxField.checked;}
	return status;
}

//ATTIVA/DISATTIVA TUTTI I CHECKBOX SINGOLI O DI UN GRUPPO
function CheckboxCheckAll(CBoxField,BolStatus)
{
	var i;
	if (BolStatus!=true) {BolStatus=false;}
	if (typeof(CBoxField.length)!='undefined') {
		for (i=0;i<CBoxField.length;i++){
			CBoxField[i].checked=BolStatus;
		}
	}
	else {CBoxField.checked=BolStatus;}
	return BolStatus;
}
