  var agt=navigator.userAgent.toLowerCase();

  // *** BROWSER version ***
  var is_major = parseInt(navigator.appVersion);
  var is_minor = parseFloat(navigator.appVersion);

  // *** BROWSER vendor ***
  var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('compatible') == -1)
                && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1));
  var is_nav4 = (is_nav && (is_major == 4));
  var is_nav4up = (is_nav && (is_major >= 4));
  var is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) ||
                        (agt.indexOf("; nav") != -1)) );
  var is_nav6 = (is_nav && (is_major == 5));
  var is_nav6up = (is_nav && (is_major >= 5));
  var is_gecko = (agt.indexOf('gecko') != -1);
  var is_ie    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  var is_ie4   = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
  var is_ie4up = (is_ie && (is_major >= 4));
  var is_ie5   = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
  var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
  var is_ie5up = (is_ie && !is_ie4);
  var is_ie5_5up =(is_ie && !is_ie4 && !is_ie5);
  var is_ie6   = (is_ie && (agt.indexOf("msie 6.")!=-1) );
  var is_opera = (agt.indexOf("opera") != -1);
  var is_safari = (agt.indexOf("safari") != -1);

  // *** PLATFORM ***
  var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
  var is_mac   = (agt.indexOf("mac")!=-1);
  var is_sun   = (agt.indexOf("sunos")!=-1);
  var is_linux = (agt.indexOf("inux")!=-1);
  var is_unixware = (agt.indexOf("unix_system_v")!=-1); 
  var is_unix  = (agt.indexOf("x11")!=-1);
  
  
var icon_close = "/img/icon/icon_plus.gif"
var icon_open = "/img/icon/icon_minus.gif"

function getNode( nodeId ) {
	if( document.getElementById )
		return document.getElementById( nodeId );
	else if( document.all && document.all( nodeId ) )
		return document.all( nodeId );
	else if( document.layers && document.layers[ nodeId ] )
		return document.layers[ nodeId ];
	else
		return false;
}

function in_array(stringToSearch, arrayToSearch) {
	for (s = 0; s < arrayToSearch.length; s++) {
		thisEntry = arrayToSearch[s].toString();
		if (thisEntry == stringToSearch) {
			return true;
		}
	}
	return false;
}


/* 	Chiude la barra di sinistra ed allarga il layer di contenuto */
function hide_left_bar(){
	var navbar  = getNode("navbar");
	var content = getNode("content");
	var navbar_w = 	180;
	var content_w = 729;
	
	if (navbar.style.display=="none")  {
		navbar.style.display="" 
		content.style.width = "729px";
	} else {
		navbar.style.display="none"
		content.style.width = "921px";
	}

	return false;
}


function ShowHideID(id, id2){
	var myid = getNode(id);
	var myid2 = getNode(id2);

	if (myid.style.display=="none")  {
		myid.style.display="";
		if (id2!="") myid2.src=icon_open;
	}
	else {
		myid.style.display="none";
		if (id2!="") myid2.src=icon_close;
	}

	return false;
}


function formatFileSize(value){
  if (value<1024){
    return value + " b";
  }
  else if (value<1048576){
    return Math.round(value / 1024) + " kb";
  }
  else{
    return Math.round(value / 10485.76) / 100 + " mb";
  }
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) 
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num + ',' + cents);
}

function CCA(CB){
	
	if (CB!=null) {
		if (CB.checked)
			hL(CB);
		else
			dL(CB);
	}
}

function hL(E){
	while (E.tagName!="TR"){
		E=E.parentElement;
	}
	E.className="H";
}

function dL(E){
	while (E.tagName!="TR"){
		E=E.parentElement;
	}
	E.className="";
}


document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}

/*
	http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F872571810073C3FD
*/
function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function getSelectedCheckboxValue(buttonGroup) {
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function


function str_replace(cerca, repla, subject)
{
	str 	= new String(subject);

	rExp	= "/"+cerca+"/g";
	rExp	= eval(rExp);
	newS	= String(repla);

	str = new String(str.replace(rExp, newS));

	return str;
}

function checkAll(name, value)
{
	var arr = document.getElementsByName(name);
	
	for (i=0; i<arr.length; i++)
		arr[i].checked=value;
}

