// Funcao para inserir um item
function Insert( frm )
{
   frm.acao.value = "insert";
   ValidaForm( frm ) ;
}

// Funcao para editar um item
function Edit( frm )
{
   frm.acao.value = "edit";
   frm.id.value = frm.trueId.value;
   ValidaForm( frm ) ;
}

// Funcao para editar sem a proteção do Id
function EditSimples( frm )
{
   frm.acao.value = "edit";
   ValidaForm( frm ) ;
}

// Confirmacao de Exclusao
function confirm_exclusion( strPagina , IdExpression , strItem )
{
   if ( confirm( 'Deseja realmente excluir "' + strItem + '"?' ) )
   {
      document.location = strPagina + '?' + IdExpression ;
   }
}

// Confirmacao de Exclusao
function confirm_exclusion_plus( strPagina , IdExpression , strItem , strhasChild )
{
   if ( confirm( 'Deseja realmente excluir "' + strItem + '"?' ) )
   {
       if ( strhasChild ) {
          if ( confirm ( 'Ao excluir "' + strItem + '" todos os elementos referentes a ele serão excluidos também.\nATENÇÃO: não é possivel desfazer esta operação.\nDeseja realmente excluir "' + strItem + '"?' )) {
            document.location = strPagina + '?' + IdExpression ;
          }
       } else { 
          document.location = strPagina + '?' + IdExpression ;
       }
   }
}

// Funcao que abre um pop
function abre_pop(url,titulo,pop_size_w,pop_size_h,scroll) {

    var posicaoX = screen.width - pop_size_w;
    var posicaoY = screen.height - pop_size_h;
    if(posicaoX != 0) {
        posicaoX = Math.round(posicaoX / 2);
        posicaoY = Math.round(posicaoY / 2);
    }
    pop = window.open(url,titulo,"toolbar=no,location=no,address=no,directories=no,status=no,menubar=no,scrollbars="+scroll+",resizable=no,copyhistory=yes,maximized=yes,width="+pop_size_w+",height="+pop_size_h+",left="+posicaoX+",top="+posicaoY);
}

// Funcao que valida um formulario
function Valida( frm )
{
    var obrigatoriosTextos = MontaObrigatoriosTexto() ;
    var validado = ObrigatorioTextos (obrigatoriosTextos) ;

    if( validado )
    {
        frm.submit() ;
    }
}

//Verifica se um determinado texto possui caracter especial.
function possuiCaracterEspecial( texto ) {
   
    for( var i = 0; i < texto.length; i++ ) {
   
        var letra = texto.charAt(i);

        if( letra == " " ) {
            return false;
        } 
        if( letra == "." ) {
            return false;
        } else if( letra == "-" ) {
            return false;
        } else if( letra == "/" ) {
            return false;
        } else if( letra == "\\" ) {
            return false;
        } else if( letra == "_" ) {
            return false;
        } else if( letra < "0" ) {
            return true;
        } else if( letra > "9" && letra < "A" ) {
            return true;
        } else if( letra > "Z" && letra < "a" ) {
            return true;
        } else if( letra > "z" ) {
            return true;
        }
    }
    return false;
}


//Verifica se um determinado texto possui ponto.
function possuiPonto( texto ) {
   
    for( var i = 0; i < texto.length; i++ ) {
   
        var letra = texto.charAt(i);

        if( letra == "." ) {
            return true;
        }
   }
    return false;
}


//Início das funções de controle de formulário

// Funcao que percorre o array de campos
function ObrigatorioTextos( obrigatorios ) {
    
    for ( i=0; i < obrigatorios.length; i++ ) {
     
      //text
      if ( obrigatorios[i][1] == "text" )
        {
            if ( obrigatorios[i][0].value == "" )
            {
                alert( "O campo " + obrigatorios[i][2] + " não foi preenchido." ) ;
                obrigatorios[i][0].focus() ;
                return false ;
            }
            if( possuiCaracterEspecial( obrigatorios[i][0].value ) ) {
            
                alert( "O campo " + obrigatorios[i][2] + " possui caracteres especiais." ) ;
                obrigatorios[i][0].focus() ;
                return false ;
            }
        } 
      
      //textarea
        if ( obrigatorios[i][1] == "textarea" )
        {
            if ( obrigatorios[i][0].value == "" )
            {
                alert( "O campo " + obrigatorios[i][2] + " não foi preenchido." ) ;
                obrigatorios[i][0].focus() ;
                return false ;
            }

            if ( obrigatorios[i][3] != 0 ) {
            if ( obrigatorios[i][0].value.length > obrigatorios[i][3] )
            {
                alert( "O campo " + obrigatorios[i][2] + " excede o tamanho maximo de " + obrigatorios[i][2] + " caracteres." ) ;
                obrigatorios[i][0].focus() ;
                   return false ;
               }
         }
        }
      
      //select
        if ( obrigatorios[i][1] == "select" )
        {
            
            if ( ( obrigatorios[i][0].selectedIndex == 0 ) || ( obrigatorios[i][0].selectedIndex == -1 ) )
            {
                alert( "O campo " + obrigatorios[i][2] + " não foi escolhido." ) ;
                obrigatorios[i][0].focus() ;
                return false ;
            }
        } 
        
      //radio
      if (obrigatorios[i][1] == "radio") {
         checked = false  ;
         campo = obrigatorios[ i ][ 0 ]  ;
         for (  j = 0  ; j < obrigatorios[ i ][ 0 ].length  ; j++  )
         {
            if (  obrigatorios[ i ][ 0 ][ j ].checked  )
               checked = true  ;
         }

         if (!checked) {
            alert( "O campo " + obrigatorios[ i ][ 2 ] + " não foi escolhido." );
            obrigatorios[ i ][ 0 ][ 0 ].focus();
            return false;
         }
      }
      
      //dia
        if (obrigatorios[i][1] == "dia") {
            if (obrigatorios[i][0].value == "") {
                alert("O campo " + obrigatorios[i][2] + " não foi escolhido.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if (isNaN(obrigatorios[i][0].value)) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if ((toNumber(obrigatorios[i][0].value) < 1) || (toNumber(obrigatorios[i][0].value) > 31 )) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número entre 01 e 31.");
                obrigatorios[i][0].focus();
                return false;           
            }
        }

      //mes
        if (obrigatorios[i][1] == "mes") {
            if (obrigatorios[i][0].value == "") {
                alert("O campo " + obrigatorios[i][2] + " não foi escolhido.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if (!isNumber(obrigatorios[i][0].value)) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if ((toNumber(obrigatorios[i][0].value) < 1) || (toNumber(obrigatorios[i][0].value) > 12)) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número entre 01 e 12.");
                obrigatorios[i][0].focus();
                return false;           
            }
        }

      //ano
      if (obrigatorios[i][1] == "ano") {
            if (obrigatorios[i][0].value == "") {
                alert("O campo " + obrigatorios[i][2] + " não foi escolhido.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if (!isNumber(obrigatorios[i][0].value)) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if ((toNumber(obrigatorios[i][0].value) < 1900) || (toNumber(obrigatorios[i][0].value) > 2100 )) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número entre 1900 e 2100.");
                obrigatorios[i][0].focus();
                return false;           
            }       
        }
      
      //data
      if ( obrigatorios[i][1] == "data" )
        {
            var dia = parseInt( eval( obrigatorios[i][0]+"Dia.value" ), 10 ) ;
            var mes = parseInt( eval( obrigatorios[i][0]+"Mes.value" ), 10 ) ;
            var ano = parseInt( eval( obrigatorios[i][0]+"Ano.value" ), 10 ) ;

            if ( eval( obrigatorios[i][0]+"Ano.value.length" ) != 4 )
            {
                alert( "Ano do campo "+obrigatorios[i][2]+" inválido" ) ;
                eval( obrigatorios[i][0]+"Ano.focus()" ) ;
                return false ;
            }
    
            if ( mes > 12 || mes < 1 || eval( obrigatorios[i][0]+"Mes.value.length" ) != 2 )
            {
                alert( "Mês do campo "+obrigatorios[i][2]+" Inválido. Formato: dd/mm/aaaa." ) ;
                eval( obrigatorios[i][0]+"Mes.focus()" ) ;
                return false ;
            }
    
            meses = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ) ;
            if ( ( ( ano - 96 ) % 4 ) == 0 )
                meses[1] = 29 ;
            
            mes = mes - 1; 
    
            if ( dia > meses[mes] || dia < 1 || eval( obrigatorios[i][0]+"Dia.value.length" ) != 2 )
            {
                alert( "Dia do campo "+obrigatorios[i][2]+" Inválido. Formato: dd/mm/aaaa." ) ;
                eval( obrigatorios[i][0]+"Dia.focus()" ) ;
                return false ;
            }
        }
      
      //numero
      if (obrigatorios[i][1] == "numero") {            
            if (obrigatorios[i][0].value == "") {
                alert("O campo " + obrigatorios[i][2] + " não foi escolhido.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if (isNaN(obrigatorios[i][0].value)) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número.");
                obrigatorios[i][0].focus();
                return false;
            }       
        }

      //inteiro
      if (obrigatorios[i][1] == "inteiro") {

            if( possuiPonto( obrigatorios[i][0].value ) ) {            
                alert( "O campo " + obrigatorios[i][2] + " possui ponto." ) ;
                obrigatorios[i][0].focus() ;
                return false ;
            }
            if (obrigatorios[i][0].value == "") {
                alert("O campo " + obrigatorios[i][2] + " não foi escolhido.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if (isNaN(obrigatorios[i][0].value)) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número.");
                obrigatorios[i][0].focus();
                return false;
            }       
        }

      //numero1
      if (obrigatorios[i][1] == "numero1") {            
            if (obrigatorios[i][0].value == "") {
                alert("O campo " + obrigatorios[i][2] + " não foi escolhido.");
                obrigatorios[i][0].focus();
                return false;
            }
            else if (isNaN(obrigatorios[i][0].value)) {
                alert("O campo " + obrigatorios[i][2] + " deve ser um número.");
                obrigatorios[i][0].focus();
                return false;
            }
            if (obrigatorios[i][0].value == 0) {
                alert("O campo " + obrigatorios[i][2] + " não pode ser zero.");
                obrigatorios[i][0].focus();
                return false;
            }
            if (obrigatorios[i][0].value == 0.0) {
                alert("O campo " + obrigatorios[i][2] + " não pode ser zero.");
                obrigatorios[i][0].focus();
                return false;
            }
        }

      
      //hora
      if ( obrigatorios[i][1] == "hora" )
        {
            if ( parseInt( eval( obrigatorios[i][0] + "_hora.value" ) ) > 23 || eval( obrigatorios[i][0]+"_hora.value.length" ) != 2  )
            {
                alert( "Hora do campo "+obrigatorios[i][2]+" Inválida. Formato hh:mm." ) ;
                eval( obrigatorios[i][0]+"_hora.focus()" ) ;
                return false ;
            }
            if ( parseInt( eval( obrigatorios[i][0] + "_min.value" ) ) > 59 ||  eval( obrigatorios[i][0]+"_min.value.length" ) != 2  )
            {
                alert( "Minutos do campo "+obrigatorios[i][2]+" Inválido. Formato hh:mm." ) ;
                eval( obrigatorios[i][0]+"_min.focus()" ) ;
                return false ;
            }
        }
      
      //segunda
        if ( obrigatorios[i][1] == "segunda" )
        {
            var dia = parseInt( eval( obrigatorios[i][0]+"_dia.value" ), 10 ) ;
            var mes = parseInt( eval( obrigatorios[i][0]+"_mes.value" ), 10 ) ;
            var ano = parseInt( eval( obrigatorios[i][0]+"_ano.value" ), 10 ) ;

            if ( eval( obrigatorios[i][0]+"_ano.value.length" ) != 4 )
            {
                alert( "Ano do campo "+obrigatorios[i][2]+" Inválido" ) ;
                eval( obrigatorios[i][0]+"_ano.focus()" ) ;
                return false ;
            }
    
            if ( mes > 12 || mes < 1 )
            {
                alert( "Mês do campo "+obrigatorios[i][2]+" Inválido" ) ;
                eval( obrigatorios[i][0]+"_mes.focus()" ) ;
                return false ;
            }
    
            meses = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ) ;
            if ( ( ( ano - 96 ) % 4 ) == 0 )
                meses[1] = 29 ;
            
            mes = mes - 1; 
    
            if ( dia > meses[mes] || dia < 1 )
            {
                alert( "Dia do campo "+obrigatorios[i][2]+" Inválido" ) ;
                eval( obrigatorios[i][0]+"_dia.focus()" ) ;
                return false ;
            }
            
            var segunda = new Date( ano, mes, dia )
            
            if ( segunda.getDay() != 1 )
            {
                alert( "Dia do campo "+obrigatorios[i][2]+" nao e uma Segunda Feira" ) ;
                eval( obrigatorios[i][0]+"_dia.focus()" ) ;
                return false ;
            }
        }
    }
    return true ;
}


//Funcão auxiliar
function isNumber(campo) {
    var num = parseInt(campo, 10 );

    if (num >= 0) {
        return true;
    }
    else {
        return false;
    }
}

//Funcão auxiliar
function toNumber(campo) {
    var intNum = eval(campo);
    return intNum;
}


//Fim das funções de controle de formulário


function yyLayerScroll(daTarget, delay, ex, ey, dx, dy, sx, sy, daT, daLoop, daFirst ) {//v4.05
//copyright (c)2000,2001 Yaromat.com
  var yyX; var yyY; var target = MM_findObj(daTarget);
  if(!target.oritop){
    target.oritop = (document.layers)?target.top:target.style.top;
    target.orileft = (document.layers)?target.left:target.style.left
  }
  if (document.layers) {
    var ct = target.clip.top; var cb = target.clip.bottom; var cl = target.clip.left; var cr = target.clip.right;
    yyY=Math.abs(Math.round((ct-ey)/sy)); dy=Math.round(-(ct-ey)/yyY);
    yyX=Math.abs(Math.round((cl-ex)/sx)); dx=Math.round(-(cl-ex)/yyX);
    if(yyX<1){dx=0}else{yyX--}; if(yyY<1){dy=0}else{yyY--};
    var t = target.top; var l = target.left;
    target.clip.top = ct + (dy); target.clip.bottom = cb + (dy);target.top = t - (dy);
    target.clip.left = cl + dx;target.clip.right = cr + dx; target.left = l - dx;
  }else if ((document.all||document.getElementById)&&target.style.clip) {
      var l = parseInt((document.getElementById)?target.style.left:target.style.pixelLeft);
      var t = parseInt((document.getElementById)?target.style.top:target.style.pixelTop);
      var clipv = target.style.clip;
      clipv=clipv.replace(/x/gi, "").replace(/t/gi, "");
      clipv=clipv.split("rec(")[1].split(")")[0].split("p");
      var ct = Number(clipv[0]);var cr = Number(clipv[1]);var cb = Number(clipv[2]);var cl = Number(clipv[3]);
      yyY=Math.abs(Math.round((ct-ey)/sy));dy=Math.round(-(ct-ey)/yyY);
      yyX=Math.abs(Math.round((cl-ex)/sx));dx=Math.round(-(cl-ex)/yyX);
      if(yyX<1)dx=0; if(yyY<1)dy=0;
      ncl = cl + dx; nct = ct + dy; ncr = cr + dx;  ncb = cb + dy;
      target.style.pixelTop = t - dy;
      target.style.pixelLeft = l - dx;
      target.style.left = l - dx;
      target.style.top = t - dy;
      eval("target.style.clip = 'rect(' + nct + ' ' +  ncr + ' ' + ncb + ' ' + ncl +')'");
      yyY--; yyX--;
   }
   if(target.tmtScrollo)clearTimeout(target.tmtScrollo);
   if(yyY>0||yyX>0){
     var doTo = true;
   }else if(delay>-1&&daLoop==true){
     if(document.layers){
      target.left = target.orileft; target.clip.left=0;
      target.clip.right = (cr-cl); target.top = target.oritop;
      target.clip.top=0; target.clip.bottom = (cb-ct);
     }else{
       eval("target.style.clip = 'rect(' + 0 + ' ' +  (cr-cl) + ' ' + (cb-ct) + ' ' +0 +')'");
       target.style.top = target.oritop; target.style.left = target.orileft;
     }
     var doTo = true;
   }
   if(doTo==true)target.tmtScrollo = setTimeout("yyLayerScroll(\"" + daTarget + "\","  + delay + "," + ex+ "," + ey+ "," + dx+ "," + dy + "," +sx + "," + sy + "," + false +","+daLoop + ")", delay);
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_LS(daTarget, yy_x,yy_y, delay, step, loop){//v4.05
if(document.layers||document.all||document.getElementById)
  yyLayerScroll(daTarget,delay, yy_x, yy_y, 0, 0,step,step, false, loop, true);
}

function MZ_findObj(n){ //v3.6
        var x,t; if((n.indexOf("?"))>0&&parent.frames.length){t=n.split("?");
        x=eval("parent.frames['"+t[1]+"'].document.getElementById('"+t[0]+"')");
        }else{x=document.getElementById(n)}return x;
}

function YY_StopLayerfx(){ //v3.09
//copyright (c)1998-2000 Yaromat.com
  var args = YY_StopLayerfx.arguments;var yydiv;
  for (var i=0; i<args.length; i++){
    yydiv=MM_findObj(args[i]);
    if (yydiv&&(document.layers||document.all||document.getElementById)){
      if(yydiv.yyto!=null)clearTimeout(yydiv.yyto);
      if(yydiv.tmtScrollo!=null)clearTimeout(yydiv.tmtScrollo);
    }
  }
}


function verificaEmail(nomeForm) {  
   var email = eval("document."+nomeForm+".strEmail.value");

   var achou_ponto=false;
   var achou_arroba=false;  
   var achou_caracter=false;

   for (var i=0; i<email.length; i++) {
      if (email.charAt(i)=="@") achou_arroba=true;
      else if (email.charAt(i)==".") achou_ponto=true;
      else if (email.charAt(i)!=" ") achou_caracter=true;        
   }
     
   if (achou_ponto & achou_arroba & achou_caracter) {
      return true;
   }
   else {
      alert("Email invalido!");
      eval("document."+nomeForm+".strEmail").focus();  
      return false;
   }
}