	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 == "eInvalidDate")
			alert('a data do campo ' + campo + ' é inválida')
		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)
		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 parte1 = cep.value.substr(0,5)
		var parte2 = cep.value.substr(5,1)
		var parte3 = cep.value.substr(6,3)
		if((ValidateInteger(parte1)) && (parte2 == "-") && (ValidateInteger(parte3))){
			return true
		}
		return false
	}
	
	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);
		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
		}
		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
		}
		
	}
	
	function CheckCepField(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 != "") && (!ValidaCep(field))){
			field.focus()
			MostraErro('eInvalidDate',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 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
			return 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 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 GetProgramacao(ano,data){
		location = 'programacao.cfm?acao=buscar&edicao=' + ano + '&data=' + data		
	}
	
	function GetEncontros(ano,data){
		location = 'encontros.cfm?acao=buscar&edicao=' + ano + '&data=' + data		
	}
