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 = "/lib/ajax_voucher.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;
}
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;
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]);
}
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('%', '##PERCENT##');
str = str.replace('?', '##QUESTION##');
}
return str;
}
function decodeStr(str){
str = str.replace('##AND##', '&');
str = str.replace('##EQUAL##', '=');
str = str.replace('##QUESTION##', '?');
str = str.replace('##PERCENT##', '%');
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 addindb(table, id, p_id){
var ajaxVar = new ajaxVars();
var data = id.split("_");
var txtobj = document.getElementById('textbox_'+data[1]);
ajaxVar.vars['table'] = table;
ajaxVar.vars['prod_color'] = txtobj.value;
ajaxVar.vars['prod_id'] = p_id;
ajaxVar.dbVars = ['prod_color','prod_id'];
ajaxVar.vars['action'] = 'update';
ajaxVar.gotoFunction = "addedindb";
ajaxVar.fnVars['prod_id'] = p_id;
ajaxVar.AjaxPostSQL();
}
function addedindb(data, fnVars){
var ajaxVar = new ajaxVars();
ajaxVar.vars['sql_type'] = "select";
ajaxVar.vars['sql_what'] = "*";
ajaxVar.vars['sql_from'] = "productcolor_tbl";
ajaxVar.vars['sql_where'] = 'prod_id='+ fnVars['prod_id'];
ajaxVar.vars['action'] = "mysql_fetch_assoc";
ajaxVar.gotoFunction = 'show_data';
ajaxVar.fnVars['prod_id'] = fnVars['prod_id'];
ajaxVar.AjaxPostSQL();
}
function show_data(data, fnVars ){
if(data['id'].length > 0){
document.write("");
document.write("| ");
document.write(" | | ");
document.write("
");
for(var j=0; j");
document.write("| ");
document.write(" |
");
}
}
}
function modifyStatus(data, fieldObj){
Obj = document.getElementById('loadingdiv');
if(Obj) {
Obj.innerHTML = 'Done';
}
fieldObj.form.id.value = data;
}
function empty(data){
}
function validateVoucher(obj, FormType,grand_tot,shipping_cost) {
var objvAmt = document.getElementById('vouch_amt');
var objvType = document.getElementById('vouch_type');
var objvValid = document.getElementById('vouch_valid');
objvAmt.value = 0;
objvType.value = 0;
objvValid.value = -1;
grand_total = document.getElementById('final_total').innerHTML;
grand_total = number_format(parseFloat(grand_total)- parseFloat(shipping_cost),2);
if(document.getElementById('gift_wrap').checked == true){
var giftcost = 3.95;
grand_total = number_format(parseFloat(grand_total)-parseFloat(giftcost),2);
}
if (obj.value.length>0) {
var ajaxVar = new ajaxVars();
ajaxVar.phpFile = "http://www.giftlab.co.uk/voucherCheck.php";
ajaxVar.gotoFunction = "VoucherResult";
ajaxVar.vars['voucher'] = obj.value;
ajaxVar.vars['total'] = grand_total;
ajaxVar.fnVars['ref_totl'] = grand_total;
ajaxVar.fnVars['ship_tot'] = shipping_cost;
ajaxVar.fnVars['MsgDiv'] = 'ValidateMsg';
ajaxVar.fnVars['FormType'] = FormType;
ajaxVar.AjaxPostSQL();
}else{
objvValid.value=1;
}
}
function VoucherResult(data, fnVars) {
var Values = data.split("|###|");
var MsgDiv = document.getElementById(fnVars['MsgDiv']);
var objvAmt = document.getElementById('vouch_amt');
var objvType = document.getElementById('vouch_type');
var objvValid = document.getElementById('vouch_valid');
if (Values[0]=='FALSE') {
objvAmt.value = 0;
objvType.value = 0;
alert("The promotional code you have entered is wrong. Please try again.");
if(document.getElementById('gift_wrap').checked == true){
var gift_price=3.95;
}else{
var gift_price=0;
}
var totl = parseFloat(fnVars['ref_totl']) + parseFloat(fnVars['ship_tot']);
totl = parseFloat(totl) + parseFloat(gift_price);
document.getElementById('final_total').innerHTML = number_format(totl,2) ;
document.getElementById('voucher').value = '';
objvValid.value = 1;
}else{
alert("Your promotional code has been applied successfully.");
//here we need to calculate the new value
var change_amt=0;
if(document.getElementById('gift_wrap').checked == true){
var gift_price=3.95;
}else{
var gift_price=0;
}
change_amt = (fnVars['ref_totl'] - Values[1]) + fnVars['ship_tot']+gift_price;
document.getElementById('final_total').innerHTML = number_format(change_amt,2);
var giftopt = Values[5];
var gift_avail = Values[4];
document.getElementById('promot_code_dis').style.visibility = "visible";
document.getElementById('promot_code_dis').style.display = "block";
document.getElementById('promot_code_disdata').style.visibility = "visible";
document.getElementById('promot_code_disdata').style.display = "block";
document.getElementById('disp_value').innerHTML = number_format(Values[1],2);
document.getElementById('promot_code_tit').style.visibility = "hidden";
document.getElementById('promot_code_tit').style.display = "none";
document.getElementById('promot_code_data').style.visibility = "hidden";
document.getElementById('promot_code_data').style.display = "none";
objvValid.value = 1;
objvAmt.value = Number(Values[1]);
objvType.value = Number(Values[2]);
}
}
/*
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();
*/