function popitup(url) { var width = 500; var height = 300; var left = (screen.width - width)/2; var top = (screen.height - height)/2; var params = 'width='+width+', height='+height; params += ', top='+top+', left='+left; params += ', directories=no'; params += ', location=no'; params += ', menubar=no'; params += ', resizable=no'; params += ', scrollbars=no'; params += ', status=no'; params += ', toolbar=no'; params += ', titlebar=no'; newwin=window.open(url,'Info', params); if (window.focus) {newwin.focus()} return false; } function clearSession(bvalue) { if (bvalue == 'Proceed to Payment') { xmlHttp = getXmlHttpObj(); xmlHttp.open("GET","clear_session.php",true); xmlHttp.send("null"); } } function getXmlHttpObj() { try { xmlHttp = new XMLHttpRequest(); } catch (e) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return false; } } } return xmlHttp; } function getDollarArray() { var relSize = document.getElementById('relsize').value; var dollarArr = new Array(); for (var i=0; i < relSize; i++) { sel = eval('document.getElementById("sel_'+i+'")'); selsize = sel.options.length; dollarArr[i] = new Array(); for (var j = 0; j < selsize; j++) { var priceKey = sel.options[j].value.split("_"); dollarArr[i][j] = priceKey[0]; } } return dollarArr; } function euroToDollarCart(cartSize) { var crttotal = document.getElementById('crttotal').value; var relSize = document.getElementById('relsize').value; var dollarArr = getDollarArray(); var currency = document.getElementById('curcurrency').value; if (currency == 'dollar') { return false; } else { document.getElementById('curcurrency').value = "dollar"; } cur = getCheckedValue(document.form1.currency); for (i = 0; i < cartSize; i++) { priceDiv = eval('document.getElementById("cartid'+i+'")'); dollarVal = eval('document.getElementById("hiddendollar'+i+'")').value; priceDiv.innerHTML = '$' + sprintf("%01.2f",dollarVal); } if (document.form1.coupon.value != '') { crttotal = parseFloat(crttotal); discount = parseFloat(crttotal)*.1; discount = parseFloat(discount).toFixed(2); discount = customRound(discount); //discount = discount.toFixed(2); tot = parseFloat(crttotal) - parseFloat(discount); tot = parseFloat(tot).toFixed(2); } else { tot = parseFloat(crttotal).toFixed(2); } document.getElementById('totcart').innerHTML = '$' + sprintf("%01.2f",tot); xmlHttp = getXmlHttpObj(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { document.getElementById('showMessage').style.display='none'; var oneEuroDollarRate = xmlHttp.responseText; var oneDollarEuroRate = 1/(oneEuroDollarRate); for (var i=0; i < relSize; i++) { sel = eval('document.getElementById("sel_'+i+'")'); selsize = sel.options.length; for (var j = 0; j < selsize; j++) { euroVal = eval(dollarArr[i][j] * oneDollarEuroRate).toFixed(2); euroVal = customRound(euroVal); var dollarVal = "$"+dollarArr[i][j]; var currentVal = sel.options[j].text; var indx1 = eval(currentVal.indexOf(euroVal)-1); var indx2 = eval(currentVal.indexOf(euroVal)+(euroVal.length)); newval1 = currentVal.substring(0,indx1); newval2 = currentVal.substring(indx2, currentVal.length); newprice = newval1 + dollarVal + newval2; sel.options[j].text = newprice; } } } } xmlHttp.open("GET","exchange.php?dollar",true); document.getElementById('showMessage').style.display='block'; xmlHttp.send("null"); } function dollarToEuroCart(cartSize) { var relSize = document.getElementById('relsize').value; var dollarArr = getDollarArray(); var currency = document.getElementById('curcurrency').value; if (currency == 'euro') { return false; } else { document.getElementById('curcurrency').value = "euro"; } cur = getCheckedValue(document.form1.currency); xmlHttp = getXmlHttpObj(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { document.getElementById('showMessage').style.display='none'; var oneEuroDollarRate = xmlHttp.responseText; var oneDollarEuroRate = 1/(oneEuroDollarRate); cartTotal = 0; for (i = 0; i < cartSize; i++) { priceDiv = eval('document.getElementById("cartid'+i+'")'); dollarVal = eval('document.getElementById("hiddendollar'+i+'")').value; euroVal = eval(dollarVal * oneDollarEuroRate).toFixed(2); euroVal = customRound(euroVal); cartTotal = parseFloat(cartTotal) + parseFloat(euroVal); priceDiv.innerHTML = '€' + euroVal; } cartTotal = sprintf("%01.2f", cartTotal); if (document.form1.coupon.value != '') { crttotal = parseFloat(cartTotal); discount = parseFloat(crttotal)*.1; discount = parseFloat(discount).toFixed(2); discount = customRound(discount); //discount = discount.toFixed(2); tot = parseFloat(crttotal) - parseFloat(discount); tot = parseFloat(tot).toFixed(2); } else { tot = cartTotal; } document.getElementById('totcart').innerHTML = '€' + tot; for (var i=0; i < relSize; i++) { sel = eval('document.getElementById("sel_'+i+'")'); selsize = sel.options.length; for (var j = 0; j < selsize; j++) { euroVal = eval(dollarArr[i][j] * oneDollarEuroRate).toFixed(2); euroVal = customRound(euroVal); var dollarVal = dollarArr[i][j]; var currentVal = sel.options[j].text; var indx1 = eval(currentVal.indexOf(dollarVal)-1); var indx2 = eval(currentVal.indexOf(dollarVal)+(dollarVal.length)); newval1 = currentVal.substring(0,indx1); newval2 = currentVal.substring(indx2, currentVal.length); var p = document.getElementById("Parser"); p.innerHTML = newval1 + "€" + euroVal + newval2; sel.options[j].text = p.innerHTML; } } } } xmlHttp.open("GET","exchange.php",true); document.getElementById('showMessage').style.display='block'; xmlHttp.send("euro"); } function dollarToPoundCart(cartSize) { var relSize = document.getElementById('relsize').value; var dollarArr = getDollarArray(); cur = getCheckedValue(document.form1.currency); var currency = document.getElementById('curcurrency').value; if (currency == 'pound') { return false; } else { document.getElementById('curcurrency').value = cur; } xmlHttp = getXmlHttpObj(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { document.getElementById('showMessage').style.display='none'; var oneEuroDollarRate = xmlHttp.responseText; var oneDollarEuroRate = 0.00; cartTotal = 0; for (i = 0; i < cartSize; i++) { priceDiv = eval('document.getElementById("cartid'+i+'")'); dollarVal = eval('document.getElementById("hiddendollar'+i+'")').value; euroVal = eval(dollarVal * oneDollarEuroRate).toFixed(2); euroVal = customRound(euroVal); cartTotal = parseFloat(cartTotal) + parseFloat(euroVal); priceDiv.innerHTML = '£' + euroVal; } cartTotal = sprintf("%01.2f", cartTotal); if (document.form1.coupon.value != '') { crttotal = parseFloat(cartTotal); discount = parseFloat(crttotal)*.1; discount = parseFloat(discount).toFixed(2); discount = customRound(discount); //discount = discount.toFixed(2); tot = parseFloat(crttotal) - parseFloat(discount); tot = parseFloat(tot).toFixed(2); } else { tot = cartTotal; } document.getElementById('totcart').innerHTML = '£' + tot; for (var i=0; i < relSize; i++) { sel = eval('document.getElementById("sel_'+i+'")'); selsize = sel.options.length; for (var j = 0; j < selsize; j++) { euroVal = eval(dollarArr[i][j] * oneDollarEuroRate).toFixed(2); euroVal = customRound(euroVal); var dollarVal = dollarArr[i][j]; var currentVal = sel.options[j].text; var indx1 = eval(currentVal.indexOf(dollarVal)-1); var indx2 = eval(currentVal.indexOf(dollarVal)+(dollarVal.length)); newval1 = currentVal.substring(0,indx1); newval2 = currentVal.substring(indx2, currentVal.length); var p = document.getElementById("Parser"); p.innerHTML = newval1 + "£" + euroVal + newval2; sel.options[j].text = p.innerHTML; } } } } xmlHttp.open("GET","exchange.php",true); document.getElementById('showMessage').style.display='block'; xmlHttp.send("euro"); } function customRound(price) { var add, pad; var tmp = price.split('.'); var dec = tmp[1]; if (dec < 25) { add = 0.00; pad = ".00"; } else if (dec < 75) { add = 0.50; pad = "0"; } else { add = 1.00; pad = ".00"; } result = parseFloat(tmp[0]) + parseFloat(add);; result += pad; return result; } function displayUpdateButton() { var check = false; var checkarray = document.getElementsByName('checkarray[]'); var count = checkarray.length; for(var i=0; i < count; i++) { if (checkarray[i].checked) { check = true; } } if (check) { document.form1.Submit.value = 'Update Cart'; document.form1.action = 'cart.php'; } else { document.form1.Submit.value = 'Proceed To Payment'; document.form1.action = 'https://www.securedinfo.net/securecheckout_lang.php'; } } function convertToDollar(cartSize) { var crttotal = document.getElementById('crttotal').value; var relSize = document.getElementById('relsize').value; var dollarArr = getDollarArray(); cur = getCheckedValue(document.form1.currency); for (i = 0; i < cartSize; i++) { priceDiv = eval('document.getElementById("cartid'+i+'")'); dollarVal = eval('document.getElementById("hiddendollar'+i+'")').value; priceDiv.innerHTML = '$' + sprintf("%01.2f",dollarVal); } if (document.form1.coupon.value != '') { crttotal = parseFloat(crttotal); discount = parseFloat(crttotal)*.1; discount = parseFloat(discount).toFixed(2); discount = customRound(discount); //discount = discount.toFixed(2); tot = parseFloat(crttotal) - parseFloat(discount); tot = parseFloat(tot).toFixed(2); } else { tot = parseFloat(crttotal).toFixed(2); } document.getElementById('totcart').innerHTML = '$' + sprintf("%01.2f",tot); } function convertToEuro(cartSize, exchangeRate) { var relSize = document.getElementById('relsize').value; var dollarArr = getDollarArray(); cur = getCheckedValue(document.form1.currency); var oneDollarEuroRate = 1/(exchangeRate); cartTotal = 0; for (i = 0; i < cartSize; i++) { priceDiv = eval('document.getElementById("cartid'+i+'")'); dollarVal = eval('document.getElementById("hiddendollar'+i+'")').value; euroVal = eval(dollarVal * oneDollarEuroRate).toFixed(2); euroVal = customRound(euroVal); cartTotal = parseFloat(cartTotal) + parseFloat(euroVal); priceDiv.innerHTML = '€' + euroVal; } cartTotal = sprintf("%01.2f", cartTotal); if (document.form1.coupon.value != '') { crttotal = parseFloat(cartTotal); discount = parseFloat(crttotal)*.1; discount = parseFloat(discount).toFixed(2); discount = customRound(discount); //discount = discount.toFixed(2); tot = parseFloat(crttotal) - parseFloat(discount); tot = parseFloat(tot).toFixed(2); } else { tot = cartTotal; } document.getElementById('totcart').innerHTML = '€' + parseFloat(tot).toFixed(2); } function convertToPound(cartSize) { var relSize = document.getElementById('relsize').value; var dollarArr = getDollarArray(); cur = getCheckedValue(document.form1.currency); var oneDollarEuroRate = 0.00; cartTotal = 0; for (i = 0; i < cartSize; i++) { priceDiv = eval('document.getElementById("cartid'+i+'")'); dollarVal = eval('document.getElementById("hiddendollar'+i+'")').value; euroVal = eval(dollarVal * oneDollarEuroRate).toFixed(2); euroVal = customRound(euroVal); cartTotal = parseFloat(cartTotal) + parseFloat(euroVal); priceDiv.innerHTML = '£' + euroVal; } cartTotal = sprintf("%01.2f", cartTotal); if (document.form1.coupon.value != '') { crttotal = parseFloat(cartTotal); discount = parseFloat(crttotal)*.1; discount = parseFloat(discount).toFixed(2); discount = customRound(discount); //discount = discount.toFixed(2); tot = parseFloat(crttotal) - parseFloat(discount); tot = parseFloat(tot).toFixed(2); } else { tot = cartTotal; } document.getElementById('totcart').innerHTML = '£' + parseFloat(tot).toFixed(2); } function addQty(cartid,flg,product) { xmlHttp = getXmlHttpObj(); var hiddenDollar = eval('document.getElementById("hiddendollar'+cartid+'")'); var crttotal = document.getElementById('crttotal'); var oldPrice = hiddenDollar.value; qtyEle = eval('document.getElementById("qty'+cartid+'")'); qtyDisplayEle = eval('document.getElementById("qtydisplay'+cartid+'")'); cur = getCheckedValue(document.form1.currency); var layer = document.getElementById('freebottle_cart'); if(flg == 0) { if (qtyEle.value == 5) { layer.innerHTML = 'Bonus: 2 additional bottles of '+product+ '!!'; } else if (qtyEle.value >=6 && qtyEle.value <=12){ layer.innerHTML = 'Bonus: 3 additional bottles of '+product+ '!!'; } else { layer.innerHTML = ' '; } } if (qtyEle.value < 12) { xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { document.getElementById('showMessage').style.display='none'; var response = xmlHttp.responseText; tmp = response.split('#'); var cartSize = tmp[0]; exRate = tmp[1]; hiddenDollar.value = tmp[6]; form2 = document.form1; form2.elements["cartval["+cartid+"][qty]"].value = tmp[2]; form2.elements["cartval["+cartid+"][desc]"].value = tmp[3]; form2.elements["cartval["+cartid+"][period]"].value = tmp[4]; form2.elements["cartval["+cartid+"][saving]"].value = tmp[5]; form2.elements["cartval["+cartid+"][price]"].value = tmp[6]; form2.elements["cartval["+cartid+"][name]"].value = tmp[7]; form2.elements["cartval["+cartid+"][list]"].value = tmp[8]; diff = parseFloat(tmp[6]) - parseFloat(oldPrice); crttotal.value = parseFloat(crttotal.value) + parseFloat(diff) ; qtyEle.value = parseInt(qtyEle.value) + 1; qtyDisplayEle.innerHTML = qtyEle.value; if (document.form1.coupon.value != '') { //applyCoupon(); } if (cur == 'euro') { convertToEuro(cartSize, exRate ); } else if (cur == 'pound') { convertToPound(cartSize); } else { convertToDollar(cartSize); } } } xmlHttp.open("GET","add_items.php?"+cartid,true); document.getElementById('showMessage').style.display='block'; xmlHttp.send("null"); } else { alert('The maximum quantity that can be order is 12 bottles. If you need more quantity, please contact us.'); return false; } } function removeQty(cartid,flg,product) { xmlHttp = getXmlHttpObj(); var hiddenDollar = eval('document.getElementById("hiddendollar'+cartid+'")'); var crttotal = document.getElementById('crttotal'); var oldPrice = hiddenDollar.value; qtyEle = eval('document.getElementById("qty'+cartid+'")'); qtyDisplayEle = eval('document.getElementById("qtydisplay'+cartid+'")'); var layer = document.getElementById('freebottle_cart'); if(flg == 0) { if (qtyEle.value == 7) { layer.innerHTML = 'Bonus: 2 additional bottles of '+product+' !!'; } else if (qtyEle.value >7 && qtyEle.value <=12){ layer.innerHTML = 'Bonus: 3 additional bottles of '+product+' !!'; } else { layer.innerHTML = ' '; } } cur = getCheckedValue(document.form1.currency); if ( qtyEle.value > 1) { xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { document.getElementById('showMessage').style.display='none'; var response = xmlHttp.responseText; tmp = response.split('#'); var cartSize = tmp[0]; exRate = tmp[1]; hiddenDollar.value = tmp[6]; form2 = document.form1; form2.elements["cartval["+cartid+"][qty]"].value = tmp[2]; form2.elements["cartval["+cartid+"][desc]"].value = tmp[3]; form2.elements["cartval["+cartid+"][period]"].value = tmp[4]; form2.elements["cartval["+cartid+"][saving]"].value = tmp[5]; form2.elements["cartval["+cartid+"][price]"].value = tmp[6]; form2.elements["cartval["+cartid+"][name]"].value = tmp[7]; form2.elements["cartval["+cartid+"][list]"].value = tmp[8]; diff = parseFloat(oldPrice) - parseFloat(tmp[6]); crttotal.value = parseFloat(crttotal.value) - parseFloat(diff) ; qtyEle.value = parseInt(qtyEle.value) - 1; qtyDisplayEle.innerHTML = qtyEle.value; if (cur == 'euro') { convertToEuro(cartSize, exRate ); } else if (cur == 'pound') { convertToPound(cartSize); } else { convertToDollar(cartSize); } } } xmlHttp.open("GET","remove_items.php?"+cartid,true); document.getElementById('showMessage').style.display='block'; xmlHttp.send("null"); } else { return false; } } function applyCoupon() { var crttotal = document.getElementById('crttotal').value; var cid = document.getElementById('coupon_code').value; var oneDollarEuroRate = oneDollarEuroRate = 1/(1.11); xmlHttp = getXmlHttpObj(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { document.getElementById('showMessage').style.display='none'; var response = xmlHttp.responseText; if (parseFloat(crttotal) != parseFloat(response)) { document.form1.coupon.value = 0.9; document.getElementById('couponspan').innerHTML = 'You have availed 10% discount!'; //document.getElementById('crttotal').value = parseFloat(response); } var currency = document.getElementById('curcurrency').value; if (currency == 'dollar') { document.getElementById('totcart').innerHTML = '$' + response; } else { var euroVal = parseFloat(response)*oneDollarEuroRate; euroVal = customRound(euroVal.toFixed(2)); document.getElementById('totcart').innerHTML = '€' + euroVal; } } } xmlHttp.open("GET","apply_coupon.php?cid="+cid+"&total="+crttotal,true); document.getElementById('showMessage').style.display='block'; xmlHttp.send("null"); } function sprintf( ) { // http://kevin.vanzonneveld.net // + original by: Ash Searle (http://hexmen.com/blog/) // + namespaced by: Michael White (http://crestidg.com) // * example 1: sprintf("%01.2f", 123.1); // * returns 1: 123.10 var regex = /%%|%(\d+\$)?([-+#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuidfegEG])/g; var a = arguments, i = 0, format = a[i++]; // pad() var pad = function(str, len, chr, leftJustify) { var padding = (str.length >= len) ? '' : Array(1 + len - str.length >>> 0).join(chr); return leftJustify ? str + padding : padding + str; }; // justify() var justify = function(value, prefix, leftJustify, minWidth, zeroPad) { var diff = minWidth - value.length; if (diff > 0) { if (leftJustify || !zeroPad) { value = pad(value, minWidth, ' ', leftJustify); } else { value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length); } } return value; }; // formatBaseX() var formatBaseX = function(value, base, prefix, leftJustify, minWidth, precision, zeroPad) { // Note: casts negative numbers to positive ones var number = value >>> 0; prefix = prefix && number && {'2': '0b', '8': '0', '16': '0x'}[base] || ''; value = prefix + pad(number.toString(base), precision || 0, '0', false); return justify(value, prefix, leftJustify, minWidth, zeroPad); }; // formatString() var formatString = function(value, leftJustify, minWidth, precision, zeroPad) { if (precision != null) { value = value.slice(0, precision); } return justify(value, '', leftJustify, minWidth, zeroPad); }; // finalFormat() var doFormat = function(substring, valueIndex, flags, minWidth, _, precision, type) { if (substring == '%%') return '%'; // parse flags var leftJustify = false, positivePrefix = '', zeroPad = false, prefixBaseX = false; for (var j = 0; flags && j < flags.length; j++) switch (flags.charAt(j)) { case ' ': positivePrefix = ' '; break; case '+': positivePrefix = '+'; break; case '-': leftJustify = true; break; case '0': zeroPad = true; break; case '#': prefixBaseX = true; break; } // parameters may be null, undefined, empty-string or real valued // we want to ignore null, undefined and empty-string values if (!minWidth) { minWidth = 0; } else if (minWidth == '*') { minWidth = +a[i++]; } else if (minWidth.charAt(0) == '*') { minWidth = +a[minWidth.slice(1, -1)]; } else { minWidth = +minWidth; } // Note: undocumented perl feature: if (minWidth < 0) { minWidth = -minWidth; leftJustify = true; } if (!isFinite(minWidth)) { throw new Error('sprintf: (minimum-)width must be finite'); } if (!precision) { precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type == 'd') ? 0 : void(0); } else if (precision == '*') { precision = +a[i++]; } else if (precision.charAt(0) == '*') { precision = +a[precision.slice(1, -1)]; } else { precision = +precision; } // grab value using valueIndex if required? var value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++]; switch (type) { case 's': return formatString(String(value), leftJustify, minWidth, precision, zeroPad); case 'c': return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad); case 'b': return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'o': return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'x': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'X': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad).toUpperCase(); case 'u': return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'i': case 'd': { var number = parseInt(+value); var prefix = number < 0 ? '-' : positivePrefix; value = prefix + pad(String(Math.abs(number)), precision, '0', false); return justify(value, prefix, leftJustify, minWidth, zeroPad); } case 'e': case 'E': case 'f': case 'F': case 'g': case 'G': { var number = +value; var prefix = number < 0 ? '-' : positivePrefix; var method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())]; var textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2]; value = prefix + Math.abs(number)[method](precision); return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform](); } default: return substring; } }; return format.replace(regex, doFormat); } function getCheckedValue(radioObj) { if(!radioObj) return ""; var radioLength = radioObj.length; if(radioLength == undefined) if(radioObj.checked) return radioObj.value; else return ""; for(var i = 0; i < radioLength; i++) { if(radioObj[i].checked) { return radioObj[i].value; } } return ""; }