/*
 * Mi PASE
 */
//------------------------------
//PATH

window.fwk.controllers.mipase={};
window.fwk.controllers.mipase.url={};
$(document).ready(function(){
	window.fwk.controllers.mipase.url.feSingupUserInst="/fe/sites/mipase/adduserinst?layout=aplicacion&skin="+$("body").attr("skin");
	window.fwk.controllers.mipase.url.feSingupUser="/fe/sites/mipase/adduser?layout=aplicacion&skin="+$("body").attr("skin");
	window.fwk.controllers.mipase.url.feModifyUser="/fe/sites/mipase/modifyuser?layout=aplicacion&skin="+$("body").attr("skin");	
});

window.fwk.controllers.mipase.scrAddUser=function(pNombre){
	//propiedades
	this.nombre				=pNombre;
	this.apiChkAvailable	="/fe/sites/mipase/available";
	this.apiGetProv			="/fe/sites/mipase/getprovincias";
	this.apisave1			="/fe/sites/mipase/savefase1";
	this.apiEnding			="&showxml=true&layoutOff=true";
	this.scrInst			="/fe/sites/mipase/adduserinst?layout=aplicacion&skin="+$("body").attr("skin");
	this.saveandgo			=null;

	this.initialize=function(){
		this.inicializarControles();
	}
	this.inicializarControles=function(){
		//para debug
		//now=new Date(); $("#mipase [control='DATE']").val(now.getUTCDate()+"-"+(now.getUTCMonth()+1)+"-"+now.getUTCFullYear());

		this.intializeAvailable(); //usuario disponible
		this.initializeDate(); // fechas
		this.initializeSelects(); // selects
		this.initializeButtons(); // botones de envio
		this.initializeTerminos(); // Terminos y condiciones
		$("#adduser_form input, #adduser_form select").blur(function() {window.fwk.common.fieldCheck.check(this);} );
	}
	//disponible
	this.intializeAvailable=function()
		{
			$("#username").blur(this.getCallback("checkAvailable"));
		}
	this.checkAvailable=function(ob)
		{
			valor=$(ob).val();
			if(valor.length>1)
			{
				params="?&username="+$(ob).val();
				url=this.apiChkAvailable+params+this.apiEnding;
				//alert(url);
				$.get(url,this.getCallback("checkAvailableRespuesta","data"));
			}
		}
	this.checkAvailableRespuesta=function(data)
		{
			//alert($(data).text());
			//alert($(data).find("existe_username").text());
			if($(data).find("error").text()!='')			this.showErrorMsg("#username",$(data).find("error").text());
			if($(data).find("existe_username").text()==1)	$("#username_error_duplicado").show();
			else											$("#username_error_duplicado").hide();
			window.fwk.common.fieldCheck.check($("#username"));
		}
	//controles de fecha
	this.initializeDate=function()
		{
			fechas=$("#mipase [control='DATE']"); //inicializacion de fechas
			for(i=0;i<fechas.length;i++)
			{
				$this=$(fechas[i]);
				fecha=$this.val().split("/");
				if(fecha.length==3)
				{
					$("#"+$this.attr("id")+"_d").val(parseInt(fecha[0]));
					$("#"+$this.attr("id")+"_m").val(parseInt(fecha[1]));
					$("#"+$this.attr("id")+"_y").val(parseInt(fecha[2]));
				}
				$("#"+$this.attr("id")+"_d").change(this.getCallback("changeDateDia"));
				$("#"+$this.attr("id")+"_m").change(this.getCallback("changeDateMes"));
				$("#"+$this.attr("id")+"_y").change(this.getCallback("changeDateAno"));
				this.changeDateSetear($(this).attr("id"));
			}
		}
	this.changeDateDia=function(ob)
		{
			id=$(ob).attr("id");
			id=id.substr(0,id.length-2);
			fecha=this.changeDateSetear(id);
			if((fecha[0]>30)&&(fecha[1]==2||fecha[1]==4||fecha[1]==6||fecha[1]==9||fecha[1]==11)) { $(this).val(30); window.fwk.controllers.MIPASE.changeDateSetear(id); }
		}
	this.changeDateMes=function(ob)
		{
			id=$(ob).attr("id")
			id=id.substr(0,id.length-2);
			this.changeDateSetear(id);
		}
	this.changeDateAno=function(ob)
		{
			id=$(ob).attr("id")
			id=id.substr(0,id.length-2);
			this.changeDateSetear(id);
		}
	this.changeDateSetear=function(id)
		{
			dia=$("#"+id+"_d").val(); mes=$("#"+id+"_m").val(); ano=$("#"+id+"_y").val();
			//chequeos
			if(dia>30 && (mes==2||mes==4||mes==6||mes==9||mes==11)) dia=30; //meses 31
			if(mes==2 && dia>29) dia=29; //febrero
			if(dia==29 && mes==2 && (!(!(ano%4)||!(ano%100)))) dia=28; //bisiestos
			//corrijo
			$("#"+id+"_d").val(dia); $("#"+id+"_m").val(mes); $("#"+id+"_y").val(ano);
			$("#"+id).val(dia+"/"+mes+"/"+ano); return([dia,mes,ano]);
		}
	//selects encadenados
	this.initializeSelects=function()
		{
			//de los encadenados
			selects=$("select[padre*='ATRIB']")
			for(i=0;i<selects.length;i++)
			{
				$this=$(selects[i]);
				padre=$("#"+$this.attr("padre"));
				padre.attr("hijo",$this.attr("id"));
				padre.change(this.getCallback("changeSelect"));
			};
		},
	this.changeSelect=function(ob)
		{
			param="?&idalfanumerico="+$(ob).attr("id")+"&valorposible="+$(ob).val();
			url=this.apiGetProv+param+this.apiEnding;
			$.get(url,this.getCallback("changeSelectRespuesta","data"));
		}
	this.changeSelectRespuesta=function(data)
		{
			padre=$("#"+$(data).find("parametros idalfanumerico").text());
			opciones=$(data).find($(padre).attr("hijo")+" option"); opts="";
			for(i=0;i<opciones.length;i++)
			{
				texto=$(opciones[i]).find("valor").text();
				valor=$(opciones[i]).find("valor_posible").text();
				opts+="<option value='"+valor+"'>"+texto+"</option>";
			}			
			$("#"+$(padre).attr("hijo")).html(opts);
		}

	//terminos
	this.initializeTerminos=function()
		{
			$("#addUser_terminos").click(this.getCallback("chkTerminos"));
		}
	this.chkTerminos=function(ob)
		{
			if($(ob).attr("checked"))
			{
				$("#error-terminos").hide();
				/*
				$("#addUser_btnSendAndStop").removeAttr("disabled");
				$("#addUser_btnSendAndGo").removeAttr("disabled");
				*/
			}
			else
			{
				$("#error-terminos").show();
				/*
				$("#addUser_btnSendAndStop").attr("disabled","disabled");
				$("#addUser_btnSendAndGo").attr("disabled","disabled");
				*/
			}
		}

	//botones
	this.initializeButtons=function()
		{
			//$("#addUser_btnCancel").click(this.getCallback("btnCancel"));
			$("#addUser_btnSendAndStop").click(this.getCallback("btnSendAndStop"));
			//$("#addUser_btnSendAndGo").attr("disabled","disabled").click(this.getCallback("btnSendAndGo"));
		}
	this.btnCancel=function(ob)
		{
			//alert("btnCancel");
		}
	this.btnSendAndStop=function(ob)
		{
			if(this.checkAllForm() && (!$("#addUser_terminos").length || $("#addUser_terminos").attr("checked")))
			{
				$("#adduser_form *[name*='error']").hide();
				this.saveandgo=false;
				url=this.apisave1+"?"+this.apiEnding;
				//alert(url+" >> "+$("#adduser_form").serialize());
				$("#cargandoRegistracion").fadeIn(500);
				$.post(url,$("#adduser_form").serializeArray(),this.getCallback("btnSendRespuesta","data"));

			}else if(!$("#addUser_terminos").attr("checked")){
				//verificando terminos
				$("#error-terminos").show();
			}
		}
	this.btnSendRespuesta=function(data)
		{
			$("#cargandoRegistracion").fadeOut(500);
			//alert($(data).text());
			//alert($(data).find("errores").text());
			errores=$(data).find("errores error");
			if(errores.length>0) //muestro errores
			{
				for(i=0;i<errores.length;i++)
				{
					$err=$(errores[i]);
					mensaje=$err.find("mensaje").text();
					nombrecampo=$err.find("campo").text();
					campo=$("#adduser_form *[name='"+nombrecampo+"']");
					//alert(nombrecampo+"] ["+mensaje+"] ["+campo+"] ["+campo.attr("id"));
					//chequeos
					if(mensaje=="El Nombre de usuario ya existe") $("#"+campo.attr("id")+"_error_duplicado").show();
					else if(mensaje=="Este campo es obligatorio") $("#"+campo.attr("id")+"_error_obligatorio").show();
					else if(mensaje=="La cantidad de caracteres es incorrecta") $("#"+campo.attr("id")+"_error_min").show();
					else if(mensaje=="Fecha inválida") $("#"+campo.attr("id")+"_error_min").show();
					else $("#"+campo.attr("id")+"_error").html(mensaje).show();
				}
				return(false);
			}
			else document.location=this.scrInst+"&urlReturn="+escape($("#adduser_form [name=urlReturn]").val()); //a la otra pantalla
		}
	//chequeo general
	this.checkAllForm=function()
		{
			var OK=true;
			campos=$("#adduser_form input, #adduser_form select");
			for(i=0;i<campos.length;i++) { OK = window.fwk.common.fieldCheck.check(campos[i]) && OK; }
			return(OK);
		}
	//manejo de errores
	this.showErrorMsg=function(ob,msg)
		{
			$(ob+"_error").html(msg).show();
		}
	//Utilitarios
	this.getCallback = function(destino,parametro)
		{
			if(parametro) eval("var callback= function ("+parametro+") { "+this.nombre+"."+destino+"("+parametro+"); }");
			else eval("var callback= function () { "+this.nombre+"."+destino+"(this); }");
			return(callback);
		}
}
window.fwk.controllers.mipase.scrAddUserInst=function(pNombre)
	{
		//propiedades
		this.nombre				=pNombre;
		this.apisave2			="/fe/sites/mipase/savefase2";
		this.apiEnding			="&showxml=true&layoutOff=true";
		this.scrFinal			="/fe/sites/mipase/confirm?layout=aplicacion&skin="+$("body").attr("skin");

		this.initialize = function()
			{
				//alert("me inicialize!");
				this.inicializarControles();
			}
		this.inicializarControles=function()
			{
				this.initializeDate(); // fechas
				this.initializeSelects(); // selects
				this.initializeButtons(); // botones de envio
				$("#adduserinst_form input, #adduserinst_form select, #adduserinst_form textarea").blur(function() {window.fwk.common.fieldCheck.check(this);} );
			}
		//selects encadenados
		this.initializeSelects=function()
			{
				//de los encadenados
				selects=$("select[padre*='ATRIB']")
				for(i=0;i<selects.length;i++)
				{
					$this=$(selects[i]);
					padre=$("#"+$this.attr("padre"));
					padre.attr("hijo",$this.attr("id"));
					padre.change(this.getCallback("changeSelect"));
				};
			},
		this.changeSelect=function(ob)
			{
				param="?&idalfanumerico="+$(ob).attr("id")+"&valorposible="+$(ob).val();
				url=this.apiGetProv+param+this.apiEnding;
				//alert(url);
				$.get(url,this.getCallback("changeSelectRespuesta","data"));
			}
		this.changeSelectRespuesta=function(data)
			{
				opciones=$(data).find("option"); opts="";
				for(i=0;i<opciones.length;i++)
				{
					texto=$(opciones[i]).find("valor").text();
					valor=$(opciones[i]).find("valor_posible").text();
					opts+="<option value='"+valor+"'>"+texto+"</option>";
				}
				padre=$("#"+$(data).find("parametros idalfanumerico").text());
				$("#"+$(padre).attr("hijo")).html(opts);
			}
		//controles de fecha
		this.initializeDate=function()
			{
				fechas=$("#mipase [control='DATE']"); //inicializacion de fechas
				for(i=0;i<fechas.length;i++)
				{
					$this=$(fechas[i]);
					fecha=$this.val().split("/");
					if(fecha.length==3)
					{
						$("#"+$this.attr("id")+"_d").val(parseInt(fecha[0]));
						$("#"+$this.attr("id")+"_m").val(parseInt(fecha[1]));
						$("#"+$this.attr("id")+"_y").val(parseInt(fecha[2]));
					}
					$("#"+$this.attr("id")+"_d").change(this.getCallback("changeDateDia"));
					$("#"+$this.attr("id")+"_m").change(this.getCallback("changeDateMes"));
					$("#"+$this.attr("id")+"_y").change(this.getCallback("changeDateAno"));
					this.changeDateSetear($(this).attr("id"));
				}
			}
		this.changeDateDia=function(ob)
			{
				id=$(ob).attr("id");
				id=id.substr(0,id.length-2);
				fecha=this.changeDateSetear(id);
				if((fecha[0]>30)&&(fecha[1]==2||fecha[1]==4||fecha[1]==6||fecha[1]==9||fecha[1]==11)) { $(this).val(30); window.fwk.controllers.MIPASE.changeDateSetear(id); }
			}
		this.changeDateMes=function(ob)
			{
				id=$(ob).attr("id")
				id=id.substr(0,id.length-2);
				this.changeDateSetear(id);
			}
		this.changeDateAno=function(ob)
			{
				id=$(ob).attr("id")
				id=id.substr(0,id.length-2);
				this.changeDateSetear(id);
			}
		this.changeDateSetear=function(id)
			{
				dia=$("#"+id+"_d").val(); mes=$("#"+id+"_m").val(); ano=$("#"+id+"_y").val();
				//chequeos
				if(dia>30 && (mes==2||mes==4||mes==6||mes==9||mes==11)) dia=30; //meses 31
				if(mes==2 && dia>29) dia=29; //febrero
				if(dia==29 && mes==2 && (!(!(ano%4)||!(ano%100)))) dia=28; //bisiestos
				//corrijo
				$("#"+id+"_d").val(dia); $("#"+id+"_m").val(mes); $("#"+id+"_y").val(ano);
				$("#"+id).val(dia+"/"+mes+"/"+ano); return([dia,mes,ano]);
			}
		//botones
		this.initializeButtons=function()
			{
				//$("#addUserInst_btnCancel").click(this.getCallback("btnCancel"));
				$("#addUserInst_btnSendAndStop").click(this.getCallback("btnSendAndStop"));
			}
		/*
			this.btnCancel=function(ob)
				{
					alert("btnCancel");
				}
		*/
		this.btnSendAndStop=function(ob)
			{
				if(this.checkAllForm())
				{
					url=this.apisave2+"?"+this.apiEnding;
					//alert(url+"  "+$("#adduserinst_form").serialize());
					$("#cargandoRegistracion").fadeIn(500);
					//alert("enviando... 2");
					$.post(url,$("#adduserinst_form").serializeArray(),this.getCallback("btnSendRespuesta","data"));
				}
			}
		this.btnSendRespuesta=function(data)
			{	$("#cargandoRegistracion").fadeOut(500);
				//alert("volvi!"+data);
				//alert(" "+ $(data).find("errores").text());
				errores=$(data).find("errores error");
				if(errores.length>0) //muestro errores
				{
					for(i=0;i<errores.length;i++)
					{
						$err=$(errores[i]);
						mensaje=$err.find("mensaje").text();
						nombrecampo=$err.find("campo").text();
						campo=$("#adduserinst_form *[name='"+nombrecampo+"']");
						//chequeos
						if(mensaje=="Este campo es obligatorio") $("#"+campo.attr("id")+"_error_obligatorio").show();
						if(mensaje=="La cantidad de caracteres es incorrecta") $("#"+campo.attr("id")+"_error_min").show();
						if(mensaje=="Fecha inválida") $("#"+campo.attr("id")+"_error_min").show();
					}
					return(false);
				}
				else document.location=this.scrFinal+"&urlReturn="+escape($("#adduserinst_form [name=urlReturn]").val())+"&step=add"; //a la otra pantalla
			}
		//chequeo general
		this.checkAllForm=function()
			{
				var OK=true;
				campos=$("#adduserinst_form input, #adduserinst_form select");
				for(i=0;i<campos.length;i++) { OK = window.fwk.common.fieldCheck.check(campos[i]) && OK; }
				return(OK);
			}
		//manejo de errores
		this.showErrorMsg=function(ob,msg)
			{
				$(ob+"_error").html(msg).show();
			}
		//Utilitarios
		this.getCallback = function(destino,parametro)
			{
				if(parametro) eval("var callback= function ("+parametro+") { "+this.nombre+"."+destino+"("+parametro+"); }");
				else eval("var callback= function () { "+this.nombre+"."+destino+"(this); }");
				return(callback);
			}
	}

window.fwk.controllers.mipase.scrModifyUser=function(pNombre)
	{
		//propiedades
		this.nombre				=pNombre;
		this.apiChkAvailable	="/fe/sites/mipase/available";
		this.apiGetProv			="/fe/sites/mipase/getprovincias";
		this.apisave1			="/fe/sites/mipase/updatefase1";
		this.apiEnding			="&showxml=true&layoutOff=true";
		this.scrInst			="/fe/sites/mipase/modifyuserinst?layout=aplicacion&skin="+$("body").attr("skin");
		this.scrFinal			="/fe/sites/mipase/confirm?layout=aplicacion&skin="+$("body").attr("skin");
		this.saveandgo			=null;

		this.initialize=function()
			{
				this.inicializarControles();
			}
		this.inicializarControles=function()
			{
				//para debug
				//now=new Date(); $("#mipase [control='DATE']").val(now.getUTCDate()+"-"+(now.getUTCMonth()+1)+"-"+now.getUTCFullYear());

				this.intializeAvailable(); //usuario disponible
				this.initializeDate(); // fechas
				this.initializeSelects(); // selects
				this.initializeButtons(); // botones de envio
				$("#modifyuser_form input, #modifyuser_form select, #modifyuser_form textarea").blur(function() {window.fwk.common.fieldCheck.check(this);} );
			}
		//disponible
		this.intializeAvailable=function()
			{
				$("#username").attr("name","username_show");
				$("<input type='hidden' id='username_real' name='USERNAME'/>").appendTo($("#username").parent()); //creo el nuevo
				$("#username_real").val($("#username").val()); //copio valores
				$("#username").attr("disabled","disabled"); //inactivo el visible

			}
		//controles de fecha
		this.initializeDate=function()
			{
				fechas=$("#mipase [control='DATE']"); //inicializacion de fechas
				for(i=0;i<fechas.length;i++)
				{
					$this=$(fechas[i]);
					fecha=$this.val().split("/");
					if(fecha.length==3)
					{
						$("#"+$this.attr("id")+"_d").val(parseInt(fecha[0]));
						$("#"+$this.attr("id")+"_m").val(parseInt(fecha[1]));
						$("#"+$this.attr("id")+"_y").val(parseInt(fecha[2]));
					}
					$("#"+$this.attr("id")+"_d").change(this.getCallback("changeDateDia"));
					$("#"+$this.attr("id")+"_m").change(this.getCallback("changeDateMes"));
					$("#"+$this.attr("id")+"_y").change(this.getCallback("changeDateAno"));
					this.changeDateSetear($(this).attr("id"));
				}
			}
		this.changeDateDia=function(ob)
			{
				id=$(ob).attr("id");
				id=id.substr(0,id.length-2);
				fecha=this.changeDateSetear(id);
				if((fecha[0]>30)&&(fecha[1]==2||fecha[1]==4||fecha[1]==6||fecha[1]==9||fecha[1]==11)) { $(this).val(30); window.fwk.controllers.MIPASE.changeDateSetear(id); }
			}
		this.changeDateMes=function(ob)
			{
				id=$(ob).attr("id")
				id=id.substr(0,id.length-2);
				this.changeDateSetear(id);
			}
		this.changeDateAno=function(ob)
			{
				id=$(ob).attr("id")
				id=id.substr(0,id.length-2);
				this.changeDateSetear(id);
			}
		this.changeDateSetear=function(id)
			{
				dia=$("#"+id+"_d").val(); mes=$("#"+id+"_m").val(); ano=$("#"+id+"_y").val();
				//chequeos
				if(dia>30 && (mes==2||mes==4||mes==6||mes==9||mes==11)) dia=30; //meses 31
				if(mes==2 && dia>29) dia=29; //febrero
				if(dia==29 && mes==2 && (!(!(ano%4)||!(ano%100)))) dia=28; //bisiestos
				//corrijo
				$("#"+id+"_d").val(dia); $("#"+id+"_m").val(mes); $("#"+id+"_y").val(ano);
				$("#"+id).val(dia+"/"+mes+"/"+ano); return([dia,mes,ano]);
			}
		this.initializeSelects=function(){ //selects encadenados
			selects=$("select[padre*='ATRIB']")
			for(i=0;i<selects.length;i++)
			{
				$this=$(selects[i]);
				padre=$("#"+$this.attr("padre"));
				padre.attr("hijo",$this.attr("id"));
				padre.change(this.getCallback("changeSelect"));
				padre.trigger("change");
			};
		},
		this.changeSelect=function(ob){
			param="?&idalfanumerico="+$(ob).attr("id")+"&valorposible="+$(ob).val();
			url=this.apiGetProv+param+this.apiEnding;
			$.get(url,this.getCallback("changeSelectRespuesta","data"));
		}
		this.changeSelectRespuesta=function(data){			
			padre=$("#"+$(data).find("parametros idalfanumerico").text());
			$hijo=$("#"+$(padre).attr("hijo"));
			opciones=$(data).find($(padre).attr("hijo")+" option"); opts="";
			hijo_valor=$hijo.val();
			for(i=0;i<opciones.length;i++){
				texto=$(opciones[i]).find("valor").text();
				valor=$(opciones[i]).find("valor_posible").text();
				opts+="<option value='"+valor+"' "+((valor==hijo_valor)?"selected":"")+">"+texto+"</option>";
			}
			$hijo.html(opts);
			//$("#"+$(padre).attr("hijo")).html(opts);
		}
		//botones
		this.initializeButtons=function()
			{
				$("#modifyUser_btnCancel").click(this.getCallback("btnCancel"));
				$("#modifyUser_btnSendAndStop").click(this.getCallback("btnSendAndStop"));
				$("#modifyUser_btnSendAndGo").click(this.getCallback("btnSendAndGo"));
			}
		this.btnCancel=function(ob)
			{
				//alert("btnCancel");
			}
		this.btnSendAndStop=function(ob)
			{
				if(this.checkAllForm())
				{
					this.saveandgo=false;
					url=this.apisave1+"?"+this.apiEnding;
					$("#cargandoRegistracion").fadeIn(500);
					$.post(url,$("#modifyuser_form").serializeArray(),this.getCallback("btnSendRespuesta","data"));
				}
			}
			/*
			this.btnSendAndGo=function(ob)
				{
					if(this.checkAllForm())
					{
						this.saveandgo=true;
						url=this.apisave1+"?"+this.apiEnding;
						$.post(url,$("#modifyuser_form").serializeArray(),this.getCallback("btnSendRespuesta","data"));
					}
				}
			*/
		this.btnSendRespuesta=function(data)
			{
				$("#cargandoRegistracion").fadeOut(500);
				/*
				alert(data);
				alert(this.scrInst);
				*/
				//alert(this.saveandgo+"] "+ $(data).find("errores").text());
				errores=$(data).find("errores error");
				if(errores.length>0) //muestro errores
				{
					for(i=0;i<errores.length;i++)
					{
						$err=$(errores[i]);
						mensaje=$err.find("mensaje").text();
						nombrecampo=$err.find("campo").text();
						campo=$("#modifyuser_form *[name='"+nombrecampo+"']");
						//chequeos
						if(mensaje=="El Nombre de usuario ya existe") $("#"+campo.attr("id")+"_error_duplicado").show();
						else if(mensaje=="Este campo es obligatorio") $("#"+campo.attr("id")+"_error_obligatorio").show();
						else if(mensaje=="La cantidad de caracteres es incorrecta") $("#"+campo.attr("id")+"_error_min").show();
						else if(mensaje=="Fecha inválida") $("#"+campo.attr("id")+"_error_min").show();
						else $("#"+campo.attr("id")+"_error").html(mensaje).show();
					}
					return(false);
				}
				else document.location=this.scrInst+"&urlReturn="+escape($("#modifyuser_form [name=urlReturn]").val()); //a la otra pantalla
			}
		//chequeo general
		this.checkAllForm=function()
			{
				var OK=true;
				campos=$("#modifyuser_form input, #modifyuser_form select, #modifyuser_form textarea");
				for(i=0;i<campos.length;i++) { OK = window.fwk.common.fieldCheck.check(campos[i]) && OK; }
				return(OK);
			}
		//manejo de errores
		this.showErrorMsg=function(ob,msg)
			{
				$(ob+"_error").html(msg).show();
			}
		//Utilitarios
		this.getCallback = function(destino,parametro)
			{
				if(parametro) eval("var callback= function ("+parametro+") { "+this.nombre+"."+destino+"("+parametro+"); }");
				else eval("var callback= function () { "+this.nombre+"."+destino+"(this); }");
				return(callback);
			}
	}
window.fwk.controllers.mipase.scrModifyUserInst=function(pNombre)
	{
		//propiedades
		this.nombre				=pNombre;
		this.apisave2			="/fe/sites/mipase/updatefase2";
		this.apiEnding			="&showxml=true&layoutOff=true";
		this.scrFinal			="/fe/sites/mipase/confirm?layout=aplicacion&skin="+$("body").attr("skin");

		this.initialize = function()
			{
				//alert("me inicialize!");
				this.inicializarControles();
			}
		this.inicializarControles=function()
			{
				this.initializeDate(); // fechas
				this.initializeSelects(); // selects
				this.initializeButtons(); // botones de envio
				$("#modifyuserinst_form input, #modifyuserinst_form select, #modifyuserinst_form textarea").blur(function() {window.fwk.common.fieldCheck.check(this);} );
			}
		//selects encadenados
		this.initializeSelects=function()
			{
				//de los encadenados
				selects=$("select[padre*='ATRIB']")
				for(i=0;i<selects.length;i++)
				{
					$this=$(selects[i]);
					padre=$("#"+$this.attr("padre"));
					padre.attr("hijo",$this.attr("id"));
					padre.change(this.getCallback("changeSelect"));
				};
			},
		this.changeSelect=function(ob)
			{
				param="?&idalfanumerico="+$(ob).attr("id")+"&valorposible="+$(ob).val();
				url=this.apiGetProv+param+this.apiEnding;
				$.get(url,this.getCallback("changeSelectRespuesta","data"));
			}
		this.changeSelectRespuesta=function(data)
			{
				opciones=$(data).find("option"); opts="";
				for(i=0;i<opciones.length;i++)
				{
					texto=$(opciones[i]).find("valor").text();
					valor=$(opciones[i]).find("valor_posible").text();
					opts+="<option value='"+valor+"'>"+texto+"</option>";
				}
				padre=$("#"+$(data).find("parametros idalfanumerico").text());
				$("#"+$(padre).attr("hijo")).html(opts);
			}
		//controles de fecha
		this.initializeDate=function()
			{
				fechas=$("#mipase [control='DATE']"); //inicializacion de fechas
				for(i=0;i<fechas.length;i++)
				{
					$this=$(fechas[i]);
					fecha=$this.val().split("/");
					if(fecha.length==3)
					{
						$("#"+$this.attr("id")+"_d").val(parseInt(fecha[0]));
						$("#"+$this.attr("id")+"_m").val(parseInt(fecha[1]));
						$("#"+$this.attr("id")+"_y").val(parseInt(fecha[2]));
					}
					$("#"+$this.attr("id")+"_d").change(this.getCallback("changeDateDia"));
					$("#"+$this.attr("id")+"_m").change(this.getCallback("changeDateMes"));
					$("#"+$this.attr("id")+"_y").change(this.getCallback("changeDateAno"));
					this.changeDateSetear($(this).attr("id"));
				}
			}
		this.changeDateDia=function(ob)
			{
				id=$(ob).attr("id");
				id=id.substr(0,id.length-2);
				fecha=this.changeDateSetear(id);
				if((fecha[0]>30)&&(fecha[1]==2||fecha[1]==4||fecha[1]==6||fecha[1]==9||fecha[1]==11)) { $(this).val(30); window.fwk.controllers.MIPASE.changeDateSetear(id); }
			}
		this.changeDateMes=function(ob)
			{
				id=$(ob).attr("id")
				id=id.substr(0,id.length-2);
				this.changeDateSetear(id);
			}
		this.changeDateAno=function(ob)
			{
				id=$(ob).attr("id")
				id=id.substr(0,id.length-2);
				this.changeDateSetear(id);
			}
		this.changeDateSetear=function(id)
			{
				dia=$("#"+id+"_d").val(); mes=$("#"+id+"_m").val(); ano=$("#"+id+"_y").val();
				//chequeos
				if(dia>30 && (mes==2||mes==4||mes==6||mes==9||mes==11)) dia=30; //meses 31
				if(mes==2 && dia>29) dia=29; //febrero
				if(dia==29 && mes==2 && (!(!(ano%4)||!(ano%100)))) dia=28; //bisiestos
				//corrijo
				$("#"+id+"_d").val(dia); $("#"+id+"_m").val(mes); $("#"+id+"_y").val(ano);
				$("#"+id).val(dia+"/"+mes+"/"+ano); return([dia,mes,ano]);
			}
		//botones
		this.initializeButtons=function()
			{
				$("#modifyUserInst_btnCancel").click(this.getCallback("btnCancel"));
				$("#modifyUserInst_btnSendAndStop").click(this.getCallback("btnSendAndStop"));
			}
		this.btnCancel=function(ob)
			{
				//alert("btnCancel");
			}
		this.btnSendAndStop=function(ob)
			{
				if(this.checkAllForm())
				{
					this.saveandgo=false;
					url=this.apisave2+"?"+this.apiEnding;
					$("#cargandoRegistracion").fadeIn(500);
					//alert("enviando... 4");
					$.post(url,$("#modifyuserinst_form").serializeArray(),this.getCallback("btnSendRespuesta","data"));
				}
			}
		this.btnSendRespuesta=function(data)
			{
				$("#cargandoRegistracion").fadeOut(500);
				//alert(" "+ $(data).find("errores").text());
				errores=$(data).find("errores error");
				if(errores.length>0) //muestro errores
				{
					for(i=0;i<errores.length;i++)
					{
						$err=$(errores[i]);
						mensaje=$err.find("mensaje").text();
						nombrecampo=$err.find("campo").text();
						campo=$("#modifyuserinst_form *[name='"+nombrecampo+"']");
						//chequeos
						if(mensaje=="Este campo es obligatorio") $("#"+campo.attr("id")+"_error_obligatorio").show();
						if(mensaje=="La cantidad de caracteres es incorrecta") $("#"+campo.attr("id")+"_error_min").show();
						if(mensaje=="Fecha inválida") $("#"+campo.attr("id")+"_error_min").show();
					}
					return(false);
				}
				else document.location=this.scrFinal+"&urlReturn="+escape($("#modifyuserinst_form [name=urlReturn]").val())+"&step=edit"; //a la otra pantalla
			}
		//chequeo general
		this.checkAllForm=function()
			{
				var OK=true;
				campos=$("#modifyuserinst_form input, #modifyuserinst_form select, modifyuser_form textarea");
				for(i=0;i<campos.length;i++) { OK = window.fwk.common.fieldCheck.check(campos[i]) && OK; }
				return(OK);
			}
		//manejo de errores
		this.showErrorMsg=function(ob,msg)
			{
				$(ob+"_error").html(msg).show();
			}
		//Utilitarios
		this.getCallback = function(destino,parametro)
			{
				if(parametro) eval("var callback= function ("+parametro+") { "+this.nombre+"."+destino+"("+parametro+"); }");
				else eval("var callback= function () { "+this.nombre+"."+destino+"(this); }");
				return(callback);
			}
	}
