Event.observe(window,'load',cargaEventosForm);

var campos = new Array();

function cargaEventosForm() {
	/* funcion para cargar los valores por defecto a los campos */
	$$('form .campo').each(function(s,index) {
		campos.push([s,s.value]);
		s.c_def = s.value;
		/* funcion de foco en los campos */
		Event.observe(s,'focus',function(e) {
			asterisco = $(campos[index][0].id+'_req');
			if ( asterisco != undefined ) {
				asterisco.className = 'asterisco';
			}
			campos[index][0].removeClassName('input_formulario_alerta');
			if ( campos[index][0].value == campos[index][1] ) {
				campos[index][0].value = '';
			}
		});
		/* funcion de perdida de foco en los campos */
		Event.observe(s,'blur',function(e) {
			if ( campos[index][0].value == '' ) {
				campos[index][0].value = campos[index][1];
			}
		});
	});
	$$('form .numerico').each(function(s,index) { 
		Event.observe(s,'keyup',function(e) { campoNumerico(s) });
	});
}


/* funcion de validacion de campos numericos: solo digitos una o infinitas veces */
function campoNumerico(c) {
	var valor = c.value;
	var regexp = /^([0-9]*)$/;
	
	if ( ! regexp.test(valor) ) {
		if ( ! regexp.test(RegExp.$1) ) {
			c.value = '';
		}
		else {
			c.value = RegExp.$1;
		}
	}
}

function enviaFormulario(formulario) {
	var enviar = true;
	
	/* Validacion de los campos requeridos: Validacion - no vacios y no valor por defecto */
	$$('#'+formulario.id+' .requerido').each(function(s,index) {
		if ( s.value == '' || s.value == s.c_def  ) {
			asterisco = $(s.id+'_req');
			if ( asterisco != undefined ) {
				asterisco.className = 'asterisco_alerta';
			}
			s.addClassName('input_formulario_alerta');
			enviar = false;
		}
	});
	
	/* Validacion de los campos tipo email: Validacion - email valido */
	$$('#'+formulario.id+' .email').each(function(s,index) {
		if ( s.hasClassName('requerido') && ! correoValido(s.value) ) {
			asterisco = $(s.id+'_req');
			if ( asterisco != undefined ) {
				asterisco.className = 'asterisco_alerta';
			}
			s.addClassName('input_formulario_alerta');
			enviar = false;
		}
	});	
	
	/* Validacion de los campos de tipo codigo postal: Validacion - 5 mumeros */
	$$('#'+formulario.id+' .cp').each(function(s,index) {
		regexp = /^\d{5}$/;
		if ( s.hasClassName('requerido') && ! regexp.test(s.value) ) {
			asterisco = $(s.id+'_req');
			if ( asterisco != undefined ) {
				asterisco.className = 'asterisco_alerta';
			}
			s.addClassName('input_formulario_alerta');
			enviar = false;
		}
	});	
	
	/* Validacion de los campos de tipo telefono: Validacion - prefijo de pais opcional + 9 numeros */
	$$('#'+formulario.id+' .telefono').each(function(s,index) {
		regexp = /^(\(*\+*\d{2}\)*)*\d{9}$/;
		if ( ! regexp.test(s.value) ) {
			asterisco = $(s.id+'_req');
			if ( asterisco != undefined ) {
				asterisco.className = 'asterisco_alerta';
			}
			s.addClassName('input_formulario_alerta');
			enviar = false;
		}
	});

	return enviar;
}