$(function(){
	var module_layout;
	setTimeout(function(){ updateLayoutJSON(); }, 1500);
	
	// Visual cue
	$('#modulesContent .module .mod_wrapper .mod_header').css("cursor", "pointer");
	
	$('#addMoreLink, #addMoreDrawerClose').click(function(){
		// This is overkill, but oh well
		var drawer = $('#addMoreDrawer');
		var icon = $('#addMoreIcon');
		var imgs = $("#availableModules");
		var className= drawer.attr("class");
		
		if(className=="" || className=="clearfix")
		{
		drawer.addClass("icn_plus");
		}
		if (drawer.hasClass("icn_plus")) {
		drawer.removeClass('icn_plus').addClass('icn_minus');
			icon.removeClass('icn_plus').addClass('icn_minus');
			imgs.css("visibility","visible"); // corrects IE6 improper display of element
			drawer.slideDown();
		} else {
		drawer.removeClass('icn_minus').addClass('icn_plus');
			icon.removeClass('icn_minus').addClass('icn_plus');
			drawer.slideUp(function() {imgs.css("visibility","hidden");}); // call back for kenmore-specific visibility toggling to correct IE6
		}
	});
	
	
	var currentModuleIndex = 0;
	var totalModules = $('#availableModules ul li').length;
	var currentLeft = 0;
	
	if (totalModules > 1)
		$('#addMoreLeftArrow').show();
	
	// Add More Modules left click
	$('#addMoreLeftArrow').click(function(){
		var offset = $('#availableModules ul li').eq(currentModuleIndex).width();
		currentLeft = currentLeft - offset - 15;
		$('#availableModules ul').animate({ left: currentLeft + "px" }, 500);
		currentModuleIndex++;
		if (currentModuleIndex > 0)
			$('#addMoreRightArrow').show();
		else
			$('#addMoreRightArrow').hide();
		if (currentModuleIndex >= totalModules - 1)
			$('#addMoreLeftArrow').hide();
		else
			$('#addMoreLeftArrow').show();
	});
	// Add More Modules right click
	$('#addMoreRightArrow').click(function(){
		currentModuleIndex--;
		var offset = $('#availableModules ul li').eq(currentModuleIndex).width();
		currentLeft = currentLeft + offset + 15;
		$('#availableModules ul').animate({ left: currentLeft + "px" }, 500);
		if (currentModuleIndex >= totalModules - 1)
			$('#addMoreLeftArrow').hide();
		else
			$('#addMoreLeftArrow').show();
		if (currentModuleIndex <= 0)
			$('#addMoreRightArrow').hide();
		else
			$('#addMoreLeftArrow').show();
	});
	
	// Close module click
	$('.module a.mod_close').click(function(){
		setTimeout(function(){ updateLayoutJSON(); }, 10);
		$(this).parents('.module').hide();
		var imgName='#img_'+$(this).attr('name');
		$(imgName).show();
	});
	
	// Modules sortable-ness
	$('#dashboardModules #modulesContent').sortable({
		opacity: 		'0.8',
		handle:			'.mod_header',
		cursor:			'pointer',
		placeholder:	'module_placeholder',
		start:			function(event, ui) {
			// Make the placeholder look pretty
			ui.placeholder.addClass(ui.item.attr('class'));
			$('<div class="placeholder_content"></div>').appendTo(ui.placeholder);
		},
		stop:			function(event, ui) {
			// Nothing to do... yet.
		},
		update:			function(event, ui){
			// Update the module_layout JSON;
			setTimeout(function(){ updateLayoutJSON(); }, 1500);
		}
	}).disableSelection();
	
	window.onbeforeunload = function(){
		// Send data to backend
	};
	
	function updateLayoutJSON() {
		var indexCount = 0;
		var orderCount = 1;
		module_layout = { modules: [] };
		$('#modulesContent .module').each(function(){
		if ($(this).is(':visible')){
				module_layout.modules[indexCount++] = {									   
					ID: 	$(this).attr('ID'),
					Order: 	orderCount++
				}
			}
		});

		if($('#isDashboard')!=null & $('#isDashboard').val()=='true'){
			SaveDashBoardLayout( module_layout);
		}
	}
});

/* Fix for ECOM-177867 */
$(document).ready(function(){
    var moduleWidth=$('#expressBilling').width();
    if($('#expressShipping').width() > moduleWidth){moduleWidth=$('#expressShipping').width();}
    if($('#expressCC').width() > moduleWidth){moduleWidth=$('#expressCC').width();}
    $('#module_ExpressCheckout').css({width:moduleWidth+35});
});

