// JavaScript Document
// verefica browser
function br() {
	var tamanho = 0;
	if (window.sidebar) { // Mozilla Firefox
		Browser = "Firefox";
	} else if (window.external ) { // IE
		Browser = "IE";
	} else if (window.opera && window.print) { // Opera
		Browser = "Opera";
	}
	   
	if (Browser == "Firefox") {
		//alert("Firefox");
		//alert(screen.width);
		document.getElementById('mainRodape').style.paddingTop=0;
		//document.getElementById('lrBoasFestas').style.left="140px";
	} else {
		document.getElementById('mainRodape').style.paddingTop=5;
	}
}

function topoPagina() {
	var tamanho = 0;
	if (window.sidebar) { // Mozilla Firefox
		Browser = "Firefox";
	} else if (window.external ) { // IE
		Browser = "IE";
	} else if (window.opera && window.print) { // Opera
		Browser = "Opera";
	}
	   
	if (Browser == "Firefox") {
		//alert("Firefox");
		//alert(screen.width);
		document.getElementById('topoPagina').style.paddingTop=0;
	} else {
		document.getElementById('topoPagina').style.paddingTop=5;
	}
}


function mascara_data(param)
	{
		var mydata = '';
		mydata = mydata + param.value;
	
		if (mydata.length == 2){
			mydata = mydata + '/';
			param.value = mydata;
		}
		if (mydata.length == 5){
			mydata = mydata + '/';
			param.value = mydata;
		}
		
	}
	
	function formataCampo(obj, mascara)
	{
		var valor = ''
		var tamValor = 0
		var tamMascara = 0
		var resultado = ''
		var aux1 = ''
		var aux2 = ''
		var posMas = 1
		var posVal = 1
		var tecla = obj.value.substr( obj.value.length - 1, 1)
		var masclen = mascara.length
	
		if(obj.value.length > mascara.length)
		{
			valor = _extraiNumero(obj.value.substring(0, obj.value.length-(obj.value.length-mascara.length)))
		} else {
			valor = _extraiNumero(obj.value)
		}
	
		//muda formatação somente quando receber uma tecla válida 
		if( !_teclaValida(tecla) && (obj.value != ''))
		{
			tamValor = valor.length
			tamMascara = mascara.length
			while((posVal <= tamValor) && (posMas <= tamMascara))
			{
				// percorre caracter por caracter no valor dado (do fim p/ começo)
				aux1 = valor.substring(tamValor - posVal, (tamValor - posVal) + 1)
				// percorre caracter por caracter na máscara (do fim p/ começo)
				aux2 = mascara.substring(tamMascara - posMas, (tamMascara - posMas) + 1)
				if(aux2 == 'X')
				{
					resultado = aux1 + resultado
					posVal = posVal + 1
				}else if((aux2 == '-') || (aux2 == '/') || (aux2 == '.' ) || (aux2 == '(') || (aux2 == ')') || (aux2 == ',')) // símbolos presentes nas máscaras
				{
					resultado = aux2 + resultado
				}
				posMas = posMas + 1
			}
			//  colocando "posMas" e "posVal" em suas posições atuais
			posVal = posVal - 1
			posMas = posMas - 1
			// caso especial para número de telefone (máscara começa com símbolo)
			if((posMas == tamMascara - 1) && (mascara.substring(0, 1) == '('))
			{
				resultado = '(' + resultado
			}
			
			if (obj.value != resultado)
			{
				if ( (resultado.length>=obj.maxLength) && (masclen>=resultado.length) )
				{
					if (masclen == resultado.length)
					{
						obj.maxLength = masclen
					} else{
						obj.maxLength = resultado.length+1
					}
				}
				obj.value = resultado
			}
			
		}
	}


	// Retorna true quando for um número
	function _somenteNumero(numero)
	{
		// numeros aceitos 0,1,2,3,4,5,6,7,8,9,37,38,39,40,46
		ER=/(^[0-2]$|^3[789]{0,1}$|^4[06]{0,1}$|^[5-9]$)/
		return ER.test(numero)
	}
	
	//  teclas que podem ser pressionadas
	function _teclaValida(tecla)
	{
		// 8  backspace			9  Tab				33 PageUp				34 PageDown	
		// 35 End				36 Home 			37 seta para esquerda	38 seta para cima 
		// 39 seta para direita 40 seta para baixo	46 Delete
		ER=/(^[8-9]$|^3[3-9]{1}$|^4[06]{1}$)/
		return ER.test(numero)
	}
	
	// retorna somente números [0..9]
	function _extraiNumero(dado)
	{
		var aux = ''
		for(n=0; n < dado.length; n++){
			if(_somenteNumero(dado.substr(n,1))){
				aux += dado.substr(n,1)
			}
		}
		return aux
	}
	
	// Validação de e-mail
	function validaEmail(obj, alerta)
	{
		var str = obj.value;
	
		// @ deve estar pelo menos na posição 1 de str,
		// deve estar pelo menos na posição 3 de str e não pde pode estar na última posição de str.
		if(str.length>0 && (str.indexOf('@') < 1 || str.indexOf('.') < 3 || (str.length < 5) || (str.substr(str.length-1, 1) == '.')))
		{
			// exibe mensagem ao usuário.
			if(alerta)
			{
				alert('E-mail inválido: ' + str);
			}
			if(obj != null)
			{
				obj.focus();
			}
			return false;
		} else {
			return true;
		}
	}
	
	function mascaraCep(objeto){
		if (objeto.value.indexOf("-") == -1 && objeto.value.length > 5){ objeto.value = ""; }
			if (objeto.value.length == 5){
				objeto.value += "-";
		}
	}
	
	function mascaraData(objeto) {
		if (objeto.value.indexOf("/") == -1 && objeto.value.length > 2) { 
			objeto.value = ""; 
		}
		if (objeto.value.length == 2) {
			objeto.value += "/";
		}
		if (objeto.value.length == 5){
			objeto.value += "/";
		}
	}
	
	//Funções tratamento de números
	function soNumero(event, param)
	{
		if (event.shiftKey==0)
		{
			if (!(event.keyCode>47 && event.keyCode<58) && !(event.keyCode>95 && event.keyCode<106)) param.value="";
		} else {
			param.value=""
		}
	}
	
	// Função para tratamento do formato de telefone (com 3 ou 4 números de prefixo)
	function formataTelefone(objeto) {
		numero = _extraiNumero(objeto.value)
		if (numero.length >= 10) {
			formataCampo(objeto, "(XX)XXXX-XXXX")
		} else if (numero.length == 9) {
			formataCampo(objeto, "(XX)XXX-XXXX")
		} else if (numero.length == 8) {
			formataCampo(objeto, "XXXX-XXXX")
		} else if (numero.length > 4) {
			formataCampo(objeto, "XXX-XXXX")
		} else {
			if (objeto.value != numero)
			{
				objeto.value = numero
			}
		}
	}
	
	// Função para tratamento do formato de ip (com 1, 2 ou 3 números de prefixo)
	function formataIP(objeto) {
		numero = _extraiNumero(objeto.value)
		if (numero.length == 8) {
			formataCampo(objeto, "XXX.XXX.X.X")
		} else if (numero.length ==9) {
			formataCampo(objeto, "XXX.XXX.X.XX")
		} else if (numero.length ==10) {
			formataCampo(objeto, "XXX.XXX.X.XXX")
		} else if (numero.length <=4) {
			formataCampo(objeto, "X.X.X.X")
		} else if (numero.length == 12) {
			formataCampo(objeto, "XXX.XXX.XXX.XXX")
		} else {
			if (objeto.value != numero)
			{
				objeto.value = numero
			}
		}
	}
	
	// Função para tratamento do formato de telefone (com 3 ou 4 números de prefixo)
	function soNumero2(objeto) {
		numero = _extraiNumero(objeto.value)
		
		if (objeto.value != numero)	{
			objeto.value = numero
		}
	}
