/**
 * minicart_controller.js
 * 
 * @author jscott
 * @requires jQuery
 * @created 8/18/2009
 * @modified 8/19/2009
 * @copyright 2009 Red Door Interactive
 * 
 * This jQuery script implements UI controls on minicart widget. 
 * Event binding occurs on page load ready.
 **/

jQuery(function(){
	// Assemble the cast
	var minicart = jQuery('#minicart');
	var minicart_inner_wrapper = minicart.find('#minicart-inner-wrapper');
	var minicart_toggles = minicart.find('.minicart-toggle').find('a');
	var minicart_toggle_top = minicart.find('#minicart-toggle-top').find('a');
	var minicart_package_toggles = minicart_inner_wrapper.find('.minicart-package-toggle').find('a');
	var minicart_packages = minicart_inner_wrapper.find('.minicart-package');
	
	// Toggle open/closed minicart
	minicart_toggles.click(function(){
		if (minicart.hasClass('minicart-opened')) {
			// For a smooth transition, slideUp first on close...
			minicart_inner_wrapper.slideUp('slow', function(){
				minicart
					.removeClass('minicart-opened')
					.addClass('minicart-closed');
				minicart_toggle_top.text("[+] show cart summary");
			});
		} else {
			// ... and slideDown last on open.
			minicart
				.removeClass('minicart-closed')
				.addClass('minicart-opened');
			minicart_toggle_top.text("[-] hide cart summary");
			minicart_inner_wrapper.slideDown('slow');
		}
		
		return false;
	});
	
	// Toggle open/closed minicart-packages
	minicart_package_toggles.click(function(){
		// First, close all packages.
		minicart_packages.slideUp();
		minicart_package_toggles.find('span').text('+');
		
		// Then, toggle this package.
		var my_package = jQuery(this).parent().next('.minicart-package');
		var state = jQuery(this).find('span');
		
		if(my_package.css('display') === 'none') {
			my_package.slideDown();
			state.text('-');
		} else {
			my_package.slideUp();
			state.text('+');
		}

		return false;
	});
});
