function urlMessage(msg, url) {
	sendFeedBackMsg(msg);
	window.location=url;
}

function url(url) {
	window.location=url;
}

function sendFeedBackMsg(msg){
	// se esiste, cambia la label sotto al filtro di ricerca 
	if(document.getElementById && document.getElementById("FindFeedBack")) document.getElementById("FindFeedBack").innerHTML = msg;
}


function isNumber(formObj){
	formObj.value = formObj.value.replace(",",".");
	return ! (isNaN(formObj.value));
}

function isInteger(s){
	if(isNaN(s) || s.indexOf(",") >=0 || s.indexOf(".") >=0) return false;
	else return true;
}

/* isNumberWith2Dec.js */
	function isNumberWith2Dec(s){
		var index;
		var len;
		var numberOfDec;
		// alert("10");
		s = trim(s);
		if (s == "")
			return false;				                
		s = s.replace(",",".");
		index = s.lastIndexOf(".");
		// alert("20");
		len = s.length;
		// alert("30");
		numberOfDec = 0;
		if (index != -1) {
			numberOfDec = len - index -1;
		}
		
		//alert("index=" + index + " length=" + len + "numberOfDec= " + numberOfDec);

		if (numberOfDec > 2)
		  return false;
		
		return ! (isNaN(s));
	}

function togliBr(idName){
	var res =/&lt;br&gt;/g;
	t=eval('document.Dati.'+idName+'.value');
	transact=t.replace(res,"\r\n");
	eval('document.Dati.'+idName+'.value=transact') 
}

function addBr(idName){
	t=eval('document.Dati.'+idName+'.value');
	if(t != "") {
		var reReN =/\r\n/g;
		var reSoloR =/\r/g;					
		t = t.replace(reReN ,"&lt;br&gt;");
		t =  t.replace(reSoloR ,"&lt;br&gt;");
		eval('document.Dati.'+idName+'.value = t');
	}
}

function filtraCaratteri(idName) {
	//Filtra i caratteri perticolari
	t=eval('document.Dati.'+idName+'.value');
	if(t != "") {
		t = t.replace(/\u2018/gi ,"'");  //apice singolo Cut and paste da Word
		t = t.replace(/\u2019/gi ,"'");  //apice singolo inverso Cut and paste da Word
		t = t.replace(/\u201C/gi ,'"'); //apice doppio Cut and paste da Word
		t = t.replace(/\u201D/gi ,'"'); //apice doppoio inverso Cut and paste da Word
		eval('document.Dati.'+idName+'.value = t');
	}
}
				
function controllaData(data){					
	// formato data > gg/mm/aaaa

	if (data == '') return true;

	regular = /^([0-3][0-9])\/([0-1][0-9])\/(\d{4})$/
	result = regular.exec(data);
	
	if(result != null){
		var gg = result[1];
		var mm = result[2];
		var aaaa = result[3];
		 
	}else{
		return false;
	}
	
	//alert("anno: "+aaaa+ " mese: "+mm+ " giorno: "+gg);					
	dataDummy = new Date();
	dataDummy.setFullYear(aaaa,(mm-1),gg);

	//alert("annoDummy: "+dataDummy.getFullYear()+ " meseDummy: "+(dataDummy.getMonth()+1)+ " giornoDummy: "+dataDummy.getDate());						
	if((dataDummy.getDate() != gg) || ((dataDummy.getMonth() + 1) != mm) || (dataDummy.getFullYear() != aaaa)) return false;
	return true;
}

function controllaDataAlert(dataInput) {
	if(!controllaData(dataInput.value)) {
		alert("Le date devno essere nel formato gg/mm/aaaa\n\n esmpio: 01/01/2004");
		dataInput.value = "";
		dataInput.focus();
	}
}

function checkDateTime(nomeInput) {
	
	var input = eval("document.Dati."+nomeInput);
	var dateField = eval("document.Dati.date_"+nomeInput);
	var hourField = eval("document.Dati.hh_"+nomeInput);
	var minuteField = eval("document.Dati.mm_"+nomeInput);
	
	if(dateField.value == "") {
		input.value = "";
		return
	}
	
	// controllo il campo data
	if(!controllaData(dateField.value)) {
		alert("Le date devno essere nel formato gg/mm/aaaa\n\n esmpio: 01/01/2004");
		dateField.value = "";
		dateField.focus();
		return
	}
	
	// controllo le ore
	if(!isInteger(hourField.value) || (parseInt(hourField.value) < 0 || parseInt(hourField.value) > 23)) hourField.value = "00";
	if(!isInteger(minuteField.value) || (parseInt(minuteField.value) < 0 || parseInt(minuteField.value) > 59)) minuteField.value = "00";
		
	input.value = "" + dateField.value + " " + formatNumber(hourField.value, "00") + ":" + formatNumber(minuteField.value, "00") + ":00";
	
	//alert(input.value)
}


function checkDataNascita(nomeInput) {
	
	var input = eval("document.Dati."+nomeInput);
	var giornoField = eval("document.Dati.giorno_"+nomeInput);
	var meseField = eval("document.Dati.mese_"+nomeInput);
	var annoField = eval("document.Dati.anno_"+nomeInput);
	
	if(giornoField.value == "" || meseField.value == "" || annoField.value == "") {
		input.value = "";
		return
	}
		
	input.value = "" + giornoField.value + "/" + meseField.value + "/" + annoField.value;
	
	//alert(input.value)
}


// funzione per il format di numeri

   // Original JavaScript code by Duncan Crombie: dcrombie@chirp.com.au
   // Please acknowledge use of this code by including this header.

   // CONSTANTS
  var separator = ",";  // use comma as 000's separator
  var decpoint = ".";  // use period as decimal point
  var percent = "%";
  var currency = "$";  // use dollar sign for currency

  function formatNumber(number, format, print) {  // use: formatNumber(number, "format")
    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }
  
function sleep(gap){ 
	/* gap is in millisecs */
	var then,now; then=new Date().getTime();
	now=then;
	while((now-then)<gap)
	{now=new Date().getTime();}
}


/* trim.js */
function trim(inputString) {
	// Removes leading and trailing spaces from the passed string. Also removes
	// consecutive spaces and replaces it with one space. If something besides
	// a string is passed in (null, custom object, etc.) then return the input.
	if (typeof inputString != "string") { return inputString; }
		var retValue = inputString;
		var ch = retValue.substring(0, 1);
		while (ch == " ") { // Check for spaces at the beginning of the string
			  retValue = retValue.substring(1, retValue.length);
			  ch = retValue.substring(0, 1);
		}
		ch = retValue.substring(retValue.length-1, retValue.length);
		while (ch == " ") { // Check for spaces at the end of the string
			  retValue = retValue.substring(0, retValue.length-1);
			  ch = retValue.substring(retValue.length-1, retValue.length);
		}
		while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
		  retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
		  // Again, 	there 	are 	two 		spaces 	in each of the strings
	}
	return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function

/* Funzioni standard per la gestione dei dati */
/*function inviaComando(comando) {
	document.Dati.Action.value = comando;
	document.Dati.submit();
}*/

function inviaComando(comando, id) {
	document.Dati.Action.value = comando;

	if(typeof id != 'undefined') document.Dati.Id.value = id;
	
	enableItem(); // abilito eventuali item disabilitati
	
	document.Dati.submit();
}
function inviaComandoConConferma(comando, id, messaggio) {
	var conferma = confirm(messaggio);
	if(conferma) {
		document.Dati.Action.value = comando;
		if((typeof id != 'undefined') && (id != null)) document.Dati.Id.value = id;
		
		enableItem(); // abilito eventuali item disabilitati
		
		document.Dati.submit();
	}
}

function inviaComandoConCheckItem(comando, id) {
	strError = checkItem();
	if(strError == "") {
		inviaComando(comando, id);
	}
	else alert(strError);
}

function carica(id) {
	inviaComando("Carica", id);
}

function modifica(id) {
	strError = checkItem();
	if(strError == "") {
		inviaComando("Modifica", id);
	}
	else alert(strError);
}

function inserisci(id) {
	strError = checkItem();
	if(strError == "") {
		inviaComando("Inserisci", id);
	}
	else alert(strError);
}

function preparaInserimento() {
	inviaComando("PreparaInserimento");
}

function annulla() {
	//document.Dati.Action.value = "Annulla";
	//document.Dati.submit();
	inviaComando("Annulla");
}

function cancella(id) {
	var conferma = window.confirm("Si vuole procedere con la cancellazione ?");
	if(conferma) {
		inviaComando("Cancella", id);
	}
}

function HexColorToRGB(color) { // Original JavaScript code by Miahsoft - http://www.convea.com/
	var RGB = new Array();
	
	// in IE il colore è nella forma #FFFFFF
	// in Mozilla il colore è nella forma rgb(255, 255, 255)
	// tolgo il cancelletto iniziale
	if(color.charAt(0) == "#") {
	
		color = color.substring(1,7);
			
		RGB[0] = parseInt(color.substring(0,2),16);
		RGB[1] = parseInt(color.substring(2,4),16);
		RGB[2] = parseInt(color.substring(4,6),16);
	}
	else if(color.indexOf("rgb") >= 0) {
		
		color = color.replace(/rgb\(/, "new Array(");
		eval("RGB = " + color);
	}
	
	return RGB; 
}

function RGBToHexColor(RGB) { // Original JavaScript code by Thomas Gehrke
	var HexCharacters="0123456789ABCDEF";
	
	var hexValue="#";
	
	hexValue += HexCharacters.charAt((RGB[0]>>4)&0xf)+HexCharacters.charAt(RGB[0]&0xf);
	hexValue += HexCharacters.charAt((RGB[1]>>4)&0xf)+HexCharacters.charAt(RGB[1]&0xf);
	hexValue += HexCharacters.charAt((RGB[2]>>4)&0xf)+HexCharacters.charAt(RGB[2]&0xf);
	
	return hexValue;
}

//Funzioni e variabili per la selezione delle righe
var row_selected;
var id_row_selected = 0;
var selected_old_class;
var coloreSelezione = "#B1DAEA";

function rigadatiRollOverWithClass(rigadati, className){
	if(rigadati != row_selected) rigadati.className = className;
}

function rigadatiRollOutWithClass(rigadati, className){
	if(rigadati != row_selected) rigadati.className = className;	
}

function rigadatiSelectWithClass(rigadati, className) {
	if(row_selected != undefined) {
		// hack per ripristinare correttamente il roll-over
		if(selected_old_class == "rigaDatiOver") row_selected.className = "rigaDati";
		else row_selected.className = selected_old_class;
	}
	row_selected = rigadati;
	selected_old_class = rigadati.className;
	rigadati.className = className;
	
	id_row_selected = rigadati.id.substr(rigadati.id.lastIndexOf("_") + 1);
}

function goToURL(url) {
		document.Dati.action = url;
		document.Dati.submit();
}


