var Suscripcion = { };Suscripcion.init = function() {	var form;	insertStyle();	try{		 form = document.forms[formulariocanalmail];		 var check = destino.substr(0,1);		 check = botonsubmit.substr(0,1);	}catch(variable){		alert(variable);		return false;	}	form.onsubmit = Suscripcion.valida;	for(var id in formModel.hiddens){		var meta = formModel.hiddens[id];		var campo = document.forms[formulariocanalmail][meta.alias?meta.alias:id];		if(meta.required){			if(!campo){				if(meta.label)					alert(meta.label+""+getMessage("necesario$label")+"");				else					alert(meta +""+getMessage("necesario$label")+"");			}		}	}	for (var id in formModel.fields) {		var meta = formModel.fields[id];		if (meta.refresh) {			forEachControl(id, function(control, value) {				if (control.type == "radio" || control.type == "checkbox") {					control.onclick = Suscripcion.refresh;				} else {					control.onchange = Suscripcion.refresh;				}			} );		}	}	Suscripcion.refresh();	/*if (valida) {		var pestanhas = valida.split(",");		cambiaForm(pestanhas[0], pestanhas[1], true)	} */	init();};Suscripcion.valida = function(name) {	var errors = [];	var id;	var focus = null;//   if($(botonsubmit)==etiquetacorregistro)//		return validaCorregistro("corregistro");   if(Suscripcion.labelErrorMode)      hideErrorLabels();   var meta = formModel.hiddens["corregistro"]   if(meta.state){      return validaCorregistro(meta.label);   }   try{		for (id in formModel.fields) {			if (typeof name == "string" && id.indexOf(name) != 0) continue;         errorid=id;			var meta = formModel.fields[id];			if(meta.alias)				id=meta.alias;			if (meta.hidden && !eval(meta.hidden)) continue;			var error = "";			var value = cm_get(id);			if(document.forms[formulariocanalmail][id]){			   var controls = document.forms[formulariocanalmail][id];			   var control = controls.nodeName? controls : controls[0];			   var label = meta.label;			   if (label.indexOf("$")!=-1)				   label = getMessage(meta.label);			   var emp = empty(value);         }else            continue;         if (emp && meta.required && eval(meta.required)) {            if (control.type == "radio" || control.type == "checkbox" || control.name.toLowerCase() == "select") {					error = getMessage(formModel.messages.requiredSelect);				} else {               if(id!="cp" || (id=="cp" && (cm_get("pais")=="ESP" || cm_get("pais")=="BRA" || cm_get("pais")=="POR" || cm_get("pais")=="MEX")) )                  error = getMessage(formModel.messages.requiredText);				}			}			if (!error && !emp && meta.pattern && !value.match(meta.pattern)) {            if(id!="cp" || (id=="cp" && (cm_get("pais")=="ESP" || cm_get("pais")=="BRA" || cm_get("pais")=="POR"|| cm_get("pais")=="MEX")) )               error = getMessage(formModel.messages.error);			}			if (!error && !emp && meta.validate) {				error = meta.validate(value);			}			if (error) {			   var errorObj = new Object;			   errorObj.msg=error.replace("$$", label);			   /*			   ************************			   debe coincidir con esta estructura			      <tag id="-contenedor campos-">			         <input type="text/radio/check" .. id="id_campo" />			      </tag>			   De forma que se aņadira un label al tag "contenedor campos" con el error			   en el procesamiento de errores			   ************************			   */			   errorObj.id = getid(errorid);				errors.push(errorObj);				if(focus==null){					focus=control;				}			}		}		if( proccesErrors(errors, Suscripcion.labelErrorMode,"cm_errors", focus))		   if(validacionesasociado()) {				enviar();				return false;		   }	   return false;	}catch(mensaje){		alert("error en "+id+" error="+mensaje.description);		return false;	}};Suscripcion.refresh = function() {	for (var id in formModel.fields) {		var meta = formModel.fields[id];		if (meta.required) {			var required = eval(meta.required);			try{			/*				if(id=="operacion.carencia"||id=="economico.respuesta"){					setClass(document.forms[formulariocanalmail][id].item(0).parentNode.parentNode, "required", required);				}else{					setClass(document.forms[formulariocanalmail][id].parentNode.parentNode, "required", required);				}*/			}catch (variable){				return false;			}		}		if ( document.forms[formulariocanalmail][id] && meta.hidden ) {			var value = eval(meta.hidden);			var controls = document.forms[formulariocanalmail][id];			var control = controls.nodeName? controls : controls[0];			if (!value) {				forEachControl(id, function(control) {					if (control.type == "radio" || control.type == "checkbox") {						control.checked = null;					} else {						control.value = "";					}					control.disabled = true;				} );			} else {				forEachControl(id, function(control) {					control.disabled = false;				} );			}			//control.parentNode.style.visibility = value? "visible" : "hidden";			//var fieldChilds = control.parentNode.parentNode.childNodes;			//var todoOculto = true;			//for (var i = 0; i < fieldChilds.length; i++) {				//var child = fieldChilds[i];				//if (child.className == "control" && child.style.visibility != "hidden") {					//todoOculto = false;					//break;				//}			//}			//control.parentNode.parentNode.style.display = todoOculto? "none" : "";		}		if (meta.calculate) {			var controls = document.forms[formulariocanalmail][id];			var control = controls.length > 0? controls[0] : controls;			control.value = eval(meta.calculate);		}	}};//Valores de estilo e idioma por defectoSuscripcion.labelErrorMode=false;Suscripcion.paisMensajes="ESP";Suscripcion.tratamiento="tu";Suscripcion.divPeticion=true;Suscripcion.confirm=false;if (window.addEventListener) {   window.addEventListener("load", Suscripcion.init, false);} else {	window.attachEvent("onload", Suscripcion.init);}
