/* Browser Detect */
var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(b){for(var a=0;a<b.length;a++){var c=b[a].string,d=b[a].prop;this.versionSearchString=b[a].versionSearch||b[a].identity;if(c){if(c.indexOf(b[a].subString)!=-1)return b[a].identity}else if(d)return b[a].identity}},
searchVersion:function(b){var a=b.indexOf(this.versionSearchString);return a==-1?void 0:parseFloat(b.substring(a+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera",versionSearch:"Version"},{string:navigator.vendor,subString:"iCab",
identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",
identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone/iPod"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();


/* HTML 5 "input type='number'" shim for Firefox */
$(function(){$("<input />",{type:"number"}).get()[0].type!=="number"&&($("html").addClass("no-inputtypes-number"),$('input[type="number"]').each(function(){function b(d){a.val(+a.val()+d).trigger("change")}var a=$(this),e=a.attr("min")?+a.attr("min"):0,f=a.attr("max")?+a.attr("max"):999,c=a.attr("step")?+a.attr("step"):1,g=$('<span class="num-shim" style="position: absolute;"><span class="up" style="display: block; cursor: pointer;">&#9650;</span><span class="down" style="display: block; cursor: pointer;">&#9660;</span></span>');
a.wrap('<span style="position: relative; display: inline-block; margin-left: -0.5em;" />');a.bind("change",function(){var d=+a.val()||0;a.val(Math.min(Math.max(e,d),f))});a.bind("keydown",function(a){a.keyCode===38&&b(c);a.keyCode===40&&b(-c);$.inArray(a.keyCode,[8,13,27,46])===-1&&(a.keyCode<48||a.keyCode>57)&&(a.keyCode<96||a.keyCode>105)&&a.preventDefault()});g.insertAfter(a).find("span").bind("click",function(){$(this).hasClass("up")?b(c):b(-c)})}))});


/* HTML 5 test for Local Storage support */
var storage;
try {
  if (localStorage.getItem) {
    storage = localStorage;
  }
} catch(e) {}


/* Monitor anchor (#) for changes */
/*
 * jQuery hashchange event - v1.3 - 7/21/2010
 * http://benalman.com/projects/jquery-hashchange-plugin/
 *
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);


/* Asynchronous Search Pagination Handler */
function loadASPage() {
	$('#ajaxPaginationControl').remove();
	var hashLocator = window.location.hash;
	$('#filterSearchForm').append('<input type="hidden" name="page" value="' + parseFloat(hashLocator.substring(2)) + '" id="ajaxPaginationControl" />');
	var loadInto = $('#liveSearchResults');
	$('#productList').stop().fadeTo(1, 0.3);
	$.ajax({
		type: 'post',
		data: ($('#filterSearchForm input').serializeArray()),
		success: function(response) {
			loadInto.replaceWith($(response).find('#liveSearchResults'));
		},
		dataType: 'html'
	});
}


/* Update Search Page Title */
function updateTitle() {
	if ($('#filterSearchForm #manufacturers input:checkbox:checked').length == 1) {
		var $theBrand = $('#filterSearchForm #manufacturers input:checkbox:checked').next('label').text();
		if ($theBrand == 'Episode') {
			$theBrand = $theBrand.toLowerCase();
		}
		$('#manufacturerPromotion #manufacturerLogo h1').text($theBrand);
		var $logoURI = $('#filterSearchForm #manufacturers input:checkbox:checked').data('logo');
		var $logoWidth = $('#filterSearchForm #manufacturers input:checkbox:checked').data('logo-width');
		var $logoHeight = $('#filterSearchForm #manufacturers input:checkbox:checked').data('logo-height');
		$('#manufacturerPromotion #manufacturerLogo h1').replaceWith('<img src="' + $logoURI + '" alt="' + $theBrand + '" style="margin-left: 20px; margin-top: 20px; width: ' + $logoWidth + 'px; height: ' + $logoHeight + 'px;" />');
		var $brandImage = null;
		switch ($theBrand) {
			case 'Star Wars' : $brandImage = '/image/data/manufacturers/star-wars/index_promo.jpg'; break;
			case 'Marc O\'Polo' : $brandImage = '/image/data/manufacturers/marc-o-polo/index_promo.jpg'; break;
			case 'Brendel' : $brandImage = '/image/data/manufacturers/brendel/index_promo.jpg'; break;
			case 'Dakota (SUN)' : $brandImage = '/image/data/manufacturers/dakota/index_promo.jpg'; break;
			case 'episode' : $brandImage = '/image/data/manufacturers/episode/index_promo.jpg'; break;
			case 'EyeStuff' : $brandImage = '/image/data/manufacturers/eyestuff/index_promo.jpg'; break;
			case 'Azzuri' : $brandImage = '/image/data/manufacturers/azzuri/index_promo.jpg'; break;
			case 'Hero' : $brandImage = '/image/data/manufacturers/hero/index_promo.jpg'; break;
			case 'Humphrey\'s' : $brandImage = '/image/data/manufacturers/humphreys/index_promo.jpg'; break;
			case 'Ocean Blue (SUN)' : $brandImage = '/image/data/manufacturers/ocean-blue/index_promo.jpg'; break;
			case 'oio' : $brandImage = '/image/data/manufacturers/oio/index_promo.jpg'; break;
			case 'The OK Frame Co.' : $brandImage = '/image/data/manufacturers/ok/index_promo.jpg'; break;
			case 'Puccini' : $brandImage = '/image/data/manufacturers/puccini/index_promo.jpg'; break;
			case 'TITANflex' : $brandImage = '/image/data/manufacturers/titanflex/index_promo.jpg'; break;
			case 'Zoffani' : $brandImage = '/image/data/manufacturers/zoffani/index_promo.jpg'; break;
			case 'Gorgeous Girls' : $brandImage = '/image/data/manufacturers/gorgeous-girls/index_promo.jpg'; break;
			default : $brandImage = '/image/data/manufacturers/promo_image.jpg';
		}
		$('#manufacturerPromotion #manufacturerPhoto img').attr('src', $brandImage);

	} else {
		if ($('#manufacturerPromotion #manufacturerLogo img').length) {
			$('#manufacturerPromotion #manufacturerLogo img').remove();
			$('#manufacturerPromotion #manufacturerLogo').append('<h1>');
		}
		if ( (window.location.pathname == '/new-arrivals') ) {
			$('#manufacturerPromotion #manufacturerPhoto img').attr('src', '/image/data/manufacturers/new_arrivals_promo_image.jpg');
			$('#manufacturerPromotion #manufacturerLogo h1').text('New Arrivals');
		} else {
			$('#manufacturerPromotion #manufacturerPhoto img').attr('src', '/image/data/manufacturers/index_promo.jpg');
			$('#manufacturerPromotion #manufacturerLogo h1').text('Products Found');
		}
	}
}


/* Manufacturer Image Slideshow */
function slideshow() {
	var active = $('#imageSwitcher img.active');
	if ( active.length == 0 ) {
		active = $('#imageSwitcher img:last');
	}
	var nextSlide = active.next().length
		? active.next() :
		$('#imageSwitcher img:first');
	active.addClass('last-active');
	nextSlide.css({ 'filter': 'alpha(opacity=0)', '-moz-opacity': 0.0, 'opacity': 0.0  })
		.addClass('active')
		.animate({ 'filter': 'alpha(opacity=100)', '-moz-opacity': 1.0, 'opacity': 1.0 }, 1000, function() {
			active.removeClass('active last-active');
		});
}


/* On Load... */
$(document).ready(function(){

	var keys=[],k="38,38,40,40,37,39,37,39,66,65";$(document).keydown(function(a){keys.push(a.keyCode);if(keys.toString().indexOf(k)>=0)window.location="/928735d6f2c63bee316dd511c8ccaf55/",keys=[]});


	/* Reset Live Search Filters (where appropriate) */
	if ( ((window.location.pathname == '/new-arrivals') || (window.location.pathname == '/brands-and-products')) && (window.location.hash == '') ) {
		if (storage) {
			localStorage.clear();
		}
	}


	/* Product Detail Thumbnails */
	$('a.cloud-zoom-gallery').mouseenter(function(){
		$(this).trigger('click');
	});


	/* Flash 360 Viewer */
	if ( $('a#inline').length && jQuery().fancybox ) {
		$('a#inline').fancybox({
			'hideOnContentClick': false
		});
	}


	/* Add to Cart */
	$('form#productSelection #productButtons input[type*="submit"]').click(function(e) {
		e.preventDefault();
		var myObject = $('form#productSelection');
		var test = myObject.find('input[type="number"][value!="0"]').length > 0;
		var test2 = myObject.find('input[name="customer"][value!=""]').length > 0;
		if (test && test2) {
			/* AJAX Add to Cart */
			myObject.append('<input type="hidden" name="ajaxCart" value="1" />');
			$.ajax({
				url: 'index.php?route=checkout/cart',
				type: 'post',
				data: ($(':input', myObject).serializeArray()),
				dataType: 'json',
				success: function(json) {
					if (json['success']) {
						$('#inthebag').text(json['items']);
						if (json['items'] > 1) {
							$('#plural').text('s');
						}
						$(':input[type*="number"]', myObject).val(0);
						var options = '';
						for (var optionName in json['product_options']) {
							if (json['product_options'][optionName] >= 1) {
								var displayOptionName = optionName.replace('|', '-');
								options += '<tr><td class="acvlLeftCell">' + displayOptionName.split(' - ')[0] + '</td><td class="acvlRightCell">' + json['product_options'][optionName] + '</td></tr>';
							}
						}
						if ($("#internalInformationService").length) {
							$("#internalInformationService").remove();
						}
						$('#headerNav').after('<div id="internalInformationService"><div id="iisTitle"></div><div id="iisMessage"></div></div>');
						$('#iisTitle').css('text-transform', 'none').text('Item(s) successfully added to bag');
						$('#iisMessage').html('<table id="ajaxCartVisualProduct"><tr><td class="acvpRightCell"><p>' + json['product_name'] + '</p><div id="ajaxCartVisualControl"><a href="index.php?route=checkout/cart" class="lightButton">view bag</a><a href="/search#!1" class="darkButton">proceed</a></div></td><td><img src="/assets/images/whitespace.gif" alt="" title="' + json['product_name'] + '" style="background: url(' + json['product_thumbnail'] + ') left center;" /></td></tr></table><table id="ajaxCartVisualList"><tr><th id="thLeft">Colours</th><th id="thRight">Total</th></tr>' + options + '</table>');
						$('#internalInformationService').trigger('change');
					}
				}
//				error: function(jqXHR, textStatus) {
//					alert( "Request failed: " + textStatus );
//				}
			});
		}
		if (!test && test2) {
			if ($("#internalInformationService").length) {
				$("#internalInformationService").remove();
			}
			$('#headerNav').after('<div id="internalInformationService"><div id="iisTitle"></div><div id="iisMessage"></div></div>');
			$('#iisTitle').text('Error!');
			$('#iisMessage').html("<div style=\"border-top: 1px solid #fff; border-bottom: 1px solid #fff; margin-bottom: 10px; padding: 4px;\"><strong>Please enter at least one value in the colour/frame-size table below.</strong></div><div>Thank you.</div>");
			$('#internalInformationService').trigger('change');
			return false;
		}
		if (!test2) {
			if ($("#internalInformationService").length) {
				$("#internalInformationService").remove();
			}
			$('#headerNav').after('<div id="internalInformationService"><div id="iisTitle"></div><div id="iisMessage"></div></div>');
			$('#iisTitle').text('Error!');
			$('#iisMessage').html("<div style=\"border-top: 1px solid #fff; border-bottom: 1px solid #fff; margin-bottom: 10px; padding: 4px;\"><strong>You must login in order to be able to add products to your order.</strong></div><div>Thank you.</div>");
			$('#internalInformationService').trigger('change');
			return false;
		}
	});


	/* Remove from Cart */
	$('form#cart .rangeOrder .removeCol input[type*="checkbox"]').each(function() {
		$(this).click(function(evt) {
			if ($(this).prop('checked')) {
				var answer = confirm('Delete this Item: Are You Sure?');
				if (answer) {
					$('form#cart').submit();
				} else {
					return false;
				}
			}
			return true;
		});
	});


	/* Change Cart Quantities */
	if ( ($('form#cart').length) ) {
		var deferCartUpdate;
		$('form#cart .rangeOrder .quantityCol input[type*="number"]').blur(function() {
			deferCartUpdate = setTimeout(function() {
				$('form#cart').submit();
			}, 0);
		});
		$('form#cart .rangeOrder .quantityCol input[type*="number"]').focus(function() {
			if (deferCartUpdate) {
				clearTimeout(deferCartUpdate);
			}
		});
	}


	/* Add to Favourites */
	$('form#productSelection #addToFavourites[type*="button"]').click(function() {
		var test = $('form#productSelection').find('input[type="number"][value!="0"]').length > 0;
		if (test) {
			$('form#productSelection').attr({ action: '/index.php?route=account/wish_list' }).submit();
		} else {
			if ($("#internalInformationService").length) {
				$("#internalInformationService").remove();
			}
			$('#headerNav').after('<div id="internalInformationService"><div id="iisTitle"></div><div id="iisMessage"></div></div>');
			$('#iisTitle').text('Error!');
			$('#iisMessage').html("<div style=\"border-top: 1px solid #fff; border-bottom: 1px solid #fff; margin-bottom: 10px; padding: 4px;\"><strong>Please enter a quantity of at least '1' for each product you wish to add to your favourites.</strong></div><div>Thank you.</div>");
			$('#internalInformationService').trigger('change');
			return false;
		}
	});


	/* Continue Shopping */
	$('form#productSelection #continueShopping[type*="button"]').click(function() {
		window.location = '/search#!1';
	});


	/* Account Overview */
	if ( ($('#content #accountManagement div#changePassword').length) ) {
		$('#content #accountManagement div#changePassword').css({ 'height': '200px' }).activity().load('/index.php?route=account/password #password').css({ 'height': 'none' });
	}


	/* Notifications */
	var closePanel = '';
	var theBrowser = BrowserDetect.browser + ':' + BrowserDetect.version;
	if ( theBrowser != 'Explorer:7' ) {
		$('#internalInformationService').live('change', function() {
			clearTimeout(closePanel);
			var message = $('#internalInformationService');
			message.appendTo($('#navigationWrapper'));
			message.show('1', function() {
				closePanel = setTimeout('$("#internalInformationService").hide("1");', 6000);
			});
			$(this).hover(
				function () {
					clearTimeout(closePanel);
				},
				function () {
					closePanel = setTimeout('$("#internalInformationService").hide("1");', 6000);
				}
			);
			$('html, body').animate({ scrollTop: 0 }, 'slow');
		});
	}
	if ( $('span.error').length ) {
		$('span.error').each(function() {
			$(this).tipsy({
				trigger: 'manual',
				title: function() { return $(this).text() },
				gravity: 'w',
				offset: 10
			});
			$(this).tipsy('show');

		});
	}
	if ( $('#internalInformationService').length ) {
		$('#internalInformationService').trigger('change');
	}
	$('#proceed12').live('click', function(e) {
	e.preventDefault();
		$("#internalInformationService").hide("1");
	});


	/* Confirm Delete Address */
	if ( $('.deleteAddress').length ) {
		$('.deleteAddress').each(function() {
			$(this).click(function() {
				var answer = confirm('Delete this Address: Are You Sure?');
				if (answer) {
					return true;
				} else {
					return false;
				}
			});
		});
	}


	/* Confirm Remove from Favourites */
	if ( $('.confirmDelete').length ) {
		$('.confirmDelete').each(function() {
			$(this).click(function() {
				var answer = confirm('Delete this Item: Are You Sure?');
				if (answer) {
					return true;
				} else {
					return false;
				}
			});
		});
	}


	/* Search Filter Control Panel */
	// Expand/Collapse Panels according to user-configured state
	if ( $('.arrowDown').length ) {
		$('#prune h3').css({ cursor: 'pointer' });
		$('#prune h3').each(function() {
			if (storage) {
				var $thisID = $(this).parent().attr('id');
				var $userState = localStorage[$thisID];
				var $currentState = ( $(this).next('ul').is(':visible') ) ? 'visible' : 'hidden';
				if ( ( $userState != $currentState ) && $userState ) {
					$(this).next('ul').css({ overflow: 'hidden' }).slideToggle('fast'); // "overflow: hidden" prevents the infamous jQuery "slide jump"
					$('.arrowDown', this).toggle();
					$('.arrowRight', this).toggle();
				}
			}
			$(this).click(function(e) {
				e.preventDefault();
				var $thisID = $(this).parent().attr('id');
				$(this).next('ul').css({ overflow: 'hidden' }).slideToggle('fast', function() {
					if (storage) {
						localStorage[$thisID] = ( $(this).is(':hidden') ) ? 'hidden' : 'visible';
					}
				});
				$('.arrowDown', this).toggle();
				$('.arrowRight', this).toggle();

			});
		});
	}
	// Populate panels with user selections (where applicable)
	if ( $('#filterSearchForm').length ) {
		if (storage) {
			$('#filterSearchForm input').each(function() {
				var $name = $(this).attr('name');
				if ( ($(this).attr('type') == 'checkbox') && localStorage[$name] ) {
					$setState = (localStorage[$name] == 'selected') ? true : false;
					$(this).prop('checked', $setState);
				}
				if ( ($(this).attr('type') == 'text') && localStorage[$name] && ($name == 'product_code') ) {
					$(this).val(localStorage[$name]);
				}
			});
		}
	}
	// Slider Controls
	$('div.sliderControls').text('');
	$('.sliderValues').css({ 'margin-left': '6px' });
	$('.sliderValues input.rangeSelector').css({ background: '#000', color: '#fff', border: 0, width: '2em', padding: 0, margin: 0, 'font-size': '.8em', position: 'relative', top: '-2px' });
	$('.sliderValues input.rangeSelector.leftRange').css({ 'text-align': 'right', 'margin-right': '8px' });
	$('.sliderValues input.rangeSelector.rightRange').css({ 'text-align': 'left', 'margin-left': '8px' });
	$('.sliderControls').each(function() {
		var $min = $(this).prev('.leftRange').val();
		var $max = $(this).next('.rightRange').val();
		var $valMin = ($(this).prev('.leftRange').data('min-ingress')) ? $(this).prev('.leftRange').data('min-ingress') : $min;
		var $valMax = ($(this).next('.rightRange').data('max-ingress')) ? $(this).next('.rightRange').data('max-ingress') : $max;
		$(this).slider({
			range: true,
			min: parseInt($valMin),
			max: parseInt($valMax),
			values: [parseInt($min), parseInt($max)],
			slide: function(event, ui) {
				$(this).prev('.leftRange').val(ui.values[0]).trigger('change');
				$(this).next('.rightRange').val(ui.values[1]).trigger('change');
			}
		});
		if (storage) {
			var $minName = $(this).prev('.leftRange').attr('name');
			if (localStorage[$minName]) {
				$(this).prev('.leftRange').val($(this).slider('values', 0, parseInt(localStorage[$minName])));
			} else {
				$(this).prev('.leftRange').val($(this).slider('values', 0));
			}
			var $maxName = $(this).next('.rightRange').attr('name');
			if (localStorage[$maxName]) {
				$(this).next('.rightRange').val($(this).slider('values', 1, parseInt(localStorage[$maxName])));
			} else {
				$(this).next('.rightRange').val($(this).slider('values', 1));
			}
		} else {
			$(this).prev('.leftRange').val($(this).slider('values', 0));
			$(this).next('.rightRange').val($(this).slider('values', 1));
		}
	});
	// Colour Selectors
	$('#frameColour li img').each(function() {
		$(this).css({ cursor: 'pointer' }).tipsy({ gravity: 's', opacity: 0.8, delayIn: 300, fade: true }).click(function(evt) {
			if (evt.target.type !== 'checkbox') {
				var $checkbox = $(this).parents('li').find('input:checkbox');
				$checkbox.prop('checked', !$checkbox.attr('checked'));
				if ($checkbox.prop('checked')) {
					$(this).parent().append('<img src="/image/data/green_tick.png" class="activeIndicator" />');
					$checkbox.trigger('change');
				} else {
					$(this).parents('li').find('.activeIndicator').remove();
					$checkbox.trigger('change');
				}
				evt.stopPropagation();
				return false;
			}
		});
	});
	$('#frameColour ul.clearFix li input:checkbox').each(function() {
		if ($(this).prop('checked')) {
			$(this).parent().append('<img src="/image/data/green_tick.png" class="activeIndicator" />');
		}
	});
	$('#frameColour ul.clearFix li input').each(function() {
		$(this).css({ 'margin-left': '-10000px' });
	});


	/* Asynchronous Search */
	var $launchedFrom = $(location).attr('href');
	if ($launchedFrom.match(/fmid/)) {
		if (storage) {
			$('#filterSearchForm input').each(function() {
				var $name = $(this).attr('name');
				if ( $(this).attr('type') == 'checkbox' ) {
					localStorage[$name] = ( $(this).is(':checked') ) ? 'selected' : 'deselected';
				}
				if ( $(this).attr('type') == 'text' ) {
					localStorage[$name] = $(this).val();
				}
			});
		}
	}
	$('#traditionalSearch').remove();
	var deferUpdate;
	$('#filterSearchForm #manufacturers input').change(function() {
		updateTitle();
	});
	$('#filterSearchForm input').change(function() {
		if ( ((window.location.pathname == '/search') || (window.location.pathname == '/new-arrivals')) && (window.location.hash == '') ) {
			window.location.hash = '#!1';
		}
		if (storage) {
			$('#filterSearchForm input').each(function() {
				var $name = $(this).attr('name');
				if ( $(this).attr('type') == 'checkbox' ) {
					localStorage[$name] = ( $(this).is(':checked') ) ? 'selected' : 'deselected';
				}
				if ( $(this).attr('type') == 'text' ) {
					localStorage[$name] = $(this).val();
				}
			});
		}
		var $relocation = window.location.href.split("?")[0];
		var $rejection = window.location.href.split("?")[1];
		if ($rejection) {
			window.location = $relocation + '#!1';
		}
		var $old = $('#liveSearchResults');
		$('#topPagination .links, #topPagination .results, #productList', $old).fadeTo(300, 0.4);
		if (deferUpdate) {
			clearTimeout(deferUpdate);
		}
		deferUpdate = setTimeout(function() {
			$('#filterSearchForm').trigger('submit');
		}, 500);
		if ( (parseFloat(window.location.hash.substring(2)) > 1) && $('#productList h1:contains("No Matches")') ) {
			window.location.hash = '#!1';
			$('#filterSearchForm').trigger('submit');
		}
	});
	$('#filterSearchForm').submit(function(e) {
		if ( (window.location.pathname == '/search') || (window.location.pathname == '/new-arrivals') ) {
			e.preventDefault();
			var $old = $('#liveSearchResults');
			$('#liveSearchResultsContainer').load('/search #liveSearchResults', ($('#filterSearchForm').serializeArray()), function() {
				$('#liveSearchResults').stop().fadeTo(1, 0.3);
				$('#liveSearchResultsContainer').after($('#liveSearchResults'));
				if ($('#liveSearchResults').length) {
					$('.cleanUp:gt(0)').remove();
				}
				$('#liveSearchResults').stop().fadeTo(2000, 1);
			});
		}
	});
	$('#filterSearchForm input').ajaxStart(function() {
//		$(this).attr('disabled', true);
		$('#manufacturerPromotion #busyIcon').show();
	});
	$('#filterSearchForm input').ajaxComplete(function() {
		$('#manufacturerPromotion #busyIcon').hide();
//		$(this).removeAttr('disabled');
		var $pageNavigation = $('#topPagination').html();
		$('#bottomPagination').html($pageNavigation);
		$('#bottomPagination .results').css({ visibility: 'hidden' });
	});
	if ( $('.formLink').length ) {
		$('.formLink').live('submit', function(e) {
			e.preventDefault();
			$(this).attr('action', '#!' + $('input[type=submit], input[type=image]', this).attr('value'));
			if ($('input[type=submit], input[type=image]', this).attr('value')) {
				window.location.hash = ('#!' + $('input[type=submit], input[type=image]', this).attr('value'));
			}
		});
	}
	if ($('#filterSearchForm').length && window.location.hash) {
			loadASPage();
			updateTitle();
	}


	/* Initialise Account */
	if ( $('#loginForm').length && $('#initialiseAccount').length ) {
		$('#loginForm').submit(function(e) {
			var error = 0;
			var $accountNumber = $('#accountNumber').val();
			var $oldPassword = $('#oldPassword').val();
			var $email = $('#emailAddress').val();
			var $confirmEmail = $('#confirmEmail').val();
			var $newPassword = $('#newPassword').val();
			var $confirmNewPassword = $('#confirmNewPassword').val();
			if ( $accountNumber == '' ) {
				if (error == 0) {
					alert('You must enter your "Account Number!"');
					error = 1;
				}
			}
			if ( $oldPassword == '' ) {
				if (error == 0) {
					alert('You must enter your "Temporary Password!"');
					error = 1;
				}
			}
			if ( $email == '' ) {
				if (error == 0) {
					alert('You must enter your "Email" address!');
					error = 1;
				}
			}
			if ( $confirmEmail == '' ) {
				if (error == 0) {
					alert('You must enter your "Confirm Email" address!');
					error = 1;
				}
			}
			if ( $email != $confirmEmail ) {
				if (error == 0) {
					alert('You have entered values for "Email" and "Confirm Email" addresses that do not match!');
					error = 1;
				}
			}
			if ( $newPassword == '' ) {
				if (error == 0) {
					alert('You must enter your "New Password!"');
					error = 1;
				}
			}
			if ( $confirmNewPassword == '' ) {
				if (error == 0) {
					alert('You must enter your "Confirm Password!"');
					error = 1;
				}
			}
			if ( $newPassword != $confirmNewPassword ) {
				if (error == 0) {
					alert('You have entered values for "New Password" and "Confirm Password" that do not match!');
					error = 1;
				}
			}
			if ( ! $('#acceptTerms').is(':checked') ) {
				if (error == 0) {
					alert('Please acknowledge that you accept our Terms and Conditions.');
					error = 1;
				}
			}
			if (error) {
				return false;
			} else {
				return true;
			}
		});
	}


	/* React to anchor (#) changes */
	$(window).hashchange( function() {
		if ($('#filterSearchForm').length && window.location.hash) {
			if ( parseFloat(window.location.hash.substring(2)) > $('.results').data('total-pages') ) {
				// Fallback gracefully if the hash change is outside our range
				window.location.hash = '#!' + $('.results').data('total-pages');
			} else {
				loadASPage();
			}
			updateTitle();
		}
	});

	/* Manufacturer Image Swapper */
	if ( $('#imageSwitcher').length && ($('#imageSwitcher img').length > 1) ) {
		setInterval( "slideshow()", 5000 );
	}

});
