/*
 * Objeto MngForm
 * 
 * Para conecciones con otros formularios
 * 
 */

YAHOO.namespace("bd.services");

YAHOO.bd.services.MngFrm=function(){
	//this.init();
};

YAHOO.bd.services.MngFrm.prototype = {
	init: function() {
		//alert("asfdas");
		
	},
	
	setUrl: function(pUrl){
		this.vUrl = pUrl;
	},
	getUrl: function(){
		return this.vUrl;
	},
	setMethod:function(pMethod){
		if(pMethod == undefined)
			{this.sendLike = "POST";}
		else
			{this.sendLike = pMethod;}
	},
	getMethod:function(){
		if(this.sendLike!=undefined)
			return this.sendLike;
		else
			return "POST";
	},
	addField:function(nomAtributo, valorAtributo, validacion){
		if(YAHOO.lang.isUndefined(this.parameters))
			this.parameters = new Array();
		if(YAHOO.lang.isUndefined(valorAtributo))
			return false;
		this.parameters.push({nombre:nomAtributo,valor: valorAtributo});
		return true;
	},
	onSendForm:function(pObj)
			{YAHOO.log("Datos Enviados");alert('original');
	},
	onErrorSendForm:function(pObj)
			{YAHOO.log("Todo mal se clavo el send form");
	},
	getParameters:function(){
		var cadena = '';
		for (var i  in this.parameters)
			cadena += this.parameters[i].nombre+'='+(this.parameters[i].valor)+'&';
		cadena +="cache="+Math.random()*1000;
		return cadena;
	},
	sendForm:function (){
		YAHOO.log("enviando....");		
		var callback = 
		{
		success: this.onSendForm,
		failure: this.onErrorSendForm,
		argument:[]
		};
		
		if(this.getUrl().substr(this.getUrl().length - 4,this.getUrl().length)==".xml") {
			var transaction = YAHOO.util.Connect.asyncRequest("GET",this.getUrl(), callback, null);
		} else {
			//alert(this.getParameters());
			if (this.sendLike == "GET"){
				var transaction = YAHOO.util.Connect.asyncRequest("GET" ,this.getUrl() + '?'+ this.getParameters(), callback);
			}else{
				var transaction = YAHOO.util.Connect.asyncRequest("POST",this.getUrl(), callback,this.getParameters());
			}
		}	
	},
	URLEncode:function (cadena)	{
			// The Javascript escape and unescape functions do not correspond
			// with what browsers actually do...
			var SAFECHARS = "0123456789" +					// Numeric
							"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
							"abcdefghijklmnopqrstuvwxyz" +
							"-_.!~*'()";					// RFC2396 Mark characters
			var HEX = "0123456789ABCDEF";
		
			var plaintext = cadena;
			var encoded = "";
			for (var i = 0; i < plaintext.length; i++ ) {
				var ch = plaintext.charAt(i);
			    if (ch == " ") {
				    encoded += "+";				// x-www-urlencoded, rather than %20
				} else if (SAFECHARS.indexOf(ch) != -1) {
				    encoded += ch;
				} else {
				    var charCode = ch.charCodeAt(0);
					if (charCode > 255) {
					    alert( "Unicode Character '" 
		                        + ch 
		                        + "' cannot be encoded using standard URL encoding.\n" +
						          "(URL encoding only supports 8-bit characters.)\n" +
								  "A space (+) will be substituted." );
						encoded += "+";
					} else {
						encoded += "%";
						encoded += HEX.charAt((charCode >> 4) & 0xF);
						encoded += HEX.charAt(charCode & 0xF);
					}
				}
			} // for
		
			return encoded;
		}
	
};

