var productImages = []; // Preloaded image. ID = 2504 productImages[2504] = new Image(); productImages[2504].src="/image/product/medium/coyote_whitepen-1.jpg"; productImages[2504].alt = "Spotters Coyote Brilliant White with Bronze Photochromic Glass Penetrator Polarised Lenses"; // Preloaded image. ID = 4462 productImages[4462] = new Image(); productImages[4462].src="/image/product/medium/coyote_white_brn-1.jpg"; productImages[4462].alt = "Spotters Coyote Brilliant White with Brown Polarised Lenses"; // Preloaded image. ID = 1187 productImages[1187] = new Image(); productImages[1187].src="/image/product/medium/coyote_black_gry_copy-1.jpg"; productImages[1187].alt = "Spotters Coyote Shiny Black with Polarised Grey Lenses"; // Preloaded image. ID = 4455 productImages[4455] = new Image(); productImages[4455].src="/image/product/medium/coyote_black_brn-1.jpg"; productImages[4455].alt = "Spotters Coyote Shiny Black with Brown Polarised Lenses"; // Preloaded image. ID = 4456 productImages[4456] = new Image(); productImages[4456].src="/image/product/medium/coyote_black_yellowpen-1.jpg"; productImages[4456].alt = "Spotters Coyote Shiny Black with Glass Yellow Photochromic Polarised Lenses"; // Preloaded image. ID = 4457 productImages[4457] = new Image(); productImages[4457].src="/image/product/medium/coyote_black_cop-1.jpg"; productImages[4457].alt = "Spotters Coyote Shiny Black with Copper Polarised Lenses"; // Preloaded image. ID = 4458 productImages[4458] = new Image(); productImages[4458].src="/image/product/medium/coyote_black_emerald-1.jpg"; productImages[4458].alt = "Spotters Coyote Shiny Black with CR39 Emerald Polarised Lenses"; // Preloaded image. ID = 4459 productImages[4459] = new Image(); productImages[4459].src="/image/product/medium/coyote_bluemirr-1.jpg"; productImages[4459].alt = "Spotters Coyote Shiny Black with Glass Blue Mirror Polarised Lenses"; // Preloaded image. ID = 4460 productImages[4460] = new Image(); productImages[4460].src="/image/product/medium/coyote_plat-1.jpg"; productImages[4460].alt = "Spotters Coyote Shiny Black with Glass Platinum Mirror Polarised Lenses"; // Preloaded image. ID = 2503 productImages[2503] = new Image(); productImages[2503].src="/image/product/medium/coyote_blk_gold_mirr-1.jpg"; productImages[2503].alt = "Spotters Coyote Shiny Black with Gold Mirror Bronze Glass Polarised Lenses"; // Preloaded image. ID = 4461 productImages[4461] = new Image(); productImages[4461].src="/image/product/medium/coyote_black_pen-1.jpg"; productImages[4461].alt = "Spotters Coyote Shiny Black with Glass Polarised Penetrator Photochromic Lenses"; // Preloaded image. ID = 4463 productImages[4463] = new Image(); productImages[4463].src="/image/product/medium/coyote_whitegold-1.jpg"; productImages[4463].alt = "Spotters Coyote Brilliant White with Glass Gold Mirror Polarised Lenses"; // Preloaded image. ID = 4464 productImages[4464] = new Image(); productImages[4464].src="/image/product/medium/coyote_whiteblumir-1.jpg"; productImages[4464].alt = "Spotters Coyote Brilliant White with Glass Blue Mirror Polarised Lenses"; // Preloaded image. ID = 4465 productImages[4465] = new Image(); productImages[4465].src="/image/product/medium/coyote_white_gry-1.jpg"; productImages[4465].alt = "Spotters Coyote Brilliant White with Grey Polarised Lenses"; // Preloaded image. ID = 4466 productImages[4466] = new Image(); productImages[4466].src="/image/product/medium/coyote_white_copper-1.jpg"; productImages[4466].alt = "Spotters Coyote Brilliant White with Copper Polarised Lenses"; var productData = []; var fromPrice = new Array(); var fromMemberPrice = new Array(); productData[5273] = [{16: 1679, 17: 1228}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4462} ]; fromPrice[5273] = 289.50; fromMemberPrice[5273] = 289.50; productData[5274] = [{16: 1679, 17: 1234}, {"price":199.50, "memberPrice":199.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":4465} ]; fromPrice[5274] = 199.50; fromMemberPrice[5274] = 199.50; productData[5275] = [{16: 1679, 17: 1235}, {"price":199.50, "memberPrice":199.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":4466} ]; fromPrice[5275] = 199.50; fromMemberPrice[5275] = 199.50; productData[5276] = [{16: 1679, 17: 2599}, {"price":289.50, "memberPrice":289.50, "exception":'TRUE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":0} ]; fromPrice[5276] = 289.50; fromMemberPrice[5276] = 289.50; productData[5277] = [{16: 1679, 17: 3054}, {"price":199.50, "memberPrice":199.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":4462} ]; fromPrice[5277] = 199.50; fromMemberPrice[5277] = 199.50; productData[5278] = [{16: 1679, 17: 3055}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4465} ]; fromPrice[5278] = 289.50; fromMemberPrice[5278] = 289.50; productData[5279] = [{16: 1679, 17: 3056}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":2504} ]; fromPrice[5279] = 289.50; fromMemberPrice[5279] = 289.50; productData[5280] = [{16: 1679, 17: 3057}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4464} ]; fromPrice[5280] = 289.50; fromMemberPrice[5280] = 289.50; productData[5281] = [{16: 1679, 17: 3058}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4463} ]; fromPrice[5281] = 289.50; fromMemberPrice[5281] = 289.50; productData[5282] = [{16: 1679, 17: 3060}, {"price":289.50, "memberPrice":289.50, "exception":'TRUE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":0} ]; fromPrice[5282] = 289.50; fromMemberPrice[5282] = 289.50; productData[5283] = [{16: 1679, 17: 3061}, {"price":199.50, "memberPrice":199.50, "exception":'TRUE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":0} ]; fromPrice[5283] = 199.50; fromMemberPrice[5283] = 199.50; productData[5284] = [{16: 3059, 17: 1228}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4455} ]; fromPrice[5284] = 289.50; fromMemberPrice[5284] = 289.50; productData[5285] = [{16: 3059, 17: 1234}, {"price":199.50, "memberPrice":199.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":1187} ]; fromPrice[5285] = 199.50; fromMemberPrice[5285] = 199.50; productData[5286] = [{16: 3059, 17: 1235}, {"price":199.50, "memberPrice":199.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":4457} ]; fromPrice[5286] = 199.50; fromMemberPrice[5286] = 199.50; productData[5287] = [{16: 3059, 17: 2599}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4456} ]; fromPrice[5287] = 289.50; fromMemberPrice[5287] = 289.50; productData[5288] = [{16: 3059, 17: 3054}, {"price":199.50, "memberPrice":199.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":4455} ]; fromPrice[5288] = 199.50; fromMemberPrice[5288] = 199.50; productData[5289] = [{16: 3059, 17: 3055}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":1187} ]; fromPrice[5289] = 289.50; fromMemberPrice[5289] = 289.50; productData[5290] = [{16: 3059, 17: 3056}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4461} ]; fromPrice[5290] = 289.50; fromMemberPrice[5290] = 289.50; productData[5291] = [{16: 3059, 17: 3057}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4459} ]; fromPrice[5291] = 289.50; fromMemberPrice[5291] = 289.50; productData[5292] = [{16: 3059, 17: 3058}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":2503} ]; fromPrice[5292] = 289.50; fromMemberPrice[5292] = 289.50; productData[5293] = [{16: 3059, 17: 3060}, {"price":289.50, "memberPrice":289.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":289.50, "stock":0, "imageId":4460} ]; fromPrice[5293] = 289.50; fromMemberPrice[5293] = 289.50; productData[5294] = [{16: 3059, 17: 3061}, {"price":199.50, "memberPrice":199.50, "exception":'FALSE', "isSpecial":'FALSE', "specialPrice":199.50, "stock":0, "imageId":4458} ]; fromPrice[5294] = 199.50; fromMemberPrice[5294] = 199.50; var attribSets = [16, 17]; // Find the variant selected. function findVariant() { found = false; // Found flag. variantIndex = 0; // The index of the found variant element. // This just scans for a match and if found it sets the flags and breaks. // If one mismatch is detected it just breaks the loop. for (variant in productData) // Loop through the variant array, called 'productData'. { for (set in attribSets) // Now loop through the sets. { // Get a refference to a attribute set select box. attrib = document.getElementById("attributes"+attribSets[set]); // Check to see if the value of that attribute select box is in the productData attribute array. if (productData[variant][0][attribSets[set]]==attrib.value) { found = true; } else { found = false; break; } } if (found==true) { variantIndex = variant; break; } } if (variantIndex!=0) { var data = productData[variantIndex][1]; data["var_id"] = variantIndex; return data; } else { return false; } } // This enables and disables the submit button. function submitButtonEnable(enabled) { if (enabled==false) { document.getElementById("submitButton").disabled = true; } else { document.getElementById("submitButton").disabled = false; } } function specialRowEnabled(enable) { if (enable==false) { document.getElementById("specialRow").style.display="none"; document.getElementById("memberPriceRow").style.display="block"; } else { document.getElementById("specialRow").style.display="block"; document.getElementById("memberPriceRow").style.display="none"; } } // Display stock indicator function displayStock() { // Don't show stock return true; // Get the selected variant. variant = findVariant(); if (variant["stock"] < 0) { stockString = "Made upon ordering"; } else if (variant["stock"] ==0) { stockString = "Out of stock"; } else if (variant["stock"] > 0) { stockString = "In stock & ready to ship"; } document.getElementById("stock").innerHTML = stockString; } // This is the function that gets called when the user changes the selection. function changeVariant() { var member = false; // Get the selected variant. variant = findVariant(); // Not a variant, show a from price and disable add to cart if(!variant) { var toprice = getToPrice(); var fromprice = getFromPrice(); if(toprice == fromprice) { document.getElementById("price").innerHTML = "RRP from AUD$ " + fromprice; } else { document.getElementById("price").innerHTML = "RRP from AUD$ " + fromprice + " to AUD$ " + toprice; } if(member) { document.getElementById("memberPrice").innerHTML = ""; } submitButtonEnable(false); specialRowEnabled(false); } // Check if it is an exception. else if (variant["exception"]=="FALSE") { // See if it is on special. if (variant["isSpecial"]=="TRUE") { // Display the special price with the old price with strike through font. document.getElementById("price").innerHTML = "RRP:  AUD$ " + variant["price"].toFixed(2) + ""; document.getElementById("specialPrice").innerHTML = variant["specialPrice"].toFixed(2) + getDiscountPercentage(variant["price"], variant["specialPrice"]); specialRowEnabled(true); } // Just show the normal price. else { if(member) { document.getElementById("price").innerHTML = "RRP:  AUD$ " + variant["price"].toFixed(2) + ""; } else { document.getElementById("price").innerHTML = "RRP:  AUD$ " + variant["price"].toFixed(2); } specialRowEnabled(false); } if(member) { document.getElementById("memberPrice").innerHTML = "Member's Price: AUD$ " + variant["memberPrice"].toFixed(2) + getDiscountPercentage(variant["price"], variant["memberPrice"]); } // Stock displayStock(); if (variant["imageId"]!=0) { // Swapping image was confusing the users //swapImage(variant["imageId"]); } submitButtonEnable(true); // Enable the submit button. } else { // Variant must be an exception so display some text and disable the submit button. document.getElementById("price").innerHTML = "Not Available"; document.getElementById("memberPrice").innerHTML = ""; submitButtonEnable(false); specialRowEnabled(false); } } function swapImage(image) { document.prodImageMain.src = productImages[image].src; document.getElementById("prodImageMainAlt").innerHTML = productImages[image].alt; } /** * Sort the prices for the product * @return lowest price */ function getFromPrice() { fromPrice.sort(function(a,b){return a - b}); return fromPrice[0].toFixed(2); } /** * Sort the prices for the product * @return highest price */ function getToPrice() { fromPrice.sort(function(a,b){return b - a}); return fromPrice[0].toFixed(2); } /** * Percentage off * @param price Original product price * @param specialPrice on special/sale price * @return Str Text string displaying percentage if percentage is greater than 0% */ function getDiscountPercentage(price, specialPrice) { var discount; // Make sure there is a difference in price if(price - specialPrice <= 0) { return ' (No Discount)'; } discount = ((price - specialPrice)/price)*100; discount = Math.round(discount); if(discount > 0) { return ' (' + discount + '% off)' } return ''; }