Advertisement
6jarjar6

davidstea product-detail-page

Nov 19th, 2013
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //  <2012-02-07><LLEE><Inventory check><search for maxQuantity below>
  2.  
  3. function InitAkin( select ){
  4.     var dimension1, dimension2, dimension3, size, color, style, sizeID;
  5.     $('.add-to-cart > label').removeClass('hidden');
  6.     $.ajaxSetup({ cache:false });
  7.     if ( select ) {
  8.         sizeID = $(select).find("option:selected").attr('data-productid');
  9.     } else {
  10.         sizeID = $('#size option:selected').attr('data-productid');
  11.     }
  12.    
  13.     if ( select ) {
  14.         size = $(select).val();
  15.     } else {
  16.         size = $('#size').val();
  17.     }
  18.     color = $('#color').val();
  19.     style = $('#style').val();
  20.  
  21.     if(size != undefined && color != undefined && style != undefined) {
  22.         dimension1 = size;
  23.         dimension2 = color;
  24.         dimension3 = style;
  25.     } else if(size == undefined){
  26.         if(style == undefined){
  27.             dimension1 = color;
  28.         } else if(color == undefined){
  29.             dimension1 = style;
  30.         } else {
  31.             dimension1 = color;
  32.             dimension2 = style;
  33.         }  
  34.     } else if(color == undefined){
  35.         if(size == undefined){
  36.             dimension1 = style;
  37.         } else if(style == undefined){
  38.             dimension1 = size;
  39.         } else {
  40.             dimension1 = size;
  41.             dimension2 = style;
  42.         }
  43.     } else if(style== undefined){
  44.         if(size == undefined){
  45.             dimension1 = color;
  46.         } else if(color == undefined){
  47.             dimension1 = size;
  48.         } else {
  49.             dimension1 = size;
  50.             dimension2 = color;
  51.         }
  52.     }
  53.     // Hide option if only one value
  54.     if ( $("select#color:eq(0)").find("option").size() < 2 ) {
  55.         $("select#color").hide();
  56.     }
  57.     if ( $("select#size(0)").find("option").size() < 2 ) {
  58.         $("select#size").hide();
  59.     }
  60.     if ( $("select#style:eq(0)").find("option").size() < 2 ) {
  61.         $("select#style").hide();
  62.     }
  63.  
  64.     var akinCount = $("#hidden-akin-count").val();
  65.     var displayFlag = false;
  66.     if(akinCount == 1 && (dimension1 != undefined || dimension2 != undefined || dimension3 != undefined))
  67.         displayFlag = true;
  68.     else if(akinCount == 2 && dimension1 != undefined && dimension2 != undefined)
  69.         displayFlag = true;
  70.     else if(akinCount == 3 && dimension1 != undefined && dimension2 != undefined && dimension3 != undefined)
  71.         displayFlag = true;
  72.  
  73.     $.getJSON('fetch.aspx?CN=90C4D5C13CDA&DIMENSIONELEMENTID1=' + dimension1 + '&DIMENSIONELEMENTID2=' + dimension2 + '&DIMENSIONELEMENTID3=' + dimension3 + '&PRODUCTAKINID=' + $('#tbCN').val(), function(data){
  74.         if(displayFlag == true)
  75.         {
  76.             var imgPathSect = "";
  77.             var newImageSource = "";           
  78.             var price = 0;
  79.             if (data.PRICEAMOUNT === "")
  80.             {
  81.                 $('.price').text("");
  82.             }
  83.             else
  84.             {
  85.                 price = data.PRICEAMOUNT;
  86.                 if ( price.indexOf(".") != -1 ) {
  87.                     price = price.split(".");
  88.                 }
  89.                 $(".add-to-cart .dollar-value").text(price[0]);
  90.                 $(".add-to-cart .cent-value").text(price[1]);
  91.  
  92.                 if(ExecuteCufon()) {
  93.                     Cufon.replace("#prod-price");
  94.                     Cufon.replace(".dollar-value");
  95.                     Cufon.replace(".cent-value");
  96.                 }
  97.                  //$('.price').text(Globalize.format(parseFloat(data.PRICEAMOUNT), "c"));
  98.             }
  99.             $('.btn-add-to-cart').data('sizeid', data.ITEMID );
  100.             $('.btn-add-to-cart,#button-add-to-wishlist').data('dimension', data.DIMENSIONID );
  101.            
  102.             // MM Disable buttons if no item for selected combination
  103.             if( data.DISABLECLASS === "disabled") {
  104.                 $('.btn-add-to-cart, #button-add-to-wishlist').attr("disabled", true).css({ cursor: "default" });
  105.             } else {
  106.                 $('.btn-add-to-cart, #button-add-to-wishlist').removeAttr("disabled").css({ cursor: "pointer" });
  107.             }
  108.    
  109.             // Image source replace
  110.             /*
  111.             if ($('#akin-image').is('.hide-image') == false)
  112.             {
  113.                 $('#akin-image').removeClass('hidden');
  114.                 imgPathSect = data.MEDIA2.split('\\');
  115.                 newImageSource = $('#image-path').val() + imgPathSect[imgPathSect.length - 1];
  116.                 $('#akin-image').addClass('loading');
  117.                 $('#akin-image img').attr( 'src', unescape(newImageSource) );
  118.                
  119.             }
  120.             */
  121.             $('#button-add-to-cart').data("image", newImageSource);
  122.    
  123.             $("#tbTRACKMAXQUANTITY").val(data.TRACKMAXQUANTITY);
  124.             $("#tbQTYAVAILABLE").val(data.QTYAVAILABLE);
  125.             var stockIndicator = data.STOCKINDICATOR || null;
  126.  
  127.             if ($("#tbTRACKMAXQUANTITY").val() === true || $("#tbTRACKMAXQUANTITY").val() === "true" || $("#tbTRACKMAXQUANTITY").val() === "TRUE")
  128.             {
  129.                 $("#stockMsg").removeClass("in-stock").removeClass("no-stock");
  130.                 if (parseFloat($("#tbQTYAVAILABLE").val()) > 0.00 && stockIndicator != "O" )
  131.                 {
  132.                     $("#stockMsg").removeClass("hidden").addClass("in-stock");
  133.                     $(".btn-add-to-cart").removeClass('no-stock');
  134.                 }
  135.                 else
  136.                 {
  137.                     $("#stockMsg").removeClass("hidden").addClass("no-stock");
  138.                     $("#aNotify").unbind("click").bind("click", function () {
  139.                         notify(data.ITEMID, data.DIMENSIONID);
  140.                     });
  141.                     $(".btn-add-to-cart").attr("disabled", "disabled").addClass('no-stock');
  142.                 }
  143.                 $("#stockMsg").show();
  144.             }
  145.    
  146.             if ( $('#addToCart2').find('select:visible').length == 0 )
  147.             {
  148.                 $('#addToCart2').addClass('no-dimensions');
  149.             }
  150.             $("button[data-method='AddToCart']").show();
  151.         }
  152.     });
  153. }
  154.  
  155. function notify() {
  156.     var contentid, dimensionid, url;
  157.     var contentid = arguments[0];
  158.     if (arguments.length == 2)
  159.     {
  160.         dimensionid = arguments[1];
  161.         url = "Ajax.aspx?CN=A7ACDF319D66&CONTENTID=" + contentid + "&DIMENSIONID=" + dimensionid;
  162.     }
  163.     else
  164.     {
  165.         url = "Ajax.aspx?CN=A7ACDF319D66&CONTENTID=" + contentid;
  166.     }
  167.     var dialog = $("#notify");
  168.     dialog.load(url, function() {
  169.         var notifyButton = {
  170.             text: $('#notifyform').attr('data-button'),
  171.             click: function () {
  172.                 $('#notifyform').validation({
  173.                     form: 'notifyform',
  174.                     success: function() {
  175.                         $("#notifyform").AjaxCall({
  176.                             url: "Ajax.aspx?CN=A7ACDF319D66",
  177.                             type: "POST",
  178.                             complete: function(data){
  179.                                 $('#notify').html('');
  180.                                 $('#notify').append($(data).find('#notify-message'));
  181.                                 $('#notify-message').show();
  182.                                 $("#notify").dialog("option", {
  183.                                     buttons: {},
  184.                                     height: 140
  185.                                 });
  186.                             }
  187.                         });
  188.                     }
  189.                 });
  190.             }
  191.         };
  192.         $("#notify").dialog( "option", "buttons", [ notifyButton ] );
  193.  
  194.         dialog.dialog("open");
  195.     });
  196. }
  197.  
  198. function invite(contentid) {
  199.     var contentid, url;
  200.  
  201.     url = "Ajax.aspx?CN=5C02F3C0F570&CONTENTID=" + contentid;
  202.  
  203.     var dialog = $("#invite");
  204.     dialog.load(url, function() {
  205.         dialog.dialog("open");
  206.     });
  207. }
  208.  
  209. var categoryNameMap = {
  210.     "rooibos" : "red",
  211.     "black" : "black",
  212.     "green" : "green",
  213.     "herbal" : "yellow",
  214.     "white" : "white",
  215.     "mate" : "purple",
  216.     "pu'erh" : "brown",
  217.     "oolong" : "blue"
  218. };
  219.  
  220. function selectNavigation( category ) {
  221.     //category = categoryNameMap[category];
  222.     if (!category) { return; }
  223.     var $selected, $parent, className;
  224.    
  225.     $selected = $("#dt-banner").find('li[data-name="' + category + '"]');
  226.  
  227.     $parent = $selected.closest("li.level1");
  228.     $selected.find("a").addClass("select");
  229.     $selected.addClass("select");
  230.     $parent.addClass("open");
  231. }
  232. $(function() {
  233.     if($("#hidden-akin-count").val() == "")
  234.     {
  235.         $("button[data-method='AddToCart']").show();
  236.         if($("#hidden-quantity-avail").val() == "0")
  237.             $("button[data-method='AddToCart']").attr("disabled","disabled");
  238.     }
  239.  
  240.     $("#addToCart2 #size").die().live("change", function(){
  241.         $("#addToCart1 #size").val( $(this).val() );
  242.         $("#addToCart1 #size").change();
  243.     });
  244.     $('.add-to-cart #thumbnail').on('click', function(){
  245.         var $img = $(this);
  246.         var defaultBanner = $img.attr("data-defaultBanner");
  247.         var defaultThumb = $img.attr("data-defaultThumb");
  248.         var altBanner = $img.attr("data-altBanner");
  249.         var altThumb = $img.attr("data-altThumb");
  250.  
  251.         if( $img.hasClass("altview") ) {
  252.             var newLargeImg  = 'http://images.davidstea.com/products/' + $('#current-language').val() + '/' + defaultBanner;
  253.             var imgNewSmall  = 'http://images.davidstea.com/products/' + $('#current-language').val() + '/' + defaultThumb;
  254.         } else {
  255.             var newLargeImg  = 'http://images.davidstea.com/products/' + $('#current-language').val() + '/' + altBanner ;
  256.             var imgNewSmall  = 'http://images.davidstea.com/products/' + $('#current-language').val() + '/' + altThumb ;
  257.         }      
  258.    
  259.         //swap image
  260.         $(this).attr('src', imgNewSmall);
  261.    
  262.         $('#main-banner').attr('src', newLargeImg);
  263.  
  264.         // Toggle altview class to know what image we are showing
  265.         $img.toggleClass("altview");
  266.     });
  267.  
  268.     // Remove Broken images
  269.     var brokenImageCount = 0;
  270.     $("img.featured-ingredients").on("error", function() {
  271.         $(this).parent().andSelf().remove();
  272.         brokenImageCount += 1;
  273.  
  274.         // Hide Featured-ingredients-box if images are not available
  275.         if ( brokenImageCount == 2 &&  $("#featured-ingredients-box").find("div").size() < 1 ) {
  276.             $("#featured-ingredients-box").remove();
  277.         }
  278.     });
  279.  
  280.    
  281.     if ($("#contactid").val() !== "ANONYMOUS") {
  282.         $("#button-add-to-wishlist").show();
  283.     } else {
  284.         $("#button-add-to-wishlist").parent().remove();
  285.     }
  286.  
  287.     if ($('#pname').val() == '') {
  288.         $("#product-flow").hide();
  289.     } else {
  290.         setTimeout(function() {
  291.             selectNavigation( $("#pname").val() );
  292.         }, 300);
  293.        
  294.         $("#product-flow").show();
  295.     }
  296.  
  297.    
  298.     if ($("#tbTRACKMAXQUANTITY").val() === true || $("#tbTRACKMAXQUANTITY").val() === "true" || $("#tbTRACKMAXQUANTITY").val() === "TRUE")
  299.     {
  300.         if (parseFloat($("#tbQTYAVAILABLE").val()) > 0.00)
  301.         {
  302.             $("#stockMsg").removeClass("hidden").addClass("in-stock");
  303.         }
  304.         else
  305.         {
  306.             $("#stockMsg").removeClass("hidden").addClass("no-stock");
  307.             $("#aNotify").bind("click", function () {
  308.                 notify($("#content-id").val());
  309.             });
  310.             $(".btn-add-to-cart").attr("disabled", "disabled");
  311.             $("#button-add-to-wishlist").attr("disabled", "disabled");
  312.         }
  313.     }
  314.        
  315.  
  316.     $('.more-images a').lightBox({
  317.         imageLoading: 'assets/theme/davidstea/js/lightbox/images/lightbox-ico-loading.gif',
  318.         imageBtnPrev: 'assets/theme/davidstea/js/lightbox/images/lightbox-btn-prev.gif',
  319.         imageBtnNext: 'assets/theme/davidstea/js/lightbox/images/lightbox-btn-next.gif',
  320.         imageBtnClose: 'assets/theme/davidstea/js/lightbox/images/lightbox-btn-close.gif',
  321.         imageBlank: 'assets/theme/davidstea/js/lightbox/images/lightbox-blank.gif'
  322.     });
  323.  
  324.     //$('#akin-image img').load( function () { $('#akin-image').removeClass('loading') } );
  325.  
  326.     $('.add-to-cart').on('change', "select", function() {
  327.         InitAkin();
  328.     });
  329.  
  330.     $('.add-to-cart select:first-child').trigger('change');
  331.     if($('li.prev').attr('data-value') == ""){
  332.         $('li.prev').find('a').remove();
  333.     }
  334.  
  335.     if($('li.next').attr('data-value') == ""){
  336.         $('li.next').find('a').remove();
  337.     }
  338.  
  339.     if($('.column-two').children().length == 0){
  340.         $('.column-two').html('Â ');
  341.     }
  342.  
  343.     $("[data-type=CustomerList]").click(function(){
  344.         $("#dialog-window").AjaxCall({
  345.             url: $(this).attr("data-url") +
  346.                 "&CONTENTID="+ $("#content-id").val() +
  347.                 "&DIMENSIONID=" + $(this).data('dimension')
  348.         });
  349.     });
  350.        
  351.     $("#notify").dialog({
  352.         title: $('#notify').attr('data-name'),
  353.         width: 400,
  354.         height: 265,
  355.         draggable: false,
  356.         close: true,
  357.         autoOpen: false
  358.        
  359.     });
  360.     $("#button-invite-a-friend").bind("click", function () {
  361.         invite($("#content-id").val());
  362.     });
  363.     $("#invite").dialog({
  364.         title: $('#invite').attr('data-name'),
  365.         width: 480,
  366.         height: "auto",
  367.         draggable: false,
  368.         autoOpen: false,
  369.         buttons: [
  370.             {
  371.                 text: ($('#current-language').val() == 'EN' ? 'Submit' : 'Soumettre'),
  372.                 click: function() {
  373.                     $('#inviteform').validation({
  374.                         form: 'inviteform',
  375.                         success: function() {
  376.                             var formData = $("#inviteform").find("input, select, textarea").serialize();
  377.                            
  378.                             $.ajax({
  379.                                 url: "Ajax.aspx?CN=5C02F3C0F570",
  380.                                 data: formData,
  381.                                 type: "POST",
  382.                                 complete: function(resultData){
  383.                                     $('#invite').html($(resultData.responseText).find('#invite-message'));
  384.                                     $('#invite-message').show();
  385.                                     $("#invite").dialog("option", {
  386.                                         buttons: {},
  387.                                         height: 115
  388.                                     });
  389.                                 }
  390.                             });
  391.                         }
  392.                     });
  393.                 }
  394.             }
  395.         ]
  396.     });
  397. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement