/*
'==========================================
' 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 DI 1 IL CONTENUTO NUMERICO DI UN OGGETTO CONTATORE
function js_update_string_counter(idx) {
	if (document.getElementById(idx)) {
		var i=eval(document.getElementById(idx).innerHTML);
		document.getElementById(idx).innerHTML = ""+(i+1);
	}
}
//INCREMENTA/DECREMENTA DI intValue IL CONTENUTO NUMERICO DI UN OGGETTO CONTATORE
function js_sum_string_counter(idx,intValue) {
	if (document.getElementById(idx)) {
		var i=eval(document.getElementById(idx).innerHTML);
		//Non scendere sotto zero
		//if ((i+intValue)>=0)
			document.getElementById(idx).innerHTML = ""+(i+intValue);
		//else
		//	document.getElementById(idx).innerHTML = "0";
	}
}

//INCREMENTA DI 1 IL CONTENUTO DI UN CAMPO INPUT
function js_update_counter(idx) {
	if (document.getElementById(idx)) {
		var i=document.getElementById(idx).value;
		document.getElementById(idx).value =(parseInt(i)+1);
	}
}

//INCREMENTA/DECREMENTA DI intValue IL CONTENUTO DI UN CAMPO INPUT
function js_sum_counter(idx,intValue) {
	if (document.getElementById(idx)) {
		var i=document.getElementById(idx).value;
		document.getElementById(idx).value =(parseInt(i)+intValue);
	}
}

//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(idx)) {
		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;
		}
	}
}
function js_update_stat(statx) {
	if (document.getElementById(statx)) {
		var i=eval(document.getElementById(statx).innerHTML);
		document.getElementById(statx).innerHTML = ""+(i+1);
	}
}


//Nascondi/Visualizza un oggetto con id.
//displayvalue: block | inline
function hideobj(idx,displayvalue) {
	var o=document.getElementById(idx);
	if (o) {
		if (!o.style.display || o.style.display!='none') {
			o.style.display='none';
			return false;
		}
		else if (displayvalue=='inline') {
			o.style.display='inline';
			return true;
		}
		else {
			o.style.display='block';
			return true;
		}
	}
	else
		return false;
}
//Nasconde/Visualizza un box contenente note
function hidenote(expandlink,idx) {
	var el=document.getElementById(expandlink);
	if (hideobj(idx,'block'))
		el.innerHTML='<img class="icon9" src="..\/_img\/admin\/icon_minus.gif"> Nascondi<br \/><br \/>'
	else
		el.innerHTML='<img class="icon9" src="..\/_img\/admin\/icon_plus.gif"> Visualizza'
}

