//------------------------------------------------------------------------------------------------
// INIT
//------------------------------------------------------------------------------------------------

function initMoversShakers() {
	installMoversShakers_menu();
	prepMoversShakers_slider();
}

//------------------------------------------------------------------------------------------------
// AJAX POPULATE 
//------------------------------------------------------------------------------------------------


function getMS(url){
	$.ajax({					
			url: url,
			dataType: 'json',
			cache: false,
			success: function(data){ MSpopulate (data); }
	 });
}

function MSpopulate (data) {
	// removed animation to solve quirks
	$('#MS_slider UL').empty();

	collapseMSmenu();
	$.each(data, function(i, val){
		$('#MS_slider UL').append($(window.newMS_LI).clone());
		$('#MS_slider UL LI:last img').attr("src",val.thumbnail).attr("width", val.width).attr("height", val.height);
		$('#MS_slider UL LI:last STRONG a').text(val.name);
		$('#MS_slider UL LI:last SPAN').text(val.percent +'%')
		$('#MS_slider UL LI:last a').attr("href",val.url);
	});
}


//------------------------------------------------------------------------------------------------
//  MOVERS-SHAKERS DOM MISC
//------------------------------------------------------------------------------------------------

function prepMoversShakers_slider() {
	$('#moversShakers_UL').wrap('<div id="MS_slider"></div>');
	$('#MS_slider').wrap('<div id="MS_slideContainer"></div>');
	window.newMS_UL = $('#moversShakers_UL').clone();
	window.newMS_LI = $('#moversShakers_UL LI:last').clone();
}

function slideMS_left() {
	var delta =  $('#MS_slider').children().outerWidth(true);
	$('#MS_slider').animate({"left": -delta}, 800, "easeInOutQuint", function(){
		$('#MS_slider UL:first').remove();
		$('#MS_slider').css("left","0px");
	});
}

//------------------------------------------------------------------------------------------------
// MENU
//------------------------------------------------------------------------------------------------

function installMoversShakers_menu() {

	// Initial Category -- now populated "statically"
	//$('#moversHead STRONG').text('Arts');
	//getMS('js/mock_data/json_moversShakers.arts.js');				
	
	// Bind Menu Hover 
	$('#moversHead').mouseover(function(){
		if ($('#moversShakersMenu').length <= 0) {
			createMoversShakersMenu();
			setTimeout("msMenu_Timeout()",1000);
		}

	});
	
	// livequery to collapse menu when unattended. Catch events hovering, not hovering, leaving the dom
	$('#moversShakersMenu, #moversHead').livequery(function(){    
        $(this).hover(function() {window.ms_MenuState = 1;}, function() {window.ms_MenuState = 0;});}, function() {	collapseMSmenu(); window.ms_MenuState = 0; }); 
}

function createMoversShakersMenu() {
	var msMenu = [
					{"title":"Arts","listItemId":"msli_Arts", "url":"/v2/tiles/movers-and-shakers/category/arts"},
					{"title":"Society + Philanthropy","listItemId":"msli_SocietyPhilanthropy", "url":"/v2/tiles/movers-and-shakers/category/society"},
					{"title":"Fashion","listItemId":"msli_Fashion", "url":"/v2/tiles/movers-and-shakers/category/fashion"},
					{"title":"Media + Digital","listItemId":"msli_MediaDigital", "url":"/v2/tiles/movers-and-shakers/category/media"},
					{"title":"Entertainment","listItemId":"msli_Entertainment", "url":"/v2/tiles/movers-and-shakers/category/entertainment"},
					{"title":"Business","listItemId":"msli_Business", "url":"/v2/tiles/movers-and-shakers/category/business"}
					]
	$('.movers').prepend('<div id="moversShakersMenu"></div>');
	$('#moversShakersMenu').css({"height":"1px", "opacity":"0"}).append('<ul></ul>');
	msMenu.push({}); /* empty object added so I can wait for iteration complete */
	$.each(msMenu, function(i, val){
		if (i == msMenu.length-1) {
				revealMSmenu();
				return false;
		}
		$('#moversShakersMenu ul').append('<li></li>');
		$('#moversShakersMenu li:last').attr("id",val.listItemId).css("cursor","pointer").text(val.title);
		$('#moversShakersMenu li:last').click(function(){
			$('#moversHead STRONG').text(val.title);
			getMS(val.url);
			return false;
		});
	});
}

function prevent_IE_clicksUnderneath () { // sorry, can't seem to stop propagation otherwise.
	if ($.browser.msie) {
	var width = $('#moversShakersMenu').outerWidth(false);
	var	height = $('#moversShakersMenu').outerHeight(false);
	var	menuposition = $('#moversShakersMenu').position();

	$('#moversShakersMenu').parent().append('<div id="ieMouseBlocker"></div>');
	$('#ieMouseBlocker').css({
			"margin-top":"40px",
			"width":width,
			"height":height, 
			"top": menuposition.top, 
			"left": menuposition.left, 
			"position":"absolute", 
			"z-index":"500", 
			"backgroundColor": "#C90204"
			});
	}
}

function restore_IE_clicksUnderneath () {
	$('#ieMouseBlocker').remove();
}

function revealMSmenu(){
	
	$('#moversShakersMenu').animate({"height":"130", "opacity":"1"}, 500,"easeInOutQuint", function(){
		$('#moversShakersMenu').css({"height":"130","position":"absolute", "z-index":"1000"});
		prevent_IE_clicksUnderneath ();
		$('#moversShakersMenu').hover(function(){
			window.ms_MenuState = 1;
		},function(){
			window.ms_MenuState = 0;
			collapseMSmenu();
		});
	});
}

function collapseMSmenu() {
	restore_IE_clicksUnderneath ();
	$('#moversShakersMenu').animate({"height":"1px", "opacity":"0"}, 400,"easeInOutQuint", function(){
		$('#moversShakersMenu').remove();
	});
}

function msMenu_Timeout(){
	if (window.ms_MenuState == 0) {
		collapseMSmenu();
	}
}
