
$.namespace("Salmon");Salmon.ImageRollover=function(image,newSrc){var origingalSrc=image.src;$(image).bind("mouseover",imageMouseOver);$(image).bind("mouseout",imageMouseOut);$(image).bind("click",imageMouseOut);var newImage=new Image();newImage.src=newSrc;function imageMouseOver(){image.src=newSrc;};function imageMouseOut(){image.src=origingalSrc;};};$.namespace("Salmon");Salmon.OverlayManager=new(function(){var overlays=[];function add(node){if(overlayExists(node))return null;if(overlays.length===0){$(node).css("z-index","100");}
else{var value=getHighestIndex()+1;$(node).css("z-index",value);};overlays.push(node);return node;};function overlayExists(node){var e=false;for(var i=overlays.length-1;i>=0;i--){if(overlays[i]===node){e=true;break;}};return e;};function bringToFront(overlay){var overlay=getOverlay(overlay);if(!overlay)return;overlayZIndex=parseInt($(overlay).css("z-index"));$(overlay).css("z-index",getHighestIndex());var storedOverlay=null,storeOverlayZIndex=null;for(var i=overlays.length-1;i>=0;i--){storedOverlay=overlays[i];if(overlay===storedOverlay)continue;storeOverlayZIndex=parseInt($(storedOverlay).css("z-index"));if(storeOverlayZIndex>=overlayZIndex){$(storedOverlay).css("z-index",storeOverlayZIndex-1);};};};function getOverlay(node){var n=null;for(var i=overlays.length-1;i>=0;i--){if(overlays[i]===node){n=overlays[i];break;};};return n;};function getHighestIndex(){var index=0;for(var i=overlays.length-1;i>=0;i--){newValue=parseInt($(overlays[i]).css("z-index"));if(newValue>index){index=newValue;}};return index;};this.add=add;this.bringToFront=bringToFront;});$.namespace("Salmon");Salmon.Utils={isChildOf:function(parent,ref){if(ref==null)return false;var node=ref.parentNode;do{if(parent===node)return true;}while(node=node.parentNode);return false;},getMethodList:function(o){var info=[];for(var i in o){if(typeof o[i]==="function"){info.push(i);}}
return info.toString();},supplant:function(o){return this.replace(/{([^{}]*)}/g,function(a,b){var r=o[b];return typeof r==='string'||typeof r==='number'?r:a;});},typeOf:function(value){var s=typeof value;if(s==='object'){if(value){if(typeof value.length==='number'&&!(value.propertyIsEnumerable('length'))&&typeof value.splice==='function'){s='array';}}else{s='null';}}
return s;},replaceWith:function(str,findtext,replacetext){exp=new RegExp(findtext,"g");return str.replace(exp,replacetext);},isString:function(o){return typeof o==='string';}};window.isArray=function(o){return Object.prototype.toString.call(o)==='[object Array]';};String.prototype.unDelimit=function(delimeters){delimeters=delimeters||["&","="];if(delimeters.length===1)
return this.split(delimeters[0]);var items=this.split(delimeters[0]),o={},i=0,j=items.length,subItem;for(i;i<j;i++){subItem=items[i].split(delimeters[1]);subItem[1]=subItem[1]||"";if(o[subItem[0]]){if(isArray(o[subItem[0]])){o[subItem[0]].push(subItem[1]);}else{o[subItem[0]]=[o[subItem[0]],subItem[1]];}}else{o[subItem[0]]=subItem[1];}}
return o;}
$.namespace("Salmon.Utils");Salmon.Utils.JSON=(function(){var _UNICODE_EXCEPTIONS=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,_ESCAPES=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,_VALUES=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,_BRACKETS=/(?:^|:|,)(?:\s*\[)+/g,_INVALID=/^[\],:{}\s]*$/,_SPECIAL_CHARS=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,_CHARS={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};function _revive(data,reviver){var walk=function(o,key){var k,v,value=o[key];if(value&&typeof value==='object'){for(k in value){if(Salmon.Utils.hasOwnProperty(value,k)){v=walk(value,k);if(v===undefined){delete value[k];}else{value[k]=v;}}}}
return reviver.call(o,key,value);};return typeof reviver==='function'?walk({'':data},''):data;}
function _char(c){if(!_CHARS[c]){_CHARS[c]='\\u'+('0000'+(+(c.charCodeAt(0))).toString(16)).slice(-4);}
return _CHARS[c];}
function _prepare(s){return s.replace(_UNICODE_EXCEPTIONS,_char);}
function _isValid(str){return Salmon.Utils.isString(str)&&_INVALID.test(str.replace(_ESCAPES,'@').replace(_VALUES,']').replace(_BRACKETS,''));}
function _string(s){return'"'+s.replace(_SPECIAL_CHARS,_char)+'"';}
function _stringify(h,key,d,w,pstack){var o=typeof w==='function'?w.call(h,key,h[key]):h[key],i,len,j,k,v,isArray,a;if(o instanceof Date){o=Salmon.Utils.JSON.dateToString(o);}else if(o instanceof String||o instanceof Boolean||o instanceof Number){o=o.valueOf();}
switch(typeof o){case'string':return _string(o);case'number':return isFinite(o)?String(o):'null';case'boolean':return String(o);case'object':if(o===null){return'null';}
for(i=pstack.length-1;i>=0;--i){if(pstack[i]===o){return'null';}}
pstack[pstack.length]=o;a=[];isArray=Salmon.Utils.isArray(o);if(d>0){if(isArray){for(i=o.length-1;i>=0;--i){a[i]=_stringify(o,i,d-1,w,pstack)||'null';}}else{j=0;if(Salmon.Utils.isArray(w)){for(i=0,len=w.length;i<len;++i){k=w[i];v=_stringify(o,k,d-1,w,pstack);if(v){a[j++]=_string(k)+':'+v;}}}else{for(k in o){if(typeof k==='string'&&Salmon.Utils.hasOwnProperty(o,k)){v=_stringify(o,k,d-1,w,pstack);if(v){a[j++]=_string(k)+':'+v;}}}}
a.sort();}}
pstack.pop();return isArray?'['+a.join(',')+']':'{'+a.join(',')+'}';}
return undefined;}
return{isValid:function(s){return _isValid(_prepare(s));},parse:function(s,reviver){s=_prepare(s);if(_isValid(s)){return _revive(eval('('+s+')'),reviver);}
throw new SyntaxError('parseJSON');},stringify:function(o,w,d){if(o!==undefined){if(Salmon.Utils.isArray(w)){w=(function(a){var uniq=[],map={},v,i,j,len;for(i=0,j=0,len=a.length;i<len;++i){v=a[i];if(typeof v==='string'&&map[v]===undefined){uniq[(map[v]=j++)]=v;}}
return uniq;})(w);}
d=d>=0?d:1/0;return _stringify({'':o},'',d,w,[]);}
return undefined;},dateToString:function(d){function _zeroPad(v){return v<10?'0'+v:v;}
return d.getUTCFullYear()+'-'+
_zeroPad(d.getUTCMonth()+1)+'-'+
_zeroPad(d.getUTCDate())+'T'+
_zeroPad(d.getUTCHours())+':'+
_zeroPad(d.getUTCMinutes())+':'+
_zeroPad(d.getUTCSeconds())+'Z';},stringToDate:function(str){if(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.test(str)){var d=new Date();d.setUTCFullYear(RegExp.$1,(RegExp.$2|0)-1,RegExp.$3);d.setUTCHours(RegExp.$4,RegExp.$5,RegExp.$6);return d;}
return str;}};})();$.namespace("Salmon.Comms");$.namespace("Salmon.Page");Salmon.Comms.textLoader=function(sourceUrl,callBack){$.ajax({beforeSend:function(){},url:sourceUrl,contentType:"application/ajax",cache:false,dataType:"json",success:function(data){if(callBack){callBack(Salmon.Page.pageText);}},complete:function(){},error:function(){},dataFilter:function(data,type){try{Salmon.Page.pageText=Salmon.Utils.JSON.parse(data);}
catch(e){alert("Invalid data");}
return data;}});};$.namespace("Salmon.Comms.xhrLoad");Salmon.Comms.xhrLoad=(function(config){var ajaxBefore=config.beforeEvent||"ajax.before";var ajaxSuccess=config.successEvent||"ajax.success";var ajaxComplete=config.complete||"ajax.complete";var ajaxError=config.error||"ajax.error";config.before=function(){if(config.beforeEvent)$.publish(ajaxBefore);}
config.success=function(data){if(config.successEvent)$.publish(ajaxSuccess,data);}
config.complete=function(){if(config.completeEvent)$.publish(ajaxComplete);}
config.error=function(xhr,strError){if(config.errorEvent)$.publish(ajaxError,strError);}
return $.ajax(config);});$.namespace("Salmon");Salmon.PredictiveSearch=new(function(){return;var url="/webapp/wcs/stores/servlet/PredictiveSearch",viewData="&viewTaskName=PredictiveSearchView",searchNode=null,inputNode=null,formNode=null,predictNode=null,textLength=4,hideClass="hide";$(document).ready(function(){searchNode=document.getElementById("globalSearch")||null;form=$(searchNode).find("form")[0]||null;input=$(form).find("#searchbox")[0]||null;if(!searchNode||!form||!input)return;predictNode=document.createElement("div");predictNode.id="predictArea";searchNode.appendChild(predictNode);hide();$(input).bind("keyup",predict);$(document).bind("click",function(e){var clickedElement=e.originalTarget;if(!Salmon.Utils.isChildOf(searchNode,clickedElement)){hide();}});})
function predict(){hide();if(input.value.length<textLength)return;var data=$(form).serialize()+viewData;var ajax=$.ajax({url:url,contentType:"application/x-www-form-urlencoded",cache:false,dataType:"html",type:"post",success:predictShow,data:data});}
function predictShow(response){predictNode.innerHTML=response;$(predictNode).removeClass(hideClass);}
function hide(){$(predictNode).addClass(hideClass);}});$.namespace("Salmon.UI");Salmon.UI={backgroundFade:function(jqElem,params){params=params||{};var startColour=params.startColour||"#ff6";var endColour=params.endColour||jqElem.css("background-color");var speed=params.speed||3000;jqElem.css("background-color",startColour)
jqElem.animate({backgroundColor:endColour},speed);}};Salmon.UI.AjaxError=function(XMLHTTPRequest,textStatus,errorThrown){alert("Generic Salmon.UI.AjaxError | "+textStatus+" | "+errorThrown);};Salmon.UI.LoadingHtml=function(insertNode,options){var options=options||{};var hideCssClass=options.hideCssClass||"hide";var html=options.html||'<img src="'+Salmon.PageContext.IMAGEPATH+'/loading.gif" alt="'+Salmon.StoreText.LOADING+'" />';var container=document.createElement("div");container.className=options.containerCssClass||"loading";container.innerHTML=html;insertNode.appendChild(container);hide();function show(){$(container).removeClass(hideCssClass);};function hide(){$(container).addClass(hideCssClass);};this.show=show;this.hide=hide;};Salmon.UI.ajaxResponseInvalid=function(response,showAlert){var show=(showAlert!=undefined)?showAlert:true;if(response.errorText){if(show)
alert(response.errorText);return true;};};$.namespace("Salmon.UI");Salmon.UI.CustomEvents={productAddedToShoppingBag:"productAddedToShoppingBag",productAddedToFittingRoom:"productAddedToFittingRoom",productAttributeChanged:"productAttributeChanged",productLargeImageChanged:"productLargeImageChanged",footerShowcaseOpened:"footerShowcaseOpened",footerMoreFromOpened:"footerMoreFromOpened",galleryPageChanged:"galleryPageChanged",galleryPageRequested:"galleryPageRequested",quickLookPanelsAdded:"quickLookPanelsAdded",quickLookDataReceived:"quickLookDataReceived",finderChanged:"finderChanged",shoppingBagQuantityChanged:"shoppingBagQuantityChanged",stockAvailabilityChanged:"stockAvailabilityChanged",miniFittingRoomChanged:"miniFittingRoomChanged",miniShoppingBagChanged:"miniShoppingBagChanged"}