//fpv=11
function fp_formulario_manager_col(){
	this.objects=new Object;
	this.register=function(name,obj){
		this.objects[name]=obj;
	}
	this.getman=function(name){
		if(name){
			if(name!=""){
				if(this.objects[name]){
					return this.objects[name];
				}
					
			}
		}
	}
	
}
var fp_formulario_manager_colobj=new fp_formulario_manager_col;
function fp_formulario_manager_getfromfrm(frm){
	if(frm["fp_frm_manager_id"]){
		var man=fp_formulario_manager_colobj.getman(frm.fp_frm_manager_id.value);
		if(man){
			return man;
		}
	}
	return false;	
}
function fp_formulario_manager_onresetfrm(frm){
	var man=fp_formulario_manager_getfromfrm(frm);
	if(	man){
		return man.onreset();
	}else{
		return true;	
	}
}
function fp_formulario_manager_checkonsubmit(frm){
	var man=fp_formulario_manager_getfromfrm(frm);
	if(	man){
		return man.checkinputs();
	}else{
		return true;	
	}
}
function fp_formulario_manager(thisname,frmname){
	this.thisname=thisname;
	this.frmname=frmname;
	this.do_eval_inputs=false;
	this.id_elems=new Object;
	this.obj_elems=new Object;
	this.inputelems=new Object;
	this.enviarfrmaiframe=false;
	this.respuestaHTML="";
	this.respuestaTXT="";
	this.diseval=new Object;
	fp_formulario_manager_colobj.register(thisname,this);
	this.checkinputs=function(){
		var ok=true;
		var respuestaserrorexternas=new Array();
		var estaresperror;
		for (var e in this.inputelems){
			if(	!this.inputelems[e].check()){
				ok=false;	
				if(	!this.inputelems[e].get_areasmsgerror()){
					if(this.inputelems[e].respuesta_validacion){
						
						if(	this.inputelems[e].params.etiqueta){
							estaresperror=	this.inputelems[e].params.etiqueta+": ";
						}else{
							estaresperror=	"";	
						}
						estaresperror=	estaresperror + this.inputelems[e].respuesta_validacion;
						respuestaserrorexternas.push(estaresperror);
					}
				}
			}
		}
		if(respuestaserrorexternas.length>0){
			this.respuestaHTML="";
			this.respuestaTXT="";
			for(var i =0; i<respuestaserrorexternas.length;i++){
				this.respuestaHTML=this.respuestaHTML+"<div>"+respuestaserrorexternas[i]+"</div>";
				this.respuestaTXT=this.respuestaTXT+"\n"+respuestaserrorexternas[i];
			}
			if(this.get_obj_elem("areaemergente")){
				fp_areaemergente_setcont_show_byobj(this.get_obj_elem("areaemergente"),this.respuestaHTML);	
			}else{
				alert(this.respuestaTXT);	
			}
		}
		return ok;
	}
	this.get_input=function(id_input){
		var f=this.getForm();
		if(f){
			if(f[id_input]){
				return 	f[id_input];
			}
		}
	}
	this.add_input_elem=function(id_input,o){
		o.frmman=this;
		this.inputelems[id_input]=o;
	}
	this.onrespuestafail=function(){
		mw_evalinputactivardesactivarsubmit(this.getForm());
		if(this.get_obj_elem("areaemergente")){
			if(this.respuestaHTML){
				fp_areaemergente_setcont_show_byobj(this.get_obj_elem("areaemergente"),this.respuestaHTML);
			}
		}else{
			if(this.respuestaTXT){
				alert(this.respuestaTXT);	
			}
		}
		fp_show_obj(this.get_obj_elem("areafrm"));
		if(!this.check_hideshow_proceso()){
			return false;	
		}
		fp_hide_obj(this.get_obj_elem("areaproceso"));
	}
	this.getForm=function(){
		if(this.formObj){
			return 	this.formObj;
		}
		this.formObj=document.forms[this.frmname];
		return 	this.formObj;
	}
	this.onreset=function(){
		for (var e in this.inputelems){
			this.inputelems[e].resetDisplay();
		}
		return true;
	}
	this.addinputsEvents=function(){
		for (var e in this.inputelems){
			this.inputelems[e].addInputEvents();
		}
		if(this.getForm()){
			this.formObj.onreset=function(){fp_formulario_manager_onresetfrm(this)};
		}
	}
	this.afterPrintFrm=function(){
		this.addinputsEvents();
		if(this.extraerAreaEmergente){
			if(this.get_obj_elem("areaemergente")){
				mw_dom_extraer_obj(this.get_obj_elem("areaemergente"));
			}
		}
		if(this.getForm()){
			this.formObj.style.display="";	
		}

	}
	this.hide_elems_on_respuestaok=function(){
		
		if(this.after_respuestaok_hidebk){
			fp_hide(this.after_respuestaok_hidebk);
		}
		
		if(this.after_respuestaok_hideareaemergente){
			if(this.get_obj_elem("areaemergente")){
				fp_hide_obj(this.get_obj_elem("areaemergente"));	
			}
		}
		if(this.after_respuestaok_showfrm){
			fp_show_obj(this.get_obj_elem("areafrm"));
			fp_hide_obj(this.get_obj_elem("arearespuesta"));
		}
		if(this.after_respuestaok_reloadPage){
		
			fp_cont_recargar_pagina();	
		}
			
	}
	this.resetandshowfrm=function(){
		if(this.get_obj_elem("areaemergente")){
			fp_hide_obj(this.get_obj_elem("areaemergente"));	
		}
		if(this.get_obj_elem("arearespuesta")){
			fp_hide_obj(this.get_obj_elem("arearespuesta"));	
		}
		if(this.get_obj_elem("areaproceso")){
			fp_hide_obj(this.get_obj_elem("areaproceso"));
		}
		if(this.getForm()){
			this.formObj.reset();
			mw_evalinputactivardesactivarsubmit(this.getForm());
		}
		this.onreset();
		fp_show_obj(this.get_obj_elem("areafrm"));
		
	}
	this.onrespuestaok=function(){
		if(this.get_obj_elem("arearespuesta")){
			this.obj_elems["arearespuesta"].innerHTML=this.respuestaHTML;
			fp_show_obj(this.get_obj_elem("arearespuesta"));	
		}
		
		if(this.get_obj_elem("areafrm")){
			fp_hide_obj(this.get_obj_elem("areafrm"));
		}
		if(this.after_respuestaok_showmsgonarea){
			if(this.get_obj_elem("areaemergente")){
				fp_areaemergente_setcont_show_byobj(this.get_obj_elem("areaemergente"),this.respuestaHTML);
			}
		}
		
		if(this.after_respuestaok_hide_delay){
			setTimeout(this.thisname+".hide_elems_on_respuestaok()",this.after_respuestaok_hide_delay);
		}else{
			this.hide_elems_on_respuestaok();	
		}
		
		if(this.get_obj_elem("areaproceso")){
			fp_hide_obj(this.get_obj_elem("areaproceso"));
		}
		if(this.after_respuestaok_resetandshowfrm){
			if(this.after_respuestaok_resetandshowfrm_delay){
				setTimeout(this.thisname+".resetandshowfrm()",this.after_respuestaok_resetandshowfrm_delay);	
			}else{
				this.resetandshowfrm();
			}
		}
		
		
	}
	this.onsubmitokifcheckonsubmit=function(){
		if(this.checkinputs()){
			this.onsubmitok();	
			
			return true;
		}else{
			return false;	
		}
	}
	this.onsubmitok=function(){
		if(!this.check_hideshow_proceso()){
			return false;	
		}
		fp_hide_obj(this.get_obj_elem("areafrm"));
		fp_show_obj(this.get_obj_elem("areaproceso"));
	}
	this.check_hideshow_proceso=function(){
		if(!this.enviarfrmaiframe){
			return false;	
		}
		if(!this.get_obj_elem("areaproceso")){
			return false;
		}
		if(!this.get_obj_elem("areafrm")){
			return false;
		}
		return true;
	}

	this.get_obj_elem=function(cod){
		if(this.obj_elems[cod]){
			return 	this.obj_elems[cod];
		}
		if(this.id_elems[cod]){
			var o=fp_get_element_by_id_siexiste(this.id_elems[cod]);
			if(o){
				this.obj_elems[cod]=o;
				return 	this.obj_elems[cod];
			}
		}
	}
}

