function setOpt(form, opt) {
   //## mauricio - 19.01.2007 - i
   // 'Movendo' o código abaixo para a função 'sendAppletAreas'.
   ////## mauricio - 05.08.05 - i
   //// Faz um submit de todos os componentes/applets da página
   //if(is_ie5_5up) {
   //
   //   var tags = new Array("object");
   //   for (var k = tags.length; k > 0; ) {
   //      var ar = document.getElementsByTagName(tags[--k]);
   //      for (var i = 0; i < ar.length; i++) {
   //          if(ar[i]["submit"] != null) {
   //              ar[i].submit();
   //          }
   //      }
   //   }
   //}
   ////## mauricio - 05.08.05 - f
   //## mauricio - 19.01.2007 - f

   form.FunctionObject.value = opt;

   if(is_ie5_5up) {
       if(form.ScrollPos != null) {
           form.ScrollPos.value = document.body.scrollTop;
       }
   }
}

//## mauricio - 19.01.2007 - i
// Nova função. Chamada no 'onsubmit' do form, caso haja applet INSYDE.
function sendAppletAreas() {
   // Faz um submit de todos os componentes/applets da página
   if(is_ie5_5up) {

      var tags = new Array("object");
      for (var k = tags.length; k > 0; ) {
         var ar = document.getElementsByTagName(tags[--k]);
         for (var i = 0; i < ar.length; i++) {
             if(ar[i]["submit"] != null) {
                 ar[i].submit();
             }
         }
      }
   }
}    
//## mauricio - 19.01.2007 - f

function setScroll(scroll_pos) {
   if(scroll_pos == 0 || scroll_pos == "" || scroll_pos == null) {
      return;
   }
   
   var obj;
   var aux;
   var arr = document.all.tags("tr");
   var distance = -1;
   var aux_dis = 0;

   for(var i = 0; i < arr.length; i++) {
      aux = arr[i];
      rect = aux.getBoundingClientRect();
      aux_distance = scroll_pos - rect.top;
      if(aux_distance < 0) {
         aux_distance = aux_distance * -1;
      }
      if(distance == -1) {
         distance = aux_distance;
         obj = aux;
      }
      if(aux_distance < distance) {
         obj = aux;
         distance = aux_distance;
      }
   }
   
   if (obj != null) {
      obj.scrollIntoView(true);
   }
}

function setOptAndSubmit(form, opt, event) {
   setOpt(form, opt);    
   form.submit(); 
   if(is_ie5_5up) {
      event.returnValue = false;
   }
   if(is_nav6up) {
      event.preventDefault();
   }
}

//## Milton - 08/05/2008 - i
//## //## mauricio - 14.06.05 - i
//## // JSF
//## function setOptAndSubmitIndirect(form, opt, id) {
//##    setOpt(form, opt);
//##    lastIndex = id.lastIndexOf(":");
//##    parentId = lastIndex != -1 ? id.substring(0, lastIndex) : id;
//##    element = document.getElementById(parentId + ":Submit");
//##    if(is_ie5_5up) {
//##        element.click();
//##        return;
//##    }
//##    if(is_nav6up) {
//##        evt = document.createEvent("HTMLEvents");
//##        evt.initEvent("click", "true", "true");
//##        //## mauricio - 18.10.05 - i
//##        // Descobri empiricamente que chamar o evento como funcao funciona.
//##        element.onclick(evt);
//##        //## mauricio - 18.10.05 - f
//##    }
//## }
//## //## mauricio - 14.06.05 - f
//## 
//## //## mauricio - 12.08.05 - i
//## // JSF
//## function setOptAndSubmitIndirectDT(form, opt, id) {
//##    setOpt(form, opt);
//##    submitIndirectDT(form, id);
//## }
//## 
//## function submitIndirectDT(form, id) {
//##    element = document.getElementById(id + "-Submit");
//##    if(is_ie5_5up) {
//##        element.click();
//##        return;
//##    }
//##    if(is_nav6up) {
//##        evt = document.createEvent("HTMLEvents");
//##        evt.initEvent("click", "true", "true");
//##        //## mauricio - 18.10.05 - i
//##        // Descobri empiricamente que chamar o evento como funcao funciona.
//##        element.onclick(evt);
//##        //## mauricio - 18.10.05 - f
//##    }
//## }
//## //## mauricio - 12.08.05 - f

function setOptAndSubmitIndirect(form, opt, id) {
   setOpt(form, opt);
   submitIndirect(form, id);
}

function submitIndirect(form, id) {
   element = document.getElementById(id + "-Submit");
   if(is_ie5_5up) {
       element.click();
       return;
   }
   if(is_nav6up) {
       evt = document.createEvent("HTMLEvents");
       evt.initEvent("click", "true", "true");
       //## mauricio - 18.10.05 - i
       // Descobri empiricamente que chamar o evento como funcao funciona.
       element.onclick(evt);
       //## mauricio - 18.10.05 - f
   }
}
//## Milton - 08/05/2008 - f


//## mauricio - 23.09.05 - i
// ScrollPos JSF
function saveScrollPos(top, left) {
   for (var i = 0; i < document.forms.length; i++) {
      formId = document.forms[i].id;
      document.forms[i][formId + ":ScrollTop"].value = top;
      document.forms[i][formId + ":ScrollLeft"].value = left;
   }
}   
 
function restoreScrollPos() {
   if (document.forms.length > 0) {
      formId = document.forms[0].id;
      if (document.forms[0][formId + ":ScrollTop"].value > 0) {
         document.documentElement.scrollTop = document.forms[0][formId + ":ScrollTop"].value;
      }
      if (document.forms[0][formId + ":ScrollLeft"].value > 0) {
         document.documentElement.scrollLeft = document.forms[0][formId + ":ScrollLeft"].value;
      }
   }
}
 
function saveScrollPosDT(formId, id, top, left) {
   document.forms[formId][formId + ":" + id + "-ScrollTop"].value = top;
   document.forms[formId][formId + ":" + id + "-ScrollLeft"].value = left;
}
 
function restoreScrollPosDT() {
   for (var i = 0; i < document.forms.length; i++) {
      for (var j = 0; j < document.forms[i].length; j++) {
         id = document.forms[i][j].id;
         lastIndex = id.lastIndexOf("-ScrollTop");
         if (lastIndex != -1) {
            if (document.forms[i][j].value > 0) {
               div = document.getElementById(id.substring(0, lastIndex) + "-Div");
               div.scrollTop = document.forms[i][j].value;
            }
         }
         lastIndex = id.lastIndexOf("-ScrollLeft");
         if (lastIndex != -1) {
            if (document.forms[i][j].value > 0) {
               div = document.getElementById(id.substring(0, lastIndex) + "-Div");
               div.scrollLeft = document.forms[i][j].value;
            }
         }
      }
   }
}
//## mauricio - 23.09.05 - f

// popup window - i
function getFormParameterValues(form) {
    str = ""
    for(var i = 0; i < form.length; i++) {
        if(i > 0) {
            str = str + "&";
        }
        str = str + form.elements[i].name;
        str = str + '=';
        str = str + form.elements[i].value;
    }
    return str;
}

var xmlhttp = null;

function callbackSubmit() {
   if(xmlhttp.readyState != 4) return;
   
   response = xmlhttp.responseText;
   
   url = window.location;
   
   newWindow = open(url, "");
   
   if(is_ie5_5up) {
      newWindow.document.charset = document.charset;
   }
   if(is_nav6up) {
      newWindow.document.charSet = document.charSet;
      newWindow.baseURI = url;
   }
   
   newWindow.document.open();
   newWindow.document.write(response);
   newWindow.document.close();
}    

function httpSubmitForm(form) {
   
   if(is_ie5_5up) {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   }
   if(is_nav6up) {
      xmlhttp = new XMLHttpRequest();
   }
   
   if(xmlhttp == null) {
       return;
   }
   
   xmlhttp.open("POST", form.action, true);
   formData = getFormParameterValues(form);
   xmlhttp.setRequestHeader("Cookie", document.cookie);
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlhttp.send(formData);
   xmlhttp.onreadystatechange = callbackSubmit;
}
// popup window - f

// refresh session - i
var refreshTimer = 0;
var refreshUrl = '';
function setupRefreshSession(url) {
    refreshUrl = url;
    refreshTimer = setInterval('refreshSession(refreshUrl)', 60000);
}

function refreshSession(url) {
   
   if(is_ie5_5up) {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } else if(is_nav6up) {
      xmlhttp = new XMLHttpRequest();
   }
   
   if(xmlhttp == null) {
       return;
   }
   
   xmlhttp.open("GET", url, true);
   
   if(document.cookie != null && document.cookie != '') {
       
       xmlhttp.setRequestHeader("Cookie", document.cookie);
       
   }
   
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlhttp.send(" ");
}

function unloadPage() {
   
   unloadUrl = 'page.unload';
   
   if(is_ie5_5up) {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } else if(is_nav6up) {
      xmlhttp = new XMLHttpRequest();
   }
   
   if(xmlhttp == null) {
      return;
   }
   
   xmlhttp.open("GET", unloadUrl, true);
   xmlhttp.setRequestHeader("Cookie", document.cookie);
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlhttp.send(" ");
}
// refresh session - f

//## Milton - 08/05/2008 - i
//## //## mauricio - 11.01.2006 - i
//## // Tratamento de trigger para editbox sem máscara.
//## function keypressJsfNoMask(evt, editbox, trigger) {
//##    if (!(is_ie5_5up || is_nav6up)) {
//##       return true;
//##    }
//## 
//##    if (trigger != null) {
//##       var whichCode = (window.Event) ? evt.which : evt.keyCode;
//##       if (whichCode == 13) {
//##          if (iyValidation()) {
//##             checkNewWindow(editbox.form);
//##             disableElements();
//##             if (trigger != '') {
//##                setOptAndSubmitIndirect(editbox.form, trigger, editbox.id);
//##             } else {
//##                submitIndirectDT(editbox.form, editbox.id);
//##             }
//##          }
//##       }
//##    }
//## }
//## //## mauricio - 11.01.2006 - f
//## Milton - 08/05/2008 - f

//## mauricio - 04.10.2007 - i
// Tratamento de controle de window-sessao
function checkNewWindow(form) {
   form.createsNewWindow.value = 'false';
   if(form.target == '_blank') {
       form.createsNewWindow.value = 'true';
   }
}
//## mauricio - 04.10.2007 - f

//## Milton - 06/01/2009 - i
function enableElements() {
   var panel = document.getElementById("IyDisabledPanel");
   if (panel != null) {
      document.body.removeChild(panel);
      document.body.style.cursor = 'auto';
   }
}
//## Milton - 06/01/2009 - f

//## Milton - 07/05/2008 - i
function disableElements() {
   document.body.style.cursor = 'wait';
   var panel = document.createElement("LAYER");
   panel.id = 'IyDisabledPanel';
   document.body.appendChild(panel);
   panel.style.backgroundColor = 'white';
   if(is_ie5_5up) {
      panel.style.filter = 'alpha(opacity=30)';
   }
   if(is_nav6up) {
      panel.style.MozOpacity = '0.3';
   }
   panel.style.zIndex = '100';
   panel.style.position = 'absolute';
   panel.style.left = '0';
   panel.style.top = '0';
   panel.style.width = document.body.parentNode.scrollWidth + 'px';
   panel.style.height = document.body.parentNode.scrollHeight + 'px';
   panel.focus();
}

function treatClickTriggerJSF(elem, trigger) {
   if (iyValidation()) {
      checkNewWindow(elem.form);
      if (isTargetInNewWindow(elem.form) == false) {
         disableElements();
      }
      if ((elem.tagName == 'LABEL') || (elem.tagName == 'INPUT') && ((elem.type == 'submit') || (elem.type == 'image'))) {
         if (trigger != '') {
            setOpt(elem.form, trigger);
         }
      } else {
         if (trigger != '') {
            setOptAndSubmitIndirect(elem.form, trigger, elem.id);
         } else {
            submitIndirect(elem.form, elem.id);
         }
      }
   } else {
      event.cancelBubble = true;
      if(is_ie5_5up) {
         event.returnValue = false;
      }
      if(is_nav6up) {
         event.preventDefault();
      }
   }
}

function treatClickTriggerNJSF(elem, trigger) {
   if (iyValidation()) {
      checkNewWindow(elem.form);
      if (isTargetInNewWindow(elem.form) == false) {
         disableElements();
      }
      if ((elem.tagName == 'INPUT') && ((elem.type == 'submit') || (elem.type == 'image'))) {
         setOpt(elem.form, trigger);
      } else {
         setOptAndSubmit(elem.form, trigger, event);
      }
   } else {
      event.cancelBubble = true;
      if(is_ie5_5up) {
         event.returnValue = false;
      }
      if(is_nav6up) {
         event.preventDefault();
      }
   }
}

function isTargetInNewWindow(form) {
   if ((form.target == '') || (form.target == '_parent') || (form.target == '_self') || (form.target == '_top')) {
      return false;   
   }
   return true;   
}
//## Milton - 07/05/2008 - f
