<!-- //
var sEmailRule= new RegExp("^[a-z0-9._-]+\@[a-z0-9._-]+\.[a-z]{2,4}$","i");	
var sIntegerRule = new RegExp("^[0-9]+$","i");	// 	

function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
	// window.showModalDialog(theURL,winName, 'edge:sunken; center:yes; help:no; status:no; scroll:yes; dialogHeight:600px; dialogWidth:640px' + features);
	// window.showModelessDialog(theURL,winName, features);
}

function OpenPopUpWindowModal(theURL, winName, features) { //v2.0
	// window.open(theURL,winName,features);
	// scroll:yes; dialogHeight:600px; dialogWidth:640px' + 
	window.showModalDialog(theURL,winName, 'edge:sunken; center:yes; help:no; status:no; ' + features);
	// window.showModelessDialog(theURL,winName, features);
}

function OpenPopUpWindowModeless(theURL, winName, features) { //v2.0
	// window.open(theURL,winName,features);
	// scroll:yes; dialogHeight:600px; dialogWidth:640px' + 
	window.showModelessDialog(theURL, winName, 'edge:sunken; center:yes; help:no; status:no; ' + features);
} 

function CheckInputEmail(objTextEmail, bObbligatorio)
{
	if (objTextEmail.value=="") {
		if (bObbligatorio) {
			alert("Inserire l'indirizzo email!");
			objTextEmail.focus();		
			return false;					
		} 
		else {
			return true;
		}
	}
		
	if (!sEmailRule.test(objTextEmail.value)) {
		alert("Indirizzo email non valido : (" + objTextEmail.value +")");
		objTextEmail.focus();
		return false;
	}	
	return true;
}

function CheckInputCurrency(objTextCurrency, bObbligatorio)
{
	// var sCurrencyRule= RegExp("^([0-9]){1}(\.){1}([0-9]){2}$")
	// var sCurrencyRule= RegExp("^([0-9]){1,}\.\d\d$");
	// var sCurrencyRule= RegExp("^[0-9]*\.\d\d$");
	// var sCurrencyRule= RegExp("^\d+(\.\d\d)?$");
	//var sCurrencyRule= RegExp("^\d+(?:\.\d{0,2})?$")	
	//var sCurrencyRule= RegExp("^\d{1,5}(\.\d{1,2})?$");	
	var sCurrencyRule= RegExp("^[0-9]{1,}(\.)([0-9]){1,2}$")
		
	if (objTextCurrency.value=="") {
		if (bObbligatorio) {
			alert("Inserire l'importo in formato nnnn.dd!");
			objTextCurrency.focus();		
			return false;					
		} 
		else {
			return true;
		}
	}
			
	if (!sCurrencyRule.test(objTextCurrency.value)) {
		alert("Importo non valido (" + objTextCurrency.value +")\n\nInserire l'importo in formato nnnn.dd!");
		objTextCurrency.focus();
		return false;
	}
		
	return true;
}

function CheckInputDate(objTextDate, bObbligatorio)
{
	var sDateRule= RegExp("^([0-9]){1,2}(\/){1}([0-9]){1,2}(\/){1}([0-9]){4}$")
	//var sDateRule= RegExp("^([0-9]){1,2}(\/|-){1}([0-9]){1,2}(\/|-){1}([0-9]){4}$")
	
	if (objTextDate.value=="") {
		if (bObbligatorio) {
			alert("Inserire la data in formato gg/mm/aaaa!");
			objTextDate.focus();		
			return false;					
		} 
		else {
			return true;
		}
	}
			
	if (!sDateRule.test(objTextDate.value)) {
		alert("Data non valida (" + objTextDate.value +")\n\nInserire la data in formato gg/mm/aaaa!");
		objTextDate.focus();
		return false;
	}	
	if (IsDate(objTextDate.value)==false) {
		alert("Data non valida (" + objTextDate.value +")\n\nInserire la data in formato gg/mm/aaaa!");
		objTextDate.focus();	
		return false;
	}
	
	return true;
}

function CheckInputTime(ojbTextTime, bObbligatorio)
{
	var sTimeRule= RegExp("^([0-9]){1,2}(:){1}([0-9]){1,2}(:){1}([0-9]){2}$")	
	
	if (ojbTextTime.value=="") {
		if (bObbligatorio) {
			alert("Inserire l\'ora in formato hh:mm:ss!");
			ojbTextTime.focus();		
			return false;					
		} 
		else {
			return true;
		}
	}
			
	if (!sTimeRule.test(ojbTextTime.value)) {
		alert("Ora non valida (" + ojbTextTime.value +")\n\nInserire l\'ora in formato hh:mm:ss!");
		ojbTextTime.focus();
		return false;
	}	
	if (IsTime(ojbTextTime.value)==false) {
		alert("Ora non valida (" + ojbTextTime.value +")\n\nInserire l\'ora in formato hh:mm:ss!");
		ojbTextTime.focus();	
		return false;
	}
	
	return true;
}

function AggiornaPadreChiudiFiglio(sUrl)
{      
     window.opener.location= sUrl;
     window.close();
     return true;
} 

function NuovoRecord(theForm) 
{
	theForm.ACT.value= 'NEW';
	return true;	
}

function CheckAllRecords(theForm) 
{
	for (var i = 0; i < theForm.elements.length; i++) {
		if(theForm.elements[i].type == 'checkbox'){
		  theForm.elements[i].checked = !(theForm.elements[i].checked);
		}
	}
}

function CheckEliminaSingoloRecord(theForm)
{
	if(confirm("Sei sicuro di voler cancellare i records selezionati ?")) {
		if(confirm("Te lo chiedo ancora una volta: \nSei sicuro di voler cancellare i records selezionati ?")) {		
			theForm.ACT.value = 'DELETE_SINGLE'; 
			theForm.submit();
		    return true;
		}
		return false;
	}
	else {
		return false;
	} 
}

function CheckEliminaRecords(theForm)
{
	if(confirm("Sei sicuro di voler cancellare i records selezionati ?")) {
		if(confirm("Te lo chiedo ancora una volta: \nSei sicuro di voler cancellare i records selezionati ?")) {		
			theForm.submit();
			return true;
		}
		return false;
	}
	else {
		return false;
	} 
}

function isEmail(sEmail) { 	
	return sEmailRule.test(sEmail)
}

function isInteger(sInteger) { 	
	return sIntegerRule.test(sInteger)
}

function CutSpace(s)
{ 
     var ris,i;
     ris = "";
     for (i=0; i < s.length; i++)  {
         if (s.charAt(i)!= ' ') ris+= s.charAt(i);
     }
     return ris;
}     

function MakeArray(n) {
   this.length = n
   for (var i=1; i<=n; i++) {
      this[i] = 0;
   }
   return this;
}

function Strip(string) {
   var s_str = string.length
   for (var i=0; i<string.length; i++) {
      if (" " != string.substring(i,i+1)) {
         s_str = i;
         break;
      }
   }
   if (s_str == string.length) {
      return "";
   }
   for (i=string.length-1; i>=0; i--) {
      if (" " != string.substring(i,i+1)) {
         var s_end = i;
         break;
      }
   }
   return string.substring(s_str,s_end+1);
}

function StripLeading0(string) {
   var s_str = string.length
   for (var i=0; i<string.length; i++) {
      if ("0" != string.substring(i,i+1)) {
         s_str = i;
         break;
      }
   }
   if (s_str == string.length) {
      return "";
   }
   return string.substring(s_str,string.length);
}

// check sull'ora
function check_ora(timeh) {	

	var th = 0;
	if (timeh.length != 0) {
	  stimeh = parseInt(timeh);
	  if (isNaN(timeh)) { 
	  	th = 2 
	  }
	  else {
	     if (timeh < 0 || timeh > 23) { 
	     	th = 2 
	     }
	   }
	}
	else 
		th = 1;
		
	return th;
}

// check sui minuti
function check_minuti(timem) {		
	var tm = 0;
		
	if (timem.length != 0) {
	  	timem = parseInt(timem);
	  	if (isNaN(timem)) { 
	  		tm = 2 
	  	}
	  	else {
	  		if (timem < 0 || timem > 59) { 
	  			tm = 2 
	  		}
		}
	}
	else
		tm = 1;
		
	return tm;
}	

function check_time(hh, mm) {
	
	if (check_ora(hh) || check_minuti(mm)) {					
	  	alert("Ora non valida");	  	
	  	return false;
	}
	return true;
}

function check_data(datag,datam,dataa)
{	
	err = new MakeArray(3)  ; 
	err[1] = "Data non valida";
	err[2] = "Mese non valido";
	err[3] = "Anno non valido";	
	
	// check sulla data
	if ((datag.length == 0) || (datam.length == 0) || (dataa.length == 0) ) {
	  msg = err[1]
	  alert(msg);	  
	  return false;
	}
	  
	if (datag.length != 0 && datam.length != 0 && dataa.length != 0)  {
	  datag = parseInt(datag)
	  datam = parseInt(datam)
	  dataa = parseInt(dataa)
	  if (isNaN(datag) || isNaN(datam) || isNaN(dataa)) {
	     msg = err[1]
	     alert(msg);
	     // datag.focus();
	     return false;
	  }
	  if (datam < 1 || datam > 12) {
	     msg = err[2]
	     alert(msg);
	     // datam.focus();
	     return false;
	  }
	  lm = new MakeArray(12);
	  lm[1] = 31; lm[2] = 28; lm[3] = 31; lm[4] = 30; lm[5] = 31; lm[6] = 30;
	  lm[7] = 31; lm[8] = 31; lm[9] = 30; lm[10] = 31; lm[11] = 30; lm[12] = 31;
	  if (0 == dataa % 4) { lm[2] = 29 }
	  if (datag < 1 || datag > lm[datam]) {
	     msg = err[1]
	     alert(msg);
	     //dataa.focus();
	     return false;
	  }
	}	
	return true;
}

function DateToInt(cDate ) 	{ // ipotizziamo di passare `01/01/2001'
	var aTmp = cDate.split('/');
	var nDay = aTmp[0]; // `01'
	var nMonth = aTmp[1]; // `01'
	var nYear = aTmp[2]; // `2001'
	return parseInt(nYear+nMonth+nDay ); // diventa `20010101'
}

function DateToRevString(cDate ) 	{ 
	// ipotizziamo di passare `01/01/2001'
	var aTmp = cDate.split('/');
	
	// diventa `20010101'
	return (aTmp[2]+''+AddLeadingChar(aTmp[1],'0',2)+''+AddLeadingChar(aTmp[0],'0',2)); 
}

function IsDate(sData) {
	var vTmp = sData.split('/');
	var dd 	= vTmp[0]; 	// '01'
	var mm 	= vTmp[1]; 	// '01'
	var yyyy = vTmp[2]; // '2000'	
   	var d = new Date(mm + "/" + dd + "/" + yyyy);   	
   	return (d.getMonth() + 1 == mm) && (d.getDate() == dd) && (d.getFullYear() == yyyy);	
}

function IsTime(sTime) {
	var vTime = sTime.split(':');
	var hh = vTime[0]; 	// '23'
	var mm = vTime[1]; 	// '59'
	var ss = vTime[2];  // '59'		
   	var d = new Date('01/01/2000 ' + hh + ":" + mm + ":" + ss);	
	return (d.getHours()==hh) && (d.getMinutes()==mm) && (d.getSeconds()==ss) 	
}

function IsShortTime(sTime) {
	var vTime = sTime.split(':');
	var hh = vTime[0]; 	// '23'
	var mm = vTime[1]; 	// '59'		
   	var d = new Date('01/01/2000 ' + hh + ":" + mm + ":00");	
	return (d.getHours()==hh) && (d.getMinutes()==mm);
}

function AddLeadingChar(sString, sChar, iMinLength) {
	var iCt;
	var sTemp; 
	var iLen;

	sTemp= '';
	
	iLen = sString.length;
	
	if (iLen<iMinLength) {
		for(iCt=1; iCt <= (iMinLength -iLen); iCt++) {
			sTemp = sTemp + sChar;
		}	
		sString = sTemp + sString ; 
	}
	return sString;
}

function RemoveElement(theList,itemNo) 
{
	theList.options[itemNo]=null
}

function AddElement(SourceList,TargetList) 
{
	var opt = new Option("new","new")
	var iCt
	var iPos
		
	iCt= SourceList.selectedIndex;
	if (iCt==-1) {
		alert ("Selezionare un elemento")
		return false;
	}
	
	opt.text= SourceList.options[iCt].text
	opt.value= SourceList.options[iCt].value
	iPos= TargetList.length;
	
	//iPos=0;
	TargetList.options[iPos]=opt
	RemoveElement(SourceList,iCt);	
	return true;	
}

function TextField_calcCharLeft(InputField, iMaxChar) {
	StrLen = InputField.value.length;
	if (StrLen > iMaxChar ) {
		InputField.value = InputField.value.substring(0,iMaxChar);
		CharsLeft = 0;
		window.alert("Lunghezza stringa eccessiva di: " + (StrLen - iMaxChar) + " carattere/i");
	} else {
		CharsLeft = iMaxChar - StrLen;
	}
	
	InputField.form.charsleft.value = iMaxChar - InputField.value.length;
}

function TextField_CharLeft(InputField, objCharsLeft, iMaxChar) {
	var StrLen;
	var CharsLeft;
	StrLen = InputField.value.length;
	
	if (StrLen > iMaxChar ) {
		InputField.value = InputField.value.substring(0,iMaxChar);
		CharsLeft = 0;
		window.alert("Lunghezza stringa eccessiva di: " + (StrLen - iMaxChar) + " carattere/i");
	} else {
		CharsLeft = iMaxChar - StrLen;
	}
	
	objCharsLeft.value = iMaxChar - InputField.value.length;
}


// -------------------------------
function CheckInteger(textbox)
{
  	var intero = textbox.value;
	var numericExpression = /^[0-9]+$/;
	var reg = new RegExp(numericExpression);
	if (reg.test(intero)) {
		return true;
	} else {
		alert("Inserire un valore numerico intero per " + textbox.name);
		intero= parseInt(textbox.value);
		if(isNaN(intero)) { 
			textbox.value= '';
		} else {
			textbox.value= intero;
			textbox.focus();
		}		
		return false;
	}
} // End --- CheckInteger() ---

// -------------------------------
function CheckFloat(textbox) {  		
	fFloat= parseFloat(textbox.value);
	if(isNaN(fFloat)) { 
		alert("Inserire un valore numerico per " + textbox.name);
		textbox.focus();
		return false;;
	}
	textbox.value= fFloat;
	return true;
	
} // End --- CheckFloat() ---
//-->