// JavaScript Document

// Remove espaços em branco no início e final de uma string
function Trim(str){
	return str.replace(/^\s+|\s+$/g,"");
}

// Validação de Email
function validarEmail(mail) {
	if (mail.value.length > 0) {		
		if (!/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/.test(mail.value)) {
			//msg += 'Campo E-MAIL inválido.\n';
			return false;
		}else{
			return true;
		}
	}
}

//Valida senha onde senha deve iniciar com uma letra, deve conter letras e números (mínimo 4 números), 
//não pode conter os seqüenciais 1234 ou 4321, Não é permitido colocar o ano como senha
function validaSenha(campo) { 

	if(campo.value.length == 0){
		msg += 'Senha é um campo obrigatório!\n';
		return false; 
	}
	if (!/^[a-zA-Z]{1}[\w\@\&\%\*\-\.\/\:\!\=]{0,250}$/.test(campo.value)) { 
		msg += 'A senha possui caracteres inválidos, ou não foi iniciada com uma letra!\n';  
		return false; 
	} 
	var i;  
	var num = 0, carac = 0; 
	for (i = 0; i < campo.value.length; i++) { 
		var c = campo.value.charAt(i); 
		if (((c >= "0") && (c <= "9"))){ 
			num++; 
		} 
		if (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z"))){ 
			carac++; 
		} 
	} 
	if (num < 4 || carac == 0) { 
		msg += 'A senha deve conter letras e números (mínimo 4 números)!\n';   	
		return false; 		
	 } 
	if (/(1234|4321)/.test(campo.value)){ 
		msg += 'A senha não pode conter os seqüenciais 1234 ou 4321!\n'; 
		return false; 
	} 
	s = campo.value 
	hoje = new Date() 
	ano = hoje.getYear() 
	for (f = 0; f <= 0; f++){ 
		n = s.indexOf(ano + f, 0) 
		if (n > -1){ 
			msg += 'Não é permitido colocar o ano como senha!\n';
			return false; 
		} 
	} 
	return true; 
}

function valida_cnpj(s){
	var i;
	if (s.length > 14) {
		if (s.substr(0,1) == 0){
			var c = s.substr(1,12);
			var dv = s.substr(13,2);
		}
		else{
			var c = s.substr(0,12);
			var dv = s.substr(12,2);
		}
	}
	else{
		var c = s.substr(0,12);
		var dv = s.substr(12,2);
	}
	var d1 = 0;
	if (s.length < 14) {
		return false;
	}
	for (i = 0; i < 12; i++){
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
	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 < 12; i++){
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
		if (dv.charAt(1) != d1){
			return false;
		}
		
	return true;
}

function valida_CPF(s){	
	var i;
	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 validaRg(){
	rg1 = document.getElementById('rg1');
	rg2 = document.getElementById('rg2');
	rg3 = document.getElementById('rg3');
	rg4 = document.getElementById('rg4');
	
	if (rg1.value.length == 0){
		msg+= 'RG é um campo obrigatório!\n';
		boolClicado = false;
		return false;
	}
	if (rg2.value.length == 0){
		msg+= 'RG é um campo obrigatório!\n';
		boolClicado = false;
		return false;
	}
	if (rg3.value.length == 0){
		msg+= 'RG é um campo obrigatório!\n';
		boolClicado = false;
		return false;
	}
	return true;
}

function IsCEP(strCEP){
	// Caso o CEP não esteja nesse formato ele é inválido!
	//var objER = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/; não estava funcionando então simplifiquei
	var objER = /^[0-9]{5}-[0-9]{3}$/;

	strCEP = Trim(strCEP)
	if(strCEP.length > 0)
	{
		if(objER.test(strCEP))
			return true;
		else
			return false;
	}
}


function pulaCasa(vl,qtd,prox){
	var tamanho=vl.length;
	var limite=qtd;
	//alert(tamanho+'#'+qtd+'#'+prox);
	if(tamanho==limite){
		document.getElementById(prox).focus();
	}
}

function zeroEsquerda(valor,maxSize,id_element) {
	var tamanho=valor.length;
	var limite=maxSize;
	if(tamanho<limite) {
		dif = limite-tamanho
		for(i=0;i<dif;i++) {
			valor = '0'+valor;
		}
	}
	document.getElementById(id_element).value = valor;
}

function somenteNumero(e,id_element){
	var key
	if(window.event) {
	// Atenter o IE
		key = e.keyCode; 
		if (( key < 47 )||( key > 58 )) {
				window.event.returnValue = null; 
				return;
		}		
	}
	else if (e.which) {
	//Atender NetScape.
			key = e.which;
			if (( key < 47 )||( key > 58 )) {
					e.preventDefault();
					return ; 
			}		
	}

}

function somenteDecimal(e,id_element){
	var key
	if(window.event) {
	// Atenter o IE
		key = e.keyCode; 
		if ((( key <= 47 )||( key >= 58 )) && ((key != 8) && (key != 44))) { //é número, backspace ou ponto
				window.event.returnValue = null; 
				return;
		}		
	}
	else if (e.which) {
	//Atender NetScape.
			key = e.which;
			if ((( key <= 47 )||( key >= 58 )) && ((key != 8) && (key != 44))) { //é número, backspace ou ponto
					e.preventDefault();
					return ; 
			}		
	}

}

/*//Mesmo que SomenteNumero porém permitindo o '.' também
function SoDecimal(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 || tecla != 46) // backspace e ponto
    event.keyCode = 0;
    //return false;
   else
    return true;
  }
}*/

//Início da função de exibição do Tooltip
function ShowHelp(obj, field){	
	var helpObj;
	if (document.all){
		helpObj = document.all[field + "_help"];
	}
	else if (document.getElementById){
		helpObj = document.getElementById(field+"_help");
	}
	if (helpObj) {
		//if help object is shown, hide it ; if object hidden, show it
		if (helpObj.style.display == ""){
		  helpObj.style.display = "none";
		 }
		else{
		  helpObj.style.display = "";
		 }

		//Get location of mouseover object, move help object to the left if will display off-screen
		var divWidth = 340;
		var offsetLeft = getOffsetLeft(obj);
		var screenWidth = (window.innerWidth) ? window.innerWidth - 25 : document.body.clientWidth;
		if ((offsetLeft + divWidth) > screenWidth) offsetLeft = screenWidth - divWidth;
		newX = offsetLeft;

		//Get location of mouseover object, move help object on top if will display off-screen
		var divHeight = helpObj.offsetHeight;
		var offsetTop = getOffsetTop(obj) + obj.offsetHeight;
		var screenHeight = (window.innerHeight) ? window.innerHeight - 25 : document.body.clientHeight;
		if ((offsetTop + divHeight) > screenHeight + getScrollY()) offsetTop = getOffsetTop(obj) - divHeight;
		newY = offsetTop;

		helpObj.style.top = newY;
		helpObj.style.left = newX;

		if (helpObj.style.display == ""){
		  qh_hideElement("select",helpObj);
		  qh_hideElement("object",helpObj);
		  qh_hideElement("embed",helpObj);  
		 }
		else{
		  qh_showElement("select");
		  qh_showElement("object");
		  qh_showElement("embed");
		}
	}
}

function getOffsetTop (elm) {
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;
	while (mOffsetParent) {
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;
	}
	return mOffsetTop;
}

function getOffsetLeft (elm) {
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;
	while (mOffsetParent) {
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;
	}
	return mOffsetLeft;
}

function getScrollY() {
	var scrOfY = 0;
	  if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape
		scrOfY = window.pageYOffset;
	  }
	  else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM
		scrOfY = document.body.scrollTop;
	  }
	  else if( document.documentElement &&
		  ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6
		scrOfY = document.documentElement.scrollTop;
	  }
	  return scrOfY;
}
	
function qh_hideElement( elmID, overDiv ) {
if(document.all) {
	for(i = 0; i < document.all.tags( elmID ).length; i++) {
	  obj = document.all.tags( elmID )[i];
	  if(!obj || !obj.offsetParent) continue;

	  // Find the element's offsetTop and offsetLeft relative to the BODY tag.
	  objLeft   = obj.offsetLeft;
	  objTop    = obj.offsetTop;
	  objParent = obj.offsetParent;

	  while(objParent.tagName.toUpperCase() != 'BODY') {
		objLeft  += objParent.offsetLeft;
		objTop   += objParent.offsetTop;
		objParent = objParent.offsetParent;
	  }

	  objHeight = obj.offsetHeight;
	  objWidth  = obj.offsetWidth;

	  if((overDiv.offsetLeft + overDiv.offsetWidth) <= objLeft);
	  else if((overDiv.offsetTop + overDiv.offsetHeight) <= objTop);
	  else if(overDiv.offsetTop >= (objTop + objHeight));
	  else if(overDiv.offsetLeft >= (objLeft + objWidth));
	  else {
		obj.style.visibility = 'hidden';
	  }
	}
  }
}
	
function qh_showElement(elmID) {
if(document.all) {
	for(i = 0; i < document.all.tags( elmID ).length; i++) {
	  obj = document.all.tags(elmID)[i];
	  if(!obj || !obj.offsetParent) continue;
	  obj.style.visibility = '';
	}
  }
}
//Término

//Função para limitar o tamanho de um campo TEXTAREA, exibindo o contador em um outro campo.
function textCounter(field, countfield, maxlimit) {
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
	else // otherwise, update 'characters left' counter
		countfield.value = maxlimit - field.value.length;
}
