/*
	Author: 	Orlando M. Aligam Jr.
	Date:		2007-05-22
	Modified:	2008-06-22
*/
var sRequestResult = "";

function Request() {
	this.doRequest 		= doRequest_;
	this.GetRows 		= GetRows_;
	this.GetRowsJson 	= GetRowsJson_;
	this.FetchXML 		= FetchXML_;
	this.FetchTXT 		= FetchTXT_;
	this.SetMethod 		= SetMethod_;
	this.SetIncURL 		= SetIncURL_;
	var sNewMethod = "";
	var sIncURL = "";
	
	function SetMethod_(sMethod) {
		sNewMethod = sMethod;
	}
	
	function SetIncURL_(sURL) {
		sIncURL = sURL;
	}
	
	function doRequest_(sURL, bReqType, bOutputType) {
		if (window.XMLHttpRequest)		// branch for native XMLHttpRequest object
			http_request = new XMLHttpRequest();
		else if (window.ActiveXObject)	// branch for IE/Windows ActiveX version
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
			
		if (!http_request) { 
			alert('Cannot create an XMLHTTP instance.');
			return false;
		}
	
		http_request.onreadystatechange = function() {
			if (http_request.readyState == 4 && http_request.status == 200) {
				if(bOutputType=="TXT")
					sRequestResult = http_request.responseText;
				else
					sRequestResult = http_request.responseXML.documentElement;
				
				eval(sNewMethod);
				
				window.status = "Done";
				
				return true;
			}
			else {
				window.status = "Processing request...";
			}
		}
		
		http_request.open('GET', sURL, bReqType);
		http_request.send(null);
	}
	
	
	
	function GetRows_(sTableName, sFields, sSearch, sOrder) {
		sRequestResult = "";
		sURL = sIncURL+"inc/getrows.php?sTableName="+ sTableName + "&sFields=" + sFields + "&sSearch=" + sSearch + "&sOrder=" + sOrder;
		this.doRequest(sURL, true, "XML");
	}
	
	function GetRowsJson_(sTableName, sFields, sSearch, sOrder, sFile) {
		sRequestResult = "";
		sFile = (sFile==undefined) ? "json":sFile;
		sURL = sIncURL+"inc/getrows_"+sFile+".php?sTableName="+ sTableName + "&sFields=" + sFields + "&sSearch=" + sSearch + "&sOrder=" + sOrder;
		this.doRequest(sURL, true, "TXT");
	}
	
	function FetchXML_(sURL) {
		sRequestResult = "";
		this.doRequest(sURL, true, "XML");
	}
	
	function FetchTXT_(sURL) {
		sRequestResult = "";
		this.doRequest(sURL, true, "TXT");
	}
	
	
}

function encode(sString) {
	var unencoded = sString;
	return escape(unencoded);
}

function decode(sString) {
	var encoded = sString;
	return unescape(encoded.replace(/\+/g,  " "));
}

function GetJsonArray(sVal) {
	var oResponse = eval('('+sVal+')');
	return oResponse.response;
}
