/**
* @version $Id: MPGEAR.js 49487 2011-06-22 15:01:58Z daniel $
*/

var MPGEAR = MPGEAR || {};

//
// Shopping Cart
//
MPGEAR.cart = {
	// Declare default values
	settings: {
		popup: "#shopping-cart",			// Popup shopping cart
		link: ".shopping-cart-link",		// Shopping cart link
		link_text: "span",					// Shopping cart link Ajax modified holder
		close_button: ".close",				// Close button within the popup
		limit: 3
	},
	
	// Initialize shopping cart events 
	init: function(options) {
		// Add content to popup
		MPGEAR.cart.get("none");				
		MPGEAR.cart.settings = jQuery.extend({}, MPGEAR.cart.settings, options);
		if (typeof(parent_data) == 'undefined') {
			jQuery('.buy').click(function () {
				MPGEAR.cart.add(jQuery(this));
				return false;
			});
		}
		// Hover event for the shopping cart link
		jQuery(MPGEAR.cart.settings.link).hover(function() {
			jQuery(MPGEAR.cart.settings.popup).fadeIn(0);
		});
		// Close shopping cart popup
		jQuery(MPGEAR.cart.settings.close_button).live("click", function(event) {
			event.preventDefault();
			jQuery(MPGEAR.cart.settings.popup).hide();
		});
		jQuery("body").click(function(event) {
		    if (!jQuery(event.target).closest(MPGEAR.cart.settings.popup).length) {
		        jQuery(MPGEAR.cart.settings.popup).hide();
		    };
		});
	},

	// Add item to cart
	add: function(element) {
		window.scrollTo(0, 0);
		jQuery(MPGEAR.cart.settings.popup).fadeIn(0);
		var query = '';
		if (element.is('a')) {
			query += element.attr('href').substr(element.attr('href').indexOf('?') + 1);
		} else {
			jQuery('form[name="display"] input, form[name="display"] select, form[name="display"] textarea').each(function () {
				query += jQuery(this).attr('name') + '=' + jQuery(this).val() + '&';
			});
		}
		jQuery.ajax({
			"async": true,
			"type": "POST",
			"url": smarty_vars['rel_html_url'],
			"data": query,
			"success": function () {
				MPGEAR.cart.get();
			}
		});
	},
	
	// Update cart popup
	get: function(options) {
		jQuery.getJSON(
			smarty_vars['rel_html_url']+"index.php?page=item_ajax&action=get_items_from_cart&limit="+MPGEAR.cart.settings.limit,
			function (data) {
				jQuery(MPGEAR.cart.settings.link).find(MPGEAR.cart.settings.link_text).text(" "+data.cart_subtotal+" ("+data.cart_qty+" items)");
				jQuery(MPGEAR.cart.settings.popup).html(innerShiv(data.html)); // We use innerShiv because IE cannot load HTML5 elements properly
			}
		);
	}
}
