
/* file:source/js/temp.js */

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('$(5).U(3(){6(!/^14/.12("1d")){Y 1e}6(!8.R){8.R=V(3(){7 E=$(8),B=$(5.v("u")).i("n","o").4("g","m"),A=$(5.v("u")).i("n","p").4("g","m"),D=$(5.v("u")).i("n","r"),C=1;$(5.10).k(B).k(A.k(D));6(A.4("15")==="1a"){E.18("1c 13",3(){A.4("K",((5.17.x||5.10.x)+b.s(E.16()/2))+"q")})}1.f=3(){7 G=0,F=0,H=$("#r");H.h().J(3(){G=b.L(G,$(1).19())});H.h().J(3(){F=b.L(F,$(1).1b())});H.4({K:(0-b.s(F/2))+"q",11:(0-b.s(G/2))+"q"})};1.f();1.1t=3(F){$("#r").1r(F);1.f()};1.T=3(){7 G=$("#o"),F=$("#p");G.w(F).4({e:"O",g:"1p"});1.f();G.w(F).4("e","y");6($.N.M){$("I").4("e","O")}$(8).z("1q")};1.j=3(){7 G=$("#o"),F=$("#p");G.w(F).4("g","m").1w();6($.N.M){$("I").4("e","y")}$(8).z("1i")};1.P=1j;B.c(3(){6(C.P){C.j()}})})}});3 W(B){7 C=1,A="1h",D="1f";1.l=$(B);1.S=1.l.t(".1n").h().Z("*").d("1o");1.9=1.l.t(".X").h().Z("*").d("1m").c(3(){7 E=C.9.1k(1);$(C.9.Q(A)[E]).d(A);$(C.S.d(D).j()[E]).T().Q(D)});1.9.t("a").c(3(E){E.1l()});6(1.9.1g>0){$(1.9[0]).c()}}$(5).U(3(){8.X=$(".1v").1s(3(){Y V W(1)}).1u()});',62,95,'|this||function|css|document|if|var|window|tabs||Math|click|addClass|visibility|resizeContent|display|children|attr|hide|append|container|none|id|synOverlayElement|synCenteredPixel|px|synCenteredMessage|floor|find|div|createElement|add|scrollTop|visible|trigger|||||||||select|each|top|max|msie6|browser|hidden|clickCloses|removeClass|synOverlay|contents|show|ready|new|synTabHandler|synTabs|return|filter|body|left|test|resize|syn|position|innerHeight|documentElement|bind|outerWidth|absolute|outerHeight|scroll|synertech|false|hiddenTab|length|chosen|synOverlayHide|true|index|preventDefault|synTab|synTabContents|synTabContent|block|synOverlayShow|html|map|setContent|get|synTabbed|end'.split('|'),0,{}))


/* file:source/js/inCart.js */

if (window.isCartPage) {
	window.synFloatingCart = new (function () {
		this.handleCart = function() {
			try {
				var synFloatingCartFrameTest = /^synFloatingCartFrame/,
				    passedArguments = synFloatingCartFrameTest.test(window.name) ?
				      JSON.parse(unescape(window.name.replace(/^synFloatingCartFrame/, ""))) :
				      {},
				    cart = synParseCart();
				if (!cart) return;

				// get names of event buttons
				var eventTriggers = [];
				for (i in cart.events)
					eventTriggers.push(cart.events[i]);

				// build information to send back to top page
				var form = $(cart.form),
				    events = cart.events,
				    output = {
					items: $.map(cart.items, function(item) {
						var obj = {
							name: item.name,
							href: item.elements.name.href,
							cost: item.cost,
							price: item.price,
							quantity: item.quantity,
							quantityInput: item.elements.quantity.name,
							options: item.options
						};
						if (item.elements.image)
							obj.image = item.elements.image.src;
						return obj;
					}),
					subtotal: cart.subtotal,
					total: cart.total,
					tax: cart.tax,
					shipping: cart.shipping,
					form: {
						action: form.attr("action"),
						method: form.attr("method"),
						name: form.attr("name"),
						events: $.each(events, function(key, value) { events[key] = value.getAttribute("name"); }),
						elements: form.find("input, select").
						  not($.map(cart.items, function(item) { return item.elements.quantity; })).
						  not(eventTriggers).
						  map(function() {
							return {
								name: this.name,
								value: $(this).val()
							};
						  }).get()
					}
				    },
				    removeUndefined = function(obj) {
					    $.each(obj, function (key, value) {
						    if (typeof value === "undefined") delete obj[key];
					    });
				    };

				removeUndefined(output);
				removeUndefined(output.form);

				// create communication iframe
				function getStoreFloatingCartURL(storeURL) {
					var timestamp = "?" + (new Date()).getTime();
					return passedArguments.inEditor || passedArguments.isSearchPage || passedArguments.isTranslated ?
						passedArguments.referrer + (passedArguments.isSearchPage || passedArguments.isTranslated ? "" : timestamp) :
						storeURL.replace(/\/[^\/]*(\?.*)?$/, "/synfloatingcart.html") + timestamp;
				}

				// pass a flag to the communication IFRAME that tell's it we're not in a second frame
				if (!passedArguments.inFrame)
					output.refreshFrame = true;

				synCreateIframe({
					src: getStoreFloatingCartURL(passedArguments.referrer || cart.elements.keepShopping.href),
					name: "synFloatingCartCommFrame" + escape(JSON.stringify(output)),
					id: "synFloatingCartFrame"
				});

				if (!passedArguments.inEditor && passedArguments.baseHref) {
					// after sending back signal to close the overlay, send cart data back to store domain
					// make sure to tell it to refresh the data
					output.refreshFrame = true;
					synCreateIframe({
						src: getStoreFloatingCartURL(passedArguments.baseHref),
						name: "synFloatingCartCommFrame" + escape(JSON.stringify(output))
					});
				}
			} catch (e) {
				if (window.console) console.log(e);
			}
		};
	});
}

/* file:source/js/inStore.js */

if (!window.isCartPage) {
	window.synFloatingCart = new (function () {
		var overlayTimeout = null;
		this.cartData = null;

		this.receiveCartData = function(json) {
			try {
				if (this.storage) {
					this.storage.set("synFloatingCart", json);
				}
			} catch (e) {
				if (window.console) console.log(e);
			}
			this.cartData = JSON.parse(json);
			this.display();
			if (window.synOverlay) {
				// hide "add to cart" overlay
				$(window).trigger("synFloatingCart", { dataReceived: this.cartData });
				synOverlay.hide();
				if (overlayTimeout) {
					clearTimeout(overlayTimeout);
					overlayTimeout = null;
				}
			}
		};

		this.display = function() {
			var cart = this.cartData;
			for (var i = 0, containers = $(".synFloatingCart"), container; container = containers[i]; i++) {
				var container = $(container),
				    itemCount = 0;
				$.each(cart.items, function(key, item) { itemCount += item.quantity; });

				// remove currently displayed items
				container.find(".item").not(".hidden").remove();

				container.find(".loadingMessage").addClass("hidden");
				if (itemCount > 0) {
					container.find(".emptyMessage").addClass("hidden");

					function displayValue(jQuerySet, cssExpression, value) {
						var elements = jQuerySet.find(cssExpression),
						    valueElements = elements.find(".value");
						elements.add(valueElements).removeClass("hidden").end();
						var outputElements = (valueElements.length > 0 ? valueElements : elements);
						if (typeof value === "string" || typeof value === "number")
							outputElements.text(value);
						else
							outputElements.empty().append(value);
					}

					displayValue(container, ".itemCount", itemCount);
					if (cart.subtotal) displayValue(container, ".subtotal", cart.subtotal);
					if (cart.total) displayValue(container, ".total", cart.total);


					var template = container.find(".item")[0];
					if (!template) continue;
					for (var j = 0, k = cart.items.length, item; j < k && (item = cart.items[j]); j++) {
						var elements,
						    valueElements,
						    row = template.cloneNode(true),
						    values = ["quantity", "name", "price", "cost"];

						template.parentNode.insertBefore(row, template);
						row = $(row);

						displayValue(row, ".name", $(document.createElement("a")).attr("href", item.href).text(item.name));
						displayValue(row, ".quantity", item.quantity);
						displayValue(row, ".cost", item.cost);
						displayValue(row, (item.quantity > 1 ? ".price, .priceEach" : ".price"), item.price);

						var optionsLength = item.options.length;
						if (optionsLength > 0) {
							var optionTemplate = row.find(".option"),
							    optionSeparator = row.find(".options").find(".separator");
							$.each(item.options, function(key, option) {
								var optionRow = optionTemplate.clone();
								optionRow.insertBefore(optionTemplate).removeClass("hidden");
								$.each(["name", "value", "price", "withoutPrice"], function(key, className) {
									if (option[className])
										optionRow.find("." + className).html(option[className]).removeClass("hidden");
								});
								if (key + 1 < optionsLength) {
									optionRow.append(optionSeparator.clone().removeClass("hidden"));
								}
							});
							row.find(".options").removeClass("hidden");
						}

						row.removeClass("hidden");
					}
				} else {
					container.find(".emptyMessage").removeClass("hidden");
					container.find(".itemCount, .subtotal, .total").addClass("hidden");
				}
			}
		};

		this.loadData = function() {
			// create cart iframe
			var isYahooSearch = (location.host === "search.store.yahoo.net"),
			    attributes = {
				src: "",
				name: "synFloatingCartFrame" + escape(JSON.stringify({
					referrer: location.pathname === "/translate_c" ? $("#synFloatingCartTranslationLink").attr("href") :
					  isYahooSearch ? "http://search.store.yahoo.net/cgi-bin/nsearch?catalog=" + storeID :
					  location.search !== "" ?
					    location.href.replace(/\?\.ynsctx=.*$/, "") :
					    location.href,
					inEditor: /\.store\.yahoo\.net\/RT\/NEWEDIT/.test(location.href),
					isSearchPage: window.isSearchPage || isYahooSearch,
					isTranslated: location.pathname === "/translate_c", /* page is being translated by Google Translate */
					baseHref: $("base[href]").attr("href"),
					storeID: storeID,
					inFrame: true
				})),
				id: "synFloatingCartFrame"
			    };
			synCreateIframe(attributes);

			if (this.storage) {
				try {
					this.storage.get("synFloatingCart", function(ok, val) {
						var data = (val && val !== "") ? JSON.parse(val) : {};
						if (ok && data.items && !data.isDirty) {
							this.cartData = data;
							this.display();
						} else {
							this.scrapeCart();
						}
					}, this);
				} catch (e) {
					if (window.console) console.log(e);
					this.scrapeCart();
				}
			} else {
				this.scrapeCart();
			}

			// if there is an overlay and an "adding to cart" message, set each Floating
			//   Cart form to target the hidden IFRAME
			for (var i = 0, forms = $("form.synFloatingCartForm"); form = forms[i]; i++) {
				this.formHandler(form);
			};
		};

		this.scrapeCart = function() {
			$("#synFloatingCartFrame").attr("src", "http://order.store.yahoo.net/cgi-bin/wg-order?" + storeID);
			$(".synFloatingCart").removeClass("hidden").find(".loadingMessage").removeClass("hidden");
		};

		this.init = function() {
			window.synFloatingCart.formHandler = (window.synOverlay && document.getElementById("synFloatingCartAdding")) ? function(form) {
				var target = $("#synFloatingCartFrame").attr("name");
				if (!target) return;

				$(form).attr("target", target).submit(function() {
					synOverlay.clickCloses = false;
					synOverlay.setContent($("#synFloatingCartAdding").clone().css("display", "block"));
					synOverlay.show();
					overlayTimeout = setTimeout(function() {
						// TODO: display "failed add to cart" message here
						$(window).trigger("synFloatingCart", { communicationTimeout: true });
						synOverlay.hide();
					}, 20000);
				});
			} : function() {};

			// create Persist storage (IE storage requires adding a DOM element to document.body)
			try {
				if (window.Persist) synFloatingCart.storage = new Persist.Store("synFloatingCart");
			} catch (e) {
				if (window.console) console.log(e);
			}
			
			if (!/^synFloatingCart/.test(window.name)) {
				try {
					// load data from storage, or scrape the cart if storage is empty
					synFloatingCart.loadData();
				} catch (e) {
					if (window.console) console.log(e);
				}
			}
		};
	});
}

/* file:source/js/inCommFrame.js */

if (!window.isCartPage) {
	synFloatingCart.commFrame = function() {
		var synFloatingCartCommFrame = /^synFloatingCartCommFrame/;
		if (synFloatingCartCommFrame.test(window.name)) {
			var dataText = unescape(window.name.replace(synFloatingCartCommFrame, "")),
			    data = JSON.parse(dataText);
			try {
				if (data.refreshFrame && window.synFloatingCart) {
					synFloatingCart.receiveCartData(dataText);
				} else if (window.parent.parent.synFloatingCart) {
					window.parent.parent.synFloatingCart.receiveCartData(dataText);
				}
			} catch (e) {
				if (window.console) console.log(e);
			}
		}
	};
}

/* file:source/js/synFloatingCart.js */

if (window.Persist) Persist.remove("ie");

// helper function to handle creation of IFRAMEs in IE
function synCreateIframe(attributes) {
	if (!$.browser.msie) {
		$(document.body).append($(document.createElement("iframe")).attr(attributes));
	} else {
		var arr = [],
		    div = document.createElement("div");
		for (i in attributes)
			arr.push(i + "='" + attributes[i] + "'");
		
		// This extra container DIV prevents later problems with stored DOM elements
		//   The code originall just added the HTML to the body ("document.body += ..."),
		//   but IE was losing handles to stored DOM element's parentNodes...
		document.body.appendChild(div);
		div.innerHTML += "<iframe " + arr.join(" ") + "></iframe>";
	}
};

(function() {
	if (!/^syn/.test("synertech")) return false;

	if (window.isCartPage) {
		// in Yahoo checkout

		// Prevent alert errors from other scripts in the page while inside the IFRAME
		if (/^synFloatingCartFrame/.test(window.name)) {
			try {
				// prevent the Yahoo "Cookie's not enabled" error
				window.alert = function() { return; };
			} catch (e) {};
		}

		$(document).ready(synFloatingCart.handleCart);
	} else {
		// not in Yahoo checkout
		$(document).ready(synFloatingCart.init);
	}
})();

// Second IFRAME handler. This code receives data back to the store's domain.
if (synFloatingCart.commFrame) {
	$(document).ready(synFloatingCart.commFrame);
}

