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 = 'We are currently experiencing technical difficulties. 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]