var basketBalloonTimeout; function getBasket(){ var intSubTotal = 0; var intPostageCost = 0; var intPrice = 0; var strVariantTooltip = ""; var strReturn = ""; //CUSTOM BASKET if(document.getElementById("formBasket_strCustomBasket").value.length>0){ var j = eval(document.getElementById("formBasket_strCustomBasket").value); for (var i = 0 ; i < j.length ; i++) { if(parseInt(j[i]["qty"]) > 1){var strQTY = "
Quantity of " + j[i]["qty"] + "";}else{strQTY = "";} strReturn = strReturn + "\n"; if(j[i]["image"].length > 0){ strReturn = strReturn + " "; strReturn = strReturn + "
"; }else{ strReturn = strReturn + " "; } if(bolCheckout==false){ strReturn = strReturn + "
"; } strReturn = strReturn + "\n"; strReturn = strReturn + "\n"; intPrice = j[i]["exvattotal"]; strReturn = strReturn + " " + j[i]["title"] + "
£" + intPrice + " +VAT" + strQTY + "\n"; strReturn = strReturn + "\n"; strReturn = strReturn + "
\n"; intSubTotal = intSubTotal + (parseFloat(j[i]["qty"]) * parseFloat(j[i]["exvattotal"])); } } if(document.getElementById("formBasket_strBasket").value.length>0){ $jq.getJSON("http://www.wifigear.co.uk/api/getBasket.aspx", {campaign: "WIFIGEAR", formBasket_strBasket: document.getElementById('formBasket_strBasket').value}, function(j) { for (var i = 0 ; i < j.length ; i++) { //We will get a listing of all the variants used if any are selected strVariantTooltip = "" if(j[i]["Variant"].length > 0){ strVariantTooltip = strVariantTooltip + "" //If this is not a bundle then we do not show the variant title as this will be the same as the product title for (var intVariant=0; intVariant < j[i]["VariantListing"].length; intVariant++){ if(j[i]["Type"]=="BUNDLE"){ strVariantTooltip = strVariantTooltip + ""; } for (var intVariantOption=0; intVariantOption < j[i]["VariantListing"][intVariant]["Variants"].length; intVariantOption++){ strVariantTooltip = strVariantTooltip + "" strVariantTooltip = strVariantTooltip + " " strVariantTooltip = strVariantTooltip + " " strVariantTooltip = strVariantTooltip + " " strVariantTooltip = strVariantTooltip + "" } } strVariantTooltip = strVariantTooltip + "
" + j[i]["VariantListing"][intVariant]["Title"] + "
" + j[i]["VariantListing"][intVariant]["Variants"][intVariantOption]["Option"] + "" + j[i]["VariantListing"][intVariant]["Variants"][intVariantOption]["Value"] + "
"; } if(parseInt(j[i]["QTY"]) > 1){var strQTY = "
Quantity of " + j[i]["QTY"] + "";}else{strQTY = "";} strReturn = strReturn + "\n" if(j[i]["Image"].length > 0){ strReturn = strReturn + " " //strReturn = strReturn + "
" + strVariantTooltip + "
" //$jq(document).ready(function() {$jq("#BASKET" + j[i]["Id"]).tooltip('#demotip');}); strReturn = strReturn + "
"; }else{ strReturn = strReturn + " " } if(bolCheckout==false){ strReturn = strReturn + "
" } strReturn = strReturn + "\n"; strReturn = strReturn + "\n"; if(j[i]["bolVATExempt"] == "False"){ if(j[i]["intSpecialPrice"] > 0){intPrice = j[i]["intSpecialPrice"];}else{intPrice = j[i]["intPrice"];} if(getCookie("usertype")=="TRADE"){ if(j[i]["intTradePriceExVAT"] > 0){intPrice = j[i]["intTradePriceExVAT"];} } strReturn = strReturn + " " + j[i]["Title"] + "
£" + intPrice + strQTY + "\n" }else{ if(j[i]["intExVATSpecialPrice"] > 0){intPrice = j[i]["intExVATSpecialPrice"];}else{intPrice = j[i]["intExVATPrice"];} if(getCookie("usertype")=="TRADE"){ if(j[i]["intTradePriceExVAT"] > 0){intPrice = j[i]["intTradePriceExVAT"];} } strReturn = strReturn + " " + j[i]["Title"] + "
£" + intPrice + strQTY + "\n" } strReturn = strReturn + "\n"; strReturn = strReturn + "
\n"; if(getCookie("usertype")=="TRADE"){ intSubTotal = intSubTotal + parseFloat(j[i]["intTradeSubTotalExVAT"]); }else{ intSubTotal = intSubTotal + parseFloat(j[i]["intSubTotal"]); } } if(strReturn.length > 0){strReturn = "" + strReturn + "

\n";} document.getElementById("divBasket").innerHTML = strReturn; document.getElementById("divTotal").innerHTML = intSubTotal.toFixed(2); } ); }else{ if(strReturn.length > 0){ if(strReturn.length > 0){strReturn = "" + strReturn + "

\n";} document.getElementById("divBasket").innerHTML = strReturn; document.getElementById("divTotal").innerHTML = intSubTotal.toFixed(2); }else{ document.getElementById("divBasket").innerHTML = "

Drag items here to add to your shopping basket

\"Shopping
"; document.getElementById("divTotal").innerHTML = "0.00"; } } } function removeFromCustomBasket(Id) { var strBasket = ""; strBasket = getCookie("customBasket"); if(strBasket==null||strBasket.length < 1){ //Cannot be null really as we must have something in it in order to drag over to this remove product from basket handler! }else{ var j=eval("[" + strBasket + "]"); strBasket = ""; for (var i = 0 ; i < j.length ; i++) { if(j[i]["id"]==Id){ // Remove completely }else{ strBasket = strBasket + "{\"id\":\"" + j[i]["id"] + "\",\"title\":\"" + j[i]["title"] + "\",\"type\":\"" + j[i]["type"] + "\",\"image\":\"" + j[i]["image"] + "\",\"cable\":\"" + j[i]["cable"] + "\",\"connector1\":\"" + j[i]["connector1"] + "\",\"connector2\":\"" + j[i]["connector2"] + "\",\"length\":\"" + j[i]["length"] + "\",\"exvattotal\":\"" + j[i]["exvattotal"] + "\",\"total\":\"" + j[i]["total"] + "\",\"qty\":\"" + j[i]["qty"] + "\"},"; } } strBasket = Left(strBasket, strBasket.length-1) } setCookie("customBasket", strBasket, "", "/", "", ""); if(strBasket.length > 0){document.getElementById("formBasket_strCustomBasket").value = "[" + strBasket + "]";}else{document.getElementById("formBasket_strCustomBasket").value = "";} getBasket(); } function removeFromBasket(Id, Variant) { var strBasket = ""; strBasket = getCookie("Basket"); if(strBasket==null||strBasket.length < 1){ //Cannot be null really as we must have something in it in order to drag over to this remove product from basket handler! }else{ var j=eval("[" + strBasket + "]"); strBasket = ""; for (var i = 0 ; i < j.length ; i++) { if(j[i]["Id"]==Id && j[i]["Variant"]==Variant){ // Remove completely }else{ strBasket = strBasket + "{\"Id\":\"" + j[i]["Id"] + "\",\"QTY\":\"" + j[i]["QTY"] + "\",\"Variant\":\"" + j[i]["Variant"] + "\"},"; } } strBasket = Left(strBasket, strBasket.length-1) } setCookie("Basket", strBasket, "", "/", "", ""); if(strBasket.length > 0){document.getElementById("formBasket_strBasket").value = "[" + strBasket + "]";}else{document.getElementById("formBasket_strBasket").value = "";} getBasket(); } function getProductVariations(strProductGUID){ var strReturn = ""; var intVariant = 1; var strRow = "odd" $jq.ajax({ async: false, url: "http://www.wifigear.co.uk/api/doGetProductVariations.aspx", data: {campaign: "WIFIGEAR", strGet: strProductGUID}, dataType: "json", success: function(j) { if(j.length == 0){ }else{ for (var i = 0 ; i < j.length ; i++) { if(j[i]["Status"]=="1"){ strReturn = strReturn + "" strReturn = strReturn + "
')\">
" //Variants for(var ii = 0; ii < j[i]["Variants"].length; ii++){ strReturn = strReturn + "" + j[i]["Variants"][ii]["Value"] + "" } //Stock check if(parseFloat(j[i]["Stock"]) < 1){ strReturn = strReturn + "
Out of stock
" }else{ //Variant Price if(j[i]["vatexempt"]=="true"){ strReturn = strReturn + "£" + j[i]["priceexvat"] + "" }else{ strReturn = strReturn + "£" + j[i]["priceincvat"] + "" } strReturn = strReturn + "
" intVariant++; } strReturn = strReturn + "\n" if(strRow=="odd"){strRow = "even";}else{strRow = "odd";} //We check to see if actually all variants are out of stock and if so then of course we cannot add this to the basket if(parseFloat(j[i]["variantstocklevel"]) < 1){ document.getElementById("add-button").style.display = "none"; } } } } } }); return strReturn; } function addtobasket(Id, quantity){ addtobasketproducts(Id, quantity); } function closeBasket(){ document.getElementById('light').style.display='none'; basketOverlay.close(); //Close overlay } function addtobasketproducts(strProductGUID, intQuantity, category){ var strVariations = ""; var strReturn = ""; var variantProducts = ""; var strProductVariations = ""; var bolVariations = false; document.getElementById("add-button").style.display = ""; $jq.getJSON("http://www.wifigear.co.uk/api/dogetaddtobasketproducts.aspx", {campaign: "WIFIGEAR", strGet: strProductGUID}, function(j) { //data = "[]"; if(j.length == 0){ addproducttobasket(strProductGUID, intQuantity, "", category); }else{ // Variation pop-up header and image strReturn = strReturn + "')\">" if("BUNDLE" == j[0]["producttype"]){ strReturn = strReturn + "
" + j[0]["producttitle"] + " - " if(j[0]["specialofferpriceexvat"] == "0.00"){strReturn = strReturn + "£" + j[0]["priceincvat"];}else{strReturn = strReturn + "£" + j[0]["specialofferpriceincvat"];} if(j[0]["saving"] != "0.00"){strReturn = strReturn + " Saving £" + j[0]["saving"];} strReturn = strReturn + "
" }else{ strReturn = strReturn + "
" + j[0]["producttitle"] + "
" } document.getElementById("headerBar").innerHTML = strReturn; strReturn = ""; for (var i = 0 ; i < j[0]["variants"].length ; i++) { strReturn = strReturn + "
" + j[0]["variants"][i]["title"] + "
" if(j[0]["variants"][i]["headings"].length > 0){ strReturn = strReturn + "" strReturn = strReturn + "" strReturn = strReturn + " " //Image column var strHeadingSplit = j[0]["variants"][i]["headings"].split(""); for(var s = 0; s < strHeadingSplit.length; s++){ strReturn = strReturn + "" } strReturn = strReturn + "" strReturn = strReturn + "" strProductVariations = getProductVariations(j[0]["variants"][i]["productid"]); //It may be the case that although a product type should have variants, it may not have any and the default stock level is used instead if(strProductVariations == ""){ if(parseFloat(j[0]["variants"][i]["stocklevel"]) < 1){ strReturn = strReturn + "" strReturn = strReturn + " " strReturn = strReturn + " " for(var s = 1; s < strHeadingSplit.length; s++){ strReturn = strReturn + "" } strReturn = strReturn + " " strReturn = strReturn + "" document.getElementById("add-button").style.display = "none"; }else{ //We firstly determine whether this is a single product (not a bundle) because we can auto-add it to the basket if(j[0]["variants"].length==1){ addproducttobasket(strProductGUID, intQuantity, "", category); return; }else{ strReturn = strReturn + "" strReturn = strReturn + " " strReturn = strReturn + " " for(var s = 1; s < strHeadingSplit.length; s++){ strReturn = strReturn + " " } if(j[0]["variants"][i]["vatexempt"]=="true"){ strReturn = strReturn + " " }else{ strReturn = strReturn + " " } strReturn = strReturn + " " strReturn = strReturn + "" } } } strReturn = strReturn + strProductVariations + "
" + strHeadingSplit[s] + "  
')\">
Standard
Out of stock
')\">
Standard£" + j[0]["variants"][i]["priceexvat"] + "£" + j[0]["variants"][i]["priceincvat"] + "
"; variantProducts = variantProducts + j[0]["variants"][i]["productid"] + "," }else{ strReturn = strReturn + "
" } } if(variantProducts.length>0){variantProducts = Left(variantProducts, variantProducts.length-1);} document.getElementById("variantQuantity").value = intQuantity; document.getElementById("variantProduct").value = strProductGUID; document.getElementById("variantProductsWithVariants").value = variantProducts; document.getElementById("scrollPanel").innerHTML = strReturn; document.getElementById("qtyInput").value = "1"; basketOverlay.load(); //Make the background of everything else dark document.getElementById('light').style.display = 'block'; $jq("#light").center(); } } ); } function minusQuantity(){ var intQuantity = parseInt(document.getElementById('qtyInput').value); if(intQuantity>1){ document.getElementById("qtyInput").value = intQuantity-1; } } function plusQuantity(){ var intQuantity = parseInt(document.getElementById('qtyInput').value); if(intQuantity<999){ document.getElementById("qtyInput").value = intQuantity+1; } } function GetRadioButtonValue(id) { var radio = document.getElementsByName(id); for (var ii = 0; ii < radio.length; ii++) { if (radio[ii].checked) return radio[ii].value; } } function addtobasketproductwithvariants(strRadioButton){ var arraySplit = document.getElementById("variantProductsWithVariants").value.split(","); var chosenVariants = ""; for(var s = 0; s < arraySplit.length; s++){ chosenVariants = chosenVariants + GetRadioButtonValue(strRadioButton + arraySplit[s]) + ","; } if(chosenVariants.length>0){chosenVariants = Left(chosenVariants, chosenVariants.length-1);} //We now also set the quantity to the quantity box in the pop-up if(document.getElementById("qtyInput").value=="0"){ closeBasket(); }else{ document.getElementById("variantQuantity").value = document.getElementById("qtyInput").value; addproducttobasket(document.getElementById("variantProduct").value, document.getElementById("variantQuantity").value, chosenVariants, ''); } } function addproducttobasket(Id, quantity, variants, category){ var strBasket = ""; closeBasket(); $jq("#PRODUCT" + Id + "_" + category).animate_from_to("#shoppingbasket"); showBasketBalloon(); //deleteCookie("Basket"); strBasket = getCookie("Basket"); if(strBasket==null||strBasket.length < 1){ strBasket = "{\"Id\":\"" + Id + "\",\"QTY\":\"" + quantity + "\",\"Variant\":\"" + variants + "\"}"; }else{ var bolFound = false; //We now see if this product already exists in the basket in order to increase the quantity var j = eval("[" + strBasket + "]"); strBasket = ""; for (var i = 0 ; i < j.length ; i++) { if(j[i]["Id"]==Id && j[i]["Variant"]==variants){ strBasket = strBasket + "{\"Id\":\"" + j[i]["Id"] + "\",\"QTY\":\"" + (parseInt(j[i]["QTY"])+parseInt(quantity)) + "\",\"Variant\":\"" + j[i]["Variant"] + "\"},"; bolFound = true; }else{ strBasket = strBasket + "{\"Id\":\"" + j[i]["Id"] + "\",\"QTY\":\"" + j[i]["QTY"] + "\",\"Variant\":\"" + j[i]["Variant"] + "\"},"; } } if(bolFound==false){ strBasket = strBasket + "{\"Id\":\"" + Id + "\",\"QTY\":\"" + quantity + "\",\"Variant\":\"" + variants + "\"},"; } strBasket = Left(strBasket, strBasket.length-1) } setCookie("Basket", strBasket, "", "/", "", ""); if(strBasket.length > 0){document.getElementById("formBasket_strBasket").value = "[" + strBasket + "]";}else{document.getElementById("formBasket_strBasket").value = "";} getBasket(); } // ************************************************************ // Name : showBasketBalloon() // Purpose : Show the basket balloon // Change Requests: // Name Date Summary // ************************************************************ function showBasketBalloon(){ basketOverlayBalloon.load(); //Make the background of everything else dark // Position the basket balloon var arrayBasketPosition = findElementPosition(document.getElementById("basketDropZone")); document.getElementById("basketBalloon").style.top = arrayBasketPosition[1]+50 + "px"; document.getElementById("basketBalloon").style.left = arrayBasketPosition[0]-310 + "px"; document.getElementById("basketBalloon").style.display = "block"; //Take user to top of page in order to see basket balloon scroll(0,0); basketBalloonTimeout = setTimeout(closeBasketBalloon,3000); } // ************************************************************ // Name : gotoCheckout() // Purpose : Redirect user to checkout // Change Requests: // Name Date Summary // ************************************************************ function gotoCheckout(){ closeBasketBalloon(); window.location = "/checkout.aspx"; } // ************************************************************ // Name : closeBasketBalloon() // Purpose : Hide the basket balloon // Change Requests: // Name Date Summary // ************************************************************ function closeBasketBalloon(){ document.getElementById("basketBalloon").style.display = "none"; basketOverlayBalloon.close(); clearTimeout(basketBalloonTimeout); } // ************************************************************ // Name : findElementPosition() // Purpose : Find the position of the basket image // Change Requests: // Name Date Summary // ************************************************************ function findElementPosition(obj) { var curleft = curtop = 0; if (obj.offsetParent) { do { curleft += obj.offsetLeft; curtop += obj.offsetTop; } while (obj = obj.offsetParent); return [curleft,curtop]; } } function Left(str, n){ if (n <= 0) return ""; else if (n > String(str).length) return str; else return String(str).substring(0,n); } function Right(str, n){ if (n <= 0) return ""; else if (n > String(str).length) return str; else { var iLen = String(str).length; return String(str).substring(iLen, iLen - n); } } // ************************************************************ // Name : checkNumeric() // Purpose : Make sure only numbers can be added into text box // Change Requests: // Name Date Summary // ************************************************************ function checkNumeric(booAllowFullstop) { // Allow chars between 0 - 9. Allow fullstop if booAllowFullstop = true if ((window.event.keyCode < 48 || window.event.keyCode > 57) && (window.event.keyCode != 45) && (window.event.keyCode != 46 || !booAllowFullstop)) { window.event.keyCode = 0; // Don't allow any other character } } // ************************************************************ // Name : getWindowSize() // Purpose : Find size of users browser window // Change Requests: // Name Date Summary // ************************************************************ function getWindowSize() { var xScroll, yScroll; if (window.innerHeight && window.scrollMaxY) { xScroll = window.innerWidth + window.scrollMaxX; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } var windowWidth, windowHeight; if (self.innerHeight) { // all except Explorer if(document.documentElement.clientWidth){ windowWidth = document.documentElement.clientWidth; } else { windowWidth = self.innerWidth; } windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } // for small pages with total height less then height of the viewport if(yScroll < windowHeight){ pageHeight = windowHeight; } else { pageHeight = yScroll; } // for small pages with total width less then width of the viewport if(xScroll < windowWidth){ pageWidth = xScroll; } else { pageWidth = windowWidth; } return [pageWidth,pageHeight]; } // ************************************************************ // Name : logOut() // Purpose : Clear the user cookies and redirect to home page // Change Requests: // Name Date Summary // ************************************************************ function logOut() { setCookie("userid", "", "", "/", "", ""); setCookie("usertype", "", "", "/", "", ""); //window.location.reload(); window.location = "/"; }