// JavaScript Document
  function sonumero(evento) {
  	var rcode
	  if (evento) {
  	  rcode = (window.addEventListener) ? evento.which : evento.keyCode;
	  	if(rcode == 13 || rcode == 8 || rcode == 0) {
		//Enter
		return true;
		}
	    if ((rcode < 48) || (rcode > 57))
		   {
		   return false;
		   }
	  }else {
	  rcode = (window.Event) ? event.which : event.keyCode;
	   if ((rcode < 48) || (rcode > 57))
		   {
	  		window.event.keyCode = "";
		   }
	  }
		 
		  } 
		  
function VerCampo() { 
//if (document.form1.nome.value == "") { 
//alert ("O campo nome não foi preenchido!") 
	faltacompletar = false
	
	for (var i = 0; i < document.form1.elements.length; i++) {
		if (document.form1.elements[i].req == "true") {
			if (!faltacompletar) {
				if(document.form1.elements[i].value == "") {
					rotulo = document.form1.elements[i].rotulo 
	   				faltacompletar = true } 
				else { 
    				faltacompletar = false } 	
			}
		}
	}

	if(faltacompletar){
		alert ("O campo " + rotulo + " não foi preenchido!")
    	return false } 
	else { 
    	return true } 	
}

function validaform(frm) {
	var retorno = true;
	for (var i = 0; i < frm.elements.length - 1; i++) {
		//alert(frm.elements[i].req);
		//alert(document.getElementById[i]);
		if ((frm.elements[i].getAttribute("tipo") == 'texto') && (frm.elements[i].getAttribute("req") == 'true')) {
			if (verifica_texto(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
			else {
			//frm.elements[i] = frm.elements[i].toUpperCase();
			frm.elements[i].style.background = "#FFFFFF";	
			}
		}
		else if ((frm.elements[i].getAttribute("tipo") == 'email') && (frm.elements[i].getAttribute("req") == 'true')) {
			if (checa(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}		
		else if ((frm.elements[i].getAttribute("tipo") == 'data') && (frm.elements[i].getAttribute("req") == 'true')) {
			if (!IsDate(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}
		else if ((frm.elements[i].getAttribute("tipo") == 'numero') && (frm.elements[i].getAttribute("req") == 'true')) {
			if (!isNumber(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}
				
		else if ((frm.elements[i].getAttribute("tipo") == 'cpf') && (frm.elements[i].getAttribute("req") == 'true')) {
					
		if (validaCPF(frm.elements[i].value)) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}
	
	// CPF - FIREFOX
		else if (frm.elements[i].id == 'acpf') {
					
		if (validaCPF(frm.elements[i].value)) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}
		else if ((frm.elements[i].getAttribute("tipo") == 'cnpj') && (frm.elements[i].getAttribute("req") == 'true')) {
		
		}
		else if ((frm.elements[i].getAttribute("tipo") == 'selecao') && (frm.elements[i].getAttribute("req") == 'true')) {
			if (isSelectedZero(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}
	}

 //   alert(document.getElementById("frm").elements[i]);
	return retorno;
}
function calcular_idade(data){
    //calculo a data de hoje   
	hoje=new Date();
	//alert(hoje)
    //calculo a data que recebo
    //descomponho a data em um array
    
	var array_data = data.split("/")
    //se o array nao tem tres partes, a data eh incorreta
    if (array_data.length!=3)
       return false
    //comprovo que o ano, mes, dia são corretos
    var ano
    ano = parseInt(array_data[2],10);
    if (isNaN(ano))
       return false
    var mes
    mes = parseInt(array_data[1],10);
    if (isNaN(mes))
       return false
    var dia
    dia = parseInt(array_data[0],10);
    if (isNaN(dia))
       return false
    //se o ano da data que recebo so tem 2 cifras temos que muda-lo a 4
    if (ano<=99)
       ano +=1900
    //subtraio os anos das duas datas
    idade=hoje.getFullYear()- ano - 1; //-1 porque ainda nao fez anos durante este ano
    //se subtraio os meses e for menor que 0 entao nao cumpriu anos. Se for maior sim ja cumpriu
    if (hoje.getMonth() + 1 - mes < 0) //+ 1 porque os meses comecam em 0
       return idade
    if (hoje.getMonth() + 1 - mes > 0)
       return idade+1
    //entao eh porque sao iguais. Vejo os dias
    //se subtraio os dias e der menor que 0 entao nao cumpriu anos. Se der maior ou igual sim que já cumpriu
    if (hoje.getUTCDate() - dia >= 0)
       return idade + 1
    return idade
} 

function validaform_global(frm) {
	var retorno = true;
	var nome ="";
	var tipo ="";
	for (var i = 0; i < frm.elements.length - 1; i++) {
		//alert(frm.elements[i].req);
		//alert(document.getElementById[i]);
		nome = frm.elements[i].name.substring(0,3);
		
		if (frm.elements[i].name == "nome_resp" || frm.elements[i].name == "cpf_resp") {
				if (calcular_idade(document.getElementById("datanasc").value) > 17) {
				tipo = "nao";
				}else { 
				
					if (nome=="cpf") {
					tipo="cpf";
					} else {
					tipo="texto";
					}
					document.getElementById("cpf_resp").disabled = false;
					document.getElementById("nome_resp").disabled = false;
				}
		} else if (frm.elements[i].name == "TelCel" ){
		tipo = "nao";
		} else if (nome=="cpf") {
		tipo ="cpf";
		} else if (nome=="dat") {
		tipo ="data";
		} else if (nome=="ema") {
		tipo ="email";
		}  else if (nome=="num") {
		tipo ="numero";
		} else {
		tipo ="texto";
		} 
	
			if ((tipo == 'texto')) {
			if (verifica_texto(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
			else {
			//frm.elements[i] = frm.elements[i].toUpperCase();
			frm.elements[i].style.background = "#FFFFFF";	
			}
		}
		else if ((tipo == 'email')) {
			if (checa(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}		
		else if ((tipo == 'data')) {
			if (!IsDate(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}
		else if ((tipo == 'numero')) {
			if (!isNumber(frm.elements[i])) {
				retorno = false;
				frm.elements[i].focus();
				break;
			}
		}
				
		else if ((tipo == 'cpf')) {
		if (validaCPF(frm.elements[i].value)) {
			retorno = false;
			frm.elements[i].style.background = "#FFFF99";
				frm.elements[i].focus();
				break;
			}
		}
	}

 //   alert(document.getElementById("frm").elements[i]);
	return retorno;
}

function IsDate(obj){
	var pData = obj.value;
	
	if(pData.length< 9 || pData.length>10){
		alert(obj.getAttribute("msg"));
		return false;
	}
	pData=pData.split("/");
	var ano = '' + parseInt(pData[2],10);
	var mes = '' + parseInt(pData[1],10);
	var dia = '' + parseInt(pData[0],10);

	if(dia>31){
		alert('Data inválida');
		return false;
	}
							
	if(mes>12){
		alert('Data inválida');
		return false;
	}

	if(mes==2){
		if(ano%4!=0 && dia>28){
			alert('Data Inválida');
			return false;
		}
		else{
			if(dia>29){
				alert('Data Inválida');
				return false;
			}
		}
	}
	if(mes<=7){
		if(mes%2==0 && dia>30){
			alert('Data inválida');
			return false;
		}
	}
	else{
		if(mes>9){
				if(mes%2!=0 && dia>30){
					alert('Data inválida');
					return false;
				}
		}
	}

	return true
}



function verifica_texto(obj) {
	var ret = false;
	if (obj.value.length == 0) {
	if (obj.getAttribute("msg")){
		alert(obj.getAttribute("msg"));
	}else {
	alert('Campo Inválido!');
	}
		obj.style.background = "#FFFF99";
		ret = true;
	}
	return ret;
}


function validaCPF(ncpf) {
	lcpf = ncpf.replace('.', '');
	lcpf = lcpf.replace('.', '');
	lcpf = lcpf.replace('-', '');
	cpf = lcpf;
	valor = true;
	erro = new String;
	if (cpf.length < 11) erro += "São necessários 11 digitos para verificação do CPF! \n\n"; 
	var nonNumbers = /\D/;
	if (nonNumbers.test(cpf)) erro += "A verificação de CPF suporta apenas numeros! \n\n";	
	if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
		  erro += "Número de CPF inválido!"
	}
	var a = [];
	var b = new Number;
	var c = 11;
	for (i=0; i<11; i++){
		a[i] = cpf.charAt(i);
		if (i < 9) b += (a[i] *  --c);
	}
	if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
	b = 0;
	c = 11;
	for (y=0; y<10; y++) b += (a[y] *  c--); 
	if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
	if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
		erro +="Digito verificador com problema!";
	}
	if (erro.length > 0){
		alert(erro);
		return true;
	}
	return false;
}


function Tecla(e)
{
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = e.which;
		if (tecla > 47 && tecla < 58) // numeros de 0 a 9
			return true;
		else
			{
				if (tecla != 8) // backspace
					event.keyCode = 0;
					//return false;
				else
					return true;
			}
}


function checa(nform) {
	if (nform.value == "") {
		alert("Digite seu e-mail.");
		return true;
	} else {
		prim = nform.value.indexOf("@")
		if(prim < 2) {
			alert("Os digitos antes @ devem ser maior ou igual a 2!");
			return true;
		}
		if(nform.value.indexOf("@",prim + 1) != -1) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf(".") < 1) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf(" ") != -1) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("zipmeil.com") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("hotmeil.com") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf(".@") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("@.") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf(".com.br.") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("/") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("[") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("]") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("(") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf(")") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
		if(nform.value.indexOf("..") > 0) {
			alert("O e-mail informado parece não estar correto.");
			return true;
		}
	}
		return false;
}


function formatar(src, mask) {
	var i = src.value.length;
	var saida = mask.substring(i,i+1);
	var ascii = event.keyCode;
	if (saida == "A") {
		if ((ascii >=97) && (ascii <= 122)) { event.keyCode -= 32; }
		else { event.keyCode = 0; }
	} else if (saida == "0") {
		if ((ascii >= 48) && (ascii <= 57)) { return }
		else { event.keyCode = 0 }
	} else if (saida == "#") {
		return;
	} else {
		src.value += saida;
		i += 1
		saida = mask.substring(i,i+1);
		if (saida == "A") {
			if ((ascii >=97) && (ascii <= 122)) { event.keyCode -= 32; }
			else { event.keyCode = 0; }
		} else if (saida == "0") {
			if ((ascii >= 48) && (ascii <= 57)) { return }
			else { event.keyCode = 0 }
		} else { return; }
	}
}


function isMail(mailField){
  strMail = mailField.value;
  var re = new RegExp;
  re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  var arr = re.exec(strMail);
  if (arr == null)
    return(false);
  else
    return(true);
}

function minLen(txtField, minVal){
  strExp = txtField.value;
  l = strExp.length;
  if (l < minVal)
    return(true);
  else
    return(false);
}

function maxLen(txtField, maxVal){
  strExp = txtField.value;
  l = strExp.length;
  if (l > maxVal)
    return(true);
  else
    return(false);
}

function isBlank(txtField){
  if (txtField.value)
    return (false);
  else
    return(true);
}

function isSelectedZero(txtField){
  selected = txtField.selectedIndex;
  if (selected == 0) {
    alert(txtField.getAttribute("msg"));
	return(true); }
  else {
    return(false); }
}

function isNumber(txtField){
  numExp = txtField.value;
  if (isNaN(numExp) || (numExp.length == 0)) {
	alert(txtField.getAttribute("msg"));
    return (false); }
  else {
    return(true); }
}

function isCPF(txtField){ 

  var i; 
  s = txtField.value;  
  var c = s.substr(0,9); 
  var dv = s.substr(9,2); 
  var d1 = 0; 
  
  for (i = 0; i < 9; i++){ 
    d1 += c.charAt(i)*(10-i); 
  } 
  
  if (d1 == 0) return false;   
  
  d1 = 11 - (d1 % 11); 
  
  if (d1 > 9) d1 = 0; 
  
  if (dv.charAt(0) != d1) return false; 
  
  d1 *= 2; 
  
  for (i = 0; i < 9; i++){ 
    d1 += c.charAt(i)*(11-i);   
  } 
  
  d1 = 11 - (d1 % 11); 
  
  if (d1 > 9) d1 = 0; 
  
  if (dv.charAt(1) != d1) return false; 
  
  return true; 
  
}


/**
 *
 * function mask(_mask, val)
 *
 * _mask = Mascara Exemplo: ##/##/#### ou ###.###.###-##
 * val   = Valor a ser formatado.
 *
 * Formata um valor  para a mascara definida.
 *
 * pedro.leao@ig.com.br 2003/08/16
 */
function mask(_mask, val) {
	var i, mki;
	var aux="";
	
	for(i=mki=0; i<val.length; i++, mki++) {
		if(_mask.charAt(mki)=='' || _mask.charAt(mki)=='#' || _mask.charAt(i)==val.charAt(i)) {
			aux+=val.charAt(i);
		} else {
			aux+=_mask.charAt(mki)+val.charAt(i);
			mki++;
		}
	}
	return aux;
}

/**
 * function maskEvent(field, _mask, event)
 *
 * field = Objeto que esta enviando o evendo onKeyPress()
 * _mask = Mascara Exemplo: ##/##/#### ou ###.###.###-##
 * event = Evento a ser observado.
 *
 * Formata um valor para a mascara definida conforma o valor vai sendo digitado.
 *
 * pedro.leao@ig.com.br 2003;08/16
 */
function maskEvent(field, _mask, event) {
	var key ='';
	var aux='';
	var len=0;
	var i=0;
	var strCheck = '0123456789';
///	var rcode = (window.Event) ? event.which : event.keyCode;
	var rcode = (window.addEventListener) ? event.which : event.keyCode;
	if(rcode == 13 || rcode == 8 || rcode == 0) {
		//Enter
		return true;
	}
	if (field.getAttribute("numero") == "true") {
		 if ((rcode < 48) || (rcode > 57))
			   {
			 	return false;
			   }
	}
	
	//Get key value from key code

	key=String.fromCharCode(rcode);
	if(strCheck.indexOf(key)==-1 || (field.value.length >= _mask.length)) {
		//Not a valid key
		return false;
	}
	
	aux=field.value+key;
	//window.alert(aux);
	aux=mask(_mask,aux);
	//window.alert(aux);
	field.value=aux;	
	return false;
}

/**
 *
 * function currencyFormat(fld, milSep, decSep, e)
 *
 * fld    = Objeto a ser verficado.
 * milSep = Separador para milhar.
 * decSep = Separador para decimal.
 * e      = Evento.
 *
 * Formata um valor decimal conforme for digitado no box.
 * Criação: Anonima (coletada em http://http://www.scriptbrasil.com/?class=2&secao=javascript&categoria=Formulários&menu=javascript&ini=1
 * Revisao: pedro.leao@ig.com.br	2003/08/16
 */
function currencyFormat(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.addEventListener) ? e.which : e.keyCode;

	if (whichCode == 13) {
		return true;  // Enter
	}
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (strCheck.indexOf(key) == -1) {
		return false;  // Not a valid key
	}
	len = fld.value.length;
	for(i = 0; i < len; i++) {
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)){
			 break;
		}
	}
	
	aux = '';
	for(; i < len; i++) {
		if (strCheck.indexOf(fld.value.charAt(i))!=-1){
			aux += fld.value.charAt(i);
		}
	}
	aux += key;
			
	len = aux.length;
	if (len == 0) {
		fld.value = '';
	} else if (len == 1) {
		fld.value = '0'+ decSep + '0' + aux;
	} else if (len == 2) {
		fld.value = '0'+ decSep + aux;
	} else if (len > 2) {
		aux2 = '';

		for (j = 0, i = len - 3; i >= 0; i--) {
			if (j == 3) {
				aux2 += milSep;
				j = 0;
			}
			aux2 += aux.charAt(i);
			j++;
		}
		fld.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--) {
			fld.value += aux2.charAt(i);
		}
		
		fld.value += decSep + aux.substr(len - 2, len);
	}
	return false;

}

function mascara_data(data, campo){ 
var mydata = ''; 
mydata = mydata + data; 
if (mydata.length == 2){ 
mydata = mydata + '/';
document.getElementById(campo).value = mydata;
//document.forms[0].elements(campo).value = mydata; 
} 
if (mydata.length == 5){ 
mydata = mydata + '/'; 
//document.forms[0].elements(campo).value = mydata; 
document.getElementById(campo).value = mydata;
} 
if (mydata.length == 10){ 
verifica_data(campo);
} 
} 

function verifica_data (campo) {

dia = (parseInt(document.getElementById(campo).value.substring(0,2),10));
mes = (parseInt(document.getElementById(campo).value.substring(3,5),10));
ano = (parseInt(document.getElementById(campo).value.substring(6,10),10)); 

/*
dia = (document.forms[0].elements(campo).value.substring(0,2));
mes = (document.forms[0].elements(campo).value.substring(3,5));
ano = (document.forms[0].elements(campo).value.substring(6,10));  */

situacao = ""; 
// verifica o dia valido para cada mes 
if ((dia < 1)||(dia < 1 || dia > 30) && ( mes == 4 || mes == 6 || mes == 9 || mes == 11 ) || dia > 31) { 
situacao = "falsa"; 
} 

// verifica se o mes e valido 
if (mes < 1 || mes > 12 ) { 
situacao = "falsa"; 
} 

// verifica se e ano bissexto 
if (mes == 2 && ( dia < 1 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
situacao = "falsa"; 
} 

if (document.getElementById(campo).value == "") { 
situacao = "falsa"; 
} 

if (situacao == "falsa") { 
alert("Data inválida!"); 
document.getElementById(campo).value="";
document.getElementById(campo).focus(); 
} 
} 

function mascara_hora(hora){ 
var myhora = ''; 
myhora = myhora + hora; 
if (myhora.length == 2){ 
myhora = myhora + ':'; 
document.forms[0].hora.value = myhora; 
} 
if (myhora.length == 5){ 
verifica_hora(); 
} 
} 

function verifica_hora(){ 
hrs = (document.forms[0].hora.value.substring(0,2)); 
min = (document.forms[0].hora.value.substring(3,5)); 

alert('hrs '+ hrs); 
alert('min '+ min); 

situacao = ""; 
// verifica data e hora 
if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){ 
situacao = "falsa"; 
} 

if (document.forms[0].hora.value == "") { 
situacao = "falsa"; 
} 

if (situacao == "falsa") { 
alert("Hora inválida!"); 
document.forms[0].hora.focus(); 
} 
} 

///--------------------------------------

var dragapproved=false
var div
if (document.all){
document.onmouseup=new Function("dragapproved=false")
}

function drag_dropie(){
	if (dragapproved==true){
		document.getElementById(div).style.pixelLeft=tempx+event.clientX-iex	
		document.getElementById(div).style.pixelTop=tempy+event.clientY-iey
	return false
	}
}

function initializedragie(divs){
	div = divs
iex=event.clientX
iey=event.clientY
tempx=document.getElementById(div).style.pixelLeft
tempy=document.getElementById(div).style.pixelTop
dragapproved=true
document.getElementById("leg").onmousemove = drag_dropie
}

function hidebox(){
	if (document.all)
		showimage.style.visibility="hidden"
	else if (document.layers)
		document.showimage.visibility="hide"
}