/* UCM Categories nav */
dsg.fn.initUcmCatNav = function(box){
	var jCategories = $j(box).find("dl"),
		jActiveCategory = null;
	
	jCategories.each(function(){
		var jThis = $j(this),
			jHeader = jThis.children("dt"),
			jCategory = jThis.children("dd"),
			jMarkets = jCategory.children().children(),
			jMarketsCtl = jMarkets.find("> a"),
			jActiveMarket = null,
			jControler = $j('<span class="controller" role="button">Toggle</span>');
		
			if(!jHeader.hasClass('expanded')){
			jControler.appendTo(jHeader);
			};
			
			
		// Categories
		jThis
			.bind("expand", function(){
				if (!!jActiveCategory) {
					jActiveCategory.trigger("collapse");
				}
				jActiveCategory = jCategory.slideDown();
				jControler.removeClass("expand").attr('pressed','true'); // "pressed" : ARIA
			})
			.bind("collapse", function(e){
				jCategory.slideUp(function(){
					jMarkets.trigger("collapse");
				});
				jControler.addClass("expand").attr('pressed','false'); // "pressed" : ARIA
			});
		
		// Markets
		jMarkets
			.bind("expand", function(e){
				e.stopPropagation();
				if (!!jActiveMarket) {
					jActiveMarket.trigger("collapse");
				}
				jActiveMarket = $j(this).addClass("active").find("> ul").show().end();
			})
			.bind("collapse", function(e){
				e.stopPropagation();
				$j(this).find("ul").hide().parent().removeClass("active");
				jActiveMarket = false;
				
			}).not(".active").trigger("collapse");
		
		// Market controller
		jMarketsCtl.each(function(){
			if ($j(this).attr("data-url") == undefined) {
				var sMarketUrl = $j(this).attr("href");
				jViewMarket = $j(this).next().find("li.see-all a").attr("href", sMarketUrl);
				$j(this).removeAttr("href");
			}else{
				var sMarketUrl = $j(this).attr("data-url");
				jViewMarket = $j(this).next().find("li.see-all a").attr("data-url", sMarketUrl);
				$j(this).removeAttr("data-url");
			};
		});
		
		jMarketsCtl.click(function(e){
			e.preventDefault;
			if ($j(this).next().is(":visible")) {
				$j(this).parent().trigger("collapse");
			} else {
				$j(this).parent().trigger("expand");
			}
		});
		
		
		// Category controller
		jControler.click(function(){
			jThis.trigger( jCategory.is(':visible') ? 'collapse' : 'expand' );
		});
		
		// Hide Category
		if (!jThis.is(".active")) {
			jCategory.hide();
			jControler.addClass("expand").attr('pressed','false');
		} else {
			jActiveCategory = jThis;
			
			if (jMarkets.filter(".active").length > 0) {
				jMarkets.filter(".active").trigger("expand");
			} else {
				jMarkets.filter(":first").trigger("expand");
			}
		}
	});
};