/******  
Change History
C12907 - July 09, 2009 - Changed the default highlighed tab from second tab to first tab in New products film strip
Q01871 - 10/20/09 - QC-709 Optimize home page performance w/ Akamai Edge caching. Added few more explicit js includes.
Q01871 - 10/20/09 - QC-717 homepage filmstrip load with the page. changed timeout value to 0 from 5000.
******/

/******  
THUMB 
VIEWER,
WIDGET 1.0
******/

/* Global Vars */
var CAT_ITEMS_VISIBLE = 5;//dojo.query(".widget-header .back")[0]; // # of cats visible at once
var CAT_ITEM_TOTAL; // total # of cats
var INDEX = 0;
var MENU_ITEMS_SELECTOR = ".head-menu-items a";
/* -------------------- */

/******  
set up UI 
on pageload
******/
dojo.addOnLoad(function(){

	/* Setup the Intial Thumbnails  */
	setupThumbnails();
	
	/* event to load new thumbnails */
	dojo.query(MENU_ITEMS_SELECTOR).connect("onclick", function(e) {
		e.preventDefault();
		
		/* Request New Slider */		
		requestThumbNails( dojo.query(this).attr("href") );
		/* ------------------- */
		
		/* Highlight this tab / Unhighlight Others */
		dojo.query(MENU_ITEMS_SELECTOR).removeClass("selected");
		dojo.query(this).addClass("selected");
		/* ---------------------- */
	});
    
	if(INDEX == 0) {
		dojo.query(".widget-header .back").addClass("disable-lft");
	}    
	/* Events for forward / Backward */
    dojo.query(".widget-header .forward").connect("onclick", function(e){
        e.preventDefault();
        CAT_ITEM_TOTAL = dojo.attr(this, "name");
    	//alert("yo fwd ::: "+CAT_ITEM_TOTAL);
		fwd();
	});
	dojo.query(".widget-header .back").connect("onclick", function(e){
        e.preventDefault();
        CAT_ITEM_TOTAL = dojo.attr(this, "name");
    	//alert("yo bck ::: "+CAT_ITEM_TOTAL);
		bkwd();
	});
	/* ------------------------ */
	
});

function bkwd(){
	if (INDEX > 0) {
		INDEX--;
		dojo.query(".widget-header .forward").removeClass("disable-rt");
		dojo.query(".head-menu-items div").removeClass('front');
		// add class behind to all hidden elements		
		var COUNT_INITIAL = CAT_ITEMS_VISIBLE;
		var CAT_ITEMS_HIDDEN_LAST_INDEX = ((CAT_ITEM_TOTAL - CAT_ITEMS_VISIBLE) - 1);
		
		for(var i = COUNT_INITIAL; i<CAT_ITEM_TOTAL; i++) {
			var HIDDEN_ITEM = dojo.query(".head-menu-items div")[i];
			dojo.query(HIDDEN_ITEM).addClass('behind');
		}
		
		//show last hidden element
		var NODE = dojo.query(".head-menu-items div.behind")[CAT_ITEMS_HIDDEN_LAST_INDEX];
		NODE.style.display = "block";
		dojo.query(NODE).removeClass('behind');
		
		var LAST_EL_INQUEUE = dojo.query(".head-menu-items div:last-child");
		
		dojo.query(LAST_EL_INQUEUE).place(dojo.query(".head-menu-items"), "first");
		
		//move last element to beginning of queue then hide it
		var LAST_VISIBLE_NODE = dojo.query(".head-menu-items div")[CAT_ITEMS_VISIBLE];
		dojo.query(LAST_VISIBLE_NODE).addClass('behind');
		dojo.query(".head-menu-items .behind").style({display: "none"});
		resetIDS();
	}
	if (INDEX == 0){
		dojo.query(".widget-header .back").addClass("disable-lft");
	}
}

function fwd(){
	if (INDEX < ((CAT_ITEM_TOTAL)-(CAT_ITEMS_VISIBLE))) {
		INDEX++;
		// go in the opposite direction, requires removing class 'behind'
		dojo.query(".widget-header .back").removeClass("disable-lft");
		dojo.query(".head-menu-items div").removeClass('behind');
		// add class 'front' to all hidden elements
		var COUNT_INITIAL = CAT_ITEMS_VISIBLE;
		for(var i = COUNT_INITIAL; i<CAT_ITEM_TOTAL; i++) {
			var HIDDEN_ITEM = dojo.query(".head-menu-items div")[i];
			dojo.query(HIDDEN_ITEM).addClass('front');
		}
		
		//show first hidden element
		var NODE = dojo.query(".head-menu-items div.front")[0];
		NODE.style.display = "block";
		dojo.query(NODE).removeClass('front');
			
		// hide first element and move to end of queue
		dojo.query(".head-menu-items div:first-child").addClass('front');
		dojo.query(".head-menu-items .front").style({display: "none"});
		var FIRST_EL_INQUEUE = dojo.query(".head-menu-items div:first-child");
		dojo.query(FIRST_EL_INQUEUE).place(dojo.query(".head-menu-items"), "last");
		resetIDS();
		if(INDEX == ((CAT_ITEM_TOTAL)-(CAT_ITEMS_VISIBLE))){
		dojo.query(".widget-header .forward").addClass("disable-rt");
		}
	}
}

function resetIDS() {
	var NUM = CAT_ITEMS_VISIBLE - 1;
	var COUNTER;
	
	//COUNTER = 0;
	for(var i=0; i<=NUM; i++) {
		var ACTIVE_DIVS = dojo.query(".head-menu-items div")[i];
		dojo.query(ACTIVE_DIVS).attr("id", i);
	}
	
	//reset
	COUNTER = 0;
	var COUNT_INITIAL = CAT_ITEMS_VISIBLE;
	for(var i=COUNT_INITIAL; i<CAT_ITEM_TOTAL; i++){
		var INACTIVE_DIVS = dojo.query(".head-menu-items div")[i];
		dojo.query(INACTIVE_DIVS).attr("id", "");
	}
}

/* Function To Load Slider from [url] parameter */
function requestThumbNails( url ) {
	dojo.xhrPost({
		url: url,
		timeout: 0,
		load: function(data, ioArgs) {
			dojo.query(".widget-content")[0].innerHTML = data;
			setupThumbnails();
		},
	    error: function(response, data) { }
	});
};
/* ---------------------- */

/* Initialize slider and tooltips */
function setupThumbnails() {
	new lib.obj.itemSlider({
		viewport: ".widget-content .scroll",
		content: ".widget-content .content-wrapper",
		next: ".widget-content .forward a",
		prev: ".widget-content .back a",
		item: ".widget-content .sliderItem",
		direction: "horizontal",
		showAmount: 1,
		circular : true
	});
    addToolTips();
};
/* -------------------- */

/******  
THUMB
VIEWER,
WIDGET 1.0
ENDS HERE 
****/

/*******
TOOLTIP
*******/
function addToolTips() {
	/* Create Tooltip Functionality */
    site.func.createToolTips({ selectorActivator : ".sliderItem .tooltip", selectorToolTipText : ".sliderItem .tipbox", yOffset : -15 });
   
	/* Truncate Names */
	var selectorToTruncate = ".sliderItem .tooltip";
	lib.utils.strTruncate( selectorToTruncate, { length : 16, postfix : "..." });
	/* ------------- */
};