	//Configurações gerais do script
	var version = "0.3";
	var cabecalhoMensagem = "Verifique o(s) seguinte(s) erro(s):\n";
	var rodapeMensagem = "BT Telecomunicações";

	//Instruções
	//1° --> No formulário adicionar o atributo "onSubmit" com o valor "javascript: return validateForm('NOME_DO_FORMULARIO')"
	//2° --> Nos campos a se validar colocar o atributo "validate", seu valor pode ser "true" ou "1"
	//3° --> No campo com o atributo "validate" colocar adicionar o atributo "mensagem" e em seu valor o texto a ser
	//		 exibido no aviso de alerta
	//Obs.: Se você desejar especificar ainda outra função para validar o seu campo além do valor "vazio" você pode utilizar
	//		o atributo "onValidate". Seu valor será a chamada para a função JavaScript que você deseja utilizar e o retorno da
	//		mesma deverá ser "true" ou "false". Caso seja retornado o valor "false" o script tentará exibir o valor do atributo
	//		"mensagemValidate", se este não existir será exibido o atributo "mensagem" que é o padrão.
	//
	//		Lembrando que os campos do tipo "radio" e "checkbox" necessitam que se atribua somente uma vez os atributos informados
	//		nos 3 passos acima, recomenda-se colocar sempre no primeiro ítem por questão de organização


	//Valida qualquer tipo de campo de formulário está em branco ou não selecionado nos browsers IE 5.5+, Firefox 1.0+, Opera 9+
	//Criada em: 26/02/2007
	//Autor: Davi Francelino
	function validateForm(sFormulario) {
		var form = eval("document." + sFormulario);
		var msg = cabecalhoMensagem + "\n";
		var erro = false; var marcado = false; var retorno = false;
		var arrMarcados = new Array(0); var arrPercorridos = new Array(0);
		var idx = 0; var i = 0; var dbg = false;

		if(dbg) { alert("Versão: " + version); }

		//Verifica se o formulário especificado existe
		if(form != null) {
			//Percorre todos os elementos do formulário
			for(i = 0; i < form.length; i++) {
				if(dbg) { alert('Nome: ' + form.elements[i].name + ' - Tipo: ' + form.elements[i].type); }
				//Valida os campos do tipo text
				if((form.elements[i].type == "text") || (form.elements[i].type == "textarea") || (form.elements[i].type == "password")) {
					//Verifica se o atributo "validate" foi especificado
					validate = form.elements[i].getAttribute("validate");
					if(validate != null) {
						//Verifica se o atributo está como true ou 1
						if((validate == "1") || (validate.toString().toUpperCase() == "TRUE")) {
							//Verifica se algo foi preenchido no campo
							if(form.elements[i].value == "") {
								//Manda o foco para o elemento caso seja o primeiro a dar erro
								if(!erro) {
									if(form.elements[i].style.display != 'none') {
										form.elements[i].focus();
									}
								}
								erro = true;
								//Verifica se o atributo "mensagem" foi especificado
								mensagem = form.elements[i].getAttribute("mensagem");
								if(mensagem != null) {
									msg += "\n" + mensagem;
								} else {
									msg += "\n" + form.elements[i].name;
								}
							} else {
								//Verifica se o evento "onValidate" existe
								onValidate = form.elements[i].getAttribute("onValidate");
								if(onValidate != null) {
									retorno = eval(onValidate);
									if(!retorno) {
										//Manda o foco para o elemento caso seja o primeiro a dar erro
										if(!erro) {
											if(form.elements[i].style.display != 'none') {
												form.elements[i].focus();
											}
										}
										erro = true;
										//Verifica se o atributo "mensagemValidate" foi especificado
										mensagemValidate = form.elements[i].getAttribute("mensagemValidate");
										if(mensagemValidate != null) {
											msg += "\n" + mensagemValidate;
										} else {
											//Verifica se o atributo "mensagem" foi especificado
											mensagem = form.elements[i].getAttribute("mensagem");
											if(mensagem != null) {
												msg += "\n" + mensagem;
											} else {
												msg += "\n" + form.elements[i].name;
											}
										}
									}
								}
							}
						} //Fim do If validate true
					} //Fim do If "validate"
				} //Fim do If "text"
				//Valida os campos do tipo "checkbox" e "radio"
				if(form.elements [i].type == "checkbox" || form.elements[i].type == "radio") {
					//Verifica se o elemento para validar existe
					validate = form.elements[i].getAttribute("validate");
					if(validate != null) {
						//Verifica se o atributo está como true ou 1
						if((validate == "1") || (validate.toString().toUpperCase() == "TRUE")) {
							if(isInArray(arrPercorridos, form.elements[i].name) == false) {
							//if(arrPercorridos.toString().indexOf(form.elements[i].name) <= -1) {
								arrPercorridos.push(form.elements[i].name);

								//Busca o índice da posição no array
								idx = arrMarcados.toString().indexOf(form.elements[i].name);
								if(idx <= -1) {
									//Verifica se está marcado algum dos checkbox
									marcado = validateCheckRadioMarcado(sFormulario, form.elements[i].name);
									if(dbg) { alert(form.elements[i].name + ' está marcado? ' + marcado); }
									//Se não estiver marcado nenhum 
									if(marcado == false) {
										//Se não estiver no array insere
										arrMarcados.push(form.elements[i].name);
										//Manda o foco para o elemento caso seja o primeiro a dar erro
										if(!erro) {
											if(form.elements[i].style.display != 'none') {
												form.elements[i].focus();
											}
										}
										erro = true;
										//Verifica se o atributo "mensagem" foi especificado
										mensagem = form.elements[i].getAttribute("mensagem");
										if(mensagem != null) {
											msg += "\n" + mensagem;
										} else {
											msg += "\n" + form.elements[i].name;
										}
									} else {
										//Verifica se o evento "onValidate" existe
										onValidate = form.elements[i].getAttribute("onValidate");
										if(onValidate != null) {
											retorno = eval(onValidate);
											if(!retorno) {
												//Manda o foco para o elemento caso seja o primeiro a dar erro
												if(!erro) {
													if(form.elements[i].style.display != 'none') {
														form.elements[i].focus();
													}
												}
												erro = true;
												//Verifica se o atributo "mensagemValidate" foi especificado
												mensagemValidate = form.elements[i].getAttribute("mensagemValidate");
												if(mensagemValidate != null) {
													msg += "\n" + mensagemValidate;
												} else {
													//Verifica se o atributo "mensagem" foi especificado
													mensagem = form.elements[i].getAttribute("mensagem");
													if(mensagem != null) {
														msg += "\n" + mensagem;
													} else {
														msg += "\n" + form.elements[i].name;
													}
												}
											}
										}
									} // Fim do If se não marcado
								} //Fim do If se não estiver no array
							} //Fim do If se não tiver sido percorrido
						} // Fim do If se validate true
					} //Fim do If validate
				} //Fim do If "checkbox" e "radio"
				//Verifica se o select está preenchido
				if((form.elements[i].type == "select-one") || (form.elements[i].type == "select-multiple")) {
					//Verifica se o elemento para validar existe
					validate = form.elements[i].getAttribute("validate");
					if(validate != null) {
						//Verifica se o atributo está como true ou 1
						if((validate == "1") || (validate.toString().toUpperCase() == "TRUE")) {
							//Verifica se algo foi preenchido no campo
							if((form.elements[i].value == "") || (form.elements[i].value == "0")) {
								//Manda o foco para o elemento caso seja o primeiro a dar erro
								if(!erro) {
									if(form.elements[i].style.display != 'none') {
										form.elements[i].focus();
									}
								}
								erro = true;
								//Verifica se o atributo "mensagem" foi especificado
								mensagem = form.elements[i].getAttribute("mensagem");
								if(mensagem != null) {
									msg += "\n" + mensagem;
								} else {
									msg += "\n" + form.elements[i].name;
								}
							} else {
								//Verifica se o evento "onValidate" existe
								onValidate = form.elements[i].getAttribute("onValidate");
								if(onValidate != null) {
									retorno = eval(onValidate);
									if(!retorno) {
										//Manda o foco para o elemento caso seja o primeiro a dar erro
										if(!erro) {
											if(form.elements[i].style.display != 'none') {
												form.elements[i].focus();
											}
										}
										erro = true;
										//Verifica se o atributo "mensagemValidate" foi especificado
										mensagemValidate = form.elements[i].getAttribute("mensagemValidate");
										if(mensagemValidate != null) {
											msg += "\n" + mensagemValidate;
										} else {
											//Verifica se o atributo "mensagem" foi especificado
											mensagem = form.elements[i].getAttribute("mensagem");
											if(mensagem != null) {
												msg += "\n" + mensagem;
											} else {
												msg += "\n" + form.elements[i].name;
											}
										}
									}
								}
							}
						} // Fim do If se validate true
					} //Fim do If validate
				} //Fim fo If "select-one" ou "select-multiple"
				//Verifica se o file está preenchido
				if(form.elements [i].type == "file") {
					//Verifica se o elemento para validar existe
					validate = form.elements[i].getAttribute("validate");
					if(validate != null) {
						//Verifica se o atributo está como true ou 1
						if((validate == "1") || (validate.toString().toUpperCase() == "TRUE")) {
							//Verifica se algo foi preenchido no campo
							if((form.elements[i].value == "")) {
								//Manda o foco para o elemento caso seja o primeiro a dar erro
								if(!erro) {
									if(form.elements[i].style.display != 'none') {
										form.elements[i].focus();
									}
								}
								erro = true;
								//Verifica se o atributo "mensagem" foi especificado
								mensagem = form.elements[i].getAttribute("mensagem");
								if(mensagem != null) {
									msg += "\n" + mensagem;
								} else {
									msg += "\n" + form.elements[i].name;
								}
							} else {
								//Verifica se o evento "onValidate" existe
								onValidate = form.elements[i].getAttribute("onValidate");
								if(onValidate != null) {
									retorno = eval(onValidate);
									if(!retorno) {
										//Manda o foco para o elemento caso seja o primeiro a dar erro
										if(!erro) {
											if(form.elements[i].style.display != 'none') {
												form.elements[i].focus();
											}
										}
										erro = true;
										//Verifica se o atributo "mensagemValidate" foi especificado
										mensagemValidate = form.elements[i].getAttribute("mensagemValidate");
										if(mensagemValidate != null) {
											msg += "\n" + mensagemValidate;
										} else {
											//Verifica se o atributo "mensagem" foi especificado
											mensagem = form.elements[i].getAttribute("mensagem");
											if(mensagem != null) {
												msg += "\n" + mensagem;
											} else {
												msg += "\n" + form.elements[i].name;
											}
										}
									}
								}
							}
						} // Fim do If se validate true
					} //Fim do If validate
				} //Fim do If "file"
			} //Fim do FOR 

			if(erro) {
				msg += "\n\n" + rodapeMensagem;
				alert(msg);
				return false;
			} else {
				return true;
			}
		} else {
			alert("Formulário não encontrado!");
			return false;
		}
	}
	//Função utilizada pela validateForm para verificar se o(s) "checkbox" ou "radio" está(ão) marcado(s)
	function validateCheckRadioMarcado(sFormulario, sNameCheckRadio) {
		var blnMarcado = false;
		var i = 0;

		objCheck = eval("document." + sFormulario + "." + sNameCheckRadio);
		if(objCheck == null) {
			alert("A função validateCheckRadioMarcado não encontrou o campo");
		} else {
			if(typeof(objCheck.length) != 'undefined') {
				for(i = 0; i < objCheck.length; i++) {
					if(objCheck[i].checked == true) {
						blnMarcado = true;
						break;
					}
				}
			} else {
				if(objCheck.checked == true) {
					blnMarcado = true;
				}
			}
		}
		return blnMarcado;	
	}
	//Função utilizada para preencher campos "Hidden" porque o PHP não suporta request de "checkbox"
	//e "radiobutton" com mais de um ítem marcado
	function fillHiddenCheckRadioValues(objFieldHidden, objCheck) {
		if(objFieldHidden != null) {
			objFieldHidden.value = "";
			objFieldHidden.value = SliceCheckRadioValues(objCheck);
			return true;
		} else {
			return false;
		}
	}

	function SliceCheckRadioValues(objCheck) {
		var valores = ""; var cont = 0;
		if(objCheck == null) {
			alert("A função SliceCheckRadioValues não encontrou o campo");
		} else {
			if(typeof(objCheck.length) != 'undefined') {
				for(cont = 0; cont < objCheck.length; cont++) {
					if(objCheck[cont].checked == true) {
						if(valores != "") {
							valores += ", " + objCheck[cont].value;
						} else {
							valores = objCheck[cont].value;
						}
					}
				}
			} else {
				if(objCheck.checked == true) {
					valores = objCheck.value;
				}
			}
		}
		return valores;
	}

	function isInArray(array, valor) {
		var cont = 0;
		if(array != null && array.length != 0) {
			for(cont = 0; cont < array.length; cont++) {
				if(array[cont] == valor) {
					//alert(array[cont] + " == " + valor);
					return true;
				}
			}
			return false;
		}
		return false;
	}