/***************************************************************************************************/
/********* VALIDADOR DE FORMULARIOS ****************************************************************/
/********* JOSE IGNACIO MARCOS PEREZ - DIGIVAL.ES  *************************************************/
/***************************************************************************************************/
function init_form(){
	var formu = document.forms;
	for(i=0;i<formu.length;i++){
		formu[i].onsubmit = function(){ 
			if(validaForm(this)){
				
				//para variar el email de destino si es expositor o visitante
				if(this.ExpositorVisitante[1].checked) {
					this.recipient.value = 'visitantes@feriavalladolid.com';
				}else{
					this.recipient.value = 'comercial2@feriavalladolid.com';
				}
				
				return true;
				
			}else{
				return false;
			}
		}
	}
};
/***************************************************************************************************/
/********* VALIDA FORMS ****************************************************************************/
/***************************************************************************************************/
var falloValida;

function validaForm(f){
	falloValida = 0;
	// COMPRUEBO LOS OBLIGATORIOS ***************************************
	if(getElementsByClass('obligatorio', null, f)){
		var c_ob = getElementsByClass('obligatorio', null, f);
		for(o=0;o<c_ob.length;o++){
			if(!val_vacio(c_ob[o].value)){
				error('Los campos obligatorios no pueden estar vacios.', c_ob[o]);
			}else{
				limpiaerror(c_ob[o]);
			}
		}
	}
	// ******************************************************************
	
	// COMPRUEBO LOS EMAILS *********************************************
	if(getElementsByClass('ob_email', null, f)){
		var c_ob_email = getElementsByClass('ob_email', null, f);
		for(em=0;em<c_ob_email.length;em++){
			if (!validateEmail(c_ob_email[em].value)) {
				error("Se necesita un correo electrónico válido.", c_ob_email[em]);
			}else if(!val_vacio(c_ob_email[em].value)){
				error('Los campos obligatorios no pueden estar vacios.', c_ob_email[em]);
			}else{
				limpiaerror(c_ob_email[em]);
			}
		}
	}
	// ******************************************************************
	
	// COMPRUEBO LOS CHECKBOX O RADIOS - AL MENOS UNO MARCADO ***********
	if(getElementsByClass('ob_radios', null, f)){
		var c_ob_radios = getElementsByClass('ob_radios', null, f);
		for(r=0;r<c_ob_radios.length;r++){
			if(!(c_ob_radios[r].checked)){
				error('Debe aceptar las condiciones.', c_ob_radios[r]);
			}else{
				limpiaerror(c_ob_radios[r]);
			}
		}
	}
	// ******************************************************************
	
	
	if(falloValida == 1) return false;
	else return true;
}

/***************************************************************************************************/
/********* FUNCION DE ERROR ************************************************************************/
/***************************************************************************************************/
function error(err, campo){
	if(campo.parentNode.lastChild.tagName == 'SPAN'){
		campo.parentNode.lastChild.firstChild.nodeValue = err;
	}else{
		var error = document.createElement('span');
		error.className = "errorForm";
		error.innerHTML = err;
		campo.parentNode.appendChild(error);
	}
	falloValida = 1;
}
function limpiaerror(campo){
	if(campo.parentNode.lastChild.tagName == 'SPAN'){
			campo.parentNode.removeChild(campo.parentNode.lastChild);
	}
}
/***************************************************************************************************/
/********* VALIDACION DE CAMPO VACIO ***************************************************************/
/***************************************************************************************************/
function val_vacio(obj){
	if(obj== null || obj.length == 0) return false;
	else return true;
}
/***************************************************************************************************/
/********* VALIDACION DE EMAIL *********************************************************************/
/***************************************************************************************************/
function validateEmail(email) {
	var emailExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
	if(emailExp.test(email)) return true;
	else return false;
 }
 
/***************************************************************************************************/
/********* GET ELEMENTS BY CLASS *******************************************************************/
/***************************************************************************************************/
function getElementsByClass(ClassName,tagName,parentElement){
		 var elements=new Array();
		 var d=parentElement ? parentElement : document;
		 var allElements;
	
		 if(tagName)
		   allElements=d.all && d.all.tags(tagName)
		    || d.getElementsByTagName && d.getElementsByTagName(tagName);
		 else allElements=d.all || d.getElementsByTagName("*");
		 
		 for(var i=0,len=allElements.length; i<len; i++){ 
		  //modificacion para coger el nombre de una clase cuando tiene varias asignadas
			var cad=allElements[i].className.split(' ');
			for(y=0;y<cad.length; y++) {
	         if(cad[y]==ClassName)
		   		elements[elements.length]=allElements[i];
	      }
		 }
		 return elements;
};
/***************************************************************************************************/
/********* EVENT LISTENER BY SCOTT ANDREW (WWW.SCOTTANDREW.COM) ************************************/
/***************************************************************************************************/
function addEvent(obj, evType, fn, useCapture){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be attached");
  }
};
/***************************************************************************************************/
/********* EVENTO ON LOAD **************************************************************************/
/***************************************************************************************************/
if (document.getElementsByTagName) addEvent(window, 'load', init_form, false);
