
/* JavaScript Document
// Clase toXML 

// Autor: Enrique Ignacio Vazquez (eiv)
// 10/12/2005
*/
/* Convierte objetos  de plantillas en XML
// 
// particularmente realizadas en XML 
*/

//------------------------ Inicio ------------------------------------------//
function toXML(){

	//**********************************************************//
	// *******************     Metodo públicos     *******************//
	//**********************************************************/
	// Metódo:  devuelve un XML con los nombre y valores del los elementos del Form 
	this.form2XML=function(iFr){
		if (iFr == undefined){
			iFr=0; // valor default 
		};
		var fl=document.forms[iFr].elements.length;
		var xml_str="<main><registro>";
		var nombre;
		var valor;
		var tipo;
		var estado;
		for(i=0;i<fl;i++){
			nombre=document.forms[iFr].elements[i].name;
			valor=document.forms[iFr].elements[i].value;
			//valor=valor.replace(/ /g,"|");
			tipo=document.forms[iFr].elements[i].type;
			if((tipo!="button") && (valor!="") && (nombre!="") && (valor!=undefined) && (nombre!="D.XML")){
				if(tipo=="checkbox" || tipo=="radio"){
					estado=document.forms[iFr].elements[i].checked;
					if(estado){
						xml_str=xml_str+ "<" + nombre + ">" + valor + "</" + nombre +">";
					}
				}else{
					xml_str=xml_str+ "<" + nombre + ">" + valor + "</" + nombre +">";
				}; // end if tipo 
			}; // end if 
		}; // end for
		xml_str=xml_str+'</registro></main>'
		return xml_str;
	};// end metodo	form2XML
	//*********************     End function     *********************//	
	
	/**********************************************************/
	// Construye un XML para ejecutar removes
	this.toBorrar=function(DKs){
		// recibe una lista de DK's separada por comas
		var xml_str="";
		if (DKs!=""){
			xml_str=xml_str+"<main>";
			var k_array=DKs.split(",");
			var i;
			for (i=0;i<k_array.length ;i++){
				xml_str=xml_str+"<registro><D.k>" + k_array[i] + "</D.k><D.action>remove</D.action></registro>";
			}
			xml_str=xml_str+'</main>'
		}
		// si ña ñista de DK's estaba en blanco devuelve cadena vacia
		return xml_str;
	}; // end metodo toBorrar
	
	
	
	
	//**********************************************************/
	// Metódo: Devuelve los elementos  del form, como lista de parametros de una petición GET o POST
	this.form2param = function(iFr){
		if (iFr == undefined){
			iFr=0; // valor default 
		}
		var fl=document.forms[iFr].elements.length;
		var aux_str="";
		var param_str="";
		var nombre;
		var valor;
		var tipo;
		var estado;
		for(i=0;i<fl;i++){
			nombre=document.forms[iFr].elements[i].name;
			valor=document.forms[iFr].elements[i].value;
			tipo=document.forms[iFr].elements[i].type;
			if((tipo!="button") && (valor!="") && (nombre!="") && (valor!=undefined)){
				if(tipo=="checkbox" || tipo=="radio"){
					estado=document.forms[iFr].elements[i].checked;
					if(estado){
						aux_str += nombre + "=" + valor + "&";
					}
				}else{
					aux_str += nombre + "=" + valor + "&";
				}; // end if tipo 
			}; // end if 
		}; // end for
		//elimina el ultimo caracter que es un &
		if (aux_str.length > 0) {
			param_str = aux_str.substr(0,aux_str.length-1);
		}
	
		return param_str;
	}
	
	
	/**********************************************************/
	// Construye una estructura de datos para enviar por POST 
	this.toBorrarParam=function(Dy,Dk){
		// recibe un D.y + D.k
		var aux_str="";
		if (Dk!=""){
			aux_str=aux_str+"D.y=" +Dy + "&D.k=" + Dk + "&D.action=remove";;
		}
		//si el Dk s estaba en blanco devuelve cadena vacia
		return aux_str;
	}; // end metodo toBorrar
}; // end clase
    /**********************************************************/
	

// ---------------------------- Esto es todo ------------------------------------- //