var linuxabc_ajax = {
    AjaxPool: [],
    GetAjax: function (){
        for (var i = 0; i < this.AjaxPool.length; i ++){
            if (this.AjaxPool[i].readyState == 0 || this.AjaxPool[i].readyState == 4) return this.AjaxPool[i];
        }    
        this.AjaxPool[this.AjaxPool.length] = this.InitAjax();
        return this.AjaxPool[this.AjaxPool.length - 1];
    },
    InitAjax: function () {
		var ajaxt=false; 
		try {
			ajaxt = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
		try {
			ajaxt = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (e) {
			ajaxt = false; 
		} 
		}
		if (!ajaxt && typeof XMLHttpRequest!='undefined') { 
			ajaxt = new XMLHttpRequest(); 
			if (ajaxt.overrideMimeType) ajaxt.overrideMimeType('text/xml');
		} 
		return ajaxt;
	}
}; 
var Ajax = new Object();
Ajax.send = function(url, method, callback, data) {
	if(typeof(url) == 'undefined' || typeof(method) == 'undefined' || !(method=="GET"||method=="POST")) return false;
	var req = linuxabc_ajax.GetAjax();
	url +=(url.indexOf("?") > 0) ? "&randnum=" + Math.random() : "?randnum=" + Math.random();
	req.open(method, url, true); 
	if(method == "POST"){
		req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
		req.send(data); 
	}
	else req.send(null);
	req.onreadystatechange = function() { 
		if (req.readyState == 4 && req.status == 200) (method == "POST") ? callback(req) : callback(req, data);
	}
}
Ajax.sendPOST = function(url, callback, data) {
	this.send(url, "POST", callback, data);
}
Ajax.sendGET = function(url, callback, args) {
	this.send(url, "GET", callback, args);
}
function AjaxInfo(infoId, url, postData, flag) {
	this.url = url;
	this.infoId = infoId;
	this.gets = gets;
	this.getInfo = getInfo;
	var tdobj = document.getElementById(flag+infoId);
	var loading = '<p align="center">Loading...</p><p align="center"><span onclick="Javascript:AjaxInfoClose(\''+infoId+'\')" style="color:#ff0000;cursor:hand;">Close Loading...</span></p>';
	function gets() {
		tdobj.innerHTML = loading;
		Ajax.sendPOST(url,getInfo,postData);
	}	
	function getInfo(r) {
		var info = r.responseText;
		if (info.length > 0) tdobj.innerHTML = info;	
	}
}
function AjaxInfoOpen(infoId, url, flag){
	if (typeof(url) == 'undefined' || url == '') var url = 'viewinfo.php';
	if (typeof(flag) == 'undefined' || flag == '') var flag = 'td_';
	var postData = "id="+infoId;
	new AjaxInfo(infoId, url, postData, flag).gets();
}
function AjaxInfoClose(infoId, flag){
	if (typeof(flag) == 'undefined' || flag == '') var flag = 'td_';
	var tdobj = document.getElementById(flag+infoId);
	tdobj.innerHTML = '';
}
function AjaxClient(url, method, data, returnid) {
	if (typeof(url) == 'undefined' || typeof(method) == 'undefined' || !(method=="GET"||method=="POST")) return false;
	if (typeof(returnid) != 'object') returnid = document.getElementById(returnid);
	var req = linuxabc_ajax.GetAjax();
	url +=(url.indexOf("?") > 0) ? "&randnum=" + Math.random() : "?randnum=" + Math.random();
	req.open(method, url, true);
	req.onreadystatechange = function() { 
		if (req.readyState == 4 && req.status == 200) returnid.innerHTML = req.responseText;
	}
	if(method == "POST"){
		req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
		req.send(data); 
	}
	else {
		req.send(null);
	}
}
function AjaxServer(url, method, data) {
	if (typeof(url) == 'undefined' || typeof(method) == 'undefined' || !(method=="GET"||method=="POST")) return false;
	var req = linuxabc_ajax.GetAjax();
	url +=(url.indexOf("?") > 0) ? "&randnum=" + Math.random() : "?randnum=" + Math.random();
	req.open(method, url, true); 
	if(method == "POST"){
		req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
		req.send(data); 
	}
	else req.send(null);
	req.onreadystatechange = function() { 
		if (req.readyState == 4 && req.status == 200) eval(req.responseText);
	}
}
function AjaxOpenInfo(infoId, url, flag){
	if (typeof(url) == 'undefined' || url == '') var url = 'viewinfo.php';
	if (typeof(flag) == 'undefined' || flag == '') var flag = 'td_';
	var postData = "id="+infoId;
	var loading = '<p align="center">Loading...</p><p align="center"><span onclick="Javascript:AjaxCloseInfo(\''+infoId+'\')" style="color:#ff0000;cursor:hand;">Close Loading...</span></p>';
	var tdobj = document.getElementById(flag+infoId);
	tdobj.innerHTML = loading;
	AjaxClient(url, 'POST', postData, tdobj);
}
function AjaxCloseInfo(infoId, flag){
	if (typeof(flag) == 'undefined' || flag == '') var flag = 'td_';
	var tdobj = document.getElementById("td_"+infoId);
	tdobj.innerHTML = '';
}