﻿// jCarousel global settings for site

//props
var jcarousel_data;
var jcarousel_dataUrl = 'lib/tbs/Home/products4198.js?v=1.0.0.0';
var jcarousel_itemOnClick;
//handlers
var jcarousel_itemLoadCallback = function(carousel, state) {
    // Since we get all URLs in one file, we simply add all items
    // at once and set the size accordingly.
    if (state != 'init')
        return;

    if (jcarousel_data && jcarousel_data.length > 0) {
        jcarousel_itemAddCallback(carousel, carousel.first, carousel.last, jcarousel_data);
    }
    else {
        var dataurl = jcarousel_dataUrl;
        $.getJSON(dataurl, //TODO: change products.js to use a service call
		    function(data) {
		        jcarousel_itemAddCallback(carousel, carousel.first, carousel.last, data);
		    }
	    );
    }
};
var jcarousel_itemAddCallback = function(carousel, first, last, data) {
    // Simply add all items at once and set the size accordingly.
    var items = jcarousel_data = data;
    carousel.size(items.length);
    //Sys.Debug.trace(data);
    for (i = 0; i < items.length; i++) {
        carousel.add(i + 1, jcarousel_getItemHTML(carousel, items[i]));
    }

};

// Item html creation helper.
function jcarousel_getItemHTML(carousel, obj) {
    var mu = '';
    if (obj.ProductName) { //is Product for Catalog/Index or Catalog/Product/name
        mu = '<div class="h140"><div class="clear"><a href="/Catalog/Product/' + obj.ProductUrl + '">'
	    + '<img src="/assets/images/Products/thumbs/' + obj.Images[0] + '.jpg" ' //[0] represents first image as core image
	    + 'width="100" height="100" alt="' + obj.ProductName + '" '
	    + '/>'
	    + '</a></div><div class="clear">' + obj.ProductName + '</div></div>';
        mu = $(mu);
        if (jcarousel_itemOnClick) mu.bind('click', { Id: obj.ProductId }, function(e) { jcarousel_itemOnClick(e); return false; });
        //else mu.bind('click', function() { return false; });
        if (jcarousel_itemOnMouseOver) mu.bind('mouseover', { Id: obj.ProductId }, function(e) { jcarousel_itemOnMouseOver(e, this, obj.ProductId); });
        if (jcarousel_itemOnMouseOut) mu.bind('mouseout', { Id: obj.ProductId }, function(e) { jcarousel_itemOnMouseOut(e, this, obj.ProductId); });
    }
    else { // is Sku for Catalog/Item page
        mu = '<a href="/Catalog/Item/' + obj.ImageUrl + '">'
	    + '<img src="/assets/images/Products/thumbs/' + obj.Images[0] + '.jpg" '
	    + 'width="100" height="100" alt="' + obj.Name + '" '
	    + '/>'
	    + '</a>';
        mu = $(mu);
        if (jcarousel_itemOnClick) mu.bind('click', { Id: obj.SkuId }, function(e) { jcarousel_itemOnClick(e); return false; });
        //else mu.bind('click', function() { return false; });
        if (jcarousel_itemOnMouseOver) mu.bind('mouseover', { Id: obj.SkuId }, function(e) { jcarousel_itemOnMouseOver(e, this, obj.SkuId); });
        if (jcarousel_itemOnMouseOut) mu.bind('mouseout', { Id: obj.SkuId }, function(e) { jcarousel_itemOnMouseOut(e, this, obj.SkuId); });
    }
    var mj = $(mu);
    mj.tooltip({
        track: true,
        delay: 0,
        showURL: false,
        opacity: 1,
        fixPNG: true,
        showBody: " - ",
        extraClass: "pretty fancy",
        top: -15,
        left: 5
    }); 
    return mj.get(0);
};
var jcarousel_itemOnMouseOverTimeout;
function jcarousel_itemOnMouseOver(e, el, itemId) {
//    var el 
//    if (ev) {
//    }
    if (jcarousel_itemOnMouseOverTimeout) window.clearTimeout(jcarousel_itemOnMouseOverTimeout);
    jcarousel_itemOnMouseOverTimeout = window.setTimeout(function() {
        //Sys.Debug.trace('over:' + itemId);
        var obj;
        for (var i = 0; i < jcarousel_data.length; i++) {
            if (jcarousel_data[i].Id != itemId) continue;
            obj = jcarousel_data[i]; break;
        }
        if (obj) {
            var tt = $('#pnlHome_tooltip').eq(0).simpletip();
            tt.update(obj.Name);
            //tt.setPos(el.xPos + 5, el.yPos);
            tt.show();
        }
    }, 10);
}
function jcarousel_itemOnMouseOut(e, el, itemId) {
    if (jcarousel_itemOnMouseOverTimeout) window.clearTimeout(jcarousel_itemOnMouseOverTimeout);
    jcarousel_itemOnMouseOverTimeout = window.setTimeout(function() {
        //Sys.Debug.trace('out:' + itemId);
        var tt = $('#pnlHome_tooltip').eq(0).simpletip();
        tt.hide();
    }, 10);
}

function jcarousel_buttonNextCallback(carousel, el, enable) {
    //Sys.Debug.trace('next:')
}
function jcarousel_buttonPrevCallback(carousel, el, enable) {
    //Sys.Debug.trace('prev:')
}
/* setup script to place into consuming page
$(document).ready(function() {
    //setup jCarousel
    $('#pnlHome_carousel').jcarousel( //pnlHome_carousel
		 {
		 itemLoadCallback: jcarousel_itemLoadCallback
			 , buttonNextCallback: jcarousel_buttonNextCallback
			 , buttonPrevCallback: jcarousel_buttonPrevCallback
			 , auto: 4 // seconds to wait before scroll. 0 for no scrolling
			 , wrap: 'both' // enables rolling back
}
	 );
    //setup cluetip
    $('#pnlHome_tooltip').simpletip({ content: 'blah', baseClass: 'jquery-simpletip-tooltip', position: ["20", "-15"] });
    
});
*/

