// ----------------------------------------------------------------
// ----------------------------------------------------------------
// FUNÇÕES DIVERSAS
// ----------------------------------------------------------------
// ----------------------------------------------------------------

// ----------------------------------------------------------------
// AUTOTAB
// ----------------------------------------------------------------
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}

// ----------------------------------------------------------------
// ----------------------------------------------------------------


// ----------------------------------------------------------------
// VALIDA CEP 
// ----------------------------------------------------------------
function validateZIP(field) {
var valid = "0123456789-";
var hyphencount = 0;
if (field.length!=9) {
	alert("Informe CEP com 9 caracteres no formato '99999-999'.");
return false;
}
for (var i=0; i < field.length; i++) {
	temp = "" + field.substring(i, i+1);
	if (temp == "-") hyphencount++;
	if (valid.indexOf(temp) == "-1") {
		alert("CEP com caracteres inválidos.");
		return false;
	}
	if ((hyphencount > 1) || ((field.length==9) && ""+field.charAt(5)!="-")) {
		alert("Informe CEP com 9 caracteres no formato '99999-999'..");
		return false;
   	}
}
return true;
}
// ----------------------------------------------------------------
// ----------------------------------------------------------------



// ----------------------------------------------------------------
// VALIDA E-MAIL
// ----------------------------------------------------------------
function emailCheck (emailStr) {

var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var firstChars=validChars
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom="(" + firstChars + validChars + "*" + ")"
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)

if (matchArray==null) {
	alert("Email inválido (verifique @ e .'s)");
	return false;
}

var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    // user is not valid
    alert("E-mail inválido.....");
    return false;
}
// VALIDA CARACTERES DO EMAIL
// IRAN 13.01.2001
var acentuacao = "áàâäãÁÀÂÄÃçÇéèêëÉÈÊËíìîïÍÌÎÏóòôöõÓÒÔÖÕúùûüÚÙÛÜ"
for (var i=0; i < acentuacao.length; i++) {
	temp = acentuacao.substr(i,1);
	if (emailStr.indexOf(temp) != "-1") {
		alert("E-mail com caracteres inválidos: " + temp);
		return false;
	}
}
//


var IPArray=domain.match(ipDomainPat)

if (IPArray!=null) {
	 for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Destination IP address is invalid!");
			 return false;
	    }
    }
    // document.form.submit()
}

var domainArray=domain.match(domainPat)

if (domainArray==null) {
	alert("Domínio do e-mail inválido!");
   	return false;
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>3) {
   alert("Final do e-mail inválido!");
   return false;
}

if (domArr[domArr.length-1].length==3 && len<2) {
   var errStr="E-mail inválido!"
   alert("E-mail inválido!!!");
   return false;
}
return true;
}
// ----------------------------------------------------------------
// ----------------------------------------------------------------

// ----------------------------------------------------------------
// DESABILITA FORM SUBMIT/RESET
// ----------------------------------------------------------------
function disableform(theform) {

if (document.all || document.getElementById) {
for (i = 0; i < theform.length; i++) {
	var tempobj = theform.elements[i];
	if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset")
	tempobj.disabled = true;
}
// setTimeout('alert("Your form has been submitted.  Notice how the submit and reset buttons were disabled upon submission.")', 2000);
return true;
}
else {
// alert("The form has been submitted.  But, since you're not using IE 4+ or NS 6, the submit button was not disabled on form submission.");
return false;
   }
}
// ----------------------------------------------------------------
// ----------------------------------------------------------------

// ----------------------------------------------------------------
// DESABILITA BOTOES
// ----------------------------------------------------------------
function desabilitabotoes(theform) {

for (i = 0; i < theform.length; i++) {
	var tempobj = theform.elements[i];
	if (theform.elements[i].type.toLowerCase() == "submit" 
	   || theform.elements[i].type.toLowerCase() == "reset"
	   || theform.elements[i].type.toLowerCase() == "button")
	theform.elements[i].disabled = true;
}
return true;

}
// ----------------------------------------------------------------
// ----------------------------------------------------------------


// ----------------------------------------------------------------
// VALIDA FORM VOTACAO
// ----------------------------------------------------------------
function validaformvotacao(form) {

if (!validacamposvotacao(form)) {
	return false;
}

//alert(form.Email.value);
//form.Email.focus();
//form.Email.select();
//return false;

if (!emailCheck(form.Email.value)) {
   return false;
}

form.sub.name.disable = true;
form.res.name.disable = true;

return true;

}
// ----------------------------------------------------------------
// ----------------------------------------------------------------



// ----------------------------------------------------------------
// VALIDA CAMPOS VOTACAO
// ----------------------------------------------------------------
function validacamposvotacao(theform) {

var cateobrigatorias = "";
var campobrigatorios = "";
var contadorcate = 0;

for (i = 0; i < theform.length; i++) {
	if (theform.elements[i].name.substring(0,3) == "rad" 
		&& theform.elements[i].value == ""
		&& contadorcate <= 20) {
		cateobrigatorias += "\n  -  " + theform.elements[i].label;
		contadorcate += 1;
	}
	if (theform.elements[i].name == "Nome"
		|| theform.elements[i].name == "Email"
		|| theform.elements[i].name == "varSexo") {
		if (theform.elements[i].value == "" || theform.elements[i].value.substring(0,1) == " ") {
			campobrigatorios += "\n  -  " + theform.elements[i].label;
		}
	}

// IRAN 13.01.2001
	if (theform.elements[i].name == "Nome") {
		var numeros = "1234567890@!#$%*+=|\{}[]:;<>,?/"
		for (z=0; z < numeros.length; z++) {
			var digito = numeros.substr(z,1);
			if (theform.elements[i].value.indexOf(digito) != "-1") {
				alert("Nome com caracteres inválidos: " + digito);
				//alert("z=" + z);
				//alert(theform.elements[i].value);
				return false;
			}
		}
	}
//


}

if (cateobrigatorias != "") {
	cateobrigatorias = 	"________________________________________________\n" +
				   		  	"Votação Obrigatória para as Categorias:         \n" +
							cateobrigatorias + "\n" +
				  			"________________________________________________\n" +
							"Faça sua escolha e clique em Votar novamente!";
	alert(cateobrigatorias);
	return false;
}

if (campobrigatorios != "") {
	campobrigatorios = 	"_____________________________________________\n" +
				   		  	"Informações Obrigatórias:                    \n" +
							campobrigatorios + "\n" +
				  			"_____________________________________________\n" +
							"Informe os dados e clique em Votar novamente!";
	alert(campobrigatorios);
	return false;
}

return true;
}

// ----------------------------------------------------------------
// ----------------------------------------------------------------
