function loadAction(){
	var forms = $$('form');
	var fields;
	var done;
	for(var i=0; i < forms.length; i++){
		form_name = forms[i].cloneNode(false).getAttribute('name');
		fields = document.forms[form_name].elements;
		for(var j=0; j < fields.length; j++){
			ValidacionBlur(fields[j].getAttribute('name'),form_name);
		}
	}
}

function ValidacionBlur(fieldref,form_name)
{
	var the_field = document.forms[form_name].elements[fieldref];

	//setup onBlur feature;
	if(the_field.isArray && the_field[0].type){
		field_type = the_field[0].type;
	} else {
		if(the_field.type){
			field_type = the_field.type.toLowerCase();
		}
	}
	if((the_field.tagName == "INPUT" && (field_type == "text" || field_type == "password")) || the_field.tagName == "TEXTAREA"){
		Event.observe(the_field, 'blur', function(){ chequeaInput(the_field,form_name); });
	}
	if(the_field.tagName == "SELECT"){
		Event.observe(the_field, 'blur', function(){ chequeaInput(the_field,form_name); });
		Event.observe(the_field, 'change', function(){ chequeaInput(the_field,form_name); });
	}
	if(the_field.tagName == "INPUT" && field_type == "checkbox"){
		Event.observe(the_field, 'click', function(){ chequeaInput(the_field,form_name); });
	}
	if(the_field.tagName == "INPUT" && field_type == "checkbox"){
		Event.observe(the_field, 'blur', function(){ chequeaInput(the_field,form_name); });
		Event.observe(the_field, 'click', function(){ chequeaInput(the_field,form_name); });
		Event.observe(the_field, 'change', function(){ chequeaInput(the_field,form_name); });
	}		
	if(typeof the_field.nodeType == "undefined"){
		for(a=0; a < the_field.length; a++){
			if(!radio_name){
				var radio_name = the_field[a].getAttribute('name');
			}
			Event.observe(document.forms[form_name].elements[radio_name][a], 'click', function(){ chequeaInput(the_field,form_name); });
		}
	}
}

function eliminaEspacios(cadena)
{
	// Funcion equivalente a trim en PHP
	var x=0, y=cadena.length-1;
	while(cadena.charAt(x)==" ") x++;	
	while(cadena.charAt(y)==" ") y--;	
	return cadena.substr(x, y-x+1);
}

function chequeaInput(input,form_name)
{
	var name_input = input.name;
	var e_input = 'e_'+name_input;	// Nombre del campo donde se mostrará el error
	// Si existe e_input comprobar el error
	if($(e_input)){
		var valorInput= input.value;
		var url = JS+'ajax_testerror.php?test='+name_input;
		var pars = name_input+"="+valorInput;

		var ajax = new Ajax.Request( url, {
			      parameters: pars,
			      method:'post',
			      onComplete: function(ajax){
					MostrarError(name_input,ajax.responseText);
					}
			      }
		);
	}
}

function MostrarError(name_input,text){
	
	caja = $('e_'+name_input);
	e_input = $$('#e_'+name_input+' .td_error');
	if (text){
		e_input[0].innerHTML = text;
		caja.addClassName('e');
	}
	else {
		e_input[0].innerHTML = '';
		caja.removeClassName('e');
	}
}

Event.observe(window, 'load', function(){ loadAction(); });
