﻿Service.Forms.Client = function(){
    var me = this;
	me.id_formulario = "";
	me.mainDivID = "form_main_div";
	me.formID = "form1";
	me.f = null;
	me.oForm = null;
	me.mainDiv = null;
	me._html = null;
	me.onComplete = function(response){};
	me.handler = "Admin/services/handlerClient.aspx";
	me._init = function(){
		me.mainDiv = document.getElementById(me.mainDivID);
		me.f = document.getElementById(me.formID);
		me.oForm = Service.Forms.FormManager._create();
		me.f = document.getElementById(me.formID);
		me.oForm = Service.Forms.FormManager._create();
		me._html = new Service.Forms.Html();
		me._html.setAdmin = false;
	};
	me.LoadXML = function(url,vars){
		me.oForm.XML._loadXML(url,vars,function(){
			me.oForm.XML.XML2Object();
			me.PrintAll();
		});
	};
	me.PrintAll = function(){
	    document.getElementById("form_titulo_div").innerHTML = me.oForm.title;
	    document.getElementById("form_descripcion_div").innerHTML =  me.oForm.description;	    
		for(var i =0;i<me.oForm.sections.length;i++){
			var section = me.oForm.sections[i];
			var capaSeccion = me._html.Section(section);
			capaSeccion.style.display= "block";
			me.mainDiv.appendChild(capaSeccion);
		}
	};
	me.SaveData = function(vars){	    
	    var peticion = Service.HTTP._create();
		peticion.url = me.handler;
		peticion.vars = vars;
		peticion.onFinish = function(){
		    me.onComplete(peticion.response);
		}
		peticion._post();
	}
	me.getFormValues = function(){
	    url = "pg=saveformdata";
	    var cont = 0;
	    for(var i=0; i<me.oForm.sections.length;i++){
			var seccion = me.oForm.sections[i];
			for(var j=0;j<seccion.components.length;j++){
				var component = seccion.components[j];
				var fnamecomponent = me._html.prefijo_component + component.idn;
				var campo = me.f[fnamecomponent];
				var label = component.label;
				var valor = "";
				if(component.type == "text"){
				   valor = campo.value;
				   url += "&label"+cont+"="+encodeURIComponent(label);
				   url += "&valor"+cont+"="+encodeURIComponent(valor);
				   cont++;
				}
				if(component.type == "list"){
				    if(component.List._options.length == 1){
				        valor = campo.value;
				    }else if(component.List._options.length > 1){
				        for(var x=0;x<campo.length;x++){
				            if(campo[x].checked){
				                valor += campo[x].value + ", ";
				            }
				        }
				    }
				    url += "&label"+cont+"="+encodeURIComponent(label);
				    url += "&valor"+cont+"="+encodeURIComponent(valor);
				    cont++;
				}
				if(component.type == "select"){
				    if(component.List._options.length > 0){
				         for(var x=0;x<campo.options.length;x++){
				              if(campo.options[x].selected){
				                valor += campo.options[x].value + ", ";
				              }
				         }
				    }
				    url += "&label"+cont+"="+encodeURIComponent(label);
				    url += "&valor"+cont+"="+encodeURIComponent(valor);
				    cont++;
				}
			}
		}
		url += "&n="+cont;
		url += "&IdItem="+encodeURIComponent(idItem);
		url += "&GUID="+encodeURIComponent(guid);
		url += "&TipoInstancia="+encodeURIComponent(idInstancia);
		if(cont > 0){
		    me.SaveData(url);
		}
	}
}
