//Variabili globali
//------------------------------------------------------------------------------
var sSession;
var fgCreateForm;
var	sUser_Type;
var fgNew;
var fgDebug;
var fgChange;
var frFrame;
var fgFormBefore;
var fgFormAfter;
var fgNwFormBefore;
var fgNwFormAfter;
var fgDlFormAfter;
var fgChkFormAlter;
var fgSaveAfter;
var fgSaveBefore;
var fgSaveBeforeField;
var sFrFrame;
var iSql_Ky;
var iSql_Ky2;
var sSql_Ky;
var sSql_Ky2;
var sSql_Update;
var sSql_Table;
var sSql_Where;
var sSql_Read;
var sSql_View;
var sSql_Order;
var bhrAction;
var sForm_Html;
var sForm_Entry;
var sForm_Where;
var sForm_Behavior;
var sButton_Entry;
var sButton_Where;
var sButton_View;
var fgFormLock;
var fgModify;
var bProgram;
var nPgCurrent;
var nPageLast;
var nRowGrid;

  fgCreateForm    = false;
  sUser_Type      = "AD";
  fgDebug         = false;
  sButton_Entry   = "Standard_De";
  sButton_Where   = "Standard_Wh";
	sButton_View	  = "Standard_Vw"
  fgFormLock      = false;
  fgChkFormAlter  = false;
  sSql_Update     = "frk_Write";
  bhrAction       = "";
  sSession        = "";
	nPageLast       = 1;
	nRowGrid        = 20;
	nPgCurrent      = 1;

//behaviour
//------------------------------------------------------------------------------
function jsReadUserData(sTxt){
var sXML;
var sReturn;
var sWhr;
  
  sWhr="Bhr_User=" + Chr(34) + jsGetCookies("frkUsers_Ky") + Chr(34);
  sWhr=sWhr+" And Bhr_Form=" + Chr(34) + sForm_Behavior + Chr(34);
  sWhr=sWhr+" And Bhr_Field=" + Chr(34) + sTxt + Chr(34);
  sXML="<db><rs><st>frk_Read</st><tb>Behavior</tb><ky>Bhr_Ky</ky><whr>" + sWhr + "</whr></rs></db>";
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
  if (document.implementation.createDocument){ 
    var parser = new DOMParser(); 
    xmldoc = parser.parseFromString(sXML, "text/xml"); 
  }
  else if (window.ActiveXObject) { 
      var xmldoc = new ActiveXObject("Microsoft.XMLDOM");   
      xmldoc.loadXML(sXML);                                     
  }
  var db = xmldoc.getElementsByTagName("rs");
  var e = db[0];
  sReturn=getElementValue(e,"Bhr_Value");
  return sReturn;
}

function jsSaveUserData(sTxt,sVal){
var sXML;
var sReturn;
var sFr;

	if (Len(sForm_Behavior)>0){
		sFr=sForm_Behavior; 
	}else{ 
		sFr="Std";
	}
	sXML="<db><rs>"
	sXML=sXML + "<st>frk_Behavior_Write</st>"
	sXML=sXML + "<Bhr_User>" + jsGetCookies("frkUsers_Ky") + "</Bhr_User>"
	sXML=sXML + "<Bhr_Field>" + sTxt + "</Bhr_Field>"
	sXML=sXML + "<Bhr_Value>" + sVal + "</Bhr_Value>"
	sXML=sXML + "<Bhr_Form>" + sFr + "</Bhr_Form>"
	sXML=sXML + "</rs></db>"
  //alert(sXML);
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
  //alert(sXML);
}

function DeleteBehavior(){
var sXML;
  if (fgDebug){ 
    window.status="Tb:" + sSql_Read + " Ky: " + sSql_Ky + " Whr:" + sSql_Where;
  }
	sXML="<db user=" + jsGetCookie("frkUsers_Ky") + " form=" + mFileParametri + "><rs>";
	sXML=sXML + "<St>Behavior_Delete</St></rs></db>";
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
}

function LoadBehavior(mF){
var sXML;
	sXML="<db action=" + Chr(34) + bhrAction + Chr(34) + " user=" + jsGetCookies("frkUsers_Ky") + " form=" + Chr(34) + mFileParametri + Chr(34)  + "><rs>";
	sXML=sXML & "<St>Behavior_Read</St></rs></db>";
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
	bhrAction = "";
}

function HTMLDecode(encodedstring){
var tmp;
	tmp = encodedstring;
	tmp = Replace(tmp, "%3A", Chr(58));
	tmp = Replace(tmp, "%2F", Chr(47));
	tmp = Replace(tmp, "%2E", Chr(46));
  for(var i = 0; i < 256; i++) {
		tmp = Replace(tmp, "&#" + i + ";", Chr(i));
	}
	return tmp;
}

//Funzioni sui form
//------------------------------------------------------------------------------
function Iso2Utf(sT){
Tx=sT;
  if(Tx!=""){ 
    Tx=Replace(Tx,"&","&#38;");
  	Tx=Replace(Tx,">","&#62;");
  	Tx=Replace(Tx,"<","&#60;");
  	Tx=Replace(Tx,"à","&#224;");
  	Tx=Replace(Tx,"è","&#232;");
  	Tx=Replace(Tx,"é","&#233;");
  	Tx=Replace(Tx,"ò","&#242;");
  	Tx=Replace(Tx,"ì","&#236;");
  	Tx=Replace(Tx,"ù","&#249;");
  	Tx=Replace(Tx,"°","&#176;");
  	Tx=Replace(Tx,"£","&#163;");
  } 
  return Tx;
}

function Iso2HTML(sT){
Tx=sT;
  if(Tx!=""){ 
    Tx=Replace(Tx,"&","&#38;");
  	Tx=Replace(Tx,">","&#62;");
  	Tx=Replace(Tx,"<","&#60;");
  	Tx=Replace(Tx,"à","&#224;");
  	Tx=Replace(Tx,"è","&#232;");
  	Tx=Replace(Tx,"é","&#233;");
  	Tx=Replace(Tx,"ò","&#242;");
  	Tx=Replace(Tx,"ì","&#236;");
  	Tx=Replace(Tx,"ù","&#249;");
  	Tx=Replace(Tx,"°","&#176;");
  	Tx=Replace(Tx,"£","&#163;");
  } 
  return Tx;
}

function fnKy(nV){
 return Replace(nV,".","");
}

function jsGetModify(){
 return fgModify;
}

function jsGetProgram(){
 return bProgram;
}

function jsSetModify(bV){
  if (fgChange){ 
    fgModify = bV;
  }
}

function jsSetProgram(bV){
  bProgram = bV;
}

function txtBlur(sField) {
 /*
 oObj.classname=sFocusClass;
   if(sDataEntryChange!=oObj.value){
      if(fgChange){ 
        fnChange(oObj);
      }
   }
 */
}

function dtaBlur(sField){
 chkData(sField);
}

function chkBlur(sField) {
 /*
   if(sDataEntryChange!=oObj.value){
      if(fgChange){ 
        fnChange(oObj);
      }
   }
 */
}

function chkData(sField){
 if (document.getElementById(sField).value!=""){
  if(isDate(jsDtaUS(document.getElementById(sField).value))){
   document.getElementById(sField).value=jsDtaIT(document.getElementById(sField).value);
  }else{
   alert("Inserire data in formato valido");
   document.getElementById(sField).focus();
   document.getElementById(sField).select;
  }
 } 
}

function OraBlur(sField){
 chkOra(sField);
}

function chkOra(sField){
var sOra;
 if (document.getElementById(sField).value!=""){
  if(isDate(jsDtaUS(document.getElementById(sField).value))){
   sOra=FormatDateTime(document.getElementById(sField).value,4) ;
   document.getElementById(sField).value=Replace(sOra,".",":");
  }else{
   alert("Inserire ora in formato valido (HH:MM)");
   document.getElementById(sField).focus();
   document.getElementById(sField).select;
  }
 }
}

function NumBlur(sField) {
 //chkNumber(oObj,true);
}

function intBlur(sField) {
 //chkNumber(oObj,false);
}

function chkNumber(oObj,bFg){
 /*
 oObj.className=sFocusClass;
 if(oObj.value!=""){
  if(!isNaN(oObj.value)){ ;
   if(bFg){ ;
    oObj.value=fnFormat(oObj.value);
   }else{
    oObj.value=fnFormatInt(oObj.value);
   }
  }else{
   alert("Inserire una valore numerico",vbinformation,"Guida");
   oObj.focus();
   oObj.select;
  }
 } ;
 if(sDataEntryChange!=oObj.value){
  if(fgChange){ fnChange(oObj);
 }
 */
}

function fnNumIt2Us(nV){
var sV;
  sV="";
  if(!isNaN(nV)){ ;
    sV=Replace(nV,".","");
    sV=Replace(sV,",",".");
  }else{
    sV="";
  }
  return sV;
}

function fnIntIt2Us(nV){
var sV;
  sV="";
  if(!isNaN(nV)){ ;
    sV=Replace(nV,".","") + "";
    sV=Replace(sV,",","") + "";
  }else{
    sV="";
  }
  return sV;
}

function jsDtaIT(dData){
var sR;
  sR=dData;
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var matchArray = sR.match(datePat);
  month = matchArray[1];
  day = matchArray[3];
  year = matchArray[5];
  sR=Right("00" + month,2) + "/" + Right("00" + day,2) + "/" + Right("0000" + year,4);
  return sR;
}

function jsDtaUS(dData){
var sR;
  sR=dData;
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var matchArray = sR.match(datePat);
  month = matchArray[3];
  day = matchArray[1];
  year = matchArray[5];
  sR=Right("00" + month,2) + "/" + Right("00" + day,2) + "/" + Right("0000" + year,4);
  return sR;
}

function fnFormat(nV){
var sV;
 fnFormat=""  ;
 if(!isNaN(nV)){
  sV = FormatNumber(nV,2,false,false,true);
 }else{
  sV=nC;
 }
  return sV;
}

function fnFormatInt(nV){
var sV;
 if(!isNaN(nV)){
  sV=FormatNumber(nV,0,false,false,true);
 }else{
  sV=nC;
 }
  return sV;
}

function fnPressNumber(e) {
 if((e.keyCode < 48 || event.keyCode > 58  ) &&  (e.keyCode != 44 && e.keyCode != 46 )){
   e.keyCode = 0;
 }else{
   if(e.keyCode == 46){
     e.keyCode = 44;
   }
 }
 if(e.keyCode == 13){
   e.keyCode = 9;
 }
}

function fnPressText(e) {
 if(e.keyCode == 13){
  e.keyCode = 9;
 }
}

function fnPressTextarea(e){
 /*
 if(e.keyCode == 13){
  e.keyCode = 9;
 }
 */
}

function fnCheck(){
  /*if oObj.Checked then
		oObj.value="1"
	else
		oObj.value="0"
	end if
	setModify 1*/
}

function fnPressDate(e) {
 if((e.keyCode < 48 || e.keyCode > 58  ) &&  (e.keyCode != 47 && e.keyCode != 32  && e.keyCode != 58  )){
  e.keyCode = 0;
 }
 if(e.keyCode == 13){
  e.keyCode = 9;
 }
}

//------------------------------------------------------------------------------  
//------------------------------------------------------------------------------
function chkSave(){
 /*
 chkSave=-1;
 if(getModify()){
  if(chkForm()){ ;  
   if(6=alert("Salvare le modifiche apportate?",vbInformation+6no,"Guida")){
    fnSave;
   }else{
    jsSetModify(0);
   }
  }else{
   chkSave = 0;
  }
 } ;*/
 return true;
}

function jsNew(){
 if(chkSave()){
  jsNwForm(sForm_Entry);
  fgNew = true;
 }
} 

function jsReset(oObj){
 jsNwForm(sForm_Where);
}

function jsDefault(){
  frFrame = document.getElementById("frWhere");
  getDefault(frFrame,sForm_Where);
} 

function getDefault(oObj,sFrm){
var sXML;
  if (fgDebug){ 
    window.status="Tb:" + sSql_Read + " Ky: " + sSql_Ky + " Whr:" + sSql_Where;
  }
  sXML="<db><rs><st>frk_ReadDefault</st><Frm_Name>" + sFrm + "</Frm_Name></rs></db>";
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
  if (document.implementation.createDocument){ 
    var parser = new DOMParser(); 
    xmldoc = parser.parseFromString(sXML, "text/xml"); 
  }
  else if (window.ActiveXObject) { 
      var xmldoc = new ActiveXObject("Microsoft.XMLDOM");   
      xmldoc.loadXML(sXML);                                     
  }
  fgFormLock=false;  
  var db = xmldoc.getElementsByTagName("rs");
  var e = db[0];
  //ciclo per il form  
  for(var i = 0; i < oObj.elements.length; i++) {
    if(oObj.elements[i].id!="idFieldSet"){ 
        sType=oObj.elements[i].type;
        switch(sType) {       
            case "text":
              oObj.elements[i].value=getElementValue(e,oObj.elements[i].name);
              oObj.elements[i].disabled=fgFormLock;
              break; 
            case "textarea":
              oObj.elements[i].value=getElementValue(e,oObj.elements[i].name);
              oObj.disabled=fgFormLock;
              break; 
            case "hidden":
              oObj.elements[i].value=getElementValue(e,oObj.elements[i].name);
              oObj.elements[i].disabled=fgFormLock;
              break; 
            case "password":
              oObj.elements[i].value=getElementValue(e,oObj.elements[i].name);
              oObj.elements[i].disabled=fgFormLock;
              break; 
            case "select-one":
              oObj.elements[i].options.value=getElementValue(e,oObj.elements[i].name);
              oObj.elements[i].disabled=fgFormLock;
              if (InStr(oObj.elements[i].className.toLowerCase(),"readonly")>0){ 
                oObj.elements[i].disabled=true;
              }
              break; 
            case "checkbox":
              oObj.elements[i].checked=getElementValue(e,oObj.elements[i].name);
              if(oObj.elements[i].checked){
                oObj.elements[i].value=1
              }else{
                oObj.elements[i].value=0
              }
              oObj.elements[i].disabled=fgFormLock;
              break;     
            case "button":
              oObj.elements[i].disabled=fgFormLock;
               break;     
            default:
               break;     
        }
      }
   }
}

function jsFindSearch(){
  sSql_Where = fnWhere();
  if(vwGridCount()>0){
    jsSaveUserData(sForm_Behavior + "_Where",sSql_Where);
    parent.document.getElementById("current").id="current1";
    parent.document.getElementById("current2").id="current";
    parent.document.getElementById("currentId").name=2;
    document.location.href=parent.document.getElementById("View").href;
  }else{
    alert("Attenzione: Nessun record soddisfa i parametri inseriti nella ricercale");
  }
}

function vwGridCount(){
  if (fgDebug){ 
    window.status="Whr:" + sSql_Where;
  }
  sXML="<db><rs><st>frk_ReadCount</st><tb>" + sSql_View + "</tb><ky>" + sSql_Ky + "</ky><whr>" + sSql_Where + "</whr></rs></db>";
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
  if (document.implementation.createDocument){ 
    var parser = new DOMParser(); 
    xmldoc = parser.parseFromString(sXML, "text/xml"); 
  }
  else if (window.ActiveXObject) { 
      var xmldoc = new ActiveXObject("Microsoft.XMLDOM");   
      xmldoc.loadXML(sXML);                                     
  }
  var dbrec = xmldoc.getElementsByTagName("db");
  var erec = dbrec[0];
	nrec=getElementProperty(erec,"rw");
	return nrec; 
}

function jsSave(){
  if(chkForm()){
    fnSave();
  }
}

function fnSave(){
var fg;
  if(document.getElementById(sSql_Ky).value==''){ 
    fg="insert";
    sSql_Where ="";
  }else{
    fg="update";
    sSql_Where = sSql_Ky  + "=" + fnKy(document.getElementById(sSql_Ky).value);
  }
  jsSvForm(frFrame,fg);
  jsSetModify(0);
  fgNew = 0;
  sSql_Where = sSql_Ky + "=" + fnKy(iSql_Ky);
  jsVwForm(frFrame);
  alert("Dati salvati");
}

function jsSvForm(oObj,fg){
var Tx;
var sV;
var sType;
var sId;
var s;
var j;
var TxVls;
var TxFld;
var sXML;
var strIdTipo;

  s="";
  sV="";
  TxVls="";
  TxFld="";
  sXML="";
  Tx="<db><rs>";
  Tx=Tx + "<st>" + sSql_Update + "</st>";
  Tx=Tx + "<whr>" + sSql_Where + "</whr>";
  Tx=Tx + "<ky>" + fnKy(document.getElementById(sSql_Ky).value) + "</ky>";
  Tx=Tx + "<tb>" + sSql_Table + "</tb>";
  Tx=Tx + "<ty>" + fg + "</ty>";
  Tx=Tx + "<sql>";
  if(fg!="delete"){
  for(var i = 0; i < oObj.elements.length; i++) {
    strIdTipo=oObj.elements[i].id;
    strIdTipo=Left(strIdTipo,7);
    if (strIdTipo==''){
      strIdTipo='idField';
    } 
    if (strIdTipo!="idField"){ 
        sType=oObj.elements[i].type;
        if ((sType=="text") || (sType=="textarea") || (sType=="checkbox") || (sType=="select-one") || (sType=="hidden") || (sType=="password")){
                    sId=oObj.elements[i].name;
                    if (sId!=''){
                      sId=LCase(Left(sId,3));
                    }else{
                      sId='';
                    }
                    switch (sId) {       
                        case "txt":
                          if(oObj.elements[i].value==""){
                            sV="null";
                          }else{
                            sV="'" + Replace(Iso2Utf(oObj.elements[i].value),"'","''") + "'";
                          }
                          break; 
                        case "ora":
                          if(oObj.elements[i].value==""){
                            sV="null";
                          }else{
                            sV="'" + Replace(Iso2Utf(oObj.elements[i].value),"'","''") + "'";
                          }
                          break; 
                        case "num":
                          if(oObj.elements[i].value==""){
                            sV="null";
                          }else{
                            sV=fnNumIt2Us(oObj.elements[i].value);
                          }
                          break; 
                        case "int":
                          if(oObj.elements[i].value==""){
                            sV="null";
                          }else{
                            sV=fnNumIt2Us(oObj.elements[i].value);
                          }
                          break; 
                        case "dta":
                          if(oObj.elements[i].value==""){
                           sV="null";
                          }else{
                           sV="'" + jsDtaUS(oObj.elements[i].value) + "'";
                          }
                          break; 
                        case "chk":
                          if (oObj.elements[i].checked){ 
                            sV="1"; 
                          }else{ 
                            sV="0";
                          }
                          break;     
                        default:
							            sV="";	
                          break;     
                    }
                    sId=oObj.elements[i].name;
                    sId=LCase(sId);                    
                    sId=Right(sId,3)
                    if ((sV!="") && (sId!='nsd')){
                       switch(fg){
                         case "insert":
                           TxFld=TxFld + s + oObj.elements[i].id ;
                           TxVls=TxVls + s + sV ;
                           break;
                         case "update":
                           //alert(s + oObj.elements[i].id + "=" + sV);
                           Tx=Tx + s + oObj.elements[i].id + "=" + sV ;
                           break;
                         }
                      s=",";
                    }
        }
      }
   }
  }
  if(fgSaveBeforeField){ 
    svSaveBeforeField(fg,Tx,TxFld,TxVls);
  }
  //alert(fg);
  if(fg=="insert"){ 
    Tx = Tx + "(" + TxFld + ") Values (" + TxVls + ")";
  }
  Tx=Tx +"</sql>";
  if (fgSaveBefore){ 
    svSaveBefore(Tx);
  }
  Tx=Tx +"</rs></db>";
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",Tx);
  if (document.implementation.createDocument){ 
    var parser = new DOMParser(); 
    xmldoc = parser.parseFromString(sXML, "text/xml"); 
  }
  else if (window.ActiveXObject) { 
      var xmldoc = new ActiveXObject("Microsoft.XMLDOM");   
      xmldoc.loadXML(sXML);                                     
  }
  fgFormLock=false;  
  var db = xmldoc.getElementsByTagName("db");
  var e = db[0];
  iSql_Ky=getElementValue(e,"ky");
  if(fgSaveAfter){ 
    svSaveAfter();
  }
}

function chkForm(){
var sMsg;

  //chkFormStandard(frFrame,sMsg);
  if(fgChkFormAlter){ 
    chkFormAfter(sMsg);
  }
  return true;
  if(sMsg!=""){
    sMsg="Campi obbligatori:" + '\r\n' + sMsg;
    alert(sMsg);
    return false;
  }
  return true
}

function jsDelete(){
  fnDelete();
}

function fnDelete()  {
var fg;
  if(document.getElementById(sSql_Ky).value!=""){ 
        sMsg="Attenzione: Confermate eliminazione dei dati inseriti";
        if(confirm(sMsg) == true){ ;
            fg="delete";
            sSql_Where = sSql_Ky  + "=" + fnKy(document.getElementById(sSql_Ky).value);
            //alert(sSql_Where);
            jsSvForm(frFrame,fg);
            alert("Dati eliminati");
            jsSetModify(0);
            jsNwForm(sForm_Entry);
            if(fgDlFormAfter){ 
              dlFormAfter();
            }
        }
  }
}

function jsCancel(){
  if (fgFormLock==false){
   fnCancel();
  }
}

function fnCancel()  {
  if (document.getElementById(sSql_Ky).value!=""){
    jsSetModify(0);
    sSql_Where = sSql_Ky + "=" +  fnKy(document.getElementById(sSql_Ky).value);
    jsVwForm(frFrame);
  }else{
    jsNwForm(sForm_Entry);
  }
}

function jsVwForm(oObj){
var sMsg;
var sXML;
var sReq;
var sType;

  if(fgDebug){
    sMsg="Tb:" + sSql_Read + " Ky: " + sSql_Ky + " Whr:" + sSql_Where; 
    window.status=sMsg;
  }
  sXML="<db><rs><st>frk_Read</st><tb>" + sSql_Read + "</tb><ky>" + sSql_Ky + "</ky><whr>" + sSql_Where + "</whr></rs></db>";
  //alert(sXML);
  sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
  //alert(sXML);
  if (document.implementation.createDocument){ 
    var parser = new DOMParser(); 
    xmldoc = parser.parseFromString(sXML, "text/xml"); 
  }
  else if (window.ActiveXObject) { 
      var xmldoc = new ActiveXObject("Microsoft.XMLDOM");   
      xmldoc.loadXML(sXML);                                     
  }
  fgFormLock=false;  
  var db = xmldoc.getElementsByTagName("rs");
  var e = db[0];
  iSql_Ky=getElementValue(e,sSql_Ky);
  if (fgFormBefore){ 
    vwFormBefore();
  }
  //popolo il form
  jsVwFormPopulate(oObj, e);
  if (fgFormAfter){ 
    vwFormAfter();
  }
}

function fnWhereStandard(oObj){
var sV;
        for(var i = 0; i < oObj.elements.length; i++) {
          if(oObj.elements[i].id!="idFieldSet"){ 
              sType=oObj.elements[i].type;
              switch(sType) {       
                  case "text":
                    if (oObj.elements[i].value!=""){
                      if ((Mid(oObj.elements[i].name,4,3).toLowerCase())!="nsd"){
                                   switch(Left(oObj.elements[i].name,3).toLowerCase()){
                                        case "txt":
                                          sV=oObj.elements[i].id + " like " + Chr(34) + "%" + Replace(Iso2Utf(oObj.elements[i].value),"'","''") + "%" + Chr(34);
                                          break;
                                        case "ora":
                                          sV=oObj.elements[i].id + " like " + Chr(34) + "%" + Replace(Iso2Utf(oObj.elements[i].value),"'","''") + "%" + Chr(34);
                                          break;
                                        case "num":
                                          sV=oObj.elements[i].id + "=" + fnNumIt2Us(oObj.elements[i].value);
                                          break;
                                        case "int":
                                          sV=oObj.elements[i].id + "=" + fnNumIt2Us(oObj.elements[i].value);
                                          break;
                                        case "dta":
                                           if(oObj.elements[i].value!=""){
                                            sV=oObj.elements[i].id + "=" + Chr(34) + DtaUs(oObj.elements[i].value)  + Chr(34);
                                           }
                                           break;
                                         case "chk":
                                          if(oObj.elements[i].checked){
                                           sV = oObj.elements[i].id + "=1";
                                          }else{
                                           sV = "(" + oObj.elements[i].id + "=0 || " + oObj.elements[i].id + " Is Null)";
                                          }
                                          break;
                                        default:
                                          sV="";
                                          break;
                                  }

                                  if ((sV!="") && (InStr(oObj.elements[i].id.toLowerCase(),"nsd")==-1)){
                                    if (sSql_WhereGrid!=""){ 
                                      sSql_WhereGrid = sSql_WhereGrid + " And "
                                      }
                                    sSql_WhereGrid=sSql_WhereGrid + sV;
                                  }
                      }                                   
                   }

             } 
        }
    }
}


function jsVwFormPopulate(oObj, e){
        for(var i = 0; i < oObj.elements.length; i++) {
          if(oObj.elements[i].id!="idFieldSet"){ 
              sType=oObj.elements[i].type;
              switch(sType) {       
                  case "text":
                    oObj.elements[i].value=getElementValue(e,oObj.elements[i].id);
                    oObj.elements[i].disabled=fgFormLock;
                    break; 
                  case "textarea":
                    oObj.elements[i].value=getElementValue(e,oObj.elements[i].id);
                    oObj.elements[i].disabled=fgFormLock;
                    break; 
                  case "hidden":
                    oObj.elements[i].value=getElementValue(e,oObj.elements[i].id);
                    oObj.elements[i].disabled=fgFormLock;
                    break; 
                  case "password":
                    oObj.elements[i].value=getElementValue(e,oObj.elements[i].id);
                    oObj.elements[i].disabled=fgFormLock;
                    break; 
                  case "select-one":
                    oObj.elements[i].value=getElementValue(e,oObj.elements[i].id);
                    oObj.elements[i].disabled=fgFormLock;
                    if (InStr(oObj.elements[i].className.toLowerCase(),"readonly")>0){ 
                      oObj.elements[i].disabled=true;
                    }
                    break; 
                  case "checkbox":
                    if (getElementValue(e,oObj.elements[i].id)==1){
                      oObj.elements[i].value=1;
                      oObj.elements[i].checked=1;
                    }else{
                      oObj.elements[i].value=0;
                      oObj.elements[i].checked=0;
                    }
                    oObj.elements[i].disabled=fgFormLock;
                    break;     
                  case "button":
                    oObj.elements[i].disabled=fgFormLock;
                     break;     
                  default:
                     break;     
              }
            }
        }
}

function jsVwFormOther(oObj){
}


function jsNwForm(sForm_Entry){
 fgFormLock=false;
 if(fgNwFormBefore){ 
  nwFormBefore();
 }
 frFrame = document.getElementById(sFrFrame);
 getDefault(frFrame,sForm_Entry);
 if(fgNwFormAfter){ 
  nwFormAfter();
 }
}

function jsSetCookies(sCookies,sTxt){
	document.cookie=sCookies + "=" + sTxt + ";path=/;";
	//alert(document.cookie);
}

function jsGetCookies(name) { 
  var bikky = document.cookie;
  var index = bikky.indexOf(name + "=");
  if (index == -1) return null;
  index = bikky.indexOf("=", index) + 1; 
  var endstr = bikky.indexOf(";", index);
  if (endstr == -1) endstr = bikky.length; 
  return unescape(bikky.substring(index, endstr));
}

function jsHttpPost(sUrl, sXML){
   var xmlhttp=false;
   var sXML;
   var sR;
   sR='';
   try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    try {
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
     xmlhttp = false;
    }
   }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
      //firefox e altri
      xmlhttp = new XMLHttpRequest();
      xmlhttp.open("POST", sUrl,false);
      xmlhttp.send(sXML);
      sR=xmlhttp.responseText;
      return sR;
    }
    else{
       //internet explorer
      xmlhttp.open("POST", sUrl,false);
       xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4) {
         sR=xmlhttp.responseText;
        }
       }
     xmlhttp.send(sXML); 
     return sR;
    }
}

function jsHttpGet(sUrl){
  var xmlhttp=false;
  var sR;
  var i;
   try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    try {
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
     xmlhttp = false;
    }
   }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    //firefox e altri
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", sUrl, false);
    xmlhttp.send(null);
    sR=xmlhttp.responseText;
    return sR; 
  }else{
    xmlhttp.open("GET", sUrl,false);
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
       sR=xmlhttp.responseText;
      }
    }
    xmlhttp.send();
    return sR;
  }
}

function jsAppButton(oObj,sFrm,sFg){
  var sHTML;
  var sXML;
  var sVI;
  var sVF;
  
    sVI = "2";
    sVF = "70%";
    sXML="<db><rs><st>frk_Read</st><tb>frkToolbar</tb><ky>Mnu_Ky</ky><whr>Mnu_Form='" + sFrm + "' And Mnu_Type='button'</whr><ord>Mnu_Order</ord></rs></db>";
    sXML=jsHttpPost("db/SQLServer/frkStoreExecute.asp",sXML);
    if (document.implementation.createDocument){ 
      var parser = new DOMParser(); 
      xmldoc = parser.parseFromString(sXML, "text/xml"); 
    }
    else if (window.ActiveXObject) { 
        var xmldoc = new ActiveXObject("Microsoft.XMLDOM");   
        xmldoc.loadXML(sXML);                                     
    }
    var db = xmldoc.getElementsByTagName("rs");
    sHTML="<table border='0' cellpadding='0' cellspacing='0' width='100%' height='25' class='divToolbar'>";
    sHTML=sHTML+"<tr><td id='ToolbarStart' width='" + sVI + "' valign='center' class='ToolbarButton' nowrap><img src='images/22x22/ToolbarStart.gif' height='25' align='absmiddle'/></td>";
    for(var i = 0; i < db.length; i++) {
        var e = db[i];
        var Mnu_Order=getElementValue(e,"Mnu_Label")
        var Mnu_Width=getElementValue(e,"Mnu_Width")
        var Mnu_Icon=getElementValue(e,"Mnu_Icon")
        var Mnu_Label=getElementValue(e,"Mnu_Label");
        var Mnu_Click=getElementValue(e,"Mnu_Click")
        var Mnu_Flag=getElementValue(e,"Mnu_Flag")
        
        if (Mnu_Order==-1){
           sHTML=sHTML + "<td class='TitleButton' valign='center' width='" + Mnu_Width + "' nowrap>";
           if (Mnu_Icon!=""){
            sHTML=sHTML + "<img src='images/" + Mnu_Icon + "' width='22' height='22' align='absmiddle'>&nbsp;";
           }
           sHTML=sHTML + Mnu_Label + "</td>";
           sHTML=sHTML + "<td id='IdButton' valign='center' width='" + sVI + "'>&nbsp;</td>";
        
        }else{
           sHTML=sHTML + "<td id='IdButton' width='" + Mnu_Width + "' onclick='" + Mnu_Click + "' class='ToolbarButton' nowrap>" ;
           if (Mnu_Icon!=""){
             sHTML=sHTML + "<img src='images/" + Mnu_Icon + "' width='22' height='22' align='absmiddle'>&nbsp;";
           }
           sHTML=sHTML + Mnu_Label + "</td>";
           sHTML=sHTML + "<td width='1'>&nbsp;</td>";
        }     
    }
   sHTML=sHTML + "<td width='" + sVF + "' height='25' nowrap>&nbsp;</td>";
   if (sFg.toLowerCase()=="page"){
    sHTML=sHTML + "<td class='txtLbl'>N.Pag:</td>";
    sHTML=sHTML + "<td><input id='pgNumbert' name='pgNumbert' class='int' onchange='jsPgNumber()' onkeypress='fnPressNumber(event)' style='width:25'>";
    sHTML=sHTML + "<td class='txtLbl'>&nbsp;Pag:</td>";
    sHTML=sHTML + "<td><input id='pgCurrent' name='pgCurrent' class='numReadOnly' readonly style='width:60' tabindex='-1'>";
    sHTML=sHTML + "<td class='txtLbl'>&nbsp;Trov:</td><td><input id='pgRowCount' name='pgRowCount' tabindex='-1' class='numReadOnly' readonly style='width:45'></td>";
    sHTML=sHTML + "<td>&nbsp;</td>";
   }
   sHTML=sHTML + "</tr></table>";
   //alert(sHTML);
   document.getElementById(oObj).innerHTML=sHTML;
}

function jsPgNumber(){
var nPg;
 if (!isNaN(document.getElementById("pgNumbert").value)){
   nPg=document.getElementById("pgNumbert").value;
   if (nPg<1){ 
     nPg=1;
   }
   if (nPg>nPageLast){ 
    nPg=nPageLast;
   }
   nPgCurrent=nPg;
   if (chkSave()==true){
     jsVwGrid();
   }
 }
}

function jsPgPrevious(){
 if (nPgCurrent>1){ 
   nPgCurrent=nPgCurrent-1;
   if (chkSave()==true){
     jsVwGrid();
   }
 }
}

function jsPgFirst(){
 if (nPgCurrent!=1){ 
   nPgCurrent = 1;
   if (chkSave()==true){
     jsVwGrid();
   }
 }
}

function jsPgNext(){
  if (nPgCurrent<nPageLast){
    nPgCurrent=nPgCurrent + 1;
    if (chkSave()==true){
      jsVwGrid();
    }
  }
}

function jsPgLast(){
  if (nPgCurrent < nPageLast){
    nPgCurrent = nPageLast;
    if (chkSave()==true){   //Verifica se ci sono modifiche;
      if (chkSave()==true){
        jsVwGrid();
      }
    }
  } 
}

function jsPrint(){
}

function jsExportExcel(){
  window.location="frkExportExcel.asp?tabella=" + sSql_View;
}

function getElementValue(xmlDoc, strName){
  var strBrowser;
  strBrowser=navigator.appName;
  if (strBrowser=='Microsoft Internet Explorer'){
    strBrowser='ie';
  }else{
    strBrowser='ff';
  }
    if (strBrowser=='ie'){
      try{ 
        return xmlDoc.getElementsByTagName(strName).item(0).text;
      }catch(e){
        return "";
      }
    }else{
      try{ 
        return xmlDoc.getElementsByTagName(strName)[0].textContent;
      }catch(e){
        return "";
      }
    }
}

function getElementProperty(xmlDoc, strName){
  var strBrowser;
  strBrowser=navigator.appName;
  if (strBrowser=='Microsoft Internet Explorer'){
    strBrowser='ie';
  }else{
    strBrowser='ff';
  }
    if (strBrowser=='ie'){
      try{ 
        return xmlDoc.getAttribute(strName);
      }catch(e){
        return "";
      }
    }else{
      try{ 
        return xmlDoc.getAttribute(strName);
      }catch(e){
        return "";
      }
    }
}

function jsGetFormBody(oTr,oDiv,sFrm){
var sPar;
var sHTML;
  if(fgCreateForm){ 
    sPar="?form=" + sFrm + "&frame=frBody";
    sHTML=jsHttpPost("db/SQLServer/frkFormsCreate.asp" + sPar ,"");
    document.getElementById(oDiv).innerHTML=sHTML;
    document.getElementById(oTr).style.display="block";
 }else{
    jsGetForm(oTr,oDiv,sFrm);
  }
}

function jsGetFormWhere(oTr,oDiv,sFrm){
var sPar;
var sHTML;
  if(fgCreateForm){ 
    sPar="?form=" + sFrm + "&frame=frWhere";
    sHTML=jsHttpPost("db/SQLServer/frkWhereCreate.asp" + sPar ,"");
    document.getElementById(oDiv).innerHTML=sHTML;
    document.getElementById(oTr).style.display="block";
 }else{
    jsGetForm(oTr,oDiv,sFrm);
 }
}

function jsLoadBody(sFrm){
var sHTML;
  sHTML=jsHttpGet("template/" + sFrm + ".html");
  document.body.innerHTML=sHTML;
}

function jsLoadDiv(sFrm, oDiv){
var sHTML;
  sHTML=jsHttpGet("template/" + sFrm + ".html");
  document.getElementById(oDiv).innerHTML=sHTML;
  document.getElementById(oDiv).style.display="block";
}

function jsGetForm(oTr,oDiv,sFrm){
var sHTML;
  sHTML=jsHttpGet("xsl/" + sFrm + ".xsl");
  document.getElementById(oDiv).innerHTML=sHTML;
  document.getElementById(oTr).style.display="block";
}

//Compatibilità con vbScript
//------------------------------------------------------------------------------
function FormatDateTime(datetime, FormatType){
	var strDate = new String(datetime);
	if (strDate.toUpperCase() == "NOW") {
		var myDate = new Date();
		strDate = String(myDate);
	} else {
		var myDate = new Date(datetime);
		strDate = String(myDate);
	}
	var Day = new String(strDate.substring(0,3));
	if (Day == "Sun") Day = "Sunday";
	if (Day == "Mon") Day = "Monday";
	if (Day == "Tue") Day = "Tuesday";
	if (Day == "Wed") Day = "Wednesday";
	if (Day == "Thu") Day = "Thursday";
	if (Day == "Fri") Day = "Friday";
	if (Day == "Sat") Day = "Saturday";
	var Month = new String(strDate.substring(4,7)), MonthNumber = 0;
	if (Month == "Jan") { Month = "January"; MonthNumber = 1; }
	if (Month == "Feb") { Month = "February"; MonthNumber = 2; }
	if (Month == "Mar") { Month = "March"; MonthNumber = 3; }
	if (Month == "Apr") { Month = "April"; MonthNumber = 4; }
	if (Month == "May") { Month = "May"; MonthNumber = 5; }
	if (Month == "Jun") { Month = "June"; MonthNumber = 6; }
	if (Month == "Jul") { Month = "July"; MonthNumber = 7; }
	if (Month == "Aug") { Month = "August"; MonthNumber = 8; }
	if (Month == "Sep") { Month = "September"; MonthNumber = 9; }
	if (Month == "Oct") { Month = "October"; MonthNumber = 10; }
	if (Month == "Nov") { Month = "November"; MonthNumber = 11; }
	if (Month == "Dec") { Month = "December"; MonthNumber = 12; }
	var curPos = 11;
	var MonthDay = new String(strDate.substring(8,10));
	if (MonthDay.charAt(1) == " ") {
		MonthDay = "0" + MonthDay.charAt(0);
		curPos--;
	}
	var MilitaryTime = new String(strDate.substring(curPos,curPos + 5));
	var Year = new String(strDate.substring(strDate.length - 4, strDate.length));
	document.write(strDate + "");
	if (FormatType == 1)
		strDate = Day + ", " + Month + " " + MonthDay + ", " + Year;
	else if (FormatType == 2)
		strDate = MonthNumber + "/" + MonthDay + "/" + Year.substring(2,4);
	else if (FormatType == 3) {
		var AMPM = MilitaryTime.substring(0,2) >= 12 && MilitaryTime.substring(0,2) != "24" ? " PM" : " AM";
		if (MilitaryTime.substring(0,2) > 12)
			strDate = (MilitaryTime.substring(0,2) - 12) + ":" + MilitaryTime.substring(3,MilitaryTime.length) + AMPM;
		else {
			if (MilitaryTime.substring(0,2) < 10)
				strDate = MilitaryTime.substring(1,MilitaryTime.length) + AMPM;
			else
				strDate = MilitaryTime + AMPM;
		}
	}
	else if (FormatType == 4)
		strDate = MilitaryTime;
	return strDate;
}

function FormatCurrency(num,decimalNum,bolLeadingZero,bolParens,bolCommas){
	var tmpStr = new String(FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas));
	if (tmpStr.indexOf("(") != -1 || tmpStr.indexOf("-") != -1) {
		if (tmpStr.charAt(0) == "(")
			tmpStr = "($"  + tmpStr.substring(1,tmpStr.length);
		else if (tmpStr.charAt(0) == "-")
			tmpStr = "-$" + tmpStr.substring(1,tmpStr.length);
		return tmpStr;
	}
	else
		return "$" + tmpStr;
}

function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas){
  if (isNaN(parseInt(num))) return "NaN";  
  var tmpNum = num;
  var iSign = num < 0 ? -1 : 1;		// Get sign of number
  tmpNum *= Math.pow(10,decimalNum);
  tmpNum = Math.round(Math.abs(tmpNum))
  tmpNum /= Math.pow(10,decimalNum);
  tmpNum *= iSign;					
  var tmpNumStr = new String(tmpNum);

  if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
  	if (num > 0)
  		tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
  	else
  		tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
  if (bolCommas && (num >= 1000 || num <= -1000)) {
  	var iStart = tmpNumStr.indexOf(".");
  	if (iStart < 0)
  		iStart = tmpNumStr.length;
  
  	iStart -= 3;
  	while (iStart >= 1) {
  		tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
  		iStart -= 3;
  	}
  }
  if (bolParens && num < 0)
 	tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";
  return tmpNumStr;
}

function Left(str, n){
  if (n <= 0)  
    return "";
  else if (n > String(str).length)
    return str; 
  else
    return String(str).substring(0,n);
}

function Right(str, n){
  if (n <= 0)
     return "";
  else if (n > String(str).length)   
     return str;                     
  else { 
     var iLen = String(str).length;
     return String(str).substring(iLen, iLen - n);
  }
}

function Trim(str){
  return RTrim(LTrim(str));
}

function LTrim(str){
  var whitespace = new String(" \t\n\r");  
  var s = new String(str);
  if (whitespace.indexOf(s.charAt(0)) != -1) {
  var j=0, i = s.length;
  while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
      j++;
  s = s.substring(j, i);
  }
  return s;
}

function RTrim(str){
  var whitespace = new String(" \t\n\r");
  var s = new String(str);
  if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
    var i = s.length - 1;
    while (i >= 0 && whitespace.indexOf(s.charAt[i]) != -1)
        i--;
    s = s.substring(0, i+1);
  }
  return s;
}

function Split(StringToSplit, CharToSplit){
	return StringToSplit.split(CharToSplit);
}

function Replace(StringToReplace, StringToChange, StringChangedIn){
  return StringToReplace.replace(StringToChange, StringChangedIn);
}

function CBool(ValueToConvertInBoolean){
  return Boolean(ValueToConvertInBoolean);
}

function UBound(ArrayToLength){
  return ArrayToLength.length;
}

function CInt(StringToConvertInInteger){
  return parseInt(StringToConvertInInteger);
}
function CStr(ValueToConvertInString){
  return String(ValueToConvertInString);
}

function Now(){
    var oggi    = new Date();

    var giorno  = oggi.getDate();
    var mese    = (oggi.getMonth() + 1);
    var anno    = oggi.getFullYear();
    var ora     = oggi.getHours();
    var minuti  = oggi.getMinutes();
    var secondi = oggi.getSeconds();
    return giorno + "/" + mese + "/" + anno + " " + ora + ":" + minuti + ":" + secondi;
}

function Time(){
	var oggi    = new Date();
	var ora     = oggi.getHours();
	var minuti  = oggi.getMinutes();
	var secondi = oggi.getSeconds();
	return ora + ":" + minuti + ":" + secondi;
}

function _Date(){
	var oggi   = new Date();
	var giorno = oggi.getDate();
	var mese   = (oggi.getMonth() + 1);
	var anno   = oggi.getFullYear();
	return giorno + "/" + mese + "/" + anno;
}

function InStr(strSearch, charSearchFor){
	for (i=0; i < Len(strSearch); i++){
    if (charSearchFor == Mid(strSearch, i, 1)){
  	 return i;
    }
	}
	return -1;
}

function InStrRev(strSearch, charSearchFor){
	for (i=Len(strSearch); i >=0; i--){
    if (charSearchFor == Mid(strSearch, i, 1)){
  	 return i;
    }
	}
	return -1;
}

function Len(str){  
  return String(str).length;  
}

function Mid(str, start, len){
  if (start < 0 || len < 0) return "";
  var iEnd, iLen = String(str).length;
  if (start + len > iLen)
    iEnd = iLen;
  else
    iEnd = start + len;
  return String(str).substring(start,iEnd);
}

function LCase(StringToLowerCase){
  return StringToLowerCase.toLowerCase();
}

function UCase(StringToUpperCase){
  return StringToUpperCase.toUpperCase();
} 

function Chr(CharCode)
{
	return String.fromCharCode(CharCode);
}

function isDate(dateStr) {
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var matchArray = dateStr.match(datePat); // is the format ok?
  if (matchArray == null) {
    return false;
  }
  month = matchArray[1]; // p@rse date into variables
  day = matchArray[3];
  year = matchArray[5];
  if (month < 1 || month > 12) { // check month range
    return false;
  }
  if (day < 1 || day > 31) {
    return false;
  }
  if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    return false;
  }
  if (month == 2) { // check for february 29th
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day==29 && !isleap)) {
      return false;
    }
  }
  return true;
}

function getOggi(){
var dtOggi;
var curdate = new Date();
var month;
  month=curdate.getMonth();
  month++;
  dtOggi=new Date().getDate() + "/" + month +  "/" + curdate.getFullYear();
  dtOggi=jsDtaIT(dtOggi);
  return dtOggi;
}
//------------------------------------------Calendario
var NUM_CENTYEAR = 30;
var BUL_TIMECOMPONENT = false;
var BUL_YEARSCROLL = true;
var calendars = [];
var RE_NUM = /^\-?\d+$/;
function calendar1(obj_target) {
	this.gen_date = cal_gen_date1;
	this.gen_time = cal_gen_time1;
	this.gen_tsmp = cal_gen_tsmp1;
	this.prs_date = cal_prs_date1;
	this.prs_time = cal_prs_time1;
	this.prs_tsmp = cal_prs_tsmp1;
	this.popup    = cal_popup1;
	if (!obj_target)
		return cal_error("Errore di apertura nel calendario: nessun campo specificato");
	if (obj_target.value == null)
		return cal_error("Errore di apertura nel calendario: Il paramero non è valido per il campo specificato");
	this.target = obj_target;
	this.time_comp = BUL_TIMECOMPONENT;
	this.year_scroll = BUL_YEARSCROLL;
	this.id = calendars.length;
	calendars[this.id] = this;
}
function cal_popup1 (str_datetime) {
	if (str_datetime) {
		this.dt_current = this.prs_tsmp(str_datetime);
	}
	else {
		this.dt_current = this.prs_tsmp(this.target.value);
		this.dt_selected = this.dt_current;
	}
	if (!this.dt_current) return;

	var obj_calwindow = window.open(
		'calendar.html?datetime=' + this.dt_current.valueOf()+ '&id=' + this.id,
		'Calendar', 'width=200,height='+(this.time_comp ? 215 : 190)+
		',status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes'
	);
	obj_calwindow.opener = window;
	obj_calwindow.focus();
}
function cal_gen_tsmp1 (dt_datetime) {
	return(this.gen_date(dt_datetime) + ' ' + this.gen_time(dt_datetime));
}
function cal_gen_date1 (dt_datetime) {
	return (
		(dt_datetime.getDate() < 10 ? '0' : '') + dt_datetime.getDate() + "/"
		+ (dt_datetime.getMonth() < 9 ? '0' : '') + (dt_datetime.getMonth() + 1) + "/"
		+ dt_datetime.getFullYear()
	);
}
function cal_gen_time1 (dt_datetime) {
	return (
		(dt_datetime.getHours() < 10 ? '0' : '') + dt_datetime.getHours() + ":"
		+ (dt_datetime.getMinutes() < 10 ? '0' : '') + (dt_datetime.getMinutes()) + ":"
		+ (dt_datetime.getSeconds() < 10 ? '0' : '') + (dt_datetime.getSeconds())
	);
}
function cal_prs_tsmp1 (str_datetime) {
	if (!str_datetime)
		return (new Date());
	if (RE_NUM.exec(str_datetime))
		return new Date(str_datetime);
	var arr_datetime = str_datetime.split(' ');
	return this.prs_time(arr_datetime[1], this.prs_date(arr_datetime[0]));
}
function cal_prs_date1 (str_date) {
	var arr_date = str_date.split('/');
	if (arr_date.length != 3) return cal_error ("Invalid date format: '" + str_date + "'.\nFormat accepted is gg/mm/aaaa.");
	if (!arr_date[0]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo day of month value can be found.");
	if (!RE_NUM.exec(arr_date[0])) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[1]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo month value can be found.");
	if (!RE_NUM.exec(arr_date[1])) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[2]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo year value can be found.");
	if (!RE_NUM.exec(arr_date[2])) return cal_error ("Invalid year value: '" + arr_date[2] + "'.\nAllowed values are unsigned integers.");
	var dt_date = new Date();
	dt_date.setDate(1);
	if (arr_date[1] < 1 || arr_date[1] > 12) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed range is 01-12.");
	dt_date.setMonth(arr_date[1]-1);
	if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
	dt_date.setFullYear(arr_date[2]);
	var dt_numdays = new Date(arr_date[2], arr_date[1], 0);
	dt_date.setDate(arr_date[0]);
	if (dt_date.getMonth() != (arr_date[1]-1)) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed range is 01-"+dt_numdays.getDate()+".");
	return (dt_date)
}
function cal_prs_time1 (str_time, dt_date) {
	if (!dt_date) return null;
	var arr_time = String(str_time ? str_time : '').split(':');

	if (!arr_time[0]) dt_date.setHours(0);
	else if (RE_NUM.exec(arr_time[0]))
		if (arr_time[0] < 24) dt_date.setHours(arr_time[0]);
		else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed range is 00-23.");
	else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed values are unsigned integers.");
	
	if (!arr_time[1]) dt_date.setMinutes(0);
	else if (RE_NUM.exec(arr_time[1]))
		if (arr_time[1] < 60) dt_date.setMinutes(arr_time[1]);
		else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed values are unsigned integers.");

	if (!arr_time[2]) dt_date.setSeconds(0);
	else if (RE_NUM.exec(arr_time[2]))
		if (arr_time[2] < 60) dt_date.setSeconds(arr_time[2]);
		else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed values are unsigned integers.");

	dt_date.setMilliseconds(0);
	return dt_date;
}
function cal_error (str_message) {
	alert (str_message);
	return null;
}
//------------------------------------------Actions
function btOggiClick(fldName){
  document.getElementById(fldName).value = getOggi();
}

function btOraClick(fldName){
 document.getElementById(fldName).value = Replace(FormatDateTime(Now,4),".",":");
}

function btCalendarioClick(fldName){
	var cal1 = new calendar1(document.forms['frBody'].elements[fldName]);
	cal1.year_scroll = true;
	cal1.time_comp = false;
  cal1.popup();
}

function modalWin(strPath, strTitle, strWidth, strHeight){
  var strBrowser;
  var strReturn;
  var wd;
  strBrowser=navigator.appName;
  strReturn=undefined;
  if (strBrowser=='Microsoft Internet Explorer'){
    strFeatures="dialogHeight:" + strHeight + "px;dialogWidth:" + strWidth + "px;center:yes;resizable:no;scroll:no;status:no";
    strReturn=window.showModalDialog(strPath,strTitle,strFeatures);
  }else{
    strFeatures="alwaysRaised=yes,status=no,toolbar=no,location=no,menubar=no,directories=no,resizable=no,scrollbars=no,height=" + strHeight + ",width=" + strWidth + ",modal=yes,dependent=yes,dialog=yes,screenY="+((screen.availHeight-strHeight)/2)+",screenX="+((screen.availWidth-strWidth)/2); 
    wd=window.open(strPath,strTitle,strFeatures);
    self.blur();
    wd.focus();
    //window.opener.document.form1.text1.value = txtVal;
  }
  return strReturn;
};

function normalWin(strPath, strTitle, strWidth, strHeight){
  var strBrowser;
  var wd;
  strBrowser=navigator.appName;
  if (strBrowser=='Microsoft Internet Explorer'){
    strFeatures="status=no,toolbar=no,location=no,menubar=no,directories=no,resizable=yes,scrollbars=no,height=" + strHeight + ",width=" + strWidth + ",modal=yes,dependent=yes,dialog=yes,screenY="+((screen.availHeight-strHeight)/2)+",screenX="+((screen.availWidth-strWidth)/2); 
    wd=window.open(strPath,strTitle,strFeatures);
    wd.focus();
  }else{
    strFeatures="status=no,toolbar=no,location=no,menubar=no,directories=no,resizable=yes,scrollbars=no,height=" + strHeight + ",width=" + strWidth + ",modal=yes,dependent=yes,dialog=yes,screenY="+((screen.availHeight-strHeight)/2)+",screenX="+((screen.availWidth-strWidth)/2); 
    wd=window.open(strPath,strTitle,strFeatures);
    wd.focus();
  }
  return wd;
};
