
//funcao para tirar todos os espaços em branco para a funcao "obriga"funcionar corretamente
    function limpa(string) {
     var temp = "";
      string = '' + string;
       splitstring = string.split(" ");
        for(i = 0; i < splitstring.length; i++)
          {
         temp += splitstring[i];
          return temp;
          }
         }

//-----------------------------------------------------------------------------------------------
 //funcao para obrigar o preenchimento de campos passar o formulario como parametro
 function obriga(form){
 var elementos = document.getElementById(form).elements;
 for (var i=0;i<elementos.length;i++)
{
 if (elementos[i].getAttribute("obrigatorio")=="sim")
  {
   if (elementos[i].value==""  || elementos[i].value=="-Selecione-" || elementos[i].value=="-Sem Cadastro-")
   {
   alert("O campo ("+elementos[i].getAttribute("camp")+") é obrigatório!");
   elementos[i].focus();
   return false;
   }
   else
   {

   }
  }
 }
 return true
}

//-------------------------------------------------------------------------------------------------

   //funcao para desabilitar campos, nao tem parametros definidos, passar o valor (true ou false) e os campos
      function acess()
    {
      val = "";
      if (arguments.length > 0)
       {acesso = arguments[0];} else {return false;}
        for (var i=1; i<arguments.length; i++ )
          {
            document.getElementById(arguments[i]).value=" ";
            document.getElementById(arguments[i]).disabled=acesso;
			if(acesso==false && arguments[1]){document.getElementById(arguments[1]).focus();}
          }
    }

//--------------------------------------------------------------------------------------------------

//funcao para capturar eventos com o DOM
function addEvent(object, evType, func, useCapture)
{
    if(object.addEventListener)
    {
        object.addEventListener(evType, func, useCapture);
    } else
    if(object.attachEvent)
    {
        object.attachEvent("on" + evType, func);
    }
}

//----------------------------------------------------------------------------------------------

//funcao que gera um relogio digital
function horas(){
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds()
if (hours <=9)
hours="0"+hours;
if (minutes<=9)
minutes="0"+minutes;
if (seconds<=9)
seconds="0"+seconds;
var cdate="<b><font color='gray' size='2'>"+hours+":"+minutes+":"+seconds+" "+"</font>"
clock.innerHTML= cdate;
setTimeout("horas()",1000);
}
//-----------------------------------------------------------------------------------------------

//função para validar numeros

function numero(control)
{
var c = "01234567890";
  var x = control.value.toLowerCase();
 control.value = x;
 var y  = "correto";
 for (i=0;i<x.length;i++)
  {
    str1 = x;
    str2 = str1.charAt(i);
    if (c.indexOf(str2)==-1)
      { y = "incorreto";}
      }
      if (y=="incorreto")
      {control.focus();control.value = "";
      }
   }

//----------------------------------------------------------------------------------------------

//funcao para validar letras

function letra(control)
{
 var c = " ABCDEFGHIJKLMNOPQRSTUVXWYZÇÁÉÍÓÚÃÕÊÔÂ";
 var x = control.value.toUpperCase();
 control.value = x;
 var y  = "correto";
 for (i=0;i<x.length;i++)
  {
    str1 = x;
    str2 = str1.charAt(i);
    if (c.indexOf(str2)==-1)
      { y = "incorreto";}
      }
      if (y=="incorreto")
      {control.focus();control.value = ""; }
   }

//----------------------------------------------------------------------------------------------

//funcao que abre o pop-up

function abrir(pagina,largura,altura) {

//pega a resolução do visitante
w = screen.width;
h = screen.height;

//divide a resolução por 2, obtendo o centro do monitor
meio_w = w/2;
meio_h = h/2;

//diminui o valor da metade da resolução pelo tamanho da janela, fazendo com q ela fique centralizada
altura2 = altura/2;
largura2 = largura/2;
meio1 = meio_h-altura2;
meio2 = meio_w-largura2;

//abre a nova janela, já com a sua devida posição
window.open(pagina,'','height=' + altura + ', width=' + largura + ', top='+meio1+', left='+meio2+'');
}

//----------------------------------------------------------------------------------------------

//funcao para formatar a data

function data(obj,ob2,comp)
{
  numero(obj,'s');
 if(obj.value.length == 2 || obj.value.length == 5){
 obj.value = obj.value+"/";
 }
 //comopara se vai ou nao  verificar a data
 if(comp == "s"){
 if(obj.value.length == 10)
 {
  var ano1 = new Date();
  ano1 = obj.value;
//pega o ano
 var data = new Date();
 var dia = data.getDate();
 var mes = data.getMonth() + 1;
 var ano = data.getFullYear();
 var str_dia = new String( dia );
 dia = (str_dia.length == 1 ? '0' + dia : dia);
 var str_mes = new String( mes );
 mes = (str_mes.length == 1 ? '0' + mes : mes);
 atual =  dia + '/' + mes + '/' + ano;
 //compara se a data fornecida é maior do que a atual
 }
 }
var v = document.getElementById(ob2);
//cria uma funcao para tratar o tamanho da string
v.onblur = function(){
if(obj.value.length != 10){
alert("FAVOR DIGITAR A DATA COM 8 DIGITOS SEM BARRAS / !!")
obj.value = "";
obj.focus();
}
else
{
var data1 = atual;
var data2 =  ano1;
//separa ano mes e dia para fazer a comparação
if ( parseInt( data2.split( "/" )[2].toString() + data2.split( "/" )[1].toString() + data2.split( "/" )[0].toString() ) > parseInt( data1.split( "/" )[2].toString() + data1.split( "/" )[1].toString() + data1.split( "/" )[0].toString() ) )
{
  dt = '0';
}
else
{
  dt ='1';
}
 if (dt == '0')
 {
 alert('A DATA INFORMADO É MAIOR QUE A CORRENTE!')
  obj.value = "";
 }
}
}
}

//----------------------------------------------------------------------------------------------

//funcao para validar 2 datas num intervalo

function valdata(obj1,obj2)
{
var data1 = obj2.value;
var data2 =  obj1.value;
if (data1.length == 10 && data2.length == 10){
//separa ano mes e dia para fazer a comparação
if ( parseInt( data2.split( "/" )[2].toString() + data2.split( "/" )[1].toString() + data2.split( "/" )[0].toString() ) > parseInt( data1.split( "/" )[2].toString() + data1.split( "/" )[1].toString() + data1.split( "/" )[0].toString() ) )
{
  dt = '0';
}
else
{
  dt ='1';
}
 if (dt == '0')
 {
 alert('A PRIMEIRA DATA É MAIOR DO QUE A SEGUNDA!')
  obj2.value = "";
  obj2.focus();
 }
 }
}
// funcao para telefone

function fone(obj2)
{
 var tel = obj2.value;
 var telstring = tel.substring(0,13).length;
 if (telstring < '11')
 {
 if (telstring == '10')
 {
var ddd = tel.substring(0,2);
var area = tel.substring(2,6);
var numero = tel.substring(6,10);
obj2.value = ("("+ddd+")"+" "+area+"-"+numero);
}
else
{
alert("FAVOR DIGITAR O TELEFONE COM DDD MAIS O NUMERO COM 8 DIGITOS!")
obj2.focus();
obj2.value = "";
}
}
else
{
alert("FAVOR DIGITAR O TELEFONE COM 8 DIGITOS!")
obj2.focus();
 obj2.value = "";

}
}

//----------------------------------------------------------------------------------------------

//funcao que conta quantas letras o usuario digitou e mostra o que ele pode digitar

function faltam(nome,total,span){
var camp = document.getElementById(nome).value;	
var digitado= camp.length;   //pega o total de caracteres digitados
 if(digitado>total){
     alert('VOCÊ JÁ DIGITOU O TOTAL MÁXIMO DE LETRAS, TENTE ABREVIAR A INFORMAÇÃO!');
     val = camp.slice(0,total);
	document.getElementById(nome).value = "";
	 document.getElementById(nome).value = val;
	 //exibe os 20 primeiros caracteres
 }
 digitado= camp.length;
 var restante= total-digitado;
 if (restante >= 0 && restante <= total)
 {
 document.getElementById(span).innerHTML= restante.toString() + ' '+'Letras Restantes';//exibe o texto na div
 }
 else
 {
  document.getElementById(span).innerHTML= '';
 }
}

//----------------------------------------------------------------------------------------------

//cria o objeto do ajax
function criaXMLHttp() {
if (typeof XMLHttpRequest != "undefined")
return new XMLHttpRequest();
else if (window.ActiveXObject){
var versoes = ["MSXML2.XMLHttp.5.0",
"MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp", "Microsoft.XMLHttp"
];
}
for (var i = 0; i < versoes.length; i++){
try{
return new ActiveXObject(versoes[i]);
}catch (e) {}
}
throw new Error("Seu browser nao suporta AJAX");
}

//----------------------------------------------------------------------------------------------

//fucao para exibir a data
function datas()
{
 hoje = new Date()
 dia = hoje.getDate();
 dias = hoje.getDay();
 mes = hoje.getMonth();
 ano = hoje.getFullYear();
  if (dia < 10)
     dia = "0" + dia;
     if (ano < 2000)
        ano = "19" + ano;
        function CriaArray (n) {
        this.length = n; }
        NomeDia = new CriaArray(7)
        NomeDia[0] = "Domingo";
        NomeDia[1] = "Segunda-feira";
        NomeDia[2] = "Terça-feira";
        NomeDia[3] = "Quarta-feira";
        NomeDia[4] = "Quinta-feira";
        NomeDia[5] = "Sexta-feira";
        NomeDia[6] = "Sábado";
       NomeMes = new CriaArray(12)
       NomeMes[0] = "Janeiro" ;
       NomeMes[1] = "Fevereiro";
       NomeMes[2] = "Março";
       NomeMes[3] = "Abril";
       NomeMes[4] = "Maio";
       NomeMes[5] = "Junho";
       NomeMes[6] = "Julho";
       NomeMes[7] = "Agosto";
       NomeMes[8] = "Setembro";
       NomeMes[9] = "Outubro";
       NomeMes[10] = "Novembro";
       NomeMes[11] = "Dezembro";
      document.write ("<font color='gray'  face='Arial' size='2'>" + NomeDia[dias] + ", " + dia + " de " + NomeMes[mes] + " de " + ano + " </font>");
}

//----------------------------------------------------------------------------------------------

// construindo o calendário
function popdate(obj,div,tam,ddd)
{
    if (ddd)
    {
        day = ""
        mmonth = ""
        ano = ""
        c = 1
        char = ""
        for (s=0;s<parseInt(ddd.length);s++)
        {
            char = ddd.substr(s,1)
            if (char == "/")
            {
                c++;
                s++;
                char = ddd.substr(s,1);
            }
            if (c==1) day    += char
            if (c==2) mmonth += char
            if (c==3) ano    += char
        }
        ddd = mmonth + "/" + day + "/" + ano
    }

    if(!ddd) {today = new Date()} else {today = new Date(ddd)}
    date_Form = eval (obj)
    if (date_Form.value == "") { date_Form = new Date()} else {date_Form = new Date(date_Form.value)}

    ano = today.getFullYear();
    mmonth = today.getMonth ();
    day = today.toString ().substr (8,2)

    umonth = new Array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
    days_Feb = (!(ano % 4) ? 29 : 28)
    days = new Array (31, days_Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

    if ((mmonth < 0) || (mmonth > 11))  alert(mmonth)
    if ((mmonth - 1) == -1) {month_prior = 11; year_prior = ano - 1} else {month_prior = mmonth - 1; year_prior = ano}
    if ((mmonth + 1) == 12) {month_next  = 0;  year_next  = ano + 1} else {month_next  = mmonth + 1; year_next  = ano}
    txt  = "<table bgcolor='#00FF99' style='border:solid #B1E3AE; border-width:1' cellspacing='0' cellpadding='3' border='0' width='"+tam+"' height='"+tam*1.1 +"'>"
    txt += "<tr bgcolor='#FFFFFF'><td colspan='7' align='center'><table style='border:solid #EDEEEF; border='0' bgcolor='#009966' cellpadding='0' width='100%'><tr>"
    txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano-1).toString())+"') class='Cabecalho_Calendario' title='Ano Anterior' onMouseOver=\"this.style.color='#FF0000'\" onMouseout=\"this.style.color='#000000'\"><<</a></td>"
    txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_prior+1).toString() + "/" + year_prior.toString())+"') class='Cabecalho_Calendario' title='Mês Anterior' onMouseOver=\"this.style.color='#FF0000'\" onMouseout=\"this.style.color='#000000'\"><</a></td>"
    txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_next+1).toString()  + "/" + year_next.toString())+"') class='Cabecalho_Calendario' title='Próximo Mês' onMouseOver=\"this.style.color='#FF0000'\" onMouseout=\"this.style.color='#000000'\">></a></td>"
    txt += "<td width=20% align=center><a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano+1).toString())+"') class='Cabecalho_Calendario' title='Próximo Ano' onMouseOver=\"this.style.color='#FF0000'\" onMouseout=\"this.style.color='#000000'\">>></a></td>"
    // alterar o caminho da imagem que fecha o calendario
    txt += "<td width=20% align=right><a href=javascript:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Calendário'><b><img src='../img/xcinza.png' border='0' width='10px'></b></a></td></tr></table></td></tr>"
    txt += "<tr><td colspan='7' align='center' bgcolor='#EDEEEF' width='10%' class='mes'>" + ano.toString() +  " " + umonth[mmonth] + " <div id='popd' style='position:absolute'></div></td></tr>"
    txt += "<tr bgcolor='#339966'><td width='10%' class='dia' align=center><b>Dom</b></td><td width='10%' class='dia' align=center><b>Seg</b></td><td width='10%' class='dia' align=center><b>Ter</b></td><td width='10%' class='dia' align=center><b>Qua</b></td><td width='10%' class='dia' align=center><b>Qui</b></td><td width='10%' class='dia' align=center><b>Sex<b></td><td width='10%' class='dia' align=center><b>Sab</b></td></tr>"
    today1 = new Date((mmonth+1).toString() +"/01/"+ano.toString());
    diainicio = today1.getDay () + 1;
    week = d = 1
    start = false;

    for (n=1;n<= 42;n++)
    {
    //COR DA TABELA DOS DIAS
        if (week == 1)  txt += "<tr bgcolor='#FFFFFF' align=center>"
        if (week==diainicio) {start = true}
        if (d > days[mmonth]) {start=false}
        if (start)
        {
            dat = new Date((mmonth+1).toString() + "/" + d + "/" + ano.toString());
            day_dat   = dat.toString().substr(0,10);
            day_today  = date_Form.toString().substr(0,10);
            year_dat  = dat.getFullYear();
            year_today = date_Form.getFullYear();
            //COR DO DIA DE HOJE
            colorcell = ((day_dat == day_today) && (year_dat == year_today) ? " bgcolor='#999999'" : "" );
            txt += "<td"+colorcell+" align=center style='border:1px solid #EDEEEF' onMouseOver=\"this.bgColor='#FFCC99'\" onMouseout=\"this.bgColor='#FFFFFF'\"><a href=javascript:block('"+  d + "/" + (mmonth+1).toString() + "/" + ano.toString() +"','"+ obj +"','" + div +"') class='data'>"+ d.toString() + "</a></td>"
            d ++ ;
        }
        else
        {
            txt += "<td class='data' align=center > </td>"
        }
        week ++
        if (week == 8)
        {
            week = 1; txt += "</tr>"}
        }
        txt += "</table>"
        div2 = eval(div)
        div2.innerHTML = txt
}
// função para fechar o calendário
function force_close(div)
    { div2 = eval (div); div2.innerHTML = ''}

// função para fechar o calendário e setar a data no campo de data associado
function block(data, obj, div)
{
    force_close (div);
    obj2 = eval(obj);
    sep = data.split("/");
    d = sep[0];
    if (d.length == 1){d = "0"+d;}
    m = sep[1];
    if (m.length == 1){m = "0"+m;}
    a = sep[2];
    ndata = d+"/"+m+"/"+a;
    obj2.value = ndata;
}

//-------------fim do calendario --------------------------------------------------------

//funcao para formatação de moeda

function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for(; i < len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.value = '';
    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}

//----------------------------------------------------------------------------------------------

//funcao para validar e-mail

function Mail(m)
{
  var obj = eval(m);
  var txt = obj.value;
  if ((txt.length != 0) && ((txt.indexOf("@") < 1) || (txt.indexOf('.') < 7)))
  {
    alert('Email incorreto');
	obj.focus();
  }
}

//----------------------------------------------------------------------------------------------

//formata de forma generica os campos
function mascara(e,src,mask) {
    if(window.event) { _TXT = e.keyCode; }
    else if(e.which) { _TXT = e.which; }
    if(_TXT > 47 && _TXT < 58) {
 		var i = src.value.length; var saida = mask.substring(0,1); var texto = mask.substring(i)
		if (texto.substring(0,1) != saida) { src.value += texto.substring(0,1); }
    	return true; 
	} else { 
		if (_TXT != 8) { return false; }
		else { return true; }
		return false;
    }
}
function numerico() { 
	if (event.keyCode == '13') { } 
	else if (event.keyCode < '48' || event.keyCode > '58') { 
		alert('Neste campo digite apenas números!'); 
		event.keyCode = '127'; 
	} 
} 
//----------------------------------------------------------------------------------------------

//mascara para telefone
function Mascarafone(e,objeto){
	if(window.event) { _TXT = e.keyCode; }
   else if(e.which) { _TXT = e.which; }
   if(_TXT > 47 && _TXT < 58) {
	   if(objeto.value.length == 0) objeto.value = '(' + objeto.value;
	   if(objeto.value.length == 3) objeto.value = objeto.value + ')';
	   if(objeto.value.length == 4) objeto.value = objeto.value + ' ';
	   if(objeto.value.length == 9) objeto.value = objeto.value + '-';
   } else {
		if (_TXT != 8) { return false; }
		else { return true; }
   }
}

//mascaras genericas

function Mascara(objeto, evt, mask) {

var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var Numeros = '0123456789';
var Fixos  = '().-:/ ';
var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";

evt = (evt) ? evt : (window.event) ? window.event : "";
var value = objeto.value;
if (evt) {
var ntecla = (evt.which) ? evt.which : evt.keyCode;
tecla = Charset.substr(ntecla - 32, 1);
if (ntecla < 32) return true;

var tamanho = value.length;
if (tamanho >= mask.length) return false;

var pos = mask.substr(tamanho,1);
while (Fixos.indexOf(pos) != -1) {
  value += pos;
  tamanho = value.length;
  if (tamanho >= mask.length) return false;
  pos = mask.substr(tamanho,1);
}

switch (pos) {
   case '#' : if (Numeros.indexOf(tecla) == -1) return false; break;
   case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
   case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
   case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
   case '*' : objeto.value = value; return true; break;
   default : return false; break;
}
}
objeto.value = value;
return true;
}

//----------------------------------------------------------------------------------------------

//valida telefone
function ValidaTelefone(tel){
    exp = /\(\d{2}\)\ \d{4}\-\d{4}/
    if(!exp.test(tel.value))
        alert('Numero de Telefone Invalido!');
}

//----------------------------------------------------------------------------------------------

//valida CEP
function ValidaCep(cep){
    exp = /\d{2}\.\d{3}\-\d{3}/
    if(!exp.test(cep.value))
        alert('Numero de Cep Invalido!');
}

//----------------------------------------------------------------------------------------------

//valida o CPF digitado
function ValidarCPF(Objcpf){
    var cpf = Objcpf.value;
    if(cpf == '111.111.111-11' || cpf == '222.222.222-22' ||
    cpf == '333.333.333-33' || cpf == '444.444.444-44' ||
    cpf == '555.555.555-55' || cpf == '666.666.666-66' ||
    cpf == '777.777.777-77' || cpf == '888.888.888-88' ||
    cpf == '999.999.999-99'){alert("Numero de CPF inválido!!");}
    exp = /\.|\-/g
    cpf = cpf.toString().replace( exp, "" );
    var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
    var soma1=0, soma2=0;
    var vlr =11;

    for(i=0;i<9;i++){
        soma1+=eval(cpf.charAt(i)*(vlr-1));
        soma2+=eval(cpf.charAt(i)*vlr);
        vlr--;
    }
    soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
    soma2=(((soma2+(2*soma1))*10)%11);

    var digitoGerado=(soma1*10)+soma2;
    if(digitoGerado!=digitoDigitado)
        alert('CPF Invalido!');



}

//----------------------------------------------------------------------------------------------

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
    var cnpj = ObjCnpj.value;
    var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
    var dig1= new Number;
    var dig2= new Number;

    exp = /\.|\-|\//g
    cnpj = cnpj.toString().replace( exp, "" );
    var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));

    for(i = 0; i<valida.length; i++){
        dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);
        dig2 += cnpj.charAt(i)*valida[i];
    }
    dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
    dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));

    if(((dig1*10)+dig2) != digito)
        alert('Numero de CNPJ Inválido!!');

}

//-------------------------------------------------------------------------------------------------

// nova funcao para formatar moeda

documentall = document.all;
 /*
 * função para formatação de valores monetários retirada de
 */
 function formatamoney(c) {
     var t = this; if(c == undefined) c = 2;
     var p, d = (t=t.split("."))[1].substr(0, c);
     for(p = (t=t[0]).length; (p-=3) >= 1;) {
            t = t.substr(0,p) + "." + t.substr(p);
     }
     return t+","+d+Array(c+1-d.length).join(0);
 }

 String.prototype.formatCurrency=formatamoney

 function demaskvalue(valor, currency){
 /*
 * Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as
 * casas decimais
 */
 var val2 = '';
 var strCheck = '0123456789';
 var len = valor.length;
    if (len== 0){
       return 0.00;
    }

    if (currency ==true){
       /* Elimina os zeros à esquerda
       * a variável  <i> passa a ser a localização do primeiro caractere após os zeros e
       * val2 contém os caracteres (descontando os zeros à esquerda)
       */

       for(var i = 0; i < len; i++)
          if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;

       for(; i < len; i++){
          if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
       }

       if(val2.length==0) return "0.00";
       if (val2.length==1)return "0.0" + val2;
       if (val2.length==2)return "0." + val2;

       var parte1 = val2.substring(0,val2.length-2);
       var parte2 = val2.substring(val2.length-2);
       var returnvalue = parte1 + "." + parte2;
       return returnvalue;

    }
    else{
         /* currency é false: retornamos os valores COM os zeros à esquerda,
          * sem considerar os últimos 2 algarismos como casas decimais
         */
          val3 ="";
          for(var k=0; k < len; k++){
             if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
          }
    return val3;
    }
 }

 function reais(obj,event){

 var whichCode = (window.Event) ? event.which : event.keyCode;
 /*
 Executa a formatação após o backspace nos navegadores !document.all
 */
 if (whichCode == 8 && !documentall) {
 /*
 Previne a ação padrão nos navegadores
 */
    if (event.preventDefault){ //standart browsers
          event.preventDefault();
       }else{ // internet explorer
          event.returnValue = false;
    }
    var valor = obj.value;
    var x = valor.substring(0,valor.length-1);
    obj.value= demaskvalue(x,true).formatCurrency();
    return false;
 }
 /*
 Executa o Formata Reais e faz o format currency novamente após o backspace
 */
 FormataReais(obj,'.',',',event);
 } // end reais


 function backspace(obj,event){
 /*
 Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
 O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
 Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
 */

 var whichCode = (window.Event) ? event.which : event.keyCode;
 if (whichCode == 8 && documentall) {
    var valor = obj.value;
    var x = valor.substring(0,valor.length-1);
    var y = demaskvalue(x,true).formatCurrency();

    obj.value =""; //necessário para o opera
    obj.value += y;

    if (event.preventDefault){ //standart browsers
          event.preventDefault();
       }else{ // internet explorer
          event.returnValue = false;
    }
    return false;

    }// end if
 }// end backspace

 function FormataReais(fld, milSep, decSep, e) {
 var sep = 0;
 var key = '';
 var i = j = 0;
 var len = len2 = 0;
 var strCheck = '0123456789';
 var aux = aux2 = '';
 var whichCode = (window.Event) ? e.which : e.keyCode;

 //if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
 if (whichCode == 0 ) return true;
 if (whichCode == 9 ) return true; //tecla tab
 if (whichCode == 13) return true; //tecla enter
 if (whichCode == 16) return true; //shift internet explorer
 if (whichCode == 17) return true; //control no internet explorer
 if (whichCode == 27 ) return true; //tecla esc
 if (whichCode == 34 ) return true; //tecla end
 if (whichCode == 35 ) return true;//tecla end
 if (whichCode == 36 ) return true; //tecla home

 /*
 O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
 */

 if (e.preventDefault){ //standart browsers
       e.preventDefault()
    }else{ // internet explorer
       e.returnValue = false
 }

 var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
 if (strCheck.indexOf(key) == -1) return false;  // Chave inválida

 /*
 Concatenamos ao value o keycode de key, se esse for um número
 */
 fld.value += key;

 var len = fld.value.length;
 var bodeaux = demaskvalue(fld.value,true).formatCurrency();
 fld.value=bodeaux;

 /*
 Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
 */
   if (fld.createTextRange) {
     var range = fld.createTextRange();
     range.collapse(false);
     range.select();
   }
   else if (fld.setSelectionRange) {
     fld.focus();
     var length = fld.value.length;
     fld.setSelectionRange(length, length);
   }
   return false;
}


//requisicoes ajax cria o objeto

function criaXMLHttp() {
if (typeof XMLHttpRequest != "undefined")
return new XMLHttpRequest();
else if (window.ActiveXObject){
var versoes = ["MSXML2.XMLHttp.5.0",
"MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp", "Microsoft.XMLHttp"
];
}
for (var i = 0; i < versoes.length; i++){
try{
return new ActiveXObject(versoes[i]);
}catch (e) {}
}
throw new Error("Seu browser nao suporta AJAX");
}


//funcao para popular select com ajax

function envia(valor,campo,ident,imagem){
var XMLHttp = criaXMLHttp();
campo.innerHTML = " ";
campo.innerHTML = "<h5><span><center><img src='"+imagem+"'>carregando...</center></span></h5>";
XMLHttp.open("GET", "busca.php?uf="+valor+"&identificador="+ident, true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //envia com menas chance de erros
XMLHttp.onreadystatechange = function () {
if (XMLHttp.readyState == 4)
if (XMLHttp.status == 200){
if (XMLHttp.responseText == 0){campo.innerHTML='problemas na conexão!!!tente outra vez!!!';}else{campo.innerHTML = XMLHttp.responseText;}
} else {
campo.innerHTML = "Um erro ocorreu" + XMLHttp.statusText;
}
}
XMLHttp.send(null);
}

//funcao para popular select com ajax

function popula(valor,campo,ident,imagem){
var XMLHttp = criaXMLHttp();
campo.innerHTML = " ";
campo.innerHTML = "<h5><span><center><img src='"+imagem+"'>carregando...</center></span></h5>";
XMLHttp.open("GET", "busca_setor.php?empresa="+valor+"&identificador="+ident, true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //envia com menas chance de erros
XMLHttp.onreadystatechange = function () {
if (XMLHttp.readyState == 4)
if (XMLHttp.status == 200){
if (XMLHttp.responseText == 0){campo.innerHTML='problemas na conexão!!!tente outra vez!!!';}else{campo.innerHTML = XMLHttp.responseText;}
} else {
campo.innerHTML = "Um erro ocorreu" + XMLHttp.statusText;
}
}
XMLHttp.send(null);
}

//funcao para popular select com ajax

function retorno(valor,campo,ident,imagem){
var XMLHttp = criaXMLHttp();
campo.innerHTML = " ";
campo.innerHTML = "<h5><span><center><img src='"+imagem+"'>carregando...</center></span></h5>";
XMLHttp.open("GET", "busca_user_grupo.php?val="+valor+"&identificador="+ident, true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //envia com menas chance de erros
XMLHttp.onreadystatechange = function () {
if (XMLHttp.readyState == 4)
if (XMLHttp.status == 200){
if (XMLHttp.responseText == 0){campo.innerHTML='problemas na conexão!!!tente outra vez!!!';}else{campo.innerHTML = XMLHttp.responseText;}
} else {
campo.innerHTML = "Um erro ocorreu" + XMLHttp.statusText;
}
}
XMLHttp.send(null);
}


function carregar(id,qual){
var nome = document.getElementById('nome_parente').value;
var rel = document.getElementById('rel_parente').value;
var parent = document.getElementById('parentesco').value;
var idade = document.getElementById('idade_parente').value;
var civil = document.getElementById('parente_est_civil').value;
var creche = document.getElementById('parente_creche').value;
var fund = document.getElementById('parente_fund').value;
var medio = document.getElementById('parente_medio').value;
var supe = document.getElementById('parente_sup').value;
var XMLHttp = criaXMLHttp();
id.innerHTML = " ";
id.innerHTML = "<h5><span><center><img src='images/load.gif'>Carregando...</center></span></h5>";
XMLHttp.open("POST", "agentes_da_cidadania.php", true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //envia com menas chance de erros
XMLHttp.onreadystatechange = function () {
if (XMLHttp.readyState == 4)
if (XMLHttp.status == 200){
if (XMLHttp.responseText == 0){alert('problemas na conexão!!!tente outra vez!!!');}else{id.innerHTML = XMLHttp.responseText;}
} else {
alert("Um erro ocorreu" + XMLHttp.statusText);
}
}
var par ="action2="+qual+"&status=resultado&nome_parente="+nome+"&rel_parente="+rel+"&parentesco="+parent+"&idade_parente="+idade+"&parente_est_civil="+civil+"&parente_creche="+creche+"&parente_fund="+fund+"&parente_medio="+medio+"&parente_sup="+supe;
XMLHttp.send(par);
}


function excluir(id,indice,qual){
if( confirm('DESEJA REALMENTE EXCLUIR ESSE REGISTRO??')){
var XMLHttp = criaXMLHttp();
id.innerHTML = " ";
id.innerHTML = "<h5><span><center><img src='images/load.gif'>Excluindo...</span></center></h5>";
XMLHttp.open("POST", "agentes_da_cidadania.php", true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //envia com menas chance de erros
XMLHttp.onreadystatechange = function () {
if (XMLHttp.readyState == 4)
if (XMLHttp.status == 200){
if (XMLHttp.responseText == 0){alert('problemas na conexão!!!tente outra vez!!!');}else{id.innerHTML = XMLHttp.responseText;}
} else {
alert("Um erro ocorreu" + XMLHttp.statusText);
}
}
var par ="action2="+qual+"&status=apagar&id="+indice;
XMLHttp.send(par);
}
}

function editar(id,indice,qual){
var XMLHttp = criaXMLHttp();
id.innerHTML = " ";
id.innerHTML = "<h5><center><span><img src='images/load.gif'>Carregando...</span></center></h5>";
XMLHttp.open("POST", "agentes_da_cidadania.php", true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //envia com menas chance de erros
XMLHttp.onreadystatechange = function () {
if (XMLHttp.readyState == 4)
if (XMLHttp.status == 200){
if (XMLHttp.responseText == 0){alert('problemas na conexão!!!tente outra vez!!!');}else{id.innerHTML = XMLHttp.responseText;}//XMLHttp.responseText;}
} else {
alert("Um erro ocorreu" + XMLHttp.statusText);
}
}
var par ="action2="+qual+"&status=editar&id="+indice;
XMLHttp.send(par);
}

function salvar(id,indice,qual){
var nome = document.getElementById('nome_parente').value;
var rel = document.getElementById('rel_parente').value;
var parent = document.getElementById('parentesco').value;
var idade = document.getElementById('idade_parente').value;
var civil = document.getElementById('parente_est_civil').value;
var creche = document.getElementById('parente_creche').value;
var fund = document.getElementById('parente_fund').value;
var medio = document.getElementById('parente_medio').value;
var supe = document.getElementById('parente_sup').value;
var XMLHttp = criaXMLHttp();
id.innerHTML = " ";
id.innerHTML = "<h5><span><img src='images/load.gif'>Salvando...</span></h5>";
XMLHttp.open("POST", "agentes_da_cidadania.php", true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //envia com menas chance de erros
XMLHttp.onreadystatechange = function () {
if (XMLHttp.readyState == 4)
if (XMLHttp.status == 200){
if (XMLHttp.responseText == 0){alert('problemas na conexão!!!tente outra vez!!!');}else{id.innerHTML = XMLHttp.responseText;}//XMLHttp.responseText;}
} else {
alert("Um erro ocorreu" + XMLHttp.statusText);
}
}
var par ="action2="+qual+"&status=editar_resultado&id="+indice+"&nome_parente="+nome+"&rel_parente="+rel+"&parentesco="+parent+"&idade_parente="+idade+"&parente_est_civil="+civil+"&parente_creche="+creche+"&parente_fund="+fund+"&parente_medio="+medio+"&parente_sup="+supe;
XMLHttp.send(par);
}

function valgrid()
{
var camps = new Array(8);
if (document.getElementById('nome_parente').value == ""){camps[0] = "Primeiro Nome"; }
if (document.getElementById('rel_parente').value == ""){camps[1]= "Religião"; }
if (document.getElementById('parentesco').value == ""){camps[2]= "Parentesco"; }
if (document.getElementById('idade_parente').value == ""){camps[3] = "Idade"; }
if (document.getElementById('parente_est_civil').value == ""){camps[4] = "Estado Civil"; }
if (document.getElementById('parente_creche').value == ""){camps[5] = "Creche/pré"; }
if (document.getElementById('parente_fund').value == ""){camps[6] = "Fundamental"; }
if (document.getElementById('parente_medio').value == ""){camps[7] = "Médio"; }
if (document.getElementById('parente_sup').value == ""){camps[8] = "Superior"; }
var result = "Por favor preencha o(S) campo(s) a seguir:"+"\n";
var vet_id = new Array("nome_parente","rel_parente","parentesco","idade_parente","parente_est_civil","parente_creche","parente_fund","parente_medio","parente_sup");
for (i=0;i<9;i++){
    if (camps[i] != undefined){
    result = result + camps[i] + "\n";
     }
 }
var nome_campo = "";
//verifica qual o primeiro campo para dar foco nele
for (j=0;j<9;j++)
{
 if (camps[j] != undefined)
 {
 nome_campo = j;
 j = 8;
 }
}
if (result != "Por favor preencha o(S) campo(s) a seguir:"+"\n")
{
alert(result);
document.getElementById(vet_id[nome_campo]).focus();
return false;
}
else
{
return true ;
}
}


