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 = "GLOBAL_DOC_ROOTlib/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 = "Saving changes... Please wait.";
}
var Ajax=AjaxInit();
try {
if(method == 'GET') {
url += '?' + queryStr;
}
// alert(11);
// alert(method);
// alert(url);
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) {
window.status = "Done";
dragFlag = false;
if(divObj) {
divObj.innerHTML = 'Done.';
}
var data = Ajax.responseText;
//alert(Ajax.responseText);
if(data.indexOf('on line') >= 0) {
document.body.innerHTML = data;
return false;
}
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_row':
case 'mysql_fetch_assoc':
var dataArr = new Array();
dataArr = createDataArr(data, rowDelim, colDelim, varDelim);
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(/(.*)=/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]);
}
//alert(queryStr);
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##');
str = str.replace('"', '##QUOTE##');
}
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= 0) {
var colStr = rowStr[i].split(colDelim);
for(var j=0; j= 0) {
var varStr = colStr[j].split(varDelim);
var key = varStr[0];
if(rowCount == 0) dataArr[key] = new Array();
dataArr[key][rowCount] = varStr[1];
}
}
rowCount++;
}
}
}else{
}
return dataArr;
}
function update(table, id, fieldObj, fieldName){
var ajaxVar = new ajaxVars();
ajaxVar.vars['action'] = 'update';
ajaxVar.vars['table'] = table;
ajaxVar.gotoFunction = "updateStatus";
ajaxVar.dbVars = fieldName;
ajaxVar.vars['id'] = id;
ajaxVar.vars[fieldName] = fieldObj.value;
ajaxVar.AjaxPostSQL();
}
function updateImage(table, id, fieldName, fieldImageA){
if(fieldImageA.hasChildNodes()){
var imageNode = fieldImageA.firstChild;
if(imageNode.src.indexOf('/active.gif')>=0) {
var fieldValue = 0;
var newImg = imageNode.src.replace(/\/active.gif/g, '/inactive.gif');
imageNode.alt = 'Inactive';
}else{
var fieldValue = 1;
var newImg = imageNode.src.replace(/\/inactive.gif/g, '/active.gif');
imageNode.alt = 'Active';
}
imageNode.src = newImg;
}
var ajaxVar = new ajaxVars();
ajaxVar.vars['action'] = 'modify';
ajaxVar.vars['table'] = table;
ajaxVar.vars[fieldName] = fieldValue;
ajaxVar.vars['id'] = id;
ajaxVar.gotoFunction = "empty";
ajaxVar.dbVars = fieldName;
ajaxVar.fieldObj = new Object();
ajaxVar.AjaxPostSQL();
}
function modify(table, fieldElm){
var ajaxVar = new ajaxVars();
ajaxVar.vars['action'] = 'modify';
ajaxVar.vars['table'] = table;
ajaxVar.gotoFunction = "modifyStatus";
switch(fieldElm.type) {
case "radio":
case "text":
case "select":
case "select-one":
ajaxVar.fieldObj = fieldElm;
ajaxVar.dbVars = fieldElm.name;
ajaxVar.vars['id'] = fieldElm.form.id.value;
ajaxVar.vars[fieldElm.name] = fieldElm.value;
break;
default:
if(fieldElm.id.indexOf('__Frame') >=0) {
var frmName = fieldElm.id;
editor_frame = document.getElementById(frmName);
editor_source = editor_frame.contentWindow.document.getElementById('eEditorArea');
var mContents = editor_source.contentWindow.document.body.innerHTML;
hidElm = document.getElementById(frmName.replace(/___Frame/g, ''));
hidElm.value = mContents;
ajaxVar.fieldObj = hidElm;
ajaxVar.dbVars = hidElm.name;
ajaxVar.vars['id'] = hidElm.form.id.value;
ajaxVar.vars[hidElm.name] = hidElm.value;
}
break;
}
ajaxVar.AjaxPostSQL();
}
function updateStatus(data){
}
function modifyStatus(data, fieldObj){
Obj = document.getElementById('loadingdiv');
if(Obj) {
Obj.innerHTML = 'Done';
}
fieldObj.form.id.value = data;
}
function empty(data){
}
function ADAjaxPostData(url, queryStr, loadingDiv){
divObj = document.getElementById(loadingDiv);
if(divObj) {
// window.status = "Loading...";
// divObj.innerHTML = "Loading...
";
}
var Ajax=AjaxInit();
try {
Ajax.open('POST', url);
Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
Ajax.onreadystatechange = function() {
if (Ajax.readyState == 4 && Ajax.status == 200) {
divObj.innerHTML = Ajax.responseText;
window.status = "Done";
}
}
Ajax.send(queryStr + "&random=" + Math.random());
}catch (errv) {
Ajax.send(errv);
}
}
/*
function demo(data){
alert (data);
}
var ajaxVar = new ajaxVars();
ajaxVar.vars['sql'] = "select * from persons order by id";
ajaxVar.vars['action'] = "mysql_fetch_array";
ajaxVar.gotoFunction = "demo";
ajaxVar.AjaxPostSQL();
*/