/*
'==========================================
' 2mlib -> javascript -> common.js
'
' Funzioni client-side generali
'
' 2004 Copyright - Dueemmelab
'==========================================
*/

/*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;
}

/*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;
}

//INCREMENTA IL CONTENUTO NUMERICO DI UN DIV UTILIZZATO COME CONTATORE
//idx: id del DIV interessato
function js_update_string_counter(idx) {
	if (document.getElementById) {
		var i=eval(document.getElementById(idx).innerHTML);
		document.getElementById(idx).innerHTML = ""+(i+1);
	}
}

//INCREMENTA IL CONTENUTO DI UN CAMPO INPUT
function js_update_counter(idx) {
	if (document.getElementById) {
		var i=document.getElementById(idx).value;
		document.getElementById(idx).value =(parseInt(i)+1);
	}
}

//SOVRASCRIVE-CONCATENA UNA STRING AL CONTENUTO DI UN DIV
//idx: id del DIV interessato
//valuex: valore da concatenare o sovrascrivere
//resetflag: flag concatena-sovrascrivi
function js_update_div(idx,valuex,resetflag) {
	if (document.getElementById) {
		if (resetflag==true || resetflag=='vero' || resetflag=='Vero' || resetflag=='on' || resetflag=='On' || resetflag==1) {
			//Sovrascrivi
			document.getElementById(idx).innerHTML = valuex;
		}
		else {
			//Concatena contenuto
			var i=document.getElementById(idx).innerHTML;
			document.getElementById(idx).innerHTML = i +''+ valuex;
		}
	}
}

