
  function ValidaForm (form, formElAryDsc, formElAryCod){
    for (i=0; i<formElAryCod.length; i++){
      for (j=0;j<formElAryCod.length; j++){
        if (form.elements[i].value.length==0){
          if (form.elements[i].name==formElAryCod[j]){
            alert("O campo '"+formElAryDsc[j]+"' não deverá estar vazio.");
            form.elements[i].focus();
            return false;
            break;
          }
        }  
      }
    }
    return true
  }
 

  function validaUmCampoForm(form, formElAryDsc, formElAryCod){
    formCampos="";
    for (i=0; i<formElAryCod.length; i++){
      if (i>0) formCampos+=", ";
      formCampos+=formElAryDsc[i];  
      if (form.elements[i].value.length>0){
        return true;
        break;
      }
    }
    alert("Um dos campos '"+formCampos+"' deverá estar preenchido.");    
    return false;
  }


  function validaFormNumber(objecto){
    var numeroStr=objecto.value;
    for (i=0; i<numeroStr.length; i++){
      numero=false;
      for (j=0; j<10; j++){
        if (numeroStr.charAt(i)==j) numero=true;
      }
      if (!numero){
        alert("Número inválido");
        objecto.value="";
        objecto.focus();
        return false;
      }
    }
  }


  function validaFormDecimal(objecto){
    var numVFDStr=objecto.value;
    var decDotCnt=0;
    for (i=0; i<numVFDStr.length; i++){
      numVFD=false;
      for (j=0; j<10; j++){
        if (numVFDStr.charAt(i)==j) numVFD=true;
      }
      if (numVFDStr.charAt(i)==".") decDotCnt++;
      if (decDotCnt>0 && decDotCnt<2) numVFD=true;
      if (!numVFD){
        alert("Número inválido - deverá ter o seguinte formato : 1234.56");
        objecto.value="";
        objecto.focus();
        return false;
      }
    }
  }

  var tim=0;
  var _menuDiv;
  var _tdTable;
  var _id;
  var _newBgColor;
  var _newFontColor;
  var _tdId;  
  
  function changeBgColor(newBgColor, newFontColor, tdId){
    _newBgColor=newBgColor;
    _newFontColor=newFontColor;
    _tdId=tdId;
    eval(tdId).bgColor=newBgColor;
    eval(tdId+"f").style.color=newFontColor;
  }
  
  function showHideSubMenu(showHide, menuDiv, tdTable, id){
    clearTimeout(tim);
    _menuDiv=menuDiv;
    _tdTable=tdTable;
    _id=id;
    if (showHide=="show") {
      menuDiv.style.visibility="visible";
      menuDiv.style.top=tdTable.offsetTop+100;
      menuDiv.style.left=table_01.offsetLeft+120;
      idMenu=id;
      actualizaSubMenu();
    }else{
      tim=setTimeout("hideSubMenu()",500);
    }
  }  

  function hideSubMenu(){
    _menuDiv.style.visibility="hidden";
  }
  
  function showHideMenu02(showHide){
    clearTimeout(tim);
    if (showHide=="show"){
      _menuDiv.style.visibility="visible";
      changeBgColor('', '#9191EB', _tdId);
    }else{
      changeBgColor('', '#00017F', _tdId);
      tim=setTimeout("hideSubMenu()",500);
    }  
  }  

  function actualizaSubMenu(){
    var divMenu="<table id='table_n2_02' width='150' align='left' border='0' cellspacing='0' cellpadding='0'>";
    subMenuTemp=eval("subMenuAry"+idMenu);
    for (i=0; i<subMenuTemp.length; i++){
      idMenuVal=i+1;
      if (idMenuVal<10) idMenuVal="0"+idMenuVal;
      divMenu+="<tr><td id='td_01' colspan='4' height='1' background='images/dot_black.gif'></td></tr>";
      (subMenuTemp[i].split("|")[2]=="1") ? 
        aHref="<a href=\""+subMenuTemp[i].split("|")[3]+"&id="+subMenuTemp[i].split("|")[1]+"\" target=\"_blank\" onMouseOver=showHideMenu02(\"show\"); onMouseOut=showHideMenu02(\"hide\"); class='menu_02'>" :
        aHref="<a href=\""+subMenuTemp[i].split("|")[3]+"&id="+subMenuTemp[i].split("|")[1]+"\" onMouseOver=showHideMenu02(\"show\"); onMouseOut=showHideMenu02(\"hide\"); class='menu_02'>";
      divMenu+="<tr>";
      divMenu+="<td width='1' background='images/dot_black.gif'></td>";
      divMenu+="<td width='5'onMouseOver=showHideMenu02(\"show\"); onMouseOut=showHideMenu02(\"hide\"); bgcolor='#CCCCCC'>&nbsp;</td>";
      divMenu+="<td height='18'onMouseOver=showHideMenu02(\"show\"); onMouseOut=showHideMenu02(\"hide\"); width='150' bgcolor='#CCCCCC'>"+aHref+""+subMenuTemp[i].split("|")[0].split(":")[0]+"</a></td>";
      divMenu+="<td width='1' background='images/dot_black.gif'></td>";
      divMenu+="</tr>";
      divMenu+="<tr><td colspan='4' height='1' background='images/dot_black.gif'></td></tr>";
      divMenu+="<tr><td height='2'><img src='images/transparent_dot.gif'></td></tr>";
    }
    divMenu+="</table>";
    document.getElementById("menu_nivel_02").innerHTML=divMenu;
  }
  
  function novaJanela(theUrl, winName, features){
  window.open(theUrl, winName, features);
}
 
  function validaPesquisa(form){
  var pesqVal;
  if (form.pesquisa.value.length<4){
    alert("Inserir a pesquisa com mais de 3 caracteres.")
    form.pesquisa.focus();
    return false;
  }
  return true;
}

 function replaceSubstring(inputString, fromString, toString) {
 	 var temp = inputString.value;
 	 
 	 alert(inputString);
   if (fromString == "") {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      // Find a string that doesn't exist in the inputString to be used
      // as an "inbetween" string
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      } // Keep on going until we build an "inbetween" string that doesn't exist
      // Now go through and do two replaces - first, replace the "fromString" with the "inbetween" string
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      // Next, replace the "inbetween" string with the "toString"
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } // Ends the check to see if the string being replaced is part of the replacement string or not
   return temp; // Send the updated string back to the user
} // Ends the "replaceSubstring" function


  function validaPlicas(value){
    FormElement=eval(value);
    while(FormElement.value.indexOf("'")!=-1){
      valorALTERADO=FormElement.value.replace("'","´");
      FormElement.value=valorALTERADO;
    }
  }

  function validaPlicasAspas(value){
    FormElement=eval(value);
    while(FormElement.value.indexOf("'")!=-1){
      valorALTERADO=FormElement.value.replace("'","´");
      FormElement.value=valorALTERADO;
    }
    while(FormElement.value.indexOf("\"")!=-1){
      valorALTERADO=FormElement.value.replace("\"","´´");
      FormElement.value=valorALTERADO;
    }
  }

  function validaDataDoc_v1(objecto){
   if (!objecto.value==""){
    dataNova=objecto.value;
    isBisexto=false;
    anoNovoStr=dataNova.substring(0,4);
    anoNovoNum=new Number(anoNovoStr);
    mesNovoStr=dataNova.substring(5,7);
    mesNovoNum=new Number(mesNovoStr);
    diaNovoStr=dataNova.substring(8,10);
    diaNovoNum=new Number(diaNovoStr);
    sepAnoMes=dataNova.substring(4,5);
    sepMesDia=dataNova.substring(7,8);
    anosBisextoAry=new Array();
    count=0;
    for (i=1900; i<2100; i+=4){
      anosBisextoAry[count]=i;
      count++;
    }
    for (i=0; i<anosBisextoAry.length; i++){
      if (anoNovoNum==anosBisextoAry[i]){
        isBisexto=true;
        break;
      }
    }
    if (sepAnoMes!="-" || sepMesDia!="-" || anoNovoStr.length!=4 || mesNovoStr.length!=2 || diaNovoStr.length!=2){
      alert("O fomato da data deverá ser\n \"AAAA-MM-DD\"");
      //objecto.value="";
      objecto.focus();
      return false;
    }else if (isBisexto && mesNovoNum==2 && diaNovoNum>29){
      alert("Número de dias em excesso para o mês de Fevereiro.");
      //objecto.value="";
      objecto.focus();
      return false;
    }else if (!isBisexto && mesNovoNum==2 && diaNovoNum>28){
      alert("Número de dias em excesso para o mês de Fevereiro.");
      //objecto.value="";
      objecto.focus();
      return false;
    }else if ((mesNovoNum==4 || mesNovoNum==6 || mesNovoNum==9 || mesNovoNum==11) && diaNovoNum>30){
      alert("O mês em questão não tem 31 dias.");
      //objecto.value="";
      objecto.focus();
      return false;
    }else if (mesNovoNum>12){
      alert("Mês inválido.");
      //objecto.value="";
      objecto.focus();
      return false;
    }else if (diaNovoNum>31){
      alert("Dia inválido.");
      //objecto.value="";
      objecto.focus();
      return false;
    }
    return true;
   }
  }

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}