﻿
    $(document).ready(function() {

        //
        //  TOGGLE ITEMS VISIBILITY
        //

            $('.cart_container .summary_text').click(function() {
                var items = $('.cart_container .items');
                if ($(items).is(':visible')) {
                    $(items).slideUp(1000);
                } else {
                    $(items).slideDown(1000);
                }

            });

        //
        //  ADD ITEM
        //  
            
            $('.add_button').bind('click', addHandler);
            
            function addHandler(e) {
            
                var option = '';
                var quantity = 1;
                var product = $(e.target).closest('.product');
                var product_id = $(product).attr('product');

                //  prepare loading for any delay that may occur?
                $('.shop_cart_summary').addClass('shop_cart_summary_loading');
                
                //  work out quantity
                var quantity_input = $(product).find('.quantity');
                if (quantity_input.length > 0) 
                    quantity = quantity_input.val();  
                
                //  work out option
                var options_select = $(product).find('.options');
                if (options_select.length > 0) 
                    option = options_select.val();  
                
                //    send request
                $.ajax({  url: '/shop/cart.aspx?action=add',
                   data: { product: product_id, options: option, quantity: quantity },
                   dataType: 'json',
                   cache: false,
                   success: function(result) {
                      //  alert(result);
                      renderCart(result, product_id, option);
                    }, 
                   error: function(result) {
                    }
                });
                
                e.preventDefault();
                return false;
            };

        //
        //  REMOVE ITEM
        //  
            
            $('.remove_button').click(removeHandler);

            function removeHandler(e) {

                var product = $(e.target).closest('.product');
                
                //    send request
                //if (window.confirm('Remove product from cart?'))
                //{
                
                    $.ajax({  url: '/shop/cart.aspx?action=remove',
                              data: { product: $(product).attr('product') },
                              dataType: 'json',
                              cache: false,
                              success: function(result) {
                                 //alert(result.ID);
                                 $(product).fadeOut(500, function() { 
                                    $(product).remove();
                                    renderCart(result); 
                                 } );
                               } 
                            });
                //}

                e.preventDefault();
                
                return false;
            };

        //
        //  RENDER CART
        //

            function renderCart(cart, product_id, colour) {

                //alert(result.ID);
                var items = $('.cart_container .items');

                //  show items if not available
                if (!$(items).is(':visible')) {
                    $(items).show();
                }

                //  update basic order details
                $('.cart_total_quantity').html(cart.TotalQuantity);
                $('.cart_total_price').html(cart.TotalPrice);
                $('.display_items').html(cart.DisplayShowing);

                //  add image to item
                if (product_id != null)
                {
                    for( var i = 0; i < cart.Items.length; i ++)
                    {
                        var item = cart.Items[i];
                        if (item.ProductID == product_id && item.Colour == colour)
                        {
                        
                            var product_selector = "li.product[product='" + item.ProductID + "'][colour='" + item.Colour + "']";
                            var product = $(items).find(product_selector);
                            if (product.length > 0)
                            {
                             //   alert(item.Quantity);
                                //  update existing item                            
                                $(product).find('.cart_item_quantity').html(" " + item.Quantity + " x ");
                                product.effect("highlight", {}, 1000);
                                
                            }
                            else 
                            {
                             
                                var li = $('<li />');
                                
                                //  work out title
                                var title = item.Product;
                                if (item.Colour != null && item.Colour != "")
                                    title = item.Colour + " " + item.Product;
                                
                                //  add meta info
                                li.addClass('product').attr('product', item.ProductID).attr('colour', item.Colour);
                                
                                //  add image
                                var img = $('<img />').addClass('cart_item_image').attr('src', item.ImageUrl);
                                img.appendTo(li);

                                //  add quantity
                                var small = $('<small />').addClass('cart_item_quantity').text(" " + item.Quantity + " x ");
                                small.appendTo(li);
                                
                                //  add text
                                var lnk = $('<a />').addClass('cart_item_product').attr('href',item.ProductUrl).text(title);
                                lnk.appendTo(li);
                                
                                //  add text
                                var remove_lnk = $('<a />').addClass('remove_button').attr('href',item.ProductUrl).click(removeHandler);
                                var remove_img = $('<img />').attr('alt','remove').attr('src', '/_sites/shared/media/images/shop/remove.gif');
                                remove_img.appendTo(remove_lnk);
                                remove_lnk.appendTo(li);

                                //  add item to cart
                                li.appendTo($(items).find('ul'));
                                li.effect("highlight", {}, 1000);
                                
                                //alert("Creating: " + product_selector + " - " + product.length);
                             }
                        }
                        //alert(cart.Items[i].Product);
                    }
                }
                //  remove loading
                $('.shop_cart_summary').removeClass('shop_cart_summary_loading');

            }



    });

	
	//function addProduct(product_id, quantity) {
    //        
	//			var option = '';
	//			
    //            //  prepare loading for any delay that may occur?
    //            $('.shop_cart_summary').addClass('shop_cart_summary_loading');
    //            
    //            //    send request
    //            $.ajax({  url: '/shop/cart.aspx?action=add',
    //               data: { product: product_id, options: option, quantity: quantity },
    //               dataType: 'json',
    //               cache: false,
    //               success: function(result) {
    //                  //  alert(result);
    //                  renderCart(result, product_id, option);
    //                }, 
    //               error: function(result) {
    //                }
    //            });
    //            
    //            e.preventDefault();
    //            return false;
    //        };

