﻿	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 == "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 + ' não permite escrever palavras muito longas');
		else if (msg == "eYouTube")
			alert('o campo ' + campo + ' não é uma url válida do YouTube');
		else if (msg == "eUrl")
			alert('o campo ' + campo + ' não é uma url válida');
		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 == "eTextOnly")
			alert('o campo ' + campo + ' deve conter apenas letras');
		else if (msg == "eColor")
			alert('o conteudo do campo ' + campo + ' não é uma cor válida');
		else if (msg == "eInvalidCEP")
			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 ValidateOnlyText(txt) {
		var right_format = "^[a-zA-Z][a-zA-Z\\sáàâãäéèêëíìîïóòôöõúùûüçñý]*$";
		var right = new RegExp(right_format);
		return (right.test(txt))
	}
	
	function ValidateColor(txt) {
		var right_format = "^[#][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9]$";
		var right = new RegExp(right_format);
		return (right.test(txt))
	}
	
	function ValidateYouTubeURL(txt){
		var expr = ".+[A-Za-z]\.youtube\.com.+\\?v={1}";
		var re = new RegExp(expr);
		return re.test(txt);
	}
	
	function ValidateURL(txt){
		var expr = "https?://(www\\.|[\\w]+\\.)?[\\w\-\\.]+\\.(\\w){2,4}(\\.(\\w){2})?(:[0-9]+)?(/($|[\\w/_\\.\\,\\;\\!\\?\\'\\\\\\+&%\\$#\\=~\\-]*(\\?\\s+)?)?)?$";
		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 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 CheckColorField(field,required,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(!ValidateColor(field.value)){
			field.focus()
			MostraErro('eColor',nameMsg)
			error_found = true
			return
		}		
	}
		
	function CheckUrlField(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(!ValidateURL(field.value)){
			field.focus()
			MostraErro('eUrl',nameMsg)
			error_found = true
		}
	}
	
	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 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 CheckTextOnly(field, required, maxsize,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(ValidaSequencia(field.value, 50)) {
			field.focus()
			MostraErro('eCharsSequence',nameMsg)
			error_found = true
			return
		}
		if(!ValidateOnlyText(field.value)){
			field.focus()
			MostraErro('eTextOnly',nameMsg)
			error_found = true
			return
		}
	}
	
	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 CheckDropDown(field,nameMsg) {
		if (error_found) return
		if (field.selectedIndex == 0){
			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
			}
		}
	}
	
	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 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(field.value != ""){
			if (!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 CheckCEP(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
			return
		}
	}
	
	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 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 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 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 ComparaData(campo1,campo2){
		if (!DataMaior(campo1.value,campo2.value)){
			campo1.focus()
   			MostraErro('eDistinctDate')
   			error_found = true
			return
		}
	}

	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 DateMask(val){
		var pass = val.value;
		var expr = /[0123456789]/;
			
		for(i=0; i<pass.length; i++){
			var lchar = val.value.charAt(i);
			var nchar = val.value.charAt(i+1);
		
			if(i==0){
				if ((lchar.search(expr) != 0) || (lchar>3)){
					val.value = "";
				}				
			}else if(i==1){					
				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;
				}	
			}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 Ajax(){
		try{
			xmlhttp = new XMLHttpRequest();
		}catch(ee){
			try{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			}catch(e){
				try{
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				}catch(E){
					xmlhttp = false;
				}
			}
		}
		return xmlhttp
	}
	
	function EnviarPost(idForm){
		var http = Ajax();
		var url = document.getElementById(idForm).action
		var params = BuscaElementosForm(idForm);
		http.open("POST", url, true);
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.setRequestHeader("Content-length", params.length);
		http.setRequestHeader("Connection", "close");			
		http.send(params);
	}
	
	
	// Pega os elementos de um form e monta uma querystring
	function BuscaElementosForm(idForm) { 
		var elementosFormulario = document.getElementById(idForm).elements; 
		var qtdElementos = elementosFormulario.length; 
		var queryString = ""; 
		var elemento; 
	
		//Cria uma funcao interna para concatenar os elementos do form 
		this.ConcatenaElemento = function(nome,valor) { 
			if (queryString.length>0) { 
				queryString += "&"; 
			} 
			queryString += encodeURIComponent(nome) + "=" + encodeURIComponent(valor); 
		 }; 
	
		//Loop para percorrer todos os elementos 
		for (var i=0; i<qtdElementos; i++) { 
			//Pega o elemento 
			elemento = elementosFormulario[i]; 
			if (!elemento.disabled) { 
				//Trabalha com o elemento caso ele nao esteja desabilitado 
				switch(elemento.type) { 
					//Realiza a acao dependendo do tipo de elemento 
					case 'text': case 'password': case 'hidden': case 'textarea': 
						this.ConcatenaElemento(elemento.name,elemento.value); 
						break; 
					case 'select-one': 
						if (elemento.selectedIndex>=0) { 
							this.ConcatenaElemento(elemento.name,elemento.options[elemento.selectedIndex].value); 
						} 
						break; 
					case 'select-multiple': 
						for (var j=0; j<elemento.options.length; j++) { 
							if (elemento.options[j].selected) { 
								this.ConcatenaElemento(elemento.name,elemento.options[j].value); 
							} 
						} 
						break; 
					case 'checkbox': case 'radio': 
						if (elemento.checked) { 
							this.ConcatenaElemento(elemento.name,elemento.value); 
						} 
						break; 
				} 
			} 
		} 
		return queryString; 
	} 
	
	function Carregar(url,IdDiv){
		var Conexao = Ajax();
		Conexao.open("GET",url,true);
		Conexao.onreadystatechange = function() {
			if (Conexao.readyState==4){
				var mensagem    = Conexao.responseText;
				mensagem        = mensagem.replace(/\+/g," ");
				mensagem        = unescape(mensagem);
				document.getElementById(IdDiv).innerHTML=mensagem;
			 }
		}
		Conexao.send(null);
	}
	
	function ContaCharPost(campoTxt,campoCount,tamanho){
	var contador = document.getElementById(campoCount);
	var cont = tamanho - campoTxt.value.length
	var AtualNode = contador.firstChild;
	var novoNode = document.createTextNode(cont);
	contador.replaceChild(novoNode, AtualNode);
	if (campoTxt.value.length > tamanho){
		campoTxt.value = campoTxt.value.substring(0, tamanho);
		cont = tamanho - campoTxt.value.length
		AtualNode = contador.firstChild;
		novoNode = document.createTextNode(cont);
		contador.replaceChild(novoNode, AtualNode);
		return true;
	}
} 

function Chr(AsciiNum){
	return String.fromCharCode(AsciiNum)
}
