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(); */