/* *****************************************
Validacion de formularios
=========================

1) - Incluir antes del tag <form> el JS:
<script type="text/javascript" language="javascript" src="validation.js"></script>

2) - Luego declarar los campos que son requeridos, con los siguientes datos:
<script language="javascript" type="text/javascript">   
<!--
define('txtURL', 'string', 'URL');
-->
</script>
---------------------------
define(CAMPO, TIPO, DESCRIPCION);

CAMPO 			-> ID del campo requerido
TIPO			-> Tipo de dato a verificar, pueden ser "string", "number" o "email"
DESCRIPCION		-> Nombre de referencia al campo o etiqueta descriptiva.

3) - Agregar el evento al formulario
<form ....... onsubmit="return submitForm();">


Otras configuraciones:
======================
var Adv_Color	-> Color de fondo resaltado cuando se produzca un error

***************************************** */
var Adv_Color = "#FFCEB5";

var controls = new Array();
var E_obj = new Array();
var E_title = "There are errors in the form: ";
var E_field = "Field ";
var E_require = " is mandatory and ";
var E_cad = E_title + '\r\n';
var flag = true;

var E_bgcolors = new Array();

function submitForm(){
	for(i=0;i<controls.length;i++){
		var color = document.getElementById(controls[i]['obj']).style['backgroundColor'];
		E_bgcolors[i] = color;
	}
	if(validate()){
		return true;
	}else{
		return false;
	}
}
function define(obj,tipo,nombre){
	var p = controls.length;
	controls[p] = new Array();
	controls[p]['obj'] = obj;
	controls[p]['tipo'] = tipo;
	controls[p]['nombre'] = nombre;
}
function validate(){
	init();
	if(controls.length == 0) return true;
	for(i=0;i<controls.length;i++){
		switch(controls[i]['tipo']){
			case "string":
				if(!is_string(i)){
					error(i);
				}
				break;
			case "number":
				if(!is_number(i)){
					error(i);
				}
				break;
			case "email":
				if(!is_email(i)){
					error(i);
				}
				break;
		}
		document.getElementById(controls[i]['obj']).style['backgroundColor'] = '';
	}
	if(!flag){
		alert(E_cad);
		document.getElementById(E_obj[0]).focus();
		document.getElementById(E_obj[0]).style['backgroundColor'] = Adv_Color;
	}
	return flag;
}
function error(pos){
	E_cad += E_field + controls[pos]['nombre'] + E_require;
	E_obj[E_obj.length] = controls[pos]['obj'];
	flag = false;
	switch(controls[pos]['tipo']){
		case "string":
			E_cad += "must contain alphanumeric values.\r\n";
			break;
		case "number":
			E_cad += "must contain integer numbers\r\n";
			break;
		case "email":
			E_cad += "must contain a valid e-mail direction\r\n";
			break;
	}
}
function init(){
	E_obj = new Array();
	E_cad = E_title + '\r\n';
	flag = true;
}
function is_string(pos){
	var str = document.getElementById(controls[pos]['obj']).value;
	if(str == '') 
		return false
	else
		return true;
}
function is_number(pos){
	var str = document.getElementById(controls[pos]['obj']).value;
	if(str == '') return false;
	if(str.match(/^[0-9].*$/))
		return true;
	else
		return false;
}
function is_email(pos){
	var str = document.getElementById(controls[pos]['obj']).value;
	if(str == '') return false;
	if(str.match(/^[a-zA-Z0-9-_\.]+@[a-zA-Z0-9-_\.]+[\.][a-z]+(\.[a-z]+)?$/))
		return true;
	else
		return false;
}