// JavaScript Document

var simpleajax = new Object();
	simpleajax.cache = new Array();
	simpleajax.dbconnection = function()
	{
		this.host = false;
		this.user = false;
		this.pass = false;
		this.db = false;
		this.query = false;
		this.prefix = false;
		this.mode = false;
		this.arguments = false;
		this.html = function()
		{	
			var html = "";
				if(this.host) html+= 'A='+simpleajax.encodeSpecialChars(this.host)+'&';
				if(this.user) html+= 'B='+simpleajax.encodeSpecialChars(this.user)+'&';
				if(this.pass) html+= 'C='+simpleajax.encodeSpecialChars(this.pass)+'&';
				if(this.db) html+= 'D='+simpleajax.encodeSpecialChars(this.db)+'&';
				if(this.query) html+= 'F='+simpleajax.encodeSpecialChars(this.query)+'&';
				if(this.prefix) html+= 'E='+simpleajax.encodeSpecialChars(this.prefix)+'&';
				if(this.mode) html+= 'G='+simpleajax.encodeSpecialChars(this.mode)+'&';
				if(this.arguments) html+= 'I='+simpleajax.encodeSpecialChars(this.arguments)+'&';
			return html;	
		}
	}
	simpleajax.encodeSpecialChars = function(expressao)
	{
		return escape(expressao);
	}
	simpleajax.obj = function(prefix)
	{
		this.prefix = prefix;
		this.relativePath = '';
		this.host = '';
		this.user = '';
		this.pass = '';
		this.db = '';
		this.afterEvent = function(){};
		this.result = new Array();
		this.mode = 'sql'; // mode=sql ou mode=php
		this.getRelativePath = function(script)
		{
			var scripts = document.getElementsByTagName('SCRIPT');
			if(!scripts) return false;
			var regexp = new RegExp(script,"gi");
			for(var i = 0; i<scripts.length; i++)
			{
				if(String(scripts.item(i).src).match(regexp))
					this.relativePath = scripts.item(i).src.replace(regexp,'');
			}
		}
		this.get = function(query)
		{
			this.getRelativePath('simpleajax.js');
			
			
			if(this.mode == 'sql')
			{
				var url = new simpleajax.dbconnection();
					url.prefix = this.prefix;
					url.host = this.host;
					url.user = this.user;
					url.pass = this.pass;
					url.db = this.db;
					url.mode = this.mode;
					url.query = simpleajax.encodeSpecialChars(query);
				simpleajax.ajaxquery(this.relativePath+"singlequery.php?"+url.html(),this.prefix);
			} else if(this.mode == 'mysqldump')
			{
				var url = new simpleajax.dbconnection();
					url.prefix = this.prefix;
					url.host = this.host;
					url.user = this.user;
					url.pass = this.pass;
					url.db = this.db;
					url.mode = this.mode;
				this.ajax(url.html());		
			} else if(this.mode == 'customphp')
			{
				
				
				
				var arr = query.split('?');
				//var url = arr[0];
				//var args = arr[1];
				
				this.ajax(arr);		
			
			} else {
				var url = new simpleajax.dbconnection();
					url.mode = this.mode;
					url.arguments = query;
					this.ajax(url.html());
			}
			simpleajax.cache[this.prefix] = this;
		}
		this.ajax = function(url)
		{
			var obj = this;
			var result = function()
			{
				if (xmlRequestObj.readyState == 4 && (xmlRequestObj.status == 200 || xmlRequestObj.status == 304))
				{
					obj.result = new Array();
					var type = false;	
					if(obj.mode == 'sql')
					{
						eval(xmlRequestObj.responseText);
						obj.result = result;
					} else obj.result = xmlRequestObj.responseText;
					obj.afterEvent(obj);
				}
			}
		
			if(this.mode == 'customphp')
			{
				var xmlRequestObj = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
				xmlRequestObj.onreadystatechange = result;
				xmlRequestObj.open("POST",url[0], true);
				xmlRequestObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				xmlRequestObj.send(url[1]);
			} else {
				var xmlRequestObj = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
				xmlRequestObj.onreadystatechange = result;
				xmlRequestObj.open("POST",this.relativePath+'singlequery.php', true);
				xmlRequestObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				xmlRequestObj.send(url);
			}
			
		}
		
	}
	simpleajax.ajaxquery = function(url,prefix) 
	{
		var result = function()
		{
			if (xmlRequestObj.readyState == 4 && (xmlRequestObj.status == 200 || xmlRequestObj.status == 304))
			{
				var obj = simpleajax.cache[prefix];
					obj.result = new Array();
				
				
				var type = false;	
				if(obj.mode == 'sql')
				{
					eval(xmlRequestObj.responseText);
					obj.result = result;
				} else obj.result = xmlRequestObj.responseText;
				obj.afterEvent(obj);
			}
		}

		var xmlRequestObj = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
			xmlRequestObj.onreadystatechange = result;
			xmlRequestObj.open("POST",obj.relativePath+'singlequery.php', true);
			xmlRequestObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlRequestObj.send(url);
			
			
	}