myDeco.postcode={init:function(){var a=$.cookie("geolocation");$("#postcode").each(function(){var b=$(this);if(a){b.defaultValue(a)}b.parents("form").submit(function(c){$.cookie("geolocation",b.defaultValue(),{expires:60})})})}};$(myDeco.postcode.init.bind(myDeco.postcode.init));$(function(){$("#instore-voucher-form").submit(function(b){b.stop();var a=$(b.target);a.find("fieldset").removeClass("pof-error").find(".hide-messages").hide();$.ajax({url:a.attr("action"),data:a.serialize(),dataType:"json",type:"post",success:function(c){if(c.errors){$.each(c.errors,function(e,d){a.find("input[name="+d.field+"]").closest("fieldset").addClass("pof-error").find(".error").text(d.error).show()})}else{a.find(".success").text(c.message).show()}}})})});myDeco.popin={options:{base:"popin",width:616,height:200,url:"",afterOpen:null,beforeClose:null,closeIn:0,autoResizeX:false,autoResizeY:true,ajaxLoaderClass:"ajaxLoader",template:null,borders:50},_body:null,_window:null,_cclose:null,_ccloseByKeyPress:null,_cresize:null,windowOptions:{},visible:false,holder:"",contentContainer:"",background:"",init:function(a){if(this._cclose){return}this._window=$(window);this._body=$(document.body);this.options=$.extend(true,this.options,a||{});this._cclose=this.close.bind(this);this._ccloseByKeyPress=this._closeByKeyPress.bind(this);this._cresize=this.resize.bind(this)},open:function(b){this.init();if(this.visible&&$.isFunction(this.windowOptions.beforeClose)){this.windowOptions.beforeClose()}this.windowOptions=$.extend(true,this.windowOptions,this.options,b||{});if(this.windowOptions.url==""&&this.windowOptions.template==null){return}var d=this.windowOptions.base+"-content-holder",c=this.windowOptions.base+"-content";if(!this.visible){this.holder=$('<div id="'+d+'" class="'+d+'" style="display:none;position:absolute"></div>').appendTo(this._body);this.contentContainer=$('<div class="clearfix '+c+'" id="'+c+'"></div>').appendTo(this.holder);this.holder.append('<a href="#" class="'+this.windowOptions.base+'-close-title"></a>');this.contentContainer.hide();this.holder.css({display:"block",left:parseInt(this._window.scrollLeft()+this._window.width()/2)+"px",top:parseInt(this._window.scrollTop()+this._window.height()/2)+"px",width:0,height:0});this._showBackground();this._window.keypress(this._ccloseByKeyPress).bind("resize",this._cresize);this._body.bind("close.popin",this._cclose)}else{if($.isFunction(this.windowOptions.beforeCreate)){this.windowOptions.beforeCreate(this.contentContainer)}this.holder.find("."+this.windowOptions.base+"-close-title").unbind("click",this._cclose);this.contentContainer.find("."+this.windowOptions.base+"-close").unbind("click",this._cclose);this._hideContent()}this._hideProblemElements();if(this.windowOptions.template||this.windowOptions.url.indexOf("#")==0){this.windowOptions.template=this.windowOptions.template||$(this.windowOptions.url).html();this.contentContainer.html(this.windowOptions.template);this._processContent()}else{var a=this;this.contentContainer.addClass(this.windowOptions.ajaxLoaderClass);this.contentContainer.load(this.windowOptions.url,"",function(){a.contentContainer.removeClass(a.windowOptions.ajaxLoaderClass);a._processContent()})}},_processContent:function(){var a=this;this._showContent();this.holder.find("."+this.windowOptions.base+"-close-title").bind("click",this._cclose);this.contentContainer.find("."+this.windowOptions.base+"-close").bind("click",this._cclose);if($.isFunction(this.windowOptions.afterOpen)){this.windowOptions.afterOpen(this.contentContainer)}this.resize();this.visible=true;if(this.windowOptions.closeIn>0){this.contentContainer.timed=true;setTimeout(function(){if(a.contentContainer.timed){a.close()}},this.windowOptions.closeIn*1000)}},close:function(a){if(a){a.stop()}if(!this.visible){return false}if($.isFunction(this.windowOptions.beforeClose)){this.windowOptions.beforeClose(this.contentContainer)}this._window.unbind("keypress",this._ccloseByKeyPress).unbind("resize",this._cresize);this._body.unbind("close.popin",this._cclose);this.holder.find("."+this.windowOptions.base+"-close-title").unbind("click",this._cclose);this.contentContainer.find("."+this.windowOptions.base+"-close").unbind("click",this._cclose);this.visible=false;this._hideHolder();this._hideBackground();this._showProblemElements()},content:function(){return this.contentContainer},isOpen:function(){return this.visible},resize:function(a,i){if(typeof a=="object"){a=undefined}if(typeof i=="object"){i==undefined}var d=this._window.scrollLeft(),b=this._window.scrollTop(),e=this._window.width(),f=this._window.height(),c=0,h={width:a||this.windowOptions.width,height:i||this.windowOptions.height},g={left:parseInt(d+(e-h.width)/2),top:parseInt(b+(f-h.height)/2)};this.holder.css({left:g.left+"px",top:g.top+"px",width:h.width+"px",height:h.height+"px"});if(this.windowOptions.autoResizeX){h.width=this.contentContainer.innerWidth();c=e-this.contentContainer.outerWidth(true)-this.windowOptions.borders*2;if(c<0){h.width+=c}g.left=parseInt(d+(e-h.width)/2)}if(this.windowOptions.autoResizeY){h.height=this.contentContainer.innerHeight();c=f-this.contentContainer.outerHeight(true)-this.windowOptions.borders*2;if(c<0){h.height+=c}g.top=parseInt(b+(f-h.height)/2)}if(this.windowOptions.autoResizeX||this.windowOptions.autoResizeY){this.holder.css({left:g.left+"px",top:g.top+"px",width:h.width+"px",height:h.height+"px"})}this._showBackground()},_showContent:function(){this.contentContainer.show()},_hideContent:function(){this.contentContainer.hide()},_hideHolder:function(){this.holder.remove()},_showBackground:function(){var e,a,d={},c,f,b=this.windowOptions.base+"-background";if(window.innerHeight&&window.scrollMaxY){e=document.body.scrollWidth;a=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){e=document.body.scrollWidth;a=document.body.scrollHeight}else{e=document.body.offsetWidth;a=document.body.offsetHeight}}if(document.documentElement&&document.documentElement.clientHeight){c=document.documentElement.clientWidth;f=document.documentElement.clientHeight}else{if(document.body){c=document.body.clientWidth;f=document.body.clientHeight}}d.height=Math.max(f,a);d.width=Math.max(c,e);if(!this.background||this.background.size()==0){this.background=$('<div id="'+b+'" class="'+b+'" />').css({position:"absolute",left:0,top:0});this._body.append(this.background);this._fixTransparency(this.background.get(0))}this.background.width(d.width).height(d.height)},_fixTransparency:function(b){if(myDeco.browser.isIE){var a=b.currentStyle.opacity;if(a!=undefined&&a!=1){a=Math.round(a*100);var c=b.filters["DXImageTransform.Microsoft.alpha"]||b.filters.alpha;if(c){c.opacity=a}else{b.style.filter+="progid:DXImageTransform.Microsoft.Alpha(opacity="+a+")"}}}},_hideBackground:function(){this.background.remove();this.background=null},_hideProblemElements:function(){if(myDeco.browser.isIE6&&!this.visible){$.each($("select, object, embed, iframe"),function(b,a){a=$(a);a.data("visibility",a.css("visibility")).css("visibility","hidden")})}},_showProblemElements:function(){if(myDeco.browser.isIE6){$.each($("select, object, embed, iframe"),function(c,b){b=$(b);var a=b.data("visibility");if(a){b.css("visibility",a)}})}},_closeByKeyPress:function(a){if(a.keyCode==27){this.close()}},plugin:function(c,a,d){this.init();var b=this;if(this[c]!=undefined){throw"Name is already occuped"}a=a||{};d=d||function(){};this[c]=function(e){e=e||{};var f=e.afterOpen?function(g){(d.bind(b))(g);e.afterOpen(g)}:d.bind(b);this.open($.extend(true,{},a,e,{afterOpen:f}))}}};$(function(){var a=myDeco.popin;a.init.apply(a);a.plugin("alert",{template:'<h2 class="top-line title">Alert</h2><p class="message"></p><div class="toolbar"><a href="#" class="button green-button popin-close"><span class="inner close-button-text">Close</span></a></div>'},function(b){if(this.windowOptions.closeButtonText){b.find(".close-button-text").html(this.windowOptions.closeButtonText)}if(this.windowOptions.title){b.find(".title").html(this.windowOptions.title)}else{b.find(".title").remove()}if(this.windowOptions.message){b.find(".message").html(this.windowOptions.message)}else{b.find(".message").remove()}});a.plugin("confirm",{template:'<h2 class="top-line title">Confirm</h2><p class="message"></p><div class="toolbar"><a href="#" class="button green-button yes-button"><span class="inner yes-button-text">Yes</span></a><a href="#" class="button button-no-arrow no-button"><span class="inner no-button-text">No</span></a></div>'},function(b){this.windowOptions.yesButtonText&&b.find(".yes-button-text").html(this.windowOptions.yesButtonText);this.windowOptions.noButtonText&&b.find(".no-button-text").html(this.windowOptions.noButtonText);this.windowOptions.yesButton&&b.find(".yes-button").click(this.windowOptions.yesButton);b.find(".no-button").click(this.windowOptions.noButton||this._cclose);if(this.windowOptions.title){b.find(".title").html(this.windowOptions.title)}else{b.find(".title").remove()}if(this.windowOptions.message){b.find(".message").html(this.windowOptions.message)}else{b.find(".message").remove()}});a.plugin("image",{autoResizeX:true,template:'<h2 class="top-line title">Image</h2><div class="popin-image" style="position:relative" />'},function(c){var b=this;if(this.windowOptions.title){c.find(".title").html(this.windowOptions.title)}else{c.find(".title").remove()}$('<img src="'+this.windowOptions.url+'" />').load(function(k){var h=$(k.target);c.find(".popin-image").css("height","auto").prepend(h);var d=h.width(),n=h.height();b.contentContainer.width(d);b.resize();var m=b.contentContainer.outerWidth(true),j=b.contentContainer.outerHeight(true),f=b.holder.innerWidth(),l=b.holder.innerHeight();if(m>f||j>l){var g=m-f,i=j-l;if(g>i){h.width(d-g);b.contentContainer.width(d-g)}else{h.height(n-i);b.contentContainer.width(parseInt((n-i)*d/n))}b.resize()}})})});myDeco.bubbles={create:function(f,h,e){function g(i){$(i.target).closest(".bubble").fadeOut("fast")}var d=f,c=e?f.offsetParent():$(document.body),b=c.append('<div class="bubble" style="display:none"><div class="rounded"><p>'+h+'</p></div><div class="bubble-tip"></div></div>').children(":last");if(f.is("textarea:hidden")&&f.prev(":first").is("iframe")){d=f.prev(":first")}var a=e?d.position():d.offset();if(f.hasClass("right")){b.addClass("bubble-right").css({left:(a.left-b.outerWidth()-15)+"px",top:a.top+"px"})}else{b.css({left:(a.left+f.outerWidth()+15)+"px",top:a.top+"px"})}if(myDeco.browser.isIE6){b.append(document.createTextNode(" "))}b.click(g).fadeIn("fast");return b},removeAll:function(){$(".bubble").remove()}};myDeco.formValidation={init:function(){var a=this;$("form.validate").submit(function(b){return a.validate($(b.target))})},validate:function(c){var a=this,b=false;c.find(".validate").each(function(){var d=$(this),e=a.isInvalid(d);if(e){a.showError(d,e);b=true}});return !b},showError:function(b,d){var c=b.parents("form"),a=c.hasClass("bubble-container")||c.closest("#popin-content").size()>0;this.clearError(b);if(d){b.data("bubble",myDeco.bubbles.create(b,d,a))}},clearError:function(a){$.each(a,function(){element=$(this);if(element.data("bubble")){element.data("bubble").remove();element.removeData("bubble")}})},isInvalid:function(e){if(!e.is(":visible")){return false}var f=e.val();if(e.hasClass("v-required")&&f==""){return"Please ensure each field is complete before you re-submit."}if(e.hasClass("v-number")&&f.match(/\D/)){return"Please enter a number."}if(e.hasClass("v-required-inbox")&&f==""){return"Oops! You forgot your message!"}if(e.hasClass("v-email")&&!this.validateEmail(f)){return"We'd love you to bend the rules in room design, but not in our forms! Sorry, our system doesn't recognise your email address. Please check and try again."}if(e.hasClass("v-password")&&!this.validatePassword(f)){return"Passwords must be 5-15 characters and may contain numbers, letters and underscores."}if(e.hasClass("v-passwordconfirm")&&!this.validatePasswordConfirm(f)){return"Your passwords must match."}if(e.hasClass("v-date")&&!this.validateDate(f)){return"Must be a valid date of the form dd/mm/yyyy. Eg: 19/09/2007"}if(e.hasClass("v-url")&&!this.validateUrl(f)){return"Please enter a valid url that begins with http://"}var c="v-word-length-",d=e.get(0).className,b=d.indexOf(c);if(b!=-1){var g=d.indexOf(" ",b);if(g==-1){g=d.length}var a=parseInt(d.substr(b+c.length,g));if(!this.validateWordLength(f,a)){return"Oops! Please make sure words in your comment do not exceed "+a+" characters in length."}}if(e.hasClass("v-no-html")&&!this.validateNoHTML(f)){return"Should not contain any HTML-like tags"}return false},validateEmail:function(a){return/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/.test(a)},validatePassword:function(a){return/^[a-zA-Z]\w{3,14}$/.test(a)},validatePasswordConfirm:function(a){return $("#sign-up-password1, #id_password1").val()==a},validateDate:function(a){return/(((0[13578]|10|12)([-.\/])(0[1-9]|[12][0-9]|3[01])([-.\/])(\d{4}))|((0[469]|11)([-.\/])([0][1-9]|[12][0-9]|30)([-.\/])(\d{4}))|((2)([-.\/])(0[1-9]|1[0-9]|2[0-8])([-.\/])(\d{4}))|((2)(\.|-|\/)(29)([-.\/])([02468][048]00))|((2)([-.\/])(29)([-.\/])([13579][26]00))|((2)([-.\/])(29)([-.\/])([0-9][0-9][0][48]))|((2)([-.\/])(29)([-.\/])([0-9][0-9][2468][048]))|((2)([-.\/])(29)([-.\/])([0-9][0-9][13579][26])))/.test(a)},validateUrl:function(a){return/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(a)},validateWordLength:function(c,b){var e=c.split(" ");for(var d=0,a=e.length;d<a;d++){if(e[d].length>b){return false}}return true},validateNoHTML:function(a){return !/<[a-zA-Z]+(\s[^>]*)?>/.test(a)}};$(myDeco.formValidation.init.bind(myDeco.formValidation));myDeco.characterCounter={init:function(){var a=this;function b(h){var f=$(h.target),d=f.data("max"),c=f.data("counter"),g=f.val(),e=d-g.length;if(e<0){e=0;f.val(g.substring(0,d))}c.text(e)}$("textarea.charcounter").each(function(f,e){e=$(e);var d=parseInt(e.attr("cols")||100)*parseInt(e.attr("rows")||10),c=$("#"+e.identify()+"-character-counter");if(c.size()>0){e.data("max",d).data("counter",c).keyup(b).keyup()}})},initFck:function(a){var d=this,c=$("#"+a.Name),b=c.data("max");if(!b){return}function e(h){var i=a.GetData(true),j="",g=0;if(jQuery.browser.msie){j=a.EditorDocument.body.innerText}else{var f=a.EditorDocument.createRange();f.selectNodeContents(a.EditorDocument.body);j=f.toString()}c.val(j);g=b-j.length;if(g>=0){c.data("counter").text(g)}else{a.Commands.GetCommand("Undo").Execute()}}if(c.size()>0){$(a.EditorDocument).keyup(e).keyup()}}};function FCKeditor_OnComplete(a){myDeco.characterCounter.initFck(a)}$(myDeco.characterCounter.init.bind(myDeco.characterCounter));myDeco.fileInputs={init:function(b){var a=this,c=b==undefined?$(".fileinputs:has(input:file)"):b.find(".fileinputs:has(input:file)");c.each(function(){var f=$(this),e=f.find(":file"),h=$.grep(e.attr("className").split(" "),function(i){return i!="validate"&&i.substring(0,2)!="v-"}).join(" "),d=f.find("div.fakefile"),g=d.find("input:text");if(g.size()==0){g=$('<input type="text" class="text" value="" />')}if(d.size()==0){d=$('<div class="fakefile"></div>').append($('<div class="field"></div>').append(g)).append('<a class="button '+h+'"><span class="inner">Browse</span></a>');f.append(d)}e.addClass("file").bind("change",function(i){g.val(e.val().replace(/^.*?([^\/\\]+)$/,"$1"))})})}};$(function(){myDeco.fileInputs.init()});myDeco.SBL={init:function(){$("#shop-by-location-form").submit(this.go.bind())},go:function(f){f.stop();var a=this,d=$(f.target),c=d.serialize(),b=c.getURIParam("postcode").pop()||"",g={startrank:0,prefdb:myDeco.isHighend?"product_designbar":"product",view:"geo_products",distance_centre:""};d.find(".error").text("").hide();myDeco.createCookie("geolocation",b,60);myDeco.location2coords(b,function(e){g.distance_centre=e.join(",");location.href="/search/?"+$.param(g)+"&"+c},function(e){d.find(".error").text(e.message).show()})}};$(myDeco.SBL.init.bind(myDeco.SBL));$(function(){var d=$("#product-image-explore"),b=$("#product-tab-switcher"),a=$(".change-image-link, .variant-item");d.toggle(d.hasClass("need-enlarge")).click(function(g){g.stop();var f=$(g.target).closest("a");myDeco.popin.image({url:f.attr("href"),title:f.attr("title")})});b.bind("select",function(j,i,h,f){var g=i.find("a").attr("href"),k=i.attr("id");$("#product-other-images").toggle(k=="product-photo-view");if(!g||f.html()!=""){return}$.ajax({url:g,type:"get",dataType:"json",success:function(l){f.html(l.html);if(k=="product-3d-view"&&l.video){var m=new SWFObject(myDeco.settings.STATIC_URL+"product_viewer/spinner.swf","player_1","290","240","9","#FFFFFF");m.addParam("wmode","opaque");m.addVariable("movieURL",l.video);m.write("product-3d-image")}else{if(k=="product-rooms-view"){f.css("height","auto")}}}})});if(document.referrer.indexOf(myDeco.settings.SITE_URL)==0){$("#back-to-search").removeClass("backlink-hidden").click(function(f){f.stop();if(window.parent!=window){window.location.href=document.referrer}else{history.back()}})}a.click(function(h){h.stop();a.removeClass("active");var g=$(h.target).closest("a"),f=g.attr("id").split("-")[1];$.history.add("variant="+f);c(g,f)});var e=encodeURIComponent(location.href.getURIParam("variant").pop());if(e>0&&$("#variant-"+e).size()>0){c($("#variant-"+e),e)}function c(n,j){var i=n.hasClass("variant-item"),g=(j==1)?"product-primary-image":"product-primary-image"+j,f=$("#product-photo-view-container"),m=i?$("#other-"+j):$("#variant-"+j),h=$("#main-price"),k=f.find("#"+g),l=(i?n:m).find(".variant-price").text();if(!h.data("main-price")){h.data("main-price",h.text())}h.text((j==1)?h.data("main-price"):l);d.attr("href",n.attr("rel")).toggle(n.hasClass("need-enlarge"));f.find(".product-image-bg").not("#"+g).hide();if(k.size()>0){k.show()}else{f.append('<span class="product-image-bg" id="'+g+'" style="background-image: url('+n.attr("href")+')"></span>')}n.addClass("active");m.addClass("active")}$("#instore-link").click(function(f){f.stop();$(f.target).parent().hide();$("#instore-voucher-form").show()})});