// JavaScript Document
var jsNoTags = false
var jsAllowTags = true
var jsRequired = true
var jsOptional = false 

function MostraErro(msg,campo,maxvalue){
	if(msg == "eRequiredField")
		alert('o campo ' + campo + ' é requerido')
	else if (msg == "eFieldSizeExceeded")
		alert('o tamanho do campo ' + campo + ' foi excedido (' + maxvalue + ')')
	else if (msg == "eInvalidEmail")
		alert('o e-mail do campo ' + campo + ' é inválido')
	else if (msg == "eInvalidTelefone")
		alert('o telefone do campo ' + campo + ' é inválido')				
	else if (msg == "eInvalidDate")
		alert('a data do campo ' + campo + ' é inválida')
	else if (msg == "eInvalidCep")
		alert('o campo ' + campo + ' é inválido, utilize apenas números sem o hífen')
	else if (msg == "eInvalidBirthDate")
		alert('a data do campo ' + campo + ' deve ser menor que a data atual')
	else if (msg == "eInvalidTime")
		alert('a hora do campo ' + campo + ' é inválida')
	else if (msg == "eInvalidInteger")
		alert('o campo ' + campo + ' deve conter apenas números')
	else if (msg == "eInvalidReal")
		alert('o número do campo ' + campo + ' deve ser um número decimal')
	else if (msg == "eInvalidFileType")
		alert('a extensão do arquivo do campo ' + campo + ' é inválida')
	else if (msg == "eCannotContainTags")
		alert('o campo ' + campo + ' não deve conter tags')
	else if (msg == "eDistinctPasswords")
		alert('as senhas digitadas são diferentes')
	else if (msg == "eInvalidCPF")
		alert('o campo cpf é inválido')
	else if (msg == "eDistinctDate")
		alert('a data inicial deve ser menor que a data final')
	else if (msg == "eDistinctValores")
		alert('o fim deve ser maior que o inicio')
	else if (msg == "eFieldSizeDiferent")
		alert('o campo ' + campo + ' deve conter pelo menos ' + maxvalue + ' digitos')
	else if (msg == "eCharsSequence")
		alert('o campo ' + campo + ' tem sequência inválida de caracteres');
	else if (msg == "eYouTube")
		alert('o campo ' + campo + ' não é uma url válida do YouTube');
	else if (msg == "eDir")
		alert('o campo ' + campo + ' não é um nome de diretório válido. \n Não é permitido o uso de acentos e caracteres especiais.');
	else if (msg == "eDistinctDropDown")
		alert('os valores do campo ' + campo + ' devem ser diferentes.');
	else if (msg == "eInvalidUserName")
		alert('o valor do campo ' + campo + ' é inválido.');
	else if (msg == "eGeneral")
		alert(campo)
}

function Trim(txt) {
	var i = 0;
	while (txt.charAt(i) == " ") {
		i = i + 1
	}
	var j = txt.length - 1
	while (txt.charAt(j) == " ") {
		j = j - 1
	}
	return txt.substr(i, j - i + 1)
}

function ContainsAny(text, characters) {
	var c
	for (var i = 0; i < characters.length; i++) {
		c = characters.charAt(i);
		if (text.indexOf(c) >= 0) {
			return true
		}
	}
	return false
}

function SelectedValue(field) {
	return (field[field.selectedIndex].value)
}

function ContainsScript(txt) {
	var expr = "( |\"|\')on(.)+?=?('|\")(.)*('|\")";
	var re = new RegExp(expr);
	return (re.test(txt))
}
	
function ContainsTags(txt) {
	var expr = "<[a-zA-Z\/!\?]+([^<])*?>";
	var re = new RegExp(expr);
	var expr2 = "&lt;[a-zA-Z\/!\?]+([^<])*?&gt;";
	var re2 = new RegExp(expr2);
	return (re.test(txt) || re2.test(txt))
}

function extrai_numeros(texto) {
	var novo = ""
	for (var i = 0; i < texto.length; i++) {
		caracter = texto.charAt(i)
		if (ValidateInteger(caracter))
			novo = novo + caracter
	}
	return (novo)
}

function cpf_valido(cpf) {
	cpf = extrai_numeros(cpf)
	if (cpf.length < 1) return (false)
	if (cpf == "00000000000") return (false)
	if (cpf == "11111111111") return (false)
	if (cpf == "22222222222") return (false)
	if (cpf == "33333333333") return (false)
	if (cpf == "44444444444") return (false)
	if (cpf == "55555555555") return (false)
	if (cpf == "66666666666") return (false)
	if (cpf == "77777777777") return (false)
	if (cpf == "88888888888") return (false)
	if (cpf == "99999999999") return (false)

	var d1,d4,xx,nCount,resto,digito1,digito2,check;
	d1 = 0;	d4 = 0;	xx = 1;
	for (nCount = 0; nCount < (cpf.length - 1); nCount++) {
		d1 = d1 + (11 - xx) * cpf.substring(nCount, nCount + 1)
		d4 = d4 + (12 - xx) * cpf.substring(nCount, nCount + 1)
		xx++
	}
	resto = (d1 % 11)
	if (resto < 2)
		digito1 = 0
	else
		digito1 = 11 - resto
	d4 = d4 + 2 * digito1
	resto = (d4 % 11)
	if (resto < 2)
		digito2 = 0 
	else
		digito2 = 11 - resto
	check = digito1 + digito2
	return (check == cpf.substring(cpf, cpf.length - 1, cpf.length + 1))
}

function GetFileExtension(filename) {
	var i = filename.lastIndexOf(".")
	if (i == -1) return ("")
	var j = filename.length
	var ext = filename.substring(i+1,j)
	return (ext)
}

function HasValidExtension(filename, valid_extensions) {
	valid_extensions = "," + valid_extensions + ","
	var ext = GetFileExtension(filename)
	return (valid_extensions.indexOf("," + ext + ",") != -1)
}

function ValidateEmail(email) {
	var wrong_format = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
	var right_format = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
	var wrong = new RegExp(wrong_format);
	var right = new RegExp(right_format);
	return (!wrong.test(email) && right.test(email))
}

function ValidateUserName(login) {
	var right_format = "^[a-zA-Z][a-zA-Z0-9]*[\.\_]?[a-zA-Z0-9]+$";
	var right = new RegExp(right_format);
	if ((login.length < 3) || (login.length > 30)){
		return false
	}
	return (right.test(login))
}

function ValidateYouTubeURL(txt){
	var expr = ".+[A-Za-z]\.youtube\.com.+\\?v={1}";
	var re = new RegExp(expr);
	return re.test(txt);
}

function ValidaChar(char){
	var expr = "[a-zA-Z0-9\_]";
	var re = new RegExp(expr);
	return (re.test(char));
}

function ValidateDirName(txt){
	for (var i = 0; i < txt.length; i++) {
		c = txt.charAt(i);
		teste = ValidaChar(c);
		if(!teste){
			return false
		}
	}
	return true
}

function ValidaCep(cep){
	var expr = "[0-9]{8}";
	var re = new RegExp(expr);
	return re.test(cep)
}

function ValidaTelefone(tel){
	var expr = "[2-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]";
	var re = new RegExp(expr);
	return re.test(tel)
}

	
function ValidaSequencia(txt, nchars) {
	var expr = "^[A-Za-z0-9*$%@&/\]{" + nchars + "}";
	var re = new RegExp(expr);			
	return re.test(txt);
}

function DataMaior(parametro1,parametro2){
	if((parametro1 != "") && (parametro2 != "")){
		dia1 = parametro1.slice(0,2)
		mes1 = parametro1.slice(3,5)
		ano1 = parametro1.slice(6,10)
		dia2 = parametro2.slice(0,2)
		mes2 = parametro2.slice(3,5)
		ano2 = parametro2.slice(6,10)
		data1 = new Date(ano1,mes1,dia1)
		data2 = new Date(ano2,mes2,dia2)
		if (data2 <= data1)
			return false
	}
	return true
}

function ValidateBRDate(adate) {
	var format = "[0-3][0-9]/[0-1][0-9]/[0-9][0-9][0-9][0-9]";
	var reg = new RegExp(format);
	var format_ok = reg.test(adate);
	var dd = adate.substring(0,2);
	var mm = adate.substring(3,5);
	var yyyy = adate.substring(6,10);
	var new_date = new Date(yyyy, mm - 1, dd, 02, 00, 00, 00);
	var day_ok = (new_date.getDate() == dd);
	var month_ok = (new_date.getMonth() + 1 == mm);
	return (format_ok && day_ok && month_ok)
}

function ValidateTime(time) {
	if (time.length == 5) {
		hh = time.substring(0,2)
		mm = time.substring(3,4)
		if (ValidateInteger(hh) && ValidateInteger(mm)) {
			if ((hh >= 0) && (hh <= 23) && (mm >= 0) && (mm <= 23)) {
				return true
			}
		}
	}
	return false
}

function ValidateInteger(expr) {
	var valids = "0123456789";
	if (expr.length == 0)
		 return (false);
	for (i = 0; i < expr.length; i++)  {
		if (valids.indexOf(expr.charAt(i)) == -1)
			return (false)
	}
	return (true)
}

function ValidateReal(numero) {
	var validos = "-0123456789,";
	if (numero.length == 0)
		 return (false);
	for (i = 0; i < numero.length; i++)  {
		if (validos.indexOf(numero.charAt(i)) == -1)
			return (false)
	}
	if (numero.indexOf(",") != numero.lastIndexOf(","))
		return (false);
	if (numero.indexOf("-") != numero.lastIndexOf("-"))
		return (false);
	if (numero.indexOf("-") != -1) {
		if (numero.indexOf("-") != 0) {
			return (false);
		}
	}
	return (true)
}

function ValidateHasText(txt) {		
	var expr = "[A-Za-z0-9]+";
	var re = new RegExp(expr);			
	return re.test(txt);
}

function CheckYouTubeTextField (field,maxsize, nameMsg){
	if (error_found) return
	field.value = Trim(field.value)
	if ((maxsize != "") && (field.value.length > maxsize)) {
		field.focus()
		MostraErro('eFieldSizeExceeded',nameMsg,maxsize)
		error_found = true
	}		
	if ((ContainsTags(field.value)) || (ContainsScript(field.value))) {
		field.focus()
		MostraErro('eCannotContainTags',nameMsg)
		error_found = true
	}
	if(ValidaSequencia(field.value, 50)) {
		field.focus()
		MostraErro('eCharsSequence',nameMsg)
		error_found = true
	}
	if(!ValidateYouTubeURL(field.value)){
		field.focus()
		MostraErro('eYouTube',nameMsg)
		error_found = true
	}
}

function CheckPeloMenosUmCampoTexto(nome_campo,msg){
	if (error_found) return
	var opts = document.getElementsByName(nome_campo);
	var filled= false;
	for(i=0; i < opts.length; i++) {
		if(opts[i].value != "") {
			CheckTextField(opts[i], jsOptional, 50, jsNoTags, nome_campo);
			filled = true;
		}
	}
	if(!filled){
		MostraErro('eGeneral',msg)
		error_found = true
	}
}

function CheckTextField(field, required, maxsize,allowtags,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && ((field.value == "") || !ValidateHasText(field.value))) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}
	if ((maxsize != "") && (field.value.length > maxsize)) {
		field.focus()
		MostraErro('eFieldSizeExceeded',nameMsg,maxsize)
		error_found = true
	}		
	if ((!allowtags && ContainsTags(field.value)) || (!allowtags && ContainsScript(field.value))) {
		field.focus()
		MostraErro('eCannotContainTags',nameMsg)
		error_found = true
	}
	if(ValidaSequencia(field.value, 50)) {
		field.focus()
		MostraErro('eCharsSequence',nameMsg)
		error_found = true
	}
}


function CheckTextFieldMinimo(field, required, maxsize,minsize,allowtags,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && ((field.value == "") || !ValidateHasText(field.value))) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
		return
	}
	if ((maxsize != "") && (field.value.length > maxsize)) {
		field.focus()
		MostraErro('eFieldSizeExceeded',nameMsg,maxsize)
		error_found = true
		return
	}
	if ((minsize != "") && (field.value.length < minsize)) {
		field.focus()
		MostraErro('eFieldSizeDiferent',nameMsg,minsize)
		error_found = true
		return
	}		
	if ((!allowtags && ContainsTags(field.value)) || (!allowtags && ContainsScript(field.value))) {
		field.focus()
		MostraErro('eCannotContainTags',nameMsg)
		error_found = true
		return
	}
	
}

function CheckCepField(field, required,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}		
	if ((field.value != "") && (!ValidaCep(field.value))){
		field.focus()
		MostraErro('eInvalidCep',nameMsg)
		error_found = true
	}
}

function CheckTelefoneField(field, required,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}		
	if ((field.value != "") && (!ValidaTelefone(field.value))){
		field.focus()
		MostraErro('eInvalidTelefone',nameMsg)
		error_found = true
	}
}



function CheckDirField(field, required, maxsize,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}
	if ((maxsize != "") && (field.value.length > maxsize)) {
		field.focus()
		MostraErro('eFieldSizeExceeded',nameMsg,maxsize)
		error_found = true
	}
	if ((field.value != "") && (!ValidateDirName(field.value))){
		field.focus()
		MostraErro('eDir',nameMsg)
		error_found = true
	}
}

function CheckEmailField(field, required, maxsize, nameMsg) {
	if (error_found) return
		if (required) {
			if (field.value == '') {
				field.focus()
				MostraErro('eInvalidEmail',nameMsg)
				error_found = true
			} else {
				if (!ValidateEmail(field.value)) {
					field.focus()
					MostraErro('eInvalidEmail',nameMsg)
					error_found = true
				}
			}
		}
		else {
			if (field.value != '') {
				if (!ValidateEmail(field.value)) {
					field.focus()
					MostraErro('eInvalidEmail',nameMsg)
					error_found = true
				}
			}
		}
}


function CheckUserNameField(field, required, maxsize,minsize,allowtags,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && ((field.value == "") || !ValidateHasText(field.value))) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	} 
	if ((maxsize != "") && (field.value.length > maxsize)) {
		field.focus()
		MostraErro('eFieldSizeExceeded',nameMsg,maxsize)
		error_found = true
	}
	if ((minsize != "") && (field.value.length <= minsize)) {
		field.focus()
		MostraErro('eFieldSizeDiferent',nameMsg,minsize)
		error_found = true
	}		
	if ((!allowtags && ContainsTags(field.value)) || (!allowtags && ContainsScript(field.value))) {
		field.focus()
		MostraErro('eCannotContainTags',nameMsg)
		error_found = true
	}

	if(!error_found){
		if (!ValidateUserName(field.value)) {
			field.focus()
			MostraErro('eInvalidUserName',nameMsg)
			error_found = true
		}
	}
}

function CheckPeloMenos1DropDown(field1,field2,nameMsg) {
	if (error_found) return
	if ((field1.selectedIndex == 0) && (field2.selectedIndex == 0)){
		field1.focus()
		MostraErro('eGeneral',nameMsg)
		error_found = true
	}
}

function CheckDropDown(field,nameMsg) {
	if (error_found) return
	if (field.selectedIndex == 0){
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}
}

function CheckHidden(field,nameMsg) {
	if (error_found) return
	if (field.value == ''){
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}
}

function CheckDropDownMultiplo(field,nameMsg) {
	if (error_found) return
	if (field.value == ""){
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}
}

function CheckCheckBoxField(field,nameMsg){
	select_check = false 
	if (error_found) return
	if(field.length == null){
		if (field.checked){
			select_check = true
		}
		if (!select_check) {
			field.focus()
			MostraErro('eRequiredField',nameMsg)
			error_found = true
		}
	}else{
		for (var i = 0; i < field.length; i++) {
			if (field[i].checked){
				select_check = true
			}
		}
		
		if (!select_check) {
			field[0].focus()
			MostraErro('eRequiredField',nameMsg)
			error_found = true
		}
	}
}

function CheckRadioField(field,nameMsg) {
	select_radio = false 
	if (error_found) return
	if(field.length == null){
		if (field.checked){
			select_radio = true
		}
		if (!select_radio) {
			field.focus()
			MostraErro('eRequiredField',nameMsg)
			error_found = true
		}
	}else{
		for (var i = 0; i < field.length; i++) {
			if (field[i].checked){
				select_radio = true
			}
		}
		if (!select_radio) {
			field[0].focus()
			MostraErro('eRequiredField',nameMsg)
			error_found = true
		}
	}
}

function CheckDateField(field, country, required,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (field.value != "") {
		if (!ValidateBRDate(field.value)) {
			field.focus()
			MostraErro('eInvalidDate',nameMsg)
			error_found = true
		}
	} else {
		if (required) {
			field.focus()
			MostraErro('eRequiredField',nameMsg)
			error_found = true
		}
	}
}

function CheckBirthDateField(field, country, required,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (field.value != "") {
		if (!ValidateBRDate(field.value)) {
			field.focus()
			MostraErro('eInvalidDate',nameMsg)
			error_found = true
		}

		if (CheckBirthDate(field.value)) {
			field.focus()
			MostraErro('eInvalidBirthDate',nameMsg)

			error_found = true
		}
	} else {
		if (required) {
			field.focus()
			MostraErro('eRequiredField',nameMsg)
			error_found = true
		}
	}
}

/***
* Return TRUE if birth date is later than now!
*/
function CheckBirthDate(value) {		
	posAno = value.lastIndexOf("/") + 1;
	posMes = value.indexOf("/") + 1;
	posDia = value.indexOf("/");		
	ano = new Number(value.substr(posAno));
	mes = new Number(value.substr(posDia+1, posMes-1))-1;
	dia = new Number(value.substr(0, posDia));
	dtNascimento = new Date(ano, mes, dia);
	dtCorrente = new Date();
	anoCorrente = dtCorrente.getFullYear();
	mesCorrente = dtCorrente.getMonth();
	diaCorrente = dtCorrente.getDate();
	if(dtNascimento > dtCorrente) {
		return true;
	}
	return false;
}

function CheckTimeField(field, require,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (field.value != "") {
		if (!ValidateTime(field.value)) {
			field.focus()
			MostraErro('eInvalidTime',nameMsg)
			error_found = true
		}
	} else {
		if (required) {
			field.focus()
			MostraErro('eRequiredField',nameMsg)
			error_found = true
		}
	}
}

function CheckNumericField(field,maxsize,required,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
		return
	}
	if ((field.value != "") && !ValidateInteger(field.value)) {
		field.focus()
		MostraErro('eInvalidInteger',nameMsg)
		error_found = true
		return
	}
	if (field.value.length > 0){
		if ((maxsize != "") && (field.value.length > maxsize)) {
			field.focus()
			MostraErro('eFieldSizeDiferent',nameMsg,maxsize)
			error_found = true
			return
		}
	}
}


function CheckIntegerField(field, required,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
		return
	}
	if ((field.value != "") && !ValidateInteger(field.value)) {
		field.focus()
		MostraErro('eInvalidInteger',nameMsg)
		error_found = true
		return
	}
}

function CheckRealField(field, required,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
		return
	}
	if ((field.value != "") && !ValidateReal(field.value)) {
		field.focus()
		MostraErro('eInvalidReal',nameMsg)
		error_found = true
		return
	}
}

function CheckFileField(field, required, valid_extensions,nameMsg) {
	if (error_found) return
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
		return
	}
	if (required && (!HasValidExtension(field.value, valid_extensions))) {
		field.focus()
		MostraErro('eInvalidFileType',nameMsg)
		error_found = true
		return
	}
}

function ComparePasswords(campo1,campo2) {
	if (campo1.value != campo2.value) {
		campo1.focus()
		MostraErro('eDistinctPasswords')
		error_found = true
	}
}

function ComparaCampos(campo1,campo2,msg) {
	if (campo1.value != campo2.value) {
		campo1.focus()
		MostraErro('eGeneral',msg)
		error_found = true
	}
}


function CheckCPF(field, required, maxsize,nameMsg) {
	if (error_found) return
	field.value = Trim(field.value)
	if (required && (field.value == "")) {
		field.focus()
		MostraErro('eRequiredField',nameMsg)
		error_found = true
	}
	if ((maxsize != "") && (field.value.length > maxsize)) {
		field.focus()
		MostraErro('eFieldSizeExceeded',nameMsg,maxsize)
		error_found = true
	}
	if ((field.value != "") && !cpf_valido(field.value)) {
		field.focus()
		MostraErro('eInvalidCPF',nameMsg)
		error_found = true
		return
	}
}

function FormataNome(Campo,teclapres) {
	var tecla = teclapres.keyCode;
	if (tecla == 32) {
		vr = document.dados[Campo].value;
		tam = vr.length;
		document.dados[Campo].value = vr.substr(0,tam-1);
		if (Campo == "nome")
			alert("Este campo deve conter apenas o primeiro nome do usuário");			
	}
}

function Buscar(campoTxt,campoSelect) {
	digitado = campoTxt.value.toUpperCase()
	for (i = 0; i < campoSelect.length; i++) {
		nome = campoSelect[i].text.toUpperCase()
		if (nome.substring(0,digitado.length) == (digitado) ) {
			campoSelect.selectedIndex = i
			return
		}
	}
}

	
function Up(campo){
	var i;
	var nome_antigo;
	var nome_novo;
	var valor_antigo;
	var valor_novo;
	if((campo.selectedIndex == 0) || (campo.value == "")){
	}else{
		nome_antigo = campo.options[campo.selectedIndex-1].text
		valor_antigo = campo.options[campo.selectedIndex-1].value
		nome_novo = campo.options[campo.selectedIndex].text
		valor_novo = campo.options[campo.selectedIndex].value
		campo.options[campo.selectedIndex-1].text = nome_novo
		campo.options[campo.selectedIndex-1].value = valor_novo
		campo.options[campo.selectedIndex].text = nome_antigo
		campo.options[campo.selectedIndex].value = valor_antigo
		campo.options[campo.selectedIndex-1].selected = true
	}
}

function Down(campo){
	var i;
	var nome_antigo;
	var nome_novo;
	var valor_antigo;
	var valor_novo;
	if((campo.selectedIndex == campo.length - 1) || (campo.value == "")){
	}else{
		nome_antigo = campo.options[campo.selectedIndex+1].text
		valor_antigo = campo.options[campo.selectedIndex+1].value
		nome_novo = campo.options[campo.selectedIndex].text
		valor_novo = campo.options[campo.selectedIndex].value
		campo.options[campo.selectedIndex+1].text = nome_novo
		campo.options[campo.selectedIndex+1].value = valor_novo
		campo.options[campo.selectedIndex].text = nome_antigo
		campo.options[campo.selectedIndex].value = valor_antigo
		campo.options[campo.selectedIndex+1].selected = true
		campo.options[campo.selectedIndex].selected = false
	}
}

function Seleciona(campo,campo_sele) {
	var i;
	var nome;
	var valor;
	var tam;
	for (i = 0; i < campo.length; i++) {
		if (campo.options[i].selected) {
			nome  = campo.options[i].text
			valor = campo.options[i].value
			tam   = campo_sele.options.length
			campo_sele.options[tam] = new Option(nome, valor)
			campo_sele.options[tam].selected = true
			campo.remove(i)
			i = i - 1
		}
	}
	SelecionaTudo(campo_sele)
}

function SelecionaTudo(campo){
	var tam
	var i
	tam  = campo.options.length
	for (i = 0; i < tam; i++) {
		campo.options[i].selected = true
	}
}	



function MarcaTudo(campo){
	var tam
	var i
	tam  = campo.length
	
	if(tam == null){
		campo.checked = true;
	} else {
		for (i = 0; i < tam; i++) {
			if(!campo[i].disabled){
				campo[i].checked = true
			}
		}
	}
}	

function MarcaX(campo,qtd){
	var tam
	var i
	tam  = campo.length
	
	if(tam == null){
		campo.checked = true;
	} else {
		for (i = 0; i < qtd; i++) {
			if(!campo[i].disabled){
				campo[i].checked = true
			}
		}
	}
}	

function DesmarcaX(campo,qtd){
	var tam
	var i
	tam  = campo.length
	if(tam == null){
		campo.checked = false;
	} else {
		for (i = 0; i < qtd; i++) {
			if(!campo[i].disabled){
				campo[i].checked = false
			}
		}
	}
}	

function DesmarcaTudo(campo){
	var tam
	var i
	tam  = campo.length
	if(tam == null){
		campo.checked = false;
	} else {
		for (i = 0; i < tam; i++) {
			if(!campo[i].disabled){
				campo[i].checked = false
			}
		}
	}
}	

function Marcar(campo,campoDestino){
	if(campo.checked){
		MarcaTudo(campoDestino);
	} else {
		DesmarcaTudo(campoDestino);
	}
}

function MarcarX(campo,campoDestino,qtd){
	if(campo.checked){
		MarcaX(campoDestino,qtd);
	} else {
		DesmarcaX(campoDestino,qtd);
	}
}

function Remover(campo) {
	var i;
	var nome;
	var valor;
	var tam;
	for (i = 0; i < campo.length; i++) {
		if (campo.options[i].selected) {
			campo.remove(i)
			i = i - 1
		}
	}
	SelecionaTudo(campo)
}

function ComparaValores(campo1,campo2) {
	if ((campo1.value * 1) > (campo2.value * 1)) {
		campo1.focus()
		MostraErro('eDistinctValores')
		error_found = true;
	}
}

function ComparaDropDown(campo1,campo2,nomeCampo) {
	if (error_found) return
	if (SelectedValue(campo1) == SelectedValue(campo2)) {
		campo1.focus()
		MostraErro('eDistinctDropDown',nomeCampo)
		error_found = true;
	}
}

function ContaChar(campoTxt,campoCount,tamanho){
	var contador = document.getElementById(campoCount);
	var cont = tamanho - campoTxt.value.length
	contador.value = "Você ainda pode digitar " + cont + " caracteres";
	if (campoTxt.value.length > tamanho){
		campoTxt.value = campoTxt.value.substring(0, tamanho);
		cont = tamanho - campoTxt.value.length
		contador.value = "Você ainda pode digitar " + cont + " caracteres";
		return true;
	}
}

function ComparaData(campo1,campo2){
	if (!DataMaior(campo1.value,campo2.value)){
		campo1.focus()
		MostraErro('eDistinctDate')
		error_found = true
	}
}

function DisplayInfo(pagina,janela,w,h,scrolling, resizable) {
	if (!scrolling) { scrolling='auto' }
	resultado = window.open(pagina,janela,'width='+w+',height='+h+',scrollbars='+scrolling+',toolbar=no,location=no,status=yes,menubar=no,resizable='+resizable+',left=10,top=5')
}

function DataHora(evento, objeto){
	campo = eval (objeto);
	var cont = campo.value.length
	var keypress = campo.value.substring(cont-1, cont);
	if (campo.value == '00/00/0000'){
		campo.value=""
	}
	caracteres = '0123456789';
	separacao1 = '/';
	conjunto1 = 2;
	conjunto2 = 5;
	conjunto3 = 10;
	if ((caracteres.search(keypress)!=-1) && campo.value.length < (19)){
		if (campo.value.length == conjunto1 )
			campo.value = campo.value + separacao1;
		else if (campo.value.length == conjunto2)
			campo.value = campo.value + separacao1;
		else if (campo.value.length >= conjunto3){
			campo.value = campo.value.substring(0,10);
			//if (!ValidateBRDate(campo.value)) {
				//alert("Data inválida.\n Formato correto dd/mm/aaaa");
			//} 
		}
	}
}

function VerificaPreCadastro() {	
	f = document.frmCad;
	error_found = false;
	CheckTextField(f.nome, jsRequired,30,jsNoTags,"nome");
	CheckTextField(f.sobrenome, jsRequired,40,jsNoTags,"sobrenome");
	CheckEmailField(f.email, jsRequired, 60, "e-mail");
	CheckTextFieldMinimo(f.senha, jsRequired, 100,6,jsNoTags,"senha");
	CheckRadioField(f.sexo, "sexo");
	if (!error_found) {
		f.submit();
	}
}	

function ComFoco(campo){
campo.className = 'inputSele';
}

function SemFoco(campo){
campo.className = 'input';
}

function DateMask(val)
{
var pass = val.value;
var expr = /[0123456789]/;
	
for(i=0; i<pass.length; i++){
	// charAt -> retorna o caractere posicionado no Ã­ndice especificado
	var lchar = val.value.charAt(i);
	var nchar = val.value.charAt(i+1);

	if(i==0){
	// search -> retorna um valor inteiro, indicando a posiÃ§Ã£o do inicio da primeira
	// ocorrÃªncia de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o mÃ©todo retornara -1
	// instStr.search(expReg);
	if ((lchar.search(expr) != 0) || (lchar>3)){
		val.value = "";
	}
		
	}else if(i==1){
			
		if(lchar.search(expr) != 0){
			// substring(indice1,indice2)
			// indice1, indice2 -> serÃ¡ usado para delimitar a string
			var tst1 = val.value.substring(0,(i));
			val.value = tst1;				
			continue;			
		}
			
		if ((nchar != '/') && (nchar != '')){
				var tst1 = val.value.substring(0, (i)+1);
			
				if(nchar.search(expr) != 0) 
					var tst2 = val.value.substring(i+2, pass.length);
				else
					var tst2 = val.value.substring(i+1, pass.length);

				val.value = tst1 + '/' + tst2;
		}

	}else if(i==4){
		
			if(lchar.search(expr) != 0){
				var tst1 = val.value.substring(0, (i));
				val.value = tst1;
				continue;			
			}
	
			if	((nchar != '/') && (nchar != '')){
				var tst1 = val.value.substring(0, (i)+1);

				if(nchar.search(expr) != 0) 
					var tst2 = val.value.substring(i+2, pass.length);
				else
					var tst2 = val.value.substring(i+1, pass.length);

				val.value = tst1 + '/' + tst2;
			}
	}
	
	if(i>=6){
		if(lchar.search(expr) != 0) {
				var tst1 = val.value.substring(0, (i));
				val.value = tst1;			
		}
	}
}

if(pass.length>10)
	val.value = val.value.substring(0, 10);
	return true;
}

function submitenter(field,e, fponter, fparameter)	{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13) {
		fponter(fparameter);
		return false;
	}
	else
	   return true;
}		


function ObjCookie(){this.get = function( name ){var results = document.cookie.match( name + '=(.*?)(;|$)' );if ( results ){return ( unescape( results[1] ) );}return null;}}

