
// cria data a partir de uma string (dd/mm/aaaa)
function toDate(data)
{
  if(isDate(data))
  {
    
    dia = parseInt(data.substr(0, 2), 10);
    mes = parseInt(data.substr(3, 2), 10);
    ano = parseInt(data.substr(6, 4), 10);
    return new Date(ano, mes - 1, dia);
  }
  else
    return new Date();
}

// completa com zeros ï¿½ esquerda
function Zeros(texto, tamanho)
{
  while(texto.length < tamanho)
    texto = '0' + texto;
  return texto;
}

// convert data para string (dd/mm/aaaa)
function toDateStr(data)
{
  dia = Zeros(data.getDate().toString(10), 2);
  mes = Zeros((data.getMonth() + 1).toString(10), 2);
  ano = data.getFullYear();
  return dia + '/' + mes + '/' + ano;
}

// retorna tamanho do mes
function monthLen(mes, ano)
{
  switch(mes)
  {
    // meses com 30 dias
    case 4:
    case 6:
    case 9:
    case 11:
      return 30;
      break;
    // fevereiro
    case 2:
      // se ano nï¿½o for bisexto
      if(ano % 4)
        return 28;
      else
        return 29;
      break;
    // meses com 31 dias
    default:
      return 31;
  }
}

// adiciona em uma parte da data um nï¿½mero
function dateAdd(parte, numero, data)
{
  dia = data.getDate();
  mes = data.getMonth() + 1;
  ano = data.getFullYear();
  switch(parte)
  {
    // acrescenta dias na data
    case 'd':
      dia += numero;
      while(dia > monthLen(mes, ano))
      {
        dia -= monthLen(mes, ano);
        mes += 1;
        if(mes > 12)
        {
          mes = 1;
          ano += 1;
        }
      }
      break;
    // acrescenta meses na data
    case 'm':
      mes += numero;
      while(mes > 12)
      {
        mes -= 12;
        ano += 1;
      }
      if(dia > monthLen(mes, ano))
        dia = monthLen(mes, ano);
      break;
    // acrescenta anos na data
    case 'y':
      ano += numero;
      if(mes == 2 && dia == 29 && ano % 4)
        dia = 28;
      break;
    default:
      // erro de parï¿½metro (retorna a mesma data)
  }
  return new Date(ano, mes - 1, dia)
}

// compara duas datas
function compareDate(data1, data2)
{
  if(data1 < data2)
    return -1;
  else if(data1 > data2)
    return 1;
  else
    return 0;
}

// compara duas datas como string (dd/mm/aaaa)
function compareDateStr(data1, data2)
{
  d1 = toDate(data1);
  d2 = toDate(data2);
  return compareDate(d1, d2);
}

// aceita a digitaï¿½ï¿½o somente de nï¿½meros (keypress)
function Numeric()
{
  if(event.keyCode < 48 || event.keyCode > 57)
    event.returnValue = 0;
}

// verifica se um campo de um formulï¿½rio estï¿½ vazio ou sï¿½ com espaï¿½os
function Empty(campo)
{
  if(campo.value.length)
  {
    for(i = 0; i < campo.value.length; i++)
    {
      if(campo.value.charAt(i) != " ")
        return false;
    }
    return true;
  }
  else
    return true;
}

// verifica se uma string ï¿½ uma data (dd/mm/aaaa)
function isDate(data)
{
  if(data.length == 10)
  {
    dia = parseInt(data.substr(0, 2), 10);
    mes = parseInt(data.substr(3, 2), 10);
    ano = parseInt(data.substr(6, 4), 10);
    if(dia > 0 && dia < 32 && mes > 0 && mes < 13 && ano > 999 && ano < 10000)
    {
      if(mes == 2 && dia > 28)
      {
        if(ano % 4)
          return false;
        else if(dia > 29)
          return false;
      }
      switch(mes)
      {
        case 4:
        case 6:
        case 9:
        case 11:
          if(dia > 30)
            return false;
          break;
      }
    }
    else
      return false;
  }
  else
    return false;
  return true;
}

// coloca mascara em campo data (dd/mm/aaaa) [keypress]
function MascareDate(campo)
{
  Numeric();
  switch(campo.value.length)
  {
    case 2:
      campo.value += "/";
      break;
    case 5:
      campo.value += "/";
      break;
  }
}

// valida o e-mail
function isEmail(email)
{
    if(email != ""){
        return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email));
    }else{
        return (true);
    }
  
}

// limita o tamanho do textarea
function textCounter(field, maxlimit) 
{
  if(field.value.length > maxlimit)
  {
    field.value = field.value.substr(0, maxlimit);
    return false;
  }  
}

function m_DATA(campo,tammax,tecla) {



if(typeof(tecla) == 'undefined')

var tecla = window.event;

var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);



var vr = campo.value;


if((campo.value.length)+1 < tammax){
vr = vr.replace( "/", "" );

vr = vr.replace( "/", "" );

var tam = vr.length;

if (tam < tammax) { tam = vr.length + 1; }

if (codigo == 8) { tam = tam - 1; }



tam = tam - 1;

if ( (tam >= 2) && (tam < 3) ) {

vr = vr.substr( 0, tam - 0 ) + '/' + vr.substr( tam - 0, 2 ); }

if ( (tam >= 3) && (tam < 4) ) {

vr = vr.substr( 0, tam - 1 ) + '/' + vr.substr( tam - 1, 2 ); }

if (tam == 4) {

vr = vr.substr( 0, tam - 2 ) + '/' + vr.substr( tam - 2, 2 ) + '/' + vr.substr( tam - 0, 5 ); }

if (tam == 5) {

vr = vr.substr( 0, tam - 3 ) + '/' + vr.substr( tam - 3, 2 ) + '/' + vr.substr( tam - 1, 6 ); }

if (tam == 6) {

vr = vr.substr( 0, tam - 4 ) + '/' + vr.substr( tam - 4, 2 ) + '/' + vr.substr( tam - 2, 7 ); }

if (tam == 7) {

vr = vr.substr( 0, tam - 5 ) + '/' + vr.substr( tam - 5, 2 ) + '/' + vr.substr( tam - 3, 8 ); }

}

campo.value = vr;

}

/***
* AUTO TAB - ao prencher o campo, automaticamente manda o foco para o prÃ³ximo!
***/
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
    var keyCode = (isNN) ? e.which : e.keyCode;
    var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
    if(input.value.length >= len && !containsElement(filter,keyCode)) {
        input.value = input.value.slice(0, len);
        input.form[(getIndex(input)+1) % input.form.length].focus();
}

function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
        if(arr[index] == ele)
            found = true;
        else
        index++;
        return found;
}

function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
        if (input.form[i] == input)index = i;
        else i++;
        return index;
    }
    return true;
}
//Fim da FunÃ§Ã£o AutoTab

function Trim(str){
    return str.replace(/^\s+|\s+$/g,"");
}

function verifica_nomes(nomes){
    var strlogin = nomes;
    var caracteres = ",;<>:?~^]}Â´`[{=+-)\\\\(*Â¨%$#@!'|Ã¨Ã¬Ã²Ã¹Ã¤Ã«Ã¯Ã¶Ã™Ã„Ã‹Ã?Ã–";
    caracteres = caracteres + '"';
    var result = true;
    for (i = 0;i<caracteres.length;i++){
        if(strlogin.indexOf(caracteres.charAt(i)) != -1){
            var strerror = caracteres.substring(i,i+1);
            result = false;
            window.alert("VocÃª digitou o seguinte caracter invalido:" + " " + strerror + " ");
            break;
         }
    }
    return result;
}

// DiferenÃ§a entre dias de duas datas
function dias(data1, data2){
	//------------------------------
	// Uso: comparaData("10/01/2002", "10/03/2002");
	// data1 e data2 no formato "dd/mm/aaaa"
	// se retornar 1 "data1" Ã© maior
	// se retornar 2 "data2" Ã© maior
	// se retornar 0 "data1" Ã© igual a "data2"
	//------------------------------
        var dataDiff = toDate(data2) - toDate(data1);
	dataDiff = (((dataDiff / 1000) / 60)/60)/24;
	return dataDiff;
}
/*
function getCookie(c_name){
                if (document.cookie.length>0)
                    {
                      c_start = document.cookie.indexOf(c_name + "=");
                        if(c_start!=-1)
                            { 
                                c_start = c_start + c_name.length+1;
                                c_end=document.cookie.indexOf(";",c_start);
                                if (c_end==-1) c_end=document.cookie.length;
                                return unescape(document.cookie.substring(c_start,c_end));
                            }
                        }
                        return "";
             }
                    
                    function setCookie(c_name,value, arquivo, expiredays){
                        var exdate = new Date();
                        exdate.setDate(exdate.getDate()+expiredays);
                        document.cookie=c_name+ "=" +escape(value)+
                        ";arquivo="+arquivo+
                        ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
                    }
                    
                    function checkCookie(nome, idApp){
                        //alert(nome);
                        setCookie('backto', nome, idApp);
                     }
            function verificaCookies(){
                    voltarPara = getCookie('backto');
                    arquivo = voltarPara.split(",");
                      if(voltarPara != '') {
                          
                          if(arquivo[2] != "" ){
                              subPage = "?subpage="+arquivo[2];
                          }else{
                            subPage = "";
                            }
                        ajax(arquivo[1]+subPage, "conteudo");
                        
                      }else{
                        return false;
                    };    
            }
          */  
function IsNumeric(valor){ 
    var log=valor.length; var sw="S"; 
    for (x=0; x<log; x++){ 
        v1=valor. substr(x,1); 
        v2 = parseInt(v1); 
//Comprovo se Ã© um valor numÃ©rico 
        if (isNaN(v2)){
            sw= "N";
        } 
    } 
    if (sw=="S"){
        return true;
    }else{
        return false;
    } 
}

var primeiroslap=false; 
var segundoslap=false; 
function formateadata(data){ 
    var log = data.length; 
    var dia; 
    var mes; 
    var ano; 

if ((log>=2) && (primeiroslap==false)){
        dia=data.substr(0,2); 
    if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")){
        data=data.substr(0,2)+"/"+data.substr(3,7);
        primeiroslap=true;
    }else{
        data="";
        primeiroslap=false;
    } 
}else{
    dia=data.substr(0,1); 
    if (IsNumeric(dia)==false){
        data="";
    } 
    if ((log<=2) && (primeiroslap=true)) {
        data=data.substr(0,1);
        primeiroslap=false;
    } 
} 
if ((log>=5) && (segundoslap==false)){
    mes=data.substr(3,2); 
    if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) {
        data=data.substr(0,5)+"/"+data.substr(6,4);
        segundoslap=true;
    } else {
        data=data.substr(0,3);
        segundoslap=false;
    } 
} else {
    if ((log<=5) && (segundoslap=true)) {
        data=data.substr(0,4);
        segundoslap=false;
    }
} 
if (log>=7) {
    ano=data.substr(6,4); 
    if (IsNumeric(ano)==false) {
        data=data.substr(0,6);
    } else {
        if (log==10){
            if ((ano==0) || (ano<1900) || (ano>2100)) {
                data=data.substr(0,6);
            }
        }
    } 
} 

if (log>=10) { 
    data=data.substr(0,10); 
    dia=data.substr(0,2); 
    mes=data.substr(3,2); 
    ano=data.substr(6,4); 
// Ano nao bisexto e Ã© fevereiro e o dia Ã© maior a 28 
    if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ) {
        data=data.substr(0,2)+"/";
    } 
} 
return (data); 
} 
