//fpv=8
function fp_input_get_by_frmname(frmname,inputname){
	if(document.forms[frmname]){
		if(	document.forms[frmname][inputname]){
			if(typeof(document.forms[frmname][inputname])=="object"){
				return 	document.forms[frmname][inputname];		
			}
		}
	}
	return false;
}
function fp_input_setval_by_frmname(frmname,inputname,value,dosubmit){
	var input=	fp_input_get_by_frmname(frmname,inputname);
	if(input){
		input.value=value;
		if(dosubmit){
			document.forms[frmname].submit();	
		}
	}
}

fp_input_elem_abs=function(inputname,params){};
fp_input_elem_abs.prototype.iniciar=function(inputname,params){
	this.inputname=inputname;
	this.valok=true;
	if(!params){
		params=new Object;	
	}
	this.params=params;
}
fp_input_elem_abs.prototype.actualizar_areaerror=function(){
	return fp_input_fnc_actualizar_areaerror(this);
}
fp_input_elem_abs.prototype.get_areasmsgerror=function(){
	return fp_input_fnc_get_areasmsgerror(this);
}
fp_input_elem_abs.prototype.check=function(){
	return fp_input_fnc_check(this);
}
fp_input_elem_abs.prototype.getinputelem=function(){
	var input=this.frmman.get_input(this.inputname);
	if(input){
		if(input["tagName"]){
			return input;	
		}
		if(input["length"]){
			return input[0];	
		}
	}
	return false;
}
fp_input_elem_abs.prototype.resetDisplay=function(){
	if(this.areasmsgerror){
		this.areasmsgerror.style.display="none";	
	}
	var input=this.getinputelem();	
	if(input){
		if( input.style){
			input.style.backgroundColor=this.origbgcolor;
		}
	}
}
fp_input_elem_abs.prototype.addInputEvents=function(){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}
	this.origbgcolor=input.style.backgroundColor;
	input.inputman=this;
	input.onchange=function(){fp_input_check(this)}
}

fp_input_elem_abs.prototype.get_subinputs=function(){
	if(this.subinputs){
		return 	this.subinputs;
	}
	
	if(!this.params.inputsids){
		this.params.inputsids=	this.params.subinputs;
	}
	if(this.params.inputsids){
		this.subinputs=new Array;
		var su;
		for (var e in this.params.inputsids){
			if(su=this.frmman.get_input(this.params.inputsids[e])){
				this.set_subinput(su);
			}
		}
	}
}
fp_input_elem_abs.prototype.set_subinput=function(su){
	su.inputman=this;
	su.onchange=function(){fp_input_check(this)}
	this.origbgcolor=su.style.backgroundColor;
	this.subinputs.push(su);	
}
fp_input_elem_abs.prototype.check_val=function(val){
	this.respuesta_validacion="";
	var ok=true;
	if (this.params.requerido){
		if (val.length <= 0){
			ok=false;
		}
	}
	if (this.params.confirmfrom){
		
		var inputconfirmfrom=this.frmman.get_input(this.params.confirmfrom);	
		if(inputconfirmfrom){
			
			if(inputconfirmfrom.value!=val){
				ok=false;	
			}
		}
	}
	
	if (val.length > 0){
		
		if (this.params.email){
			if (!mw_is_email(val)){
				ok=false;
			}
		}
		if (this.params.numero){
			if (isNaN(val)){
				ok=false;
			}else{
				var inputnum=Number(val);
				if (this.params.maximo){
					if (inputnum>this.params.maximo){
						ok=false;
					}
				}
				if (this.params.minimo){
					if (inputnum<this.params.minimo){
						ok=false;
					}
				}
			}
		}
		if (this.params.maxlargo){
			if (val.length > this.params.maxlargo){
				ok=false;
			}
		}
		if (this.params.minlargo){
			if (val.length < this.params.minlargo){
				ok=false;
			}
		}
		if ((this.params.maxwords)|| (this.params.minwords)){
			var numwords=fp_input_fnc_countwords(val);
			if (this.params.minwords){
				if (numwords < this.params.minwords){
					ok=false;
				}
			}
			if (this.params.maxwords){
				if (numwords > this.params.maxwords){
					ok=false;
				}
			}
		}
		
		
		
	}
	this.valok=ok;
	return ok;
}


function fp_input_elem_input(inputname,params){
	this.iniciar(inputname,params);
}
fp_input_elem_input.prototype=new fp_input_elem_abs();
fp_input_elem_input.prototype.addInputEvents=function(){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}
	this.origbgcolor=input.style.backgroundColor;
	input.inputman=this;
	input.onchange=function(){fp_input_check(this)}
	input.onkeyup=function(){fp_input_check(this)}
	if (this.params.nopaste){
		input.setAttribute("autocomplete","off");
		input.onkeydown=function(){mw_input_avoide_paste_on_key_down(event,this)};
		input.onkeyup=function(){mw_input_avoide_paste_on_key_up(event,this),fp_input_check(this)};
		input.onmousedown=function(){return mw_input_avoide_paste_on_mousedown(event,this)};
		input.onmouseover=function(){return mw_input_avoide_paste_on_mouseover(event,this)};
	}
}

function fp_input_elem_select(inputname,params){
	this.iniciar(inputname,params);
}
fp_input_elem_select.prototype=new fp_input_elem_abs();

function fp_input_elem_radio(inputname,params){
	this.iniciar(inputname,params);
}
fp_input_elem_radio.prototype=new fp_input_elem_abs();
fp_input_elem_radio.prototype.check=function(){
	var input=this.frmman.get_input(this.inputname);
	if(!input){
		return false;	
	}
	var val="";
	for(var i=0;i<input.length;i++){
		if(input[i].checked){
			val=input[i].value;
		}
	}
	if(!this.check_val(val)){
		this.respuesta_validacion=this.params.sinovalido;
	}
	this.actualizar_areaerror();
	return this.valok;
}
fp_input_elem_radio.prototype.addInputEvents=function(){
	var input=this.frmman.get_input(this.inputname);	
	if(!input){
		return false;	
	}
	for(var i=0;i<input.length;i++){
		input[i].inputman=this;
		input[i].onclick=function(){fp_input_check(this)}
	}
}


function fp_input_elem_file(inputname,params){
	this.iniciar(inputname,params);
}
fp_input_elem_file.prototype=new fp_input_elem_abs();
fp_input_elem_file.prototype.check_val=function(val){
	this.respuesta_validacion="";
	var ok=true;
	if (this.params.requerido){
		if (val.length <= 0){
			if (!this.params.existe){
				ok=false;
			}
		}
	}
	if (val.length > 0){
		if (this.params.extvalid){
			var extvalid=this.params.extvalid.split(",");
			var exta=val.split(".");
			var ext=exta[(exta.length-1)];
			ext=ext.toLowerCase();
			var extisok=false;
			for (var i =0;i<extvalid.length;i++){
				if(extvalid[i]==ext){
					extisok=true;	
				}
			}
			if(!extisok){
				ok=false;	
			}
		}
	}
	this.valok=ok;
	return ok;
}

function fp_input_elem_fecha(inputname,params){
	this.iniciar(inputname,params);
}
fp_input_elem_fecha.prototype=new fp_input_elem_abs();
fp_input_elem_fecha.prototype.check=function(){
	this.valok=false;
	this.respuesta_validacion="";
	if(!this.get_subinputs()){
		return false;	
	}
	this.valok=true;
	var retornochk=fp_fecha_val_input(this.params.inputsids.dia,
									  this.params.inputsids.mes,
									  this.params.inputsids.anho,
									  this.params.inputsids.val,
									  this.params.idformatodiv,
									  false,
									  this.params.inputsids.hora,
									  this.params.inputsids.minutos,
									  this.params.inputsids.segundos);
	if(!retornochk.inputsok){
		if(retornochk.someinputsfilled){
			this.valok=false;	
		}
		if(this.params.requerido){
			this.valok=false;		
		}
	}
	var bgcolor=this.frmman.diseval.colorok;
	if(!this.valok){
		this.respuesta_validacion=this.params.sinovalido;
		bgcolor=this.frmman.diseval.colorfail;
	}
	if(this.get_areasmsgerror()){
		this.areasmsgerror.innerHTML=this.respuesta_validacion;
	}
	this.actualizar_areaerror();
	for (var i=0;i<this.subinputs.length;i++){
		su=this.subinputs[i];
		su.style.backgroundColor=bgcolor;
	}
	
	return this.valok;

}
fp_input_elem_fecha.prototype.resetDisplay=function(){
	if(this.areasmsgerror){
		this.areasmsgerror.style.display="none";	
	}
	if(this.get_subinputs()){
		var su;
		for (var i=0;i<this.subinputs.length;i++){
			su=this.subinputs[i];
			su.style.backgroundColor=this.origbgcolor;
		}
	}
}
fp_input_elem_fecha.prototype.addInputEvents=function(){
	this.get_subinputs();
}
function fp_input_elem_chkboxmultiple(inputname,params){
	this.iniciar(inputname,params);
}
fp_input_elem_chkboxmultiple.prototype=new fp_input_elem_abs();

fp_input_elem_chkboxmultiple.prototype.check=function(){
	this.valok=false;
	this.respuesta_validacion="";
	if(!this.get_subinputs()){
		return false;	
	}
	this.valok=true;
	var numsel=0;
	for (var i=0; i<this.subinputs.length;i++){
		if(	this.subinputs[i].checked){
			numsel++;	
		}
	}
	if(this.params["nummaximo"]){
		if(	numsel>this.params["nummaximo"]){
			this.valok=false;	
		}
	}
	if(this.params["numminimo"]){
		if(	numsel<this.params["numminimo"]){
			this.valok=false;	
		}
	}
	if(!this.valok){
		this.respuesta_validacion=this.params.sinovalido;
	}
	if(this.get_areasmsgerror()){
		this.areasmsgerror.innerHTML=this.respuesta_validacion;
		//this.areasmsgerror.style.display="";
		
	}
	this.actualizar_areaerror();
	return this.valok;

}
fp_input_elem_chkboxmultiple.prototype.addInputEvents=function(){
	this.get_subinputs();
}

function fp_input_lista_ccbonchange(obj){
	if(obj.inputman){
		obj.inputman.ccbonchange();	
	}
}
function fp_input_elem_lista(inputname,params){
	this.iniciar(inputname,params);
	this.elemsactualizarobtenidos=false;
	this.elemsactualizar=false;
}
fp_input_elem_lista.prototype=new fp_input_elem_abs();

fp_input_elem_lista.prototype.get_childreninput_list=function(){
	if(this.childreninputs){
		return 	this.childreninputs;
	}
	if(this.params.childreninputs){
		var actulizarlist_a=this.params.childreninputs.split(","); 
		var i;
		var x=0;
		this.childreninputs=new Array();
		for (i=0;i<actulizarlist_a.length;i++){
			if (actulizarlist_a[i].length>0){
				this.childreninputs.push(actulizarlist_a[i]);
			}
		}
		return 	this.childreninputs;
	}
}
fp_input_elem_lista.prototype.onloadxmloptions=function(r){
	if (typeof(r)!="object"){
		return false;
	}
	if (r==null){
		return false;	
	}
	var items;
	if(!this.getinputccb()){
		return false;
	}
	var idata;
	

	if(items=r.getElementsByTagName('item')){
		for (var i=0;i<items.length;i++){
			idata=items(i);
			mw_select_addOption(this.inputccb,idata.getAttribute("value"),idata.firstChild.data);	
		}
	}
	this.actualizar_hideshow_inputs();
	
}
fp_input_elem_lista.prototype.alactualizar_parent=function(parentval){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}
	input.value="";
	if(this.getinputccb()){
		mw_select_removeAllOptions(this.inputccb);	
	}
	this.resetDisplay();
	this.actualizar_hideshow_inputs();
	if(parentval){
		var url=mw_lista_getitemsxmlurl(this.params.id_lista,parentval,this.params.nivel);	
		if(window.XMLHttpRequest){
			this.loader = new XMLHttpRequest();
			this.loader.parentobj=this;
			this.loader.onreadystatechange = function (){
					if(this.readyState == 4){
						if(this.status == 200) {
							this.parentobj.onloadxmloptions(this.responseXML);
						}
					}
				}
			this.loader.open("GET", url, true);
			this.loader.send(null);	
			
		}else{
			return false;	
		}

	}
	
}
fp_input_elem_lista.prototype.actualizar_childreninputs=function(){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}

	if(!this.get_childreninput_list()){
		return false;	
	}
	var i;
	var chi;
	var pval;
	var l=this.params.childreninputs;
	for (i=0;i<this.childreninputs.length;i++){
		l=l+"<br>"+this.childreninputs[i];
		chi=this.frmman.get_input(this.childreninputs[i]);
		pval=false;
		
		if(chi){
			if(chi.inputman){
				if(chi.inputman.params["parentinput"]){
					if(	chi.inputman.params["parentinput"]==this.inputname){
						pval=input.value;
					}
				}
				chi.inputman.alactualizar_parent(pval);
			}
		}
	}
}
fp_input_elem_lista.prototype.ccbonchange=function(){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}
	if(this.getinputccb()){
		input.value=this.inputccb.value;	
	}
	this.check();
	this.actualizar_childreninputs();
}
fp_input_elem_lista.prototype.check=function(){
	var ok=fp_input_fnc_check(this);
	if(this.getinputccb()){
		if(ok){
			this.inputccb.style.backgroundColor =this.frmman.diseval.colorok;
		}else{
			this.inputccb.style.backgroundColor =this.frmman.diseval.colorfail;
		}
	}
	return ok;
}
fp_input_elem_lista.prototype.resetDisplay=function(){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}
	input.style.backgroundColor=this.origbgcolor;
	if(this.getinputccb()){
		this.inputccb.style.backgroundColor=this.origbgcolorccb;
	}
	if(this.areasmsgerror){
		this.areasmsgerror.style.display="none";	
	}
}
fp_input_elem_lista.prototype.addInputEvents=function(){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}
	this.origbgcolor=input.style.backgroundColor;
	input.inputman=this;
	input.onchange=function(){fp_input_check(this)}
	input.onkeyup=function(){fp_input_check(this)}
	if(this.getinputccb()){
		this.origbgcolorccb=this.inputccb.style.backgroundColor;
		this.inputccb.inputman=this;
		this.inputccb.onchange=function(){fp_input_lista_ccbonchange(this)};
		
	}
	this.actualizar_hideshow_inputs();

}
fp_input_elem_lista.prototype.actualizar_hideshow_inputs=function(){
	var input=this.getinputelem();	
	if(!input){
		return false;	
	}
	input.style.display="";
	if(this.getinputccb()){
		this.inputccb.style.display="none";
		this.inputccb.disabled=false;
		if(	this.inputccb.options.length>1){
			input.style.display="none";
			
			this.inputccb.style.display="";
		}else{
			if(this.params["desactivarsinopciones"]){
				this.inputccb.style.display="";
				this.inputccb.disabled=true;
				input.style.display="none";	
			}else{
				input.style.display="";	
				this.inputccb.style.display="none";
			}
		}
	}

	
}
fp_input_elem_lista.prototype.getinputccb=function(){
	if(this.inputccb){
		return this.inputccb;
	}
	if(this.params["id_ccb"]){
		var ccb=fp_get_element_by_id_siexiste(this.params["id_ccb"]);
		if(ccb){
			this.inputccb=ccb;
			return this.inputccb;
		}
	}
}



function mw_input_avoide_paste_on_key_down(e,input) {
	var evt = typeof window.event != 'undefined' ? window.event : e;
	var val = evt.charCode;
	input.readOnly=false;
	if ((evt.ctrlKey)&&(evt.keyCode==86)) {
		input.readOnly=true;
	}
}
function mw_input_avoide_paste_on_mousedown(e,input) {
	var evt = typeof window.event != 'undefined' ? window.event : e;
	var val = evt.charCode;
	input.readOnly=false;
	if (evt.button == 2){
		
		input.readOnly=true;
		return false;
	}
	return true;
}
function mw_input_avoide_paste_on_mouseover(e,input) {
	input.readOnly=true;
}

function mw_input_avoide_paste_on_key_up(e,input) {
	input.readOnly=false;
}

function fp_input_check(obj){
	if(obj.inputman){
		obj.inputman.check();	
	}
}
function fp_input_fnc_actualizar_areaerror(o){
	if(!o.get_areasmsgerror()){
		return false;
	}
	o.areasmsgerror.innerHTML=o.respuesta_validacion;
	if(o.valok){
		o.areasmsgerror.style.display="none";
	}else{
		o.areasmsgerror.style.display="";	
	}
		
}
function fp_input_fnc_get_areasmsgerror(o){
	if(o.areasmsgerror){
		return 	o.areasmsgerror;
	}
	if(o.params.areasmsgerrorid){
		var a=fp_get_element_by_id_siexiste(o.params.areasmsgerrorid);	
		if(a){
			o.areasmsgerror=a;
			return 	o.areasmsgerror;
		}
	}
		
}
function fp_input_fnc_countwords(txt){
	var y=txt+'';
	var r = 0;
	y=y.replace(/\s/g,' ');
	var a=y.split(' ');
	for (var z=0; z<a.length; z++) {if (a[z].length > 0) r++;}
	return r;
}

function fp_input_fnc_check(o){
	//var input=o.frmman.get_input(o.inputname);
	var input=o.getinputelem();
	if(!input){
		return false;	
	}
	if(o.check_val(input.value)){
		input.style.backgroundColor =o.frmman.diseval.colorok;
		
	}else{
		input.style.backgroundColor =o.frmman.diseval.colorfail;
		if(!o.no_cambiar_respuesta_validacion){
			o.respuesta_validacion=o.params.sinovalido;
		}
	}
	o.actualizar_areaerror();
	return o.valok;

}

