var ajaxCallOn = 0;
var ajaxCallOff = 0;
var maintainanceArr = new Array();
function encodeStr(str){
if(isNaN(str) && !isArray(str)) {
str = str.replace(/&/g, '##AND##');
str = str.replace(/=/g, '##EQUAL##');
str = str.replace('?', '##QUESTION##');
}
return str;
}
function decodeStr(str){
str = str.replace('##AND##', '&');
str = str.replace('##EQUAL##', '=');
str = str.replace('##QUESTION##', '?');
return str;
}
function AjaxInit(){
var AjaxObj = false;
if(window.XMLHttpRequest){
AjaxObj = new XMLHttpRequest();
}else if(window.ActiveXObject){
AjaxObj=new ActiveXObject("Msxml2.XMLHTTP");
if (!AjaxObj){
AjaxObj=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return(AjaxObj);
}
function ajaxVars(){
this.vars = new Array();
this.fnVars = new Array();
this.dbVars = new Array();
this.sendMethod = 'POST';
this.gotoFunction = '';
this.xmlData = '';
this.status = 'loadingDiv';
this.AjaxPostSQL = AjaxPostSQL;
this.createData = createData;
this.errorData = errorData;
this.sqlTracer = sqlTracer;
this.xmlOpener = xmlOpener;
this.maintainance = maintainance;
this.externalErrors = externalErrors;
this.phpFile = "/lib/ajax.data.php";
}
function AjaxPostSQL(){
var pageUrl = this.phpFile;
if(pageUrl.indexOf('?') < 0) {
pageUrl += '?';
}else{
pageUrl += '&';
}
pageUrl += 'random=' + Math.random();
var queryStr = '&dbVars=' + this.dbVars;
for(key in this.vars){
queryStr += '&' + key + '=' + encodeStr(this.vars[key]);
}
if(this.sendMethod == 'GET') {
pageUrl += queryStr;
}
var Ajax = AjaxInit();
try{
var callObj = this;
Ajax.open(this.sendMethod, pageUrl);
Ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
str = '';
for(key in Ajax) {
str += key + "\n";
}
Ajax.onreadystatechange = function(){
var loadingObj = document.getElementById(callObj.status);
if (Ajax.readyState == 4 && Ajax.status == 200) {
if(loadingObj){
loadingObj.innerHTML = 'Done.';
}
handleAjax(Ajax, callObj);
}else if(Ajax.readyState == 1){
if(loadingObj){
loadingObj.innerHTML = 'Connecting to server. Please wait...';
}
}else if(Ajax.readyState < 4){
if(loadingObj){
loadingObj.innerHTML = '
';
}
}else{
var statusLostObj = document.getElementById('statusLost');
if(statusLostObj){
statusLostObj.style.visibility = 'visible';
statusLostObj.style.display = 'block';
}
}
}
Ajax.send(queryStr);
}
catch(e){
alert('Error: Unable to contact the server.');
}
}
function handleAjax(Ajax, callObj){
var response = Ajax.responseXML.documentElement;
var dataObj = response.getElementsByTagName('row');
var errorObj = response.getElementsByTagName('sqlerror');
var textObj = response.getElementsByTagName('textdata');
switch(callObj.vars['action']) {
case "update":
case "modify":
if(Ajax.responseText.indexOf('maintainance()') >= 0){
callObj.maintainance();
break;
}
}
dataArr = callObj.createData(dataObj,textObj);
callObj.errorData(errorObj, dataObj, textObj);
callObj.xmlData = Ajax.responseText;
var xmlLinkObj = document.getElementById('xmlLink');
if(xmlLinkObj) {
xmlLinkObj.href = "javascript:void(0);";
xmlLinkObj.mainObj = callObj;
xmlLinkObj.onclick = function(e) {
var hiddenObj = document.getElementById('xmlajaxdata');
hiddenObj.value = this.mainObj.xmlData;
this.mainObj.xmlOpener();
}
}
eval(callObj.gotoFunction + '(dataArr, callObj.fnVars)');
}
function createData(rowObj, textObj){
if(rowObj.length > 0) {
var str = '';
var dataArr = new Array();
var str = '';
for(var i=0; i 0) {
var errLen = errorTags.length;
for(var i=0; i