/** 
 * @fileoverview Clase serverLoad,
 * Administra petisiones específicas via AJAX 
 * @author Enrique Ignacio Vazquez (EIV) eivazquez@maat-g.com, ei_vazquez@hotmail.com
 * @version 0.1
 */

/**
 * @requires XMLmanager.js
*/

/**
 * Construye un nuevo objeto serverLoad, gestiona peticiones 
 * al servidor, variables, script, archivos texto,html,etc.
 * @constructor
 * @return Un objeto serverLoad
 */

function serverLoad(){
/**
 * Cantidad de variables y/o funciones recibidas.
 */
	this.COUNT=0;
/**
 * Contenido html/txt/etc recibido.
 */
	this.text='';
/**
 * Variables que se envian al servidor
 */	
	this.sendValues;
/**
 * Evento: se le asigna una función controladora
 */
	this.onLoad=undefined; 
	
	var me=this;
	

/**
 * Gestiona lectura de archivos TXT, html o generados por cgi's.
 *
 * @param url  url ruta completa, puede ser un txt, cgi, etc.
 * @param metodo POST o GET default GET
 * @param asc true o false , si permite realizar peticiones multi-hilos, default false
 */
	this.loadTXT=function(url,metodo,asc){
		var mySend = new callServer();
		mySend.onLoad=function(ok){
			if (ok){
				me.text=mySend.DocTxt;
				if (me.onLoad==undefined){
					window.status='Ok';
				}else { 
					me.onLoad(true);
				}
			};
		};
		mySend.sendValues=me.sendValues;
		mySend.loadTXThttp(url,metodo,asc);
	};
	
/**
 * Gestiona lectura de Variables y funciones.
 * @param url  url ruta completa, puede ser un txt, cgi, etc.
 * @param metodo POST o GET default GET
 * @param asc true o false , si permite realizar peticiones multi-hilos, default false
 * 
 */
	
	this.loadVar=function(url,metodo,asc){
		var mySend = new callServer();
		mySend.onLoad=function(ok){
			if (ok){
				me.makeVar(mySend.DocTxt);
				me.text=mySend.DocTxt;
				if (me.onLoad==undefined){
					window.status='Ok';
				}else { 
					me.onLoad(true);
				}
			};
		};
		mySend.sendValues=me.sendValues;
		mySend.loadTXThttp(url,metodo,asc);
	};
	
/**
 * Convierte el contenido en variables y funciones del objeto
 *
 * @param varString  cadena con formato 
 * 					 variable1=valor1;variable2=valor2....;variableN=valorN;
 * @return cada variable con su respectivo valor.
 */
	this.makeVar=function(varString){
		var var_array=varString.replace(/\/\*.[^\*\/]*\*\//g,"").split(';'); // 1era separación
		me.COUNT=var_array.length;
		for (var i=0; i<var_array.length; i++){
			var _var=var_array[i].split('=');
			if(_var[1]!=undefined){				
				var _c="me." + _var[0].toString() + "=" + _var[1] + ";";
				try {
					eval(_c);
				}catch(e){
					alert( _var[0].toString() + "=" + _var[1] + " no se pudo definir..")
				}
			}
		}
		
	};
}; // Fin ServerLoad

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

