﻿/// <reference path="jquery/jquery-1.4.1-vsdoc.js" />
var noFlashTest = false;
var products = [];
var categoryAlias = "";
var curProduct = 0;

$(function() {
    if (document.location.search.indexOf('noFlash=true') != -1) noFlashTest = true;
    if (swfobject != null && swfobject.hasFlashPlayerVersion('9.0.115') && !noFlashTest) {
        var flashvars = {};
        flashvars.rootFolder = "/swf/productScroller/";
        flashvars.local = "false";
        flashvars.offsetY = offsetY;
        flashvars.focusOffsetY = focusOffsetY;
        flashvars.category = categoryName.replace(/&/gi, "%26");
        var params = {};
        params.allowscriptaccess = "true";
        params.wmode = 'transparent';
        var attributes = {};
        attributes.id = "productScroller";
        $('#flashContent').empty();
        swfobject.embedSWF(flashvars.rootFolder + "main.swf", "flashContent", "1010", "400", "9.0.124", "", flashvars, params, attributes);
    } else {
        //force the content div to the proper height
        $('#flashContent').css('height', '400px');
        //load the product info
        UserService.GetProductsByCategory(categoryName, productsLoaded);
    }
});

//called when product info is returned for non-flash site
function productsLoaded(arg) {
    products = arg.products;
    categoryAlias = arg.Alias;
    
    //add five divs to hold the product images in the carousel
    $('#flashContent').append('<div id="carouselDiv5" onmouseover="this.style.cursor=\'pointer\'" onClick="jumpToProduct(-3)" style="position:absolute; left:-20px; top:' + (287 + offsetY) + 'px"></div>');
    $('#flashContent').append('<div id="carouselDiv4" onmouseover="this.style.cursor=\'pointer\'" onClick="jumpToProduct(-2)" style="position:absolute; left:160px; top:' + (287 + offsetY) + 'px"></div>');
    $('#flashContent').append('<div id="carouselDiv3" onmouseover="this.style.cursor=\'pointer\'" onClick="jumpToProduct(-1)" style="position:absolute; left:330px; top:' + (287 + offsetY) + 'px"></div>');
    $('#flashContent').append('<div id="carouselDiv2" onmouseover="this.style.cursor=\'pointer\'" onClick="openProductPage()" style="position:absolute; left:470px; top:' + (160 + focusOffsetY) + 'px"></div>');
    $('#flashContent').append('<div id="carouselDiv1" onmouseover="this.style.cursor=\'pointer\'" onClick="jumpToProduct(1)" style="position:absolute; left:840px; top:' + (287 + offsetY) + 'px"></div>');
    //add the previous and next arrows
    $('#flashContent').append('<div id="previousArrow" onmouseover="this.style.cursor=\'pointer\'" onClick="previousProduct()" style="position:absolute; left:500px; top:' + (282 + focusOffsetY) + 'px"></div>');
    $('#previousArrow').append('<img src="/images/carousel_arrow_previous.gif" />');
    $('#flashContent').append('<div id="nextArrow" onmouseover="this.style.cursor=\'pointer\'" onClick="nextProduct()" style="position:absolute; left:830px; top:' + (282 + focusOffsetY) + 'px"></div>');
    $('#nextArrow').append('<img src="/images/carousel_arrow_next.gif" />');
    //add a div to hold the name of the product
    $('#flashContent').append('<div id="carouselProductName" onmouseover="this.style.cursor=\'pointer\'" onClick="openProductPage()" style="text-align:center; position:absolute; left:530px; top:' + (440 + focusOffsetY) + 'px; width:300px"></div>');

    curProduct = products.length - 1;
    updateCarouselDivs();
}

function updateCarouselDivs() {
    //update the images within the product divs
    for (var x = 5; x >= 1; x--) {
        var thisProduct = products[curProduct - (x - 2)];
        if (thisProduct == undefined) {
            $('#carouselDiv' + x).css("display", "none");
        } else {
            $('#carouselDiv' + x).css("display", "block");
            $('#carouselDiv' + x).empty();
            var imgWidth = (x != 2 ? '187px' : '416px');
            var imgHeight = (x != 2 ? '126px' : '280px');
            $('#carouselDiv' + x).append('<img width="' + imgWidth + '" height="' + imgHeight + '" src="/handlers/ImageHandler.ashx?type=large&id=' + thisProduct.pkIceCream_ID + '" />');
        }
    }
    //update the product name for the current product
    $('#carouselProductName').empty();
    $('#carouselProductName').append('<span style="font-size:18px; color:#000000">' + (products[curProduct].ShortName +(products[curProduct].IsNew ? '- NEW':"")) + '</span><br /><span style="font-size:12px; color:#6D9E26; font-weight:bold">VIEW PRODUCT DETAILS</span>');
    //show or hide the previous and next arrows appropriately
    $('#previousArrow').css("display", curProduct > 0 ? "block" : "none");
    $('#nextArrow').css("display", curProduct < products.length - 1 ? "block" : "none");
}

function nextProduct() {
    curProduct++;
    updateCarouselDivs();
}

function previousProduct() {
    curProduct--;
    updateCarouselDivs();
}

function jumpToProduct(offset) {
    curProduct = curProduct + offset;
    updateCarouselDivs();
}

function openProductPage() {
    window.location = "/products/" + categoryAlias + "/" + products[curProduct].ProductAlias + ".aspx";
}


function GetProductsByCategory(category) {
    UserService.GetProductsByCategory(category, GetProductsByCategoryCallback);
}

function GetProductsByCategoryCallback(arg) {
    getMovie('productScroller').GetProductsByCategoryCallback(arg);
}

function getMovie(movieName) {
    if (window[movieName]) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}
