/*
'==========================================
' 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;
}

//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;
}

function centra(url, width, height)
   {
   if (document.all)
      {
      var x = window.screenLeft;
      var y = window.screenTop;
      var w = window.document.body.offsetWidth;
      var h = window.document.body.offsetHeight;
      }
   else
		  {
		  var x = window.screenX;
		  var y = window.screenY;
		  var w = window.outerWidth;
		  var h = window.outerHeight;
	    }
  var cntx = x + Math.round((w - width) / 2);
  var cnty = y + Math.round((h - height) / 2);
  window.open (url, null, 'left=' + cntx + ',top=' + cnty + ',width=' + 
width + ',height=' + height);
}

function showToolTip(e,text){
		if(document.all)e = event;
		
		var obj = document.getElementById('bubble_tooltip');
		var obj2 = document.getElementById('bubble_tooltip_content');
		obj2.innerHTML = text;
		obj.style.display = 'block';
		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
		var leftPos = e.clientX - 100;
		if(leftPos<0)leftPos = 0;
		obj.style.left = leftPos + 'px';
		obj.style.top = e.clientY - obj.offsetHeight -1 + st + 'px';
	}	
	
function hideToolTip()
{
	document.getElementById('bubble_tooltip').style.display = 'none';
	
}

//APRE POP UP CENTRATA CON VARIE OPZIONI

function newWindow(a_str_windowURL, a_str_windowName, a_int_windowWidth, a_int_windowHeight, a_bool_scrollbars, a_bool_resizable, a_bool_menubar, a_bool_toolbar, a_bool_addressbar, a_bool_statusbar, a_bool_fullscreen) {
  var int_windowLeft = (screen.width - a_int_windowWidth) / 2;
  var int_windowTop = (screen.height - a_int_windowHeight) / 2;
  var str_windowProperties = 'height=' + a_int_windowHeight + ',width=' + a_int_windowWidth + ',top=' + int_windowTop + ',left=' + int_windowLeft + ',scrollbars=' + a_bool_scrollbars + ',resizable=' + a_bool_resizable + ',menubar=' + a_bool_menubar + ',toolbar=' + a_bool_toolbar + ',location=' + a_bool_addressbar + ',statusbar=' + a_bool_statusbar + ',fullscreen=' + a_bool_fullscreen + '';
  var obj_window = window.open(a_str_windowURL, a_str_windowName, str_windowProperties)
    if (parseInt(navigator.appVersion) >= 4) {
      obj_window.window.focus();
    }
}

// ROLLOVER SULLE IMMAGINI 
// PRELOADING IMAGES
if (document.images) {
 img1_on =new Image();  img1_on.src ="/_layout/img_foto_on.jpg"; 
 img1_off=new Image();  img1_off.src="/_layout/img_foto.jpg"; 

 img2_on =new Image(); img2_on.src ="/_layout/img_video_on.jpg"; 
 img2_off=new Image(); img2_off.src="/_layout/img_video.jpg"; 
}

function movr(k) {
 if (document.images) 
  eval('document.img'+k+'.src=img'+k+'_on.src');
}

function mout(k) {
 if (document.images) 
  eval('document.img'+k+'.src=img'+k+'_off.src');
}

//-->

