/* ############################# VALIDAO DO FORMULRIO ####################################### 
acao_submit = Se objetivo for o submit defina como TRUE, ou FALSE caso contrario.
ver_especial = true, false;
ver_campo = campo1###campo2###campo3;
ver_tipo = tipo1###tipo2###tipo3;
tipos validos: 
	mac = validao de mac address
	ip = validao de endereo ip
	numerico = numerico;
#####*/

function validar(form, acao_submit, ver_especial, ver_campo, ver_tipo, ver_senha, campo_senha1, campo_senha2) {
	var frm = form; //eval("document." + form);
	
	if (ver_senha) {
		senha1 = eval("frm." + campo_senha1);
		senha2 = eval("frm." + campo_senha2);
		if (senha1.value != senha2.value) {
			alert("Campos de senha estao diferentes");
			senha1.focus();
			return false;
		} else if (senha1.value.length < 6 && senha1.value != '') {
			alert("Senha deve ter no minimo 6 caracteres");
			senha1.focus();
			return false;
		}
	}
	
	if (ver_especial) {
		ver_campo_arr = new Array();
		ver_tipo_arr = new Array();
		
		ver_campo_arr = ver_campo.split("###");
		ver_tipo_arr = ver_tipo.split("###");
	}

	for (i = 0; i < frm.length ; i++) {
		if (!frm[i].disabled == true) {
			if (frm[i].type == 'text' || frm[i].type == 'password') {
				if (frm[i].value == '') {
					if (frm[i].title != 'NULL' && frm[i].alt != 'NULL') {
						alert("O preenchimento do campo: " + frm[i].name + " e obrigatorio");
						frm[i].focus();
						return false;
					}
				} else if(ver_especial) {
					
					for (var i2 = 0 ; i2 <= ver_campo_arr.length ; i2++) {
						
						if (frm[i].name == ver_campo_arr[i2]) {
							if (ver_tipo_arr[i2] == 'mac') {
								seek = /([A-F0-9]{2}[-:]){5}[A-F0-9]{2}/
								if (!seek.exec(frm[i].value)) {
									alert("Endereço de MAC invalido");
									frm[i].focus();
									return false;
								}
								//alert('mac verificacao');
							} else if (ver_tipo_arr[i2] == 'ip') {
								if (frm[i].value != '0/0') {
								seek = /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/
									//seek = /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)([0-9/]{0,2})$/
									//seek = /^(([01]?\d?\d|2[0-4]\d|25[0-5])\.([01]?\d?\d|2[0-4]\d|25[0-5])\.([01]?\d?\d|2[0-4]\d|25[0-5])\.([01]?\d?\d|2[0-4]\d|25[0-5]))([0-9/]){0,3}$/
									
									if (!seek.exec(frm[i].value)) {
										alert("Endereço de IP invalido");
										frm[i].focus();
										return false;
									}
								}
							} else if (ver_tipo_arr[i2] == 'numerico') {
								seek = /^[0-9\.]*$/
								if (!seek.exec(frm[i].value)) {
									alert("Por favor, digite um valor numerico no campo: " + frm[i].name);
									frm[i].focus();
									return false;
								}
							} else if (ver_tipo_arr[i2] == 'dataBrasil') {
								seek = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/
								if (!seek.exec(frm[i].value)) {
									alert("Por favor, digite a data no fomato (dd/mm/yyyy).");
									frm[i].focus();
									frm[i].select();
									return false;
								}
							} else if (ver_tipo_arr[i2] == 'espaco') {
								seek = /^[a-zA-Z0-9._-]*$/
								if (!seek.exec(frm[i].value)) {
									alert("O campo " + frm[i].name + " nao pode conter espacos ");
									frm[i].focus();
									return false;
								}
							} else if (ver_tipo_arr[i2] == 'email') {
								seek = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
								if (!seek.exec(frm[i].value)) {
									alert("Email invalido");
									frm[i].focus();
									return false;
								}
							}
						}
					}
				}
			} else if (frm[i].type == 'select-one') {
				if (frm[i].title != 'NULL' && frm[i].alt != 'NULL') {
					if (frm[i].value == '') {
						alert('Por favor, selecione um valor no campo: ' + frm[i].title);
						frm[i].focus();
						return false;
					}
				}
			}
		} // endif do disabled
	}
	
	if (!acao_submit) {
		retorno_validacao(form);
		return false;
	} else {
		return true;
	}
}

/* ##########################################################################################################################
#											FIM DA VALIDAO DE FORMULRIO 													#
###########################################################################################################################*/