/*
	Floating Shopping Cart Summary v2.0.0 (store)
	Written by All Web Promotion, Inc. 2008-2009.
*/

(function($){
	$.awpFloatingCartSummary = function (opts) {

		var defaults = {
			'cookieName'				: 'awpcartsummary',
			'cartSummarySel'			: '.cart-summary',
			'cartUnderSel'				: '.cart-summary .limit-under',
			'cartUnderDisplay'			: 'inline',
			'cartOverSel'				: '.cart-summary .limit-over',
			'cartOverDisplay'			: 'inline',
			'cartNoneSel'				: '.cart-summary .nocart',
			'cartNoneDisplay'			: 'inline',
			'cartLimitAmountSel'		: '.cart-summary .limit-amount',
			'cartLimitRemainderSel'		: '.cart-summary .limit-difference',
			'cartNumitemsSel'			: '.cart-numitems',
			'cartQuantitySel'			: '.cart-quantity',
			'cartSubtotalSel'			: '.cart-subtotal',
			'cartTotalSel'				: '.cart-total'
		};

		var settings = $.extend({}, defaults, opts);

		//$(document).ready(function() {

			var delimiter = '|';
			var shippingRemainder = 0;
			var shippingLimit  = toFloat($(settings.limitValueId).text());

			if (cookiesEnabled()) {

				var valc = getCookie(settings.cookieName);
				$(settings.cartSummarySel).css('display', 'block');
				$(settings.cartUnderSel
				  + ',' + settings.cartOverSel
				  + ',' + settings.cartNoneSel).css('display', 'none');

				if (valc) {
					var val = valc.replace('{plus}', '+').split(delimiter);
					if (settings.cartQuantitySel) {
						$(settings.cartQuantitySel).html((val[0]) ? val[0] : '&nbsp;');
					}
					if (settings.cartNumitemsSel) {
						$(settings.cartNumitemsSel).html((val[1]) ? val[1] : '&nbsp;');
					}
					if (settings.cartSubtotalSel) {
						$(settings.cartSubtotalSel).html((val[2]) ? val[2] : '&nbsp;');
					}
					if (settings.cartTotalSel) {
						$(settings.cartTotalSel).html((val[3]) ? val[3] : '&nbsp;');
					}
					var shipLimit = parseFloat(val[4]).toFixed(2)
					var shipRemainder = parseFloat(val[5]).toFixed(2);
					if (shipLimit > 0) {			
						$(settings.cartLimitAmountSel).text(shipLimit);
						$(settings.cartLimitRemainderSel).text(shipRemainder);
						if (shipRemainder > 0) {
							$(settings.cartUnderSel).css('display', settings.cartUnderDisplay);
						} else {
							$(settings.cartOverSel).css('display', settings.cartOverDisplay);
						}
					}
				} else {
					//$(settings.cartNoneSel).css('display', settings.cartNoneDisplay)
					$(settings.cartSummarySel).css('display', 'none');
				}

			} else {
				$(settings.cartSummarySel).css('display', 'none');
			}

		//}); // end ready()
	
		function getCookie (name) {
			var beg = document.cookie.indexOf(name + '=' );
			var len = beg + name.length + 1;
			if ((!beg) && (name != document.cookie.substring(0, name.length))) {
				return null;
			}
			if (beg == -1) { return null; }
			var end = document.cookie.indexOf(';', len );
			if (end == -1) { end = document.cookie.length; }
			return unescape(document.cookie.substring(len, end));
		}

		function cookiesEnabled () {
			var name = 'awpcartsummarytest';
			var value = 'testvalue';
			document.cookie = name + "=" + value +";path=/";
			return (getCookie(name) === value);
		}

		function toFloat (w) {
			var digitsStr = '0123456789';
			var pos;
			for (var i=0;i<w.length;i++) {
				pos = digitsStr.indexOf(w.substr(i, 1));
				if (pos != -1) {
					return parseFloat(w.substr(i)).toFixed(2);
				}
			}
			// else return NaN
			return parseFloat('x');
		}

	};
})(jQuery);

