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.colDelim = '|||'; this.rowDelim = '^^^'; this.varDelim = '###'; this.vars = new Array(); this.fnVars = new Array(); this.dbVars = new Array(); this.method = 'POST'; this.gotoFunction = ''; this.status = 'loadingDiv'; this.AjaxPostSQL = AjaxPostSQL; this.phpFile = "http://www.onebrighton.net/lib/ajax.data.php"; } function AjaxPostSQL(){ with(this){ url = this.phpFile; this.divObj = document.getElementById(this.status); if(this.divObj) { window.status = "Loading..."; this.divObj.innerHTML = "Loading... Please wait."; } var Ajax=AjaxInit(); try { if(method == 'GET') { url += '?' + queryStr; } Ajax.open(method, url); Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); Ajax.onreadystatechange = function() { if (Ajax.readyState == 4 && Ajax.status == 200) { // alert(vars['action'] + " -> " + gotoFunction); window.status = "Done"; dragFlag = false; if(divObj) { divObj.innerHTML = ''; } var data = Ajax.responseText; if((data.indexOf('Error:') >= 0) && (data.indexOf('RSS') >= 0)) { //alert(data); data = '
Error: Service is temporarily unavailable. Please try again later.'; }else if(data.indexOf('on line') >= 0) { //alert(data); data = '
Error: System error. Please try again later.';
}
//Debug related info
fillSqlDebug(Ajax.responseText);
cleanData = filterData(Ajax.responseText);
switch(vars['action']) {
case 'mysql_query':
case 'mysql_num_rows':
data = data.replace(/(.*)=/g, '');
eval(gotoFunction + '(data, fnVars)');
break;
case 'mysql_fetch_array':
case 'mysql_fetch_assoc':
case 'mysql_fetch_row':
var dataArr = new Array();
dataArr = createDataArr(data, rowDelim, colDelim, varDelim);
if(data.indexOf('Error:')>=0) {
eval(gotoFunction + '(data, fnVars)');
}else if(data=='empty') {
eval(gotoFunction + '(data, fnVars)');
}else{
eval(gotoFunction + '(dataArr, fnVars)');
}
break;
case 'update':
data = data.replace(/(.*)=/g, '');
eval(gotoFunction + '(data, fnVars)');
break;
case 'updateImage':
data = data.replace(/(.*)=/g, '');
eval(gotoFunction + '(data, fnVars)');
break;
case 'modify':
data = data.replace(/(.*)=/g, '');
if(fieldObj)
eval(gotoFunction + '(data, fieldObj)');
else
eval(gotoFunction + '(data)');
break;
case 'runFunction':
data = data.replace(/extdata=/g, '');
eval(gotoFunction + '(data, fnVars)');
break;
default:
data = data.replace(/(.*)=/g, '');
eval(gotoFunction + '(data, fnVars)');
break;
}
}
}
var queryStr = '&dbVars=' + this.dbVars;
for(key in this.vars){
queryStr += '&' + key + '=' + encodeStr(this.vars[key]);
}
Ajax.send(queryStr + "&random=" + Math.random());
}catch (errv) {
Ajax.send(errv);
}
}
}
function encodeStr(str){
if(isNaN(str)) {
str = str.replace('&', '##AND##');
str = str.replace('=', '##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 createDataArr(data, rowDelim, colDelim, varDelim){
var rowCount = 0;
var dataArr = new Array();
if(data.indexOf(rowDelim) >= 0) {
var rowStr = data.split(rowDelim);
for(var i=0; i (.*)<\/p>/);
var ptagR = document.createElement('P');
ptagR.className = 'ajerror';
ptagR.innerHTML = filterData(data);
if(responseObj) {
responseObj.insertBefore(ptagR, responseObj.firstChild);
}else{
alert(filterData(data));
}
}
}
function filterData(data) {
var newdata = data.replace(/ /g, '');
return newdata;
}
//Debug related functions [end]