	//validarEmail 1.00
	//2003-08-12 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	function validarEmail (campo, errMsg) {
		var result = true;
		var strEmail = campo.value;
		var count;
		count = 0;
		while (strEmail.indexOf('@') >= 0) {
			strEmail = strEmail.substring(strEmail.indexOf('@') + 1);
			count++;
		}
		if (count != 1) {
			result = false;
		} else {
			if (strEmail.length < 3) result = false;
		}
		count = 0;
		while (strEmail.indexOf('.') >= 0) {
			strEmail = strEmail.substring(strEmail.indexOf('.') + 1);
			count++;
		}
		if (count < 1) {
			result = false;
		} else {
			if (strEmail.length < 1) result = false;
		}
		if (!result) {
			campo.value = "";
			campo.focus();
			alert(errMsg);
		}
		return result;
	}

	//validarData 1.00
	//2003-08-06 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	function validarData (objDate, errMsg) {
		var result = false;
		var strValue = objDate.value;
		if (strValue.length > 0) {
			if (strValue.length == 5) {
				var strCheck = strValue;
				var iCheckDay = parseInt(strCheck.substring(0, strValue.indexOf('/')), 10);
				var strCheck = strCheck.substring(strCheck.indexOf('/') + 1);
				var iCheckMonth = parseInt(strCheck.substring(0, strValue.indexOf('/')), 10) - 1;
				var strCheck = strCheck.substring(strCheck.indexOf('/') + 1);
				var iCheckYear = parseInt(strCheck.substring(0, strValue.indexOf('/')), 10);
				// para considerar dia 29 de fevereiro, ja que o ano 2000 eh bisexto
				var dteValue = new Date(iCheckYear, iCheckMonth, iCheckDay);
				if (iCheckDay == dteValue.getDate()) {
					if (iCheckMonth == dteValue.getMonth()) {
						if (iCheckYear == dteValue.getYear()) {
							result = true;
						}
					}
				}
			}
		}
		if (!result) {
			objDate.value = "";
			objDate.focus();
			alert(errMsg);
		}
		return result;
	}

	//validarAniversario 1.00
	//2003-08-06 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Valida dia e mes, sem considerar o ano
	function validarAniversario (objDate, errMsg) {
		var result = false;
		var strValue = objDate.value;
		if (strValue.length > 0) {
			if (strValue.length == 5) {
				var strCheck = strValue;
				var iCheckDay = parseInt(strCheck.substring(0, strValue.indexOf('/')), 10);
				var strCheck = strCheck.substring(strCheck.indexOf('/') + 1);
				var iCheckMonth = parseInt(strCheck.substring(0, strValue.indexOf('/')), 10) - 1;
				// para considerar dia 29 de fevereiro, ja que o ano 2000 eh bisexto
				var dteValue = new Date(2000, iCheckMonth, iCheckDay);
				if (iCheckDay == dteValue.getDate()) {
					if (iCheckMonth == dteValue.getMonth()) {
						result = true;
					}
				}
			}
		}
		if (!result) {
			objDate.value = "";
			objDate.focus();
			alert(errMsg);
		}
		return result;
	}

	//validarFormExceto 1.00
	//2003-08-02 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Valida todos os campos, exceto os pedidos
	function validarFormExceto (nomeForm, camposExcluidos, mensagem) {
		var erro = false;
		var campo, form;
		if (!mensagem) mensagem = "Preencha os campos obrigatórios.";
		if (!camposExcluidos) camposExcluidos = "";
		if (nomeForm == '[object]') {
			form = nomeForm;
		} else {
			form = eval("document." + nomeForm);
		}
		for (var i_ = 0; i_ < form.elements.length; i_++) {
			campo = form.elements[i_];
			if (",text,password,select-one,textarea,".indexOf("," + campo.type + ",") >= 0 ) {
				if (camposExcluidos.indexOf("," + campo.name + ",") < 0) {
					erro = (validar(campo.value, "vazio"));
					if (erro) break;
				}
			} else if (campo.type == "radio") {
				erro = true;
				for (var j_ = 0; j_ < eval("form."+campo.name+".length"); j_++) {
					if (eval("form."+campo.name+"[j_].checked")) erro = false;
				}
				i_ += j_;
				if (erro) break;
				campo = form.elements[--i_];
			}
		}
		if (erro) {
			campo.focus();
			alert(mensagem);
			return false;
		}
		return true;
	}

	//validarTamanho 1.00
	//2003-08-01 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	function validarTamanho (obj, tam, errMsg) {
		if (0 < obj.value.length && obj.value.length < tam) {
			obj.value = "";
			obj.focus();
			alert(errMsg);
			return false;
		}
		return true;
	}
			
	//validarIgual 1.00
	//2003-08-01 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	function validarIgual (obj, obj2, errMsg) {
		if (obj.value != "" && obj.value != obj2.value) {
			obj.value = "";
			obj.focus();
			alert(errMsg);
			return false;
		}
		return true;
	}

	//windowOpen 1.00
	//2003-07-22 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Opens a new browser windows, with a number of options.
	//Accepts the following arguments:
	//  [link]   - URL, often a filename, URL encoded. (ex: file.htm, http://www.x.com/y.htm)
	//  [name]   - [optional] name for the window, used to access the window via javascript
	//  [config] - [optional] string with window options. Listing: toolbar=yes,location=yes,
	//             status=yes,menubar=yes,scrollbars=yes, resizable=yes,width=300,height=200
	function windowOpen (link, name, config) {
		window.open(link, name, config);
	}

	//hideShowSpan 1.00
	//2003-07-17 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	function hideShowSpan (strName) {
		var objs = document.getElementsByTagName("span");
		for (var i_=0; i_ < objs.length; i_++) {
			var obj = objs[i_];
			if (obj.id == strName) {
				if (obj.style.display == "block") {
					obj.style.display = "none";
				} else {
					obj.style.display = "block";
				}
			}
		}
	}

	//hideSpanAll 1.00
	//2003-07-15 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	function hideSpanAll (prefix) {
		var objs = document.getElementsByTagName("span");
		for (var i_=0; i_ < objs.length; i_++) {
			if (objs[i_].id.substring(0, prefix.length) == prefix) {
				objs[i_].style.display = "none";
			}
		}
	}

	//showSpan 1.00
	//2003-07-15 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	function showSpan (strName) {
		var objs = document.getElementsByTagName("span");
		for (var i_=0; i_ < objs.length; i_++) {
			if (objs[i_].id == strName) {
				objs[i_].style.display = "block";
			}
		}
	}

	//mostrarTamanho 1.00
	//2003-06-25 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Mostra no campoMostrar o tamanho do campoOrigem
	function mostrarTamanho (cOrigem, cMostrar) {
		cMostrar.value = cOrigem.value.length;
	}

	//maxlength 1.00
	//2003-06-25 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Limita o tamanho do campo (feito para textarea que nao possui limite)
	function maxlength (campo, limite) {
		var intKeyCode = event.keyCode;
		if (',8,9,13,27,'.indexOf(','+intKeyCode+',')  && campo.value.length >= limite) {
			if (campo.value.length > limite) campo.value = campo.value.substring(0,limite);
			event.keyCode = 0;
			return;
		}
		return true;
	}

	//formatar 1.00
	//2003-06-24 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Formata campos do tipo numerico e data
	//Uso:
	//  onkeypress="formatar(this,'num')"
	//  onkeydown="formatar(this,'data')"
	function formatar (campo, tipo) {
		if (tipo == "num") {
			var intKeyCode = event.keyCode;
			if ((48 <= intKeyCode && intKeyCode <= 57) || intKeyCode < 32) return true;
			event.keyCode = 0;
			return;
		}
		if (tipo == "data") {
			var tecla = event.keyCode;
			valorSemFormato = campo.value;
			while (valorSemFormato.indexOf("/") > -1) {
				valorSemFormato = valorSemFormato.replace("/", "");
			}
			tamanho = valorSemFormato.length;
			if (tecla == 46) {
				campo.value = campo.value;
			}
			if (tamanho < 8 && tecla != 8) {
				tamanho = valorSemFormato.length + 1;
			}
			if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
				if (tecla == 8) {
					tamanho = tamanho - 1;
				}
				if ((3 < tamanho) && (tamanho <= 4)) {
					campo.value = valorSemFormato.substring(0, tamanho-2) + '/' + valorSemFormato.substring(tamanho-2);
				} else if ((5 < tamanho) && (tamanho <= 6)) {
					campo.value = valorSemFormato.substring(0, tamanho-4) + '/' + valorSemFormato.substring(tamanho-4);
				} else if ((7 < tamanho) && (tamanho <= 8)) {
					campo.value = valorSemFormato.substring(0, tamanho-6) + '/' + valorSemFormato.substring(tamanho-6, tamanho-4) + '/' + valorSemFormato.substring(tamanho-4);
				}
			}
		}
	}
	

	//marcarCampos 1.00
	//2003-06-24 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Requer variavel camposObrigatorios pre-declarada, para marcar tais campos com o estilo pedido
	function marcarCampos (estilo) {
		var campo;
		var objs = document.getElementsByTagName("label");
		for (i_ = 0; i_ < objs.length; i_++) {
			campo = objs[i_];
			if (campo.name) {
				if (camposObrigatorios.indexOf("," + campo.name + ",") >= 0) {
					campo.style.cssText = estilo;
				}
			}
		}
	}

	//validarForm 1.00
	//2003-06-24 Cauê Cavalheiro Machado Rego (caue@programmer.net)
	//Valida os camposRequeridos contra vazio
	//Pode-se, opcionalmente, passar os camposRequeridos atravez da variavel global:
	//camposObrigatorios
	function validarForm (nomeForm, camposRequeridos, mensagem) {
		var erro = false;
		var campo, form;
		if (!mensagem) mensagem = "Preencha os campos obrigatórios.";
		if (!camposRequeridos) {
			camposRequeridos = camposObrigatorios;
			if (!camposRequeridos) return;
		}
		if (nomeForm == '[object]') {
			form = nomeForm;
		} else {
			form = eval("document." + nomeForm);
		}
		for (i_ = 0; i_ < form.elements.length; i_++) {
			campo = form.elements[i_];
			if (",text,password,select-one,textarea,".indexOf("," + campo.type + ",") >= 0 ) {
				if (camposObrigatorios.indexOf("," + campo.name + ",") >= 0) {
					erro = (validar(campo.value, "vazio"));
					if (erro) break;
				}
			} else if (campo.type == "radio") {
				erro = true;
				for (var j_ = 0; j_ < eval("form."+campo.name+".length"); j_++) {
					if (eval("form."+campo.name+"[j_].checked")) erro = false;
				}
				i_ += j_;
				if (erro) break;
				campo = form.elements[--i_];
			}
		}
		if (erro) {
			alert(mensagem);
			campo.focus();
			return false;
		}
		return true;
	}

	function validar (strVar, tipo) {
		if (tipo == "vazio") {
			if (strVar.length == 0) {
				return true;
			}
		}
		return false;
	}

