/**
 * Dependencies: FXMicrosite.js
 *				 jquery.js
 *				 jquery.UIButton.js
 *
 */

FXMicrosite.showMenu = {
	menu: [],
	path: "",
	assetsPath: "",

	init: function()
	{
		// show menu path
		if(document.location.href.indexOf("blogs.fxnetworks") != -1) // if is blog, make path absolute
		{
			FXMicrosite.showMenu.path = "http://www.fxnetworks.com/shows/originals/" + FXMicrosite.params.show + "/";
		}

		// assets path
		FXMicrosite.showMenu.assetsPath = FXMicrosite.showMenu.path + "assets/menu/";
	},

	printMenu: function(showMenuSelector) {
		$.getJSON(FXMicrosite.showMenu.handler || FXMicrosite.config.handler, {action: 'getShowMenu', show: FXMicrosite.params.show}, function(res) {
			if(res)
			{
				FXMicrosite.showMenu.buildMenu(res);
				if($(showMenuSelector).length)
				{
					$(showMenuSelector).html(FXMicrosite.showMenu.getMenu());

					// set up show menu states, set current selected menu item
					var pageURL = FXMicrosite.params.pageURL;
					if(pageURL == 'crew.php') // if crew, make cast & crew selected
					{
						pageURL = 'cast.php';
					}
					var dex = $("#showMenu a").index($("#showMenu a[href$='" + pageURL + "']"));
					$('#showMenu .menuNav').UIButton({imgOut: res.ext[0], imgOver: "_on" + res.ext[0], initSelectedBtn: $(".menuNav").get(dex)}).unbind('click');

					// drop downs
					$('#showMenu li').hover(function() {
						$('> ul', this).show();
					}, function() {
						$('> ul', this).hide();
					});
				}

				$(showMenuSelector).trigger("complete.showMenu");
			}
		});
	},

	buildMenu: function(showMenuJSON) {
		var len = showMenuJSON.length;
		var showMenu = [];
		var dex;

		showMenu.push('<ul>');

		for(var i = 0; i < len; i++)
		{
			dex = i + 1;
			dex = (dex < 10) ? "0" + dex : dex;

			showMenu.push(FXMicrosite.showMenu.buildMenuItem(showMenuJSON[i], dex, showMenuJSON.show, showMenuJSON.ext[0]));
		}

		showMenu.push('</ul>');

		FXMicrosite.showMenu.menu = showMenu;
	},

	buildMenuItem: function(menuItemJSON, dex, show, ext) {
		var menuItem = [];

		if (menuItemJSON.url && menuItemJSON.url.indexOf("http") != -1){

			menuItem.push('<li><a href="'+ (menuItemJSON.url || '#') + '"');

		}else{

			menuItem.push('<li><a href="'+ FXMicrosite.showMenu.path + (menuItemJSON.url || '#') + '"');
		}

		if (menuItemJSON.target){

			menuItem.push(' target="'+menuItemJSON.target+'" ');

		}

		if(menuItemJSON.tracking == 'onclick')
		{
			menuItem.push(' onclick="s_analytics.tl(this,\'o\',\'fx:shows:' + show + ':' + menuItemJSON.id + '\');"');
		}
		menuItem.push('><img src="' + FXMicrosite.showMenu.assetsPath + 'menuNav_' + dex + ext + '" class="menuNav" alt=""/></a>');

		if(menuItemJSON.children)
		{
			var len = menuItemJSON.children.length;
			menuItem.push('<ul id="submenu-'+menuItemJSON.id+'">');
			for(var i = 0, subDex; i < len; i++)
			{
				subDex = i + 1;
				subDex = (subDex < 10) ? "0" + subDex : subDex;
				menuItem.push(FXMicrosite.showMenu.buildMenuItem(menuItemJSON.children[i], dex + '_' + subDex, show, ext));
			}
			menuItem.push('</ul>');
		}

		menuItem.push('</li>');

		return menuItem.join("");
	},

	getMenu: function() {
		return FXMicrosite.showMenu.menu.join("");
	}
};
