/* [variáveis] */
var varEnv = false;
/* [prototypes] */
String.prototype.getID = function(){return document.getElementById(this) ? document.getElementById(this) : document.getElementsByTagName(this);};
/* [campos obrigatórios] */
fncObrigatorios = function (objObrig, Alerta){
	if(varEnv) return false;
	for(var f=0; f<objObrig.length; f++){
		var campo = objObrig[f].split(":");
		if(campo[0].getID()){
			fncRetSpc(campo[0].getID());
			if(!campo[0].getID().value){
				if(Alerta) window.alert("Os campos marcados com * são de preenchimento obrigatório.");
				campo[0].getID().focus();
				return false;
			}
			if(campo[1] && !fncValidaMail(campo[0].getID())){
				if(Alerta) window.alert("O e-mail está incorreto.");
				campo[0].getID().select();
				return false;
			}
		}
	}
	'btnEnvia'.getID().disabled = true;
	varEnv = true;
	return true;
};
/* [retira espaços do inicio e do fim] */
fncRetSpc = function (Obj){
	var Ret = Obj.value;
	if(Ret.substr(0, 1)==" "){
		while(Ret.substr(0, 1)==" ") Ret = Ret.substr(1);
		Obj.value = Ret;
	}
	if(Ret.charCodeAt(Ret.length-1)==32){
		while(Ret.charCodeAt(Ret.length-1)==32) Ret = Ret.substr(0, Ret.length-1);
		Obj.value = Ret;
	}
};
/* [valida e-mail] */
fncValidaMail = function (obj){
	var re_mail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/; 
	if (!re_mail.test(obj.value)) return false;
	return true;
};
/* [apenas números] */
fncNumeros = function(e,n,o,c){
	var wc = e.keyCode ? e.keyCode : e.which;
	/** 48-57: números
	*	8: backspace
	*	9: TAB
	**/
	if(wc>=48 && wc<=57){
		//if(n && o.value.length==n-1) c.getID().focus();
		return true;
	}
	switch(wc){
		case 8:
		case 9:
			return true;
		break;
		default:
			return false;
		break;
	}
	return false;
};
/* [apenas letras] */
fncLetras = function(e){
	var wc = e.keyCode ? e.keyCode : e.which;
	/** 65-90: [A-Z]
	*	97-122: [a-z]
	*	8: backspace
	*	9: TAB
	*	32: espaço
	**/
	if(wc>=65 && wc<=90) return true;
	if(wc>=97 && wc<=122) return true;
	if(wc>=192 && wc<=252) return true;
	switch(wc){
		case 8:
		case 9:
		case 32:
			return true;
		break;
		default:
			return false;
		break;
	}
	return false;
};