/*********************************************************
 Arquivo: funcoes.js
   Autor: Fabricio Ferreira da Silva (fabricio@fsilva.net)
    Data: agosto/2006
**********************************************************/



// funcao para ver se e uma data valida
// pField = campo ex: document.forms[0].nascimento
// pFmt   = formato da data ex: 1 = dd/mm/aaaa
var reDate1 = "/^\d{1,2}\/\d{1,2}\/\d{1,4}$/";
var reDate2 = "/^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/";
var reDate3 = "/^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/";
var reDate4 = "/^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/";
var reDate5 = "/^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/";
var reDate = reDate4;
function doDate(pField, pFmt) {
	eval("reDate = reDate" + pFmt);
	pStr = pField.value;
	if (!reDate.test(pStr) && pStr!=null && pStr!="") {
		alert(pStr + " NÃO é uma data válida.\nUtilize o formato dd/mm/aaaa");
		pField.value = '';
		pField.focus();
	}
} // doDate



// funcao para aceitar apenas numeros
// pField = campo ex: document.forms[0].nascimento
var reDigits = "/^\d+$/";
function doDigits(pField) {
	pStr = pField.value;
	if (!reDigits.test(pStr) && pStr!=null && pStr!="") {
		alert(pStr + " NÃO contém apenas dígitos.\nUtilize apenas números de 0 a 9 sem pontuação.");
		pField.value = '';
		pField.focus();
	}
}


// funcao para validar mascara de e-mail
// pField = campo ex: document.forms[0].email
// pFmt   = nivel de validacao: 3 (mais alto)
var reEmail1 = "/^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/";
var reEmail2 = "/^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/";
var reEmail3 = "/^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/";
var reEmail = reEmail3;
function doEmail(pField, pFmt){
	pStr = pField.value;
	eval("reEmail = reEmail" + pFmt);
	if (!reEmail.test(pStr) && pStr!=null && pStr!="") {
		alert(pStr + " NÃO é um endereço de e-mail válido.");
		pField.focus();
	}
}



// funcao para validar campos obrigatorios de um form
// e desabilitar o botao submit para o usuario nao clicar duas vezes
// valida tambem os campos checkbox e radio 
// existe uma validacao para campo de senha e confirmacao para ver se sao iguais
// no futuro adaptar para que nao precise alterar o nome dos campos de senha manualmente
function validaForm(pForm) {
	tmpName = '';
	tmpChecked = true;
	tmpElement = 0;
	for (i=0; i<pForm.elements.length; i++) {
		if (pForm.elements[i].obrigatorio != null) {
			if (pForm.elements[i].type=='radio' || pForm.elements[i].type=='checkbox') {
				if (tmpName != pForm.elements[i].name) {
					tmpName = pForm.elements[i].name;
					tmpChecked = false;
					tmpElement = i;
				}
				if (pForm.elements[i].checked) {
					tmpChecked = true;
				}
			} else {
				if (tmpName!='' && tmpChecked==false) {
					alert('Selecione um valor para o campo ' + pForm.elements[tmpElement].label + '.')
					pForm.elements[tmpElement].focus();
					return false;
				} else if (pForm.elements[i].value=='') {
					alert('O campo ' + pForm.elements[i].label + ' deve ser preenchido.')
					pForm.elements[i].focus();
					return false;
				}
			}
			
			// se tem senha e confirmacao
			j = i+1; 
			if (pForm.elements[i].name=='senha' && pForm.elements[j].name=='senha2') {
				if (pForm.elements[i].value != pForm.elements[j].value) {
					alert('A '+ pForm.elements[i].label +' e a '+ pForm.elements[j].label +' devem ser iguais.');
					return false;
				}
			}
		}
		
		// so chega nos botoes depois de passar por todos os campos
		// entao desabilita os botoes
		if (pForm.elements[i].type=='submit' || pForm.elements[i].type=='button') {
			if (pForm.elements[i].type=='submit') {
				pForm.elements[i].value = 'Aguarde...';
			}
			pForm.elements[i].disabled = true;
		}
	}
	return true;
}



// funcoes para mostrar/esconder objetos
// objID = id do objeto
var isMinNS4 = document.layers;
var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1;
var dom=document.getElementById&&!ie&&navigator.userAgent.indexOf("Opera")==-1;
function showHide(objID, objDisplay) {
	if(isMinNS4) {
		objID.display = objDisplay;
	} else {
//	if(ie||dom) {
		objID = document.getElementById(objID);
		objID.style.display = objDisplay;
	}
}


// funcoes para marcar/desmarcar ckeckbox
// objID = id do objeto
function check(objID) {
	objID = document.getElementById(objID);
	objID.checked = (objID.checked==true)?false:true;
}


// abre janela com foto maior
// pImg = caminho do arquivo da imagem
// pLegenda = texto sobre a imagem
// zoom('../img/foto.jpg', 'Nome do Produto');
function zoom(pImg, pLegenda, pwidth, pheight) {
	pwidth = (pwidth=='undefined') ? '100' : pwidth;
	pheight = (pheight=='undefined') ? '100' : pheight;
	window.open('../../zoom.php?img='+pImg+'&legenda='+pLegenda+'&w='+pwidth+'&h='+pheight, 'zoom', 'top=10,left=10,status=yes,width='+pwidth+',height='+pheight);
}
