﻿var Product = {

    detailImages: new Array(),
    fullSizeImages: new Array(),
    productImageID: 'product-img',
    imagesListID: 'images-list',

    initImageViewer: function() {
        var owner = this;
        var imageList = $(this.imagesListID);

        if (imageList) {
            this.detailCurImage = 0;
            this.detailAnchors = imageList.getElementsByTagName('a');
            this.detailImages = new Array();
            for (var i = 0; i < this.detailAnchors.length; i++) {
                var anchor = this.detailAnchors[i];
                var href = anchor.getAttribute('href');
                if (href) {
                    var img = new Image();
                    img.src = href;
                    this.detailImages.push(img);
                    anchor.index = i;
                    anchor.onclick = function() { owner.setImage(this.index); return false; }
                    anchor.rel = 'nozoom';
                }
            }
        }

        if (this.fullSizeImages.length > 0) {
            var img = new Image();
            img.src = this.fullSizeImages[0];
            setupZoom();
        }
    },

    setImage: function(n) {
        if (n != this.detailCurImage) {
            this.detailCurImage = n;
            $(this.productImageID).src = this.detailImages[this.detailCurImage].src;

            if (this.fullSizeImages.length > 0) {
                var img = new Image();
                img.src =
				$('product-image').href = this.fullSizeImages[n];
            }
        }
    },

    nextImage: function() {
        this.setImage((this.detailCurImage < this.detailImages.length - 1) ? this.detailCurImage + 1 : 0);
    },

    prevImage: function() {
        this.setImage((this.detailCurImage > 0) ? this.detailCurImage - 1 : this.detailImages.length - 1);
    },

    changeVariant: function() {
        DDArray = document.getElementById('VariantDD').value.split(' _ ');
        var variantID = DDArray[0];
        var availability = DDArray[1];
        var optionPrice = DDArray[3];

        document.getElementById('optionprice').innerHTML = optionPrice;
        document.getElementById('VariantID').value = variantID;

        if (availability == 'Out Of Stock') {
            document.getElementById('add-to-cart-button').disabled = true;
            document.getElementById('add-to-cart-button').setAttribute("class", "add-to-cart-button-os");
            document.getElementById('quantity').length = 0;
            document.getElementById('quantity').options[0] = new Option(0, 0, false, false)
        }
        else if (availability == 'Unlimited') {
            document.getElementById('add-to-cart-button').disabled = false;
            document.getElementById('add-to-cart-button').setAttribute("class", "add-to-cart-button");
            Product.changeQuantityDD(10);
        }
        else {
            document.getElementById('add-to-cart-button').disabled = false;
            document.getElementById('add-to-cart-button').setAttribute("class", "add-to-cart-button");
            var quantAvail = availability.replace(' In Stock', '')
            Product.changeQuantityDD(quantAvail);
        }


    },

    setMultiOptions: function(pid, defaultprice, defaultimageID) {

        var sOpt1;
        var sOpt2;
        var sOpt3;
        var sOpt4;
        var sOpt5;

        if (document.getElementById('opt1') != null) { sOpt1 = document.getElementById('opt1').value };
        if (document.getElementById('opt2') != null) { sOpt2 = document.getElementById('opt2').value };
        if (document.getElementById('opt3') != null) { sOpt3 = document.getElementById('opt3').value };
        if (document.getElementById('opt4') != null) { sOpt4 = document.getElementById('opt4').value };
        if (document.getElementById('opt5') != null) { sOpt5 = document.getElementById('opt5').value };

        new Ajax.Request('/ajaxresponses/GetMultiOptionVariantDetails.aspx?pid=' + pid + '&defaultprice=' + defaultprice + '&defaultimage=' + defaultimageID + '&opt1=' + sOpt1 + '&opt2=' + sOpt2 + '&opt3=' + sOpt3 + '&opt4=' + sOpt4 + '&opt5=' + sOpt5, {
        //new Ajax.Request('/ajaxresponses/GetMultiOptionVariantDetails.aspx?pid=' + pid + '&defaultprice=' + defaultprice + '&defaultimage=' + defaultimageID, {
            onSuccess: function(transport) {
                var sResponseText = transport.responseText;

                DDArray = sResponseText.split(' _ ');
                var variantID = DDArray[0];
                var availability = DDArray[1];
                var imageID = DDArray[2];
                var optionPrice = DDArray[3];



                document.getElementById('optionprice').innerHTML = optionPrice;                
                document.getElementById('VariantID').value = variantID;
          

                if (availability == 'Out Of Stock') {
                    document.getElementById('add-to-cart-button').disabled = true;
                    document.getElementById('add-to-cart-button').setAttribute("class", "add-to-cart-button-os");
                    document.getElementById('quantity').length = 0;
                    document.getElementById('quantity').options[0] = new Option(0, 0, false, false)
                }
                else if (availability == 'Unlimited') {
                    document.getElementById('add-to-cart-button').disabled = false;
                    document.getElementById('add-to-cart-button').setAttribute("class", "add-to-cart-button");
                    Product.changeQuantityDD(10);
                }
                else {
                    document.getElementById('add-to-cart-button').disabled = false;
                    document.getElementById('add-to-cart-button').setAttribute("class", "add-to-cart-button");
                    var quantAvail = availability.replace(' In Stock', '')
                    Product.changeQuantityDD(quantAvail);
                }


            }
        });

    },

    changeQuantityDD: function(q) {
        document.getElementById('quantity').length = 0;
        for (i = 0; i <= q - 1; i++) {
            document.getElementById('quantity').options[i] = new Option(i + 1, i + 1, false, false)
        }

    }
};

var Cart = {

    addToCart1: function(variantid, quantity) {
        Cart.initaddToCart(variantid, quantity);
    },

    addToCart2: function() {
        var variantid = document.getElementById('VariantID').value;
        var quantity = 1;
        if (document.getElementById('quantity') != null) { quantity = document.getElementById('quantity').value };
        Cart.initaddToCart(variantid, quantity);
    },
    initaddToCart: function(variantid, quantity) {
        Cart.addToCart(variantid, quantity);
        if (document.getElementById('spinner-v' + variantid) != null) { document.getElementById('spinner-v' + variantid).style.display = "none" };
        if (document.getElementById('spinner') != null) { document.getElementById('spinner').style.display = "none" };
    },
    addToCart: function(variantid, quantity) {

        var sOpt1;
        var sOpt2;
        var sOpt3;
        var sOpt4;
        var sOpt5;

        if (document.getElementById('opt1') != null) { sOpt1 = document.getElementById('opt1').value };
        if (document.getElementById('opt2') != null) { sOpt2 = document.getElementById('opt2').value };
        if (document.getElementById('opt3') != null) { sOpt3 = document.getElementById('opt3').value };
        if (document.getElementById('opt4') != null) { sOpt4 = document.getElementById('opt4').value };
        if (document.getElementById('opt5') != null) { sOpt5 = document.getElementById('opt5').value };

        new Ajax.Request('/ajaxresponses/cart/addtocart.aspx?variantid=' + variantid + '&quantity=' + quantity + '&opt1=' + sOpt1 + '&opt2=' + sOpt2 + '&opt3=' + sOpt3 + '&opt4=' + sOpt4 + '&opt5=' + sOpt5, {
            onComplete: function(transport) {
                //add to cart success
                if (200 == transport.status) {
                    if (document.getElementById('add-success-' + variantid) != null) { $('add-success-' + variantid).show(); $('add-success-' + variantid).fade(); };
                    if (document.getElementById('add-success') != null) { $('add-success').show(); $('add-success').fade(); };
                    Cart.updateCart(variantid);
                }

                //add to cart failed
                if (400 == transport.status) {
                    if (document.getElementById('add-fail-' + variantid) != null) { $('add-fail-' + variantid).show(); $('add-fail-' + variantid).fade(); };
                    if (document.getElementById('add-fail') != null) { $('add-fail').show(); $('add-fail').fade(); };
                }
            }
        });

    },

    updateCart: function(variantid) {

        new Ajax.Request('/ajaxresponses/cart/getcart.aspx?type=json', {
            onComplete: function(transport) {

                document.getElementById('emptycart').style.display = "none";
                document.getElementById('cartitems').style.display = "block";

                var response = transport.responseText;
                var myCart = eval('(' + response + ')');

                var cartCount = myCart.cart.cartcount;
                var cartTotal = myCart.cart.total;
                var cartItemCount = myCart.cart.itemsincart;

                document.getElementById('carttotal').innerHTML = cartTotal;
                document.getElementById('cartcount').innerHTML = cartCount;

                if (cartItemCount == 1) {
                    var cartItemId = myCart.cart.item.id;
                    if (document.getElementById('tr-' + cartItemId) != null) {
                        //update it
                        document.getElementById('qty-' + cartItemId).innerHTML = myCart.cart.item.quantity;
                        if (variantid == myCart.cart.item.variantid) { new Effect.Highlight('tr-' + cartItemId, { startcolor: '#ffff99', endcolor: '#f8f8f8' }); };
                    }
                    else {
                        //add a new one
                        var newRow = document.createElement("tr");
                        newRow.id = 'tr-' + cartItemId
                        var newTitleCol = document.createElement("td");
                        var newQtyCol = document.createElement("td");
                        newQtyCol.id = 'qty-' + cartItemId

                        var myTable = document.getElementById('minicart');
                        var tBody = myTable.getElementsByTagName('tbody')[0];
                        newTitleCol.innerHTML = myCart.cart.item.title;
                        newQtyCol.innerHTML = myCart.cart.item.quantity;
                        newRow.appendChild(newTitleCol);
                        newRow.appendChild(newQtyCol);
                        tBody.appendChild(newRow);
                        if (variantid == myCart.cart.item.variantid) { new Effect.Highlight('tr-' + cartItemId, { startcolor: '#ffff99', endcolor: '#f8f8f8' }); };

                    };

                }

                else {

                    for (i = 0; i <= cartItemCount - 1; i++) {
                        var cartItemId = myCart.cart.item[i].id;
                        if (document.getElementById('tr-' + cartItemId) != null) {
                            //update it
                            document.getElementById('qty-' + cartItemId).innerHTML = myCart.cart.item[i].quantity;
                            if (variantid == myCart.cart.item[i].variantid) { new Effect.Highlight('tr-' + cartItemId, { startcolor: '#ffff99', endcolor: '#f8f8f8' }); };
                        }
                        else {
                            //add a new one
                            var newRow = document.createElement("tr");
                            newRow.id = 'tr-' + cartItemId
                            var newTitleCol = document.createElement("td");
                            var newQtyCol = document.createElement("td");
                            newQtyCol.id = 'qty-' + cartItemId

                            var myTable = document.getElementById('minicart');
                            var tBody = myTable.getElementsByTagName('tbody')[0];
                            newTitleCol.innerHTML = myCart.cart.item[i].title;
                            newQtyCol.innerHTML = myCart.cart.item[i].quantity;
                            newRow.appendChild(newTitleCol);
                            newRow.appendChild(newQtyCol);
                            tBody.appendChild(newRow);
                            if (variantid == myCart.cart.item[i].variantid) { new Effect.Highlight('tr-' + cartItemId, { startcolor: '#ffff99', endcolor: '#f8f8f8' }); };

                        };

                    }

                }

            }
        });
    }

};

Event.observe(window, 'load', function() { Product.initImageViewer(); }, false);


