myDeco.closable={_observers:{close:null,toggle:null,beforeClose:[]},init:function(a){if(!this._observers.close){this._observers.close=this._close.bind(this);this._observers.toggle=this._toggle.bind(this)}this.create($(".closable"))},create:function(b){var a=this;b.each(function(f,e){e=$(e);var d=!e.hasClass("no-hide"),c=e.find("a.close-square");if(c.size()==0){c=$('<a href="#" class="close-square"></a>').toggle(!d);e.append(c)}if(d){e.hover(a._observers.toggle,a._observers.toggle)}c.click(a._observers.close)})},addObserver:function(a){if(typeof a!=="object"){return}if($.isFunction(a.beforeClose)){this._observers.beforeClose.push(a.beforeClose)}},_toggle:function(b){var a=$(b.target).closest(".closable").find("a.close-square:first");a.toggle(b.type=="mouseenter")},_close:function(e){e.stop();var b=this,d=$(e.target),c=d.closest(".closable"),a=true;$.each(this._observers.beforeClose,function(f,g){if(g(c,b)===false){a=false;return false}});if(a){this.close(c)}},close:function(a){a.fadeOut(500,function(){$(this).remove()})}};addLoadEvent(myDeco.closable.init.bind(myDeco.closable));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.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.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.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.editable={_inited:false,_observers:{edit:null,save:null,cancel:null},init:function(){if(this._inited){return}this._inited=true;this._observers.edit=this._edit.bind(this);this._observers.save=this._save.bind(this);this._observers.cancel=this._cancel.bind(this);$("a.editable span").click(this._observers.edit).closest("form").submit(this._observers.save);$("div.editable a.cancel").click(this._observers.cancel)},_edit:function(c){c.stop();var b=$(c.target),d=b.closest("form").find("div.editable:first");if(d.size()>0){var a=d.find("textarea, input");b.closest("a").hide();d.show();a.data("oldValue",a.val()).focus()}},_cancel:function(c){c.stop();var b=$(c.target).closest("form"),a=b.find("textarea");b.find(".error").hide();a.val(a.data("oldValue"));b.find("div.editable").hide();b.find("a.editable").show()},_save:function(d){d.stop();var b=$(d.target).closest("form"),c=b.find("div.editable textarea"),a=b.find(".error");if(!myDeco.formValidation.validateNoHTML(c.val())&&a.size()>0){a.text("Should not contain any HTML-like tags").show();return false}myDeco.buttons.disable(b);$.ajax({type:"post",url:b.attr("action"),data:b.serialize(),dataType:"json",success:function(e){var f=b.find("a.editable span.content");if(!e.textarea){e.textarea=c.val()}if(!e.href){e.href=e.textarea}f.text(e.href).removeClass("empty");c.val(e.textarea);b.find("div.editable").hide();b.find("a.editable").show();b.find(".default-title").toggle(e.href=="");b.find(".content").toggle(e.href!="")},error:function(){a.text("Error is occured, please try again later").show()},complete:function(){myDeco.buttons.enable(b)}})}};$(myDeco.editable.init.bind(myDeco.editable));myDeco.projectList={_observers:{remove:null,edit:null,save:null,cancel:null,toggle:null,beforeDelete:null,afterDelete:null,beforeInsert:null,afterInsert:null},_inited:false,init:function(a){if(this._inited&&a==undefined){return}this._inited=true;if(!$.isFunction(this._observers.remove)){this._observers={remove:this.remove.bind(this),edit:this._edit.bind(this),save:this._save.bind(this),cancel:this._cancel.bind(this),toggle:this._toggle.bind(this)}}if(a!=undefined&&a.hasClass("project-list")){a=a.find(".project-list-item")}this._setLocalObservers(a||$(".project-list-item"))},setObservers:function(c){if(typeof c!="object"){return}var a=this,d=["beforeDelete","afterDelete","beforeInsert","afterInsert"];for(var b in c){if($.inArray(b,d)!=-1&&$.isFunction(c[b])){a._observers[b]=c[b]}}},holder:function(a){return a.closest(".project-list")},nodes:function(a){return a.find(".project-list-item")},_setLocalObservers:function(b){var a=this;$.each(b,function(d,c){c=$(c);var e=c.find("form");c.find("a.delete, a.remove").click(a._observers.remove);c.find(".photo:has(.controls)").bind("mouseenter mouseleave",a._observers.toggle);e.submit(a._observers.save);e.find("a.name").click(a._observers.edit);e.find("a.cancel").click(a._observers.cancel)})},_toggle:function(a){$(a.target).closest(".photo").find(".controls").toggle(a.type=="mouseenter")},_edit:function(b){b.stop();var a=$(b.target).closest("a").hide().closest("form");a.find(".name-edit").show();a.find("textarea").focus()},_save:function(c){c.stop();var a=this,b=$(c.target).closest("form");myDeco.buttons.disable(b);$.ajax({type:"post",url:b.attr("action"),dataType:"json",data:b.serialize(),success:function(d){b.find("a.name span").update(d.href);b.find("div.name textarea").val(d.textarea)},complete:function(){myDeco.buttons.enable(b);a._cancel(c)}})},_cancel:function(b){var a=$(b.target).closest("form");a.find(".name-edit").hide();a.find("a.name").show();return false},remove:function(c){if(c&&c.target){c.stop()}this.init();var b=c.target?$(c.target).closest(".project-list-item"):c,a=this.holder(b);if($.isFunction(this._observers.beforeDelete)&&this._observers.beforeDelete(b,this)===false){return false}b.remove();a.append(" ");if($.isFunction(this._observers.afterDelete)){this._observers.afterDelete(this)}},insert:function(e,b,a){this.init();if($.isFunction(this._observers.beforeInsert)&&this._observers.beforeInsert(this)===false){return false}var d=this.nodes(),c=null;a=(typeof a!="number"||a>d.size())?d.size():a;if(a<0){a=Math.max(d.size()+a,0)}b=$(b);c=d.get(a);if(!c){e.find("ul").append(b)}else{c.before(b)}this._setLocalObservers(b);if($.isFunction(this._observers.afterInsert)){this._observers.afterInsert(b,this)}return b}};$(function(){myDeco.projectList.init()});myDeco.followers={init:function(d){var b=this,a=[],e=[];if(d==undefined||typeof d=="function"){d=$(document.body)}var c=d.find(".follow-switcher");c.find("a.follow, a.following").click(this._setState.bind(this));if(!myDeco.userid){return}c.filter(".follower-"+myDeco.userid).find(".follow, .following").hide();c.each(function(){var f=b._extractUserID(this.className);if(f&&f!=myDeco.userid){if($(this).hasClass("supplier-type")){e.push(f)}else{a.push(f)}}});if(a.length>0){this.getFollowers(a,c.filter(":not(.supplier-type)"))}if(e.length>0){this.getFollowers(e,c.filter(".supplier-type"),true)}},getFollowers:function(c,a,b){$.ajax({url:myDeco.addCacheMissParam(myDeco.urls.follow),data:$.param({id:$.unique(c),profile_type:b?"supplier":"user"}),dataType:"json",type:"get",success:function(d){if(d.success==true){$.each(c,function(g,f){var e=a.filter(".follower-"+f).find(".following, .follow");if($.inArray(f,d.followed)!=-1){e.filter(".following").css("display","block").end().filter(".follow").hide()}else{e.filter(".follow").css("display","block").end().filter(".following").hide()}})}}})},_setState:function(c,d){c.stop();var a=$(c.target).closest("a"),b=a.closest(".follow-switcher").hasClass("supplier-type")?"supplier":"user";if(a.hasClass("no-change")){return false}if(!myDeco.username){document.location=myDeco.urls.userLogin+"?next="+encodeURI(document.location);return}var e=this._extractUserID(a.closest(".follow-switcher").attr("class")),d=a.hasClass("follow");if(e){$.ajax({url:myDeco.urls.follow,data:"profile_type="+b+"&id="+e+"&action="+(d?"follow":"delete"),dataType:"json",type:"post",success:function(g){if(g.success){var f=$(".follower-"+e+" .follow, .follower-"+e+" .following");if(d){f.filter(".follow").hide().end().filter(".following").css("display","block")}else{f.filter(".following").hide().end().filter(".follow").css("display","block")}}}})}},_extractUserID:function(a){var b=a.match(/follower\-(\d+)/);return b?b[1]:false}};$(myDeco.followers.init.bind(myDeco.followers));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()}})})});$(function(){var d={},b=this,a=0;$("div.happy-sad-bar").each(function(){var e=$(this);d[e.identify()]={ctype:e.find("input[name=content_type]").val(),object_id:e.find("input[name=object_id]").val(),rate_type:"rating"};a=true});if(!a){return}function c(m){m.stop();var l=$(m.target).closest("a");if(l.hasClass("disabled")){return false}var i=l.hasClass("smiley")?1:-1,h=l.closest(".happy-sad-bar"),g=h.find("form"),j=g.find(".like_count"),n=g.find(".dislike_count"),f=parseInt(j.text()),k=parseInt(n.text());g.find(".v").val(i);if(i>0){j.text(++f)}else{n.text(++k)}$.ajax({type:"post",data:g.serialize(),dataType:"json",url:myDeco.urls.setScore,success:function(o){if(!o.error){var p=f+k,e=Math.round(f*100/p);h.find(".loved").width(e+"%");h.find(".percentage").text(e+"% loved");h.find(".votes").text(p+" vote"+(p!=1?"s":""))}h.children().addClass("has_votes").find("a.button").addClass("disabled")}})}$.ajax({type:"post",data:"ratings="+JSON.stringify(d),dataType:"json",url:myDeco.urls.canRateMulti,success:function(f){if(!f.success){return}f=f.ratings;for(var e in f){var g=$("#"+e);if(!f[e].canRate){g.children().addClass("voted").find(".buttons a.button").addClass("disabled")}g.find("a.button").click(c)}}})});myDeco.sidebarMenu={activeClass:"active",paneHiddenClass:"hidden",init:function(a){(a!=undefined?a.find(".sidebar-menu li"):$(".sidebar-menu li")).click(this.menuTab.bind(this))},menuTab:function(h){if(h.target.tagName!="INPUT"){h.stop()}var c=this,f=$(h.target).closest("li"),g=f.find("input"),i=f.closest(".sidebar-menu"),b=i.find("li."+this.activeClass),d=b.find("input"),a=f.closest(".sidebar-menu-root");if(f.get(0)==b.get(0)){return}b.removeClass(this.activeClass);d.removeAttr("checked");a.find("."+d.val()).addClass(this.paneHiddenClass);f.addClass(this.activeClass);g.attr("checked","checked");a.find("."+g.val()).removeClass(this.paneHiddenClass);if(myDeco.popin&&myDeco.popin.isOpen()){myDeco.popin.resize()}}};myDeco.bestsellers={init:function(){if(!myDeco.supplier_id){return}var a=$(".guid-link").filter(function(){return $(this).text()==myDeco.supplier_id}),b=a.map(function(){return $(this).attr("rel")}).get();if(b.length>0){$.get(myDeco.urls.supplierBestsellers,"guid="+b.join("&guid="),function(c){b=c.bestsellers;a.each(function(){var e=$(this),d=e.closest("form").show();if($.inArray(e.attr("rel"),b)>=0){d.addClass("active-bestseller-form").find("input").attr("checked","checked")}})},"json");$(".bestseller-checkbox").change(function(f){var d=$(f.target).attr("disabled","disabled"),c=d.closest("form");$.ajax({url:myDeco.urls.supplierBestsellers,type:"post",data:"guid="+d.next("a").attr("rel"),dataType:"json",success:function(e){c.toggleClass("active-bestseller-form")},error:function(){c.append('<div class="error">An error occured. Try again later</div>')},complete:function(){d.removeAttr("disabled")}})})}}};$(myDeco.bestsellers.init.bind(myDeco.bestsellers));myDeco.profile={editProfileObjectsUpdate:function(e,a){var c=$("#profile-"+e+"-list"),d=c.closest(".section"),b=d.find(".project-list-empty");if(c.size()==0){return}if(a.count>0){c.html(a.objects);b.hide();c.closest(".project-list").show();c.find(".room-toggle").click(this.roomStateChange.bind(this));myDeco.projectList.init(c.closest(".project-list"));switch(e){case"rooms":case"moodboards":case"decorated_photos":case"furnished_photos":case"user_3d":case"user_montage":myDeco.toolWindow.initToolLinks(c);break;case"room_photos":c.find(".room-photo-upload").click(this.addRoomPhoto.bind(this));break;case"photos":c.find(".profile-add-image").click(this.addScrapbookPhotoPopin.bind(this));break}myDeco.profile.external.facebookPostLinkObserver(c)}else{b.show();c.closest(".project-list").hide()}if(a.slideshow&&myDeco.profile.slideshow){myDeco.profile.slideshow.update(a.slideshow)}},changeSortingView:function(g){g.stop();var f=g.target.tagName!="SELECT",d=f?$(g.target).closest("a"):$(g.target),a=$("#"+d.attr("rel")),c=(f?d.attr("href"):d.val())+"&ajax=1",b=this;a.find(".ajax-loader").show();a.load(c,function(){b.setPaginateObserver();if(f){d.addClass("active").siblings().removeClass("active")}if(a.closest("#profile-products-wishlist").size()){myDeco.shortlist.update(a)}})},roomsPaginate:function(f){f.stop();var b=this,d=$(f.target).closest("a"),c=d.attr("href"),a=$("#"+d.closest(".paginator").attr("rel"));if(c.indexOf("ajax")==-1){c+="&ajax=1"}a.find(".ajax-loader").show();a.load(c,function(){b.setPaginateObserver();if(myDeco.closable){myDeco.closable.init()}if(a.closest("#profile-products-wishlist").size()){myDeco.shortlist.update(a)}})},roomStateChange:function(c){c.stop();var b=$(c.target).closest("a"),a=b.closest(".project-list-item"),d=a.attr("id").replace(/^.*?\-(\d+)$/,"$1");$.ajax({type:"post",url:b.hasClass("room-private")?myDeco.urls.markRoomPub:myDeco.urls.markRoomPrivate,data:{room_id:d},dataType:"json",complete:function(g,e){var f=JSON.parse(g.responseText);if(f.error){myDeco.popin.alert({title:"Make design private",message:f.error.message})}else{a.find(".room-public").toggle(f["public"]);a.find(".room-private").toggle(!f["public"])}}})},setPaginateObserver:function(b){var d=$("#profile-list-content, #objects-list"),a=this;if(d.size()==0){return}var c=$("#profile-followers");$("#profile-rooms-list, #profile-products-wishlist, #profile-followers, .paginator-ajax").each(function(){var e=$(this);e.find('.paginator[rel!=""] a:not(.disabled)').click(a.roomsPaginate.bind(a));if(!b){if(c.size()>0){myDeco.followers.init(c)}myDeco.projectList.init($(".project-list:first"))}});d.find(".room-toggle").click(this.roomStateChange.bind(this));myDeco.toolWindow.initToolLinks(d);if(myDeco.username){d.find(".edit-room-project").show()}},setSectionVisibility:function(d){var b=$(d.target),c=b.closest("form"),a=b.attr("checked")?1:0;b.attr("disabled","disabled");$.ajax({url:myDeco.urls.profile.setSectionVisibility,type:"post",data:c.serialize()+"&is_visible="+a,complete:function(){b.removeAttr("disabled")},error:function(){if(a){b.removeAttr("checked")}else{b.attr("checked","checked")}}})},setObjectsPerSection:function(f){var a=this,b=$(f.target).attr("disabled","disabled"),c=b.closest("form"),d=c.find('input[name="section"]').val();$.ajax({type:"post",url:myDeco.urls.profile.objectsPerSection,data:c.serialize()+"&num_objects="+b.val(),dataType:"json",success:function(e){b.removeAttr("disabled");if(e.success&&$("#profile-"+d+"-list").size()>0){a.editProfileObjectsUpdate(d,e)}},complete:function(){b.removeAttr("disabled")}})},_handleAjaxErrors:function(a){var c=myDeco.buttons.enable(myDeco.popin.content().find("form")).find(".error").hide();if(a.error){if(typeof a.error.message=="object"){for(error in a.error.message){var b=a.error.message[error];if($.isArray(b)){b=b.join(", ")}c.filter("."+error+"_error").html(b).show()}}else{c.filter(".general_error").html(a.error.message||a.error)}myDeco.popin.resize();return true}return false},_failure:function(){myDeco.popin.alert({title:"Error",message:"An error occured. Please try again later.",closeIn:2})}};myDeco.profile.people={photoDestination:null,isEditProfile:false,init:function(){this.isEditProfile=$(".edit-profile").size();this.updateNavigation();myDeco.closable.addObserver({beforeClose:this.closableObserver.bind(this)});myDeco.projectList.setObservers({beforeDelete:this.projectListDeleteObserver.bind(this)});$(".profile-add-image").click(this.addScrapbookPhotoPopin.bind(this));$(".room-photo-upload").click(this.addRoomPhoto.bind(this));this.setAlertsObservers();$("#profile-create-showcase").click(function(d){d.stop();var b=$("#profile-designer-showcase"),c=$(d.target);if(b.size()>0){c.closest("li").removeClass("section");c.closest("a").hide();b.show()}});$(".email-wishlist-popin-creator").click(this.wishlistPopin.bind(this));$("#profile-survey a.button").click(this.surveySubmit.bind(this));$(".autopost input:checkbox").click(this.setSectionVisibility.bind(this));$(".autopost select").change(this.setObjectsPerSection.bind(this));if(document.location.hash=="#room-photos"){$(window).scrollTop($("#profile-photos-list-holder").offset().top);this.addRoomPhoto()}this.setPaginateObserver(true);$("#add-scrapbook-photo-creator").click(this.addScrapbookPhotoPopin.bind(this));$(".profile-message-compose a.cancel, .profile-messages a.cancel").click(function(b){b.stop();history.go(-1)});$("#messages-search-select").htmlDropdown();$("#profile-message-to").autocomplete({wrapper:'<div id="profile-message-to-autocomplete"><ul></ul></div>',param:"to",ajax:myDeco.urls.sendMessageSuggestRecipient});$("#profile-rooms-order-select").change(this.changeSortingView.bind(this));$(".sorting-selector .sorter").click(this.changeSortingView.bind(this));if(this.isEditProfile){this.setAffiliationObservers();this.setAttachmentObservers();$(".room-toggle").click(this.roomStateChange.bind(this))}var a=$(".edit-settings .errorlist:first");if(a.size()>0){$(window).scrollTop(a.offset().top-30)}if(myDeco.browser.isIE){$(".profile-post-view img").each(function(c,b){b=$(b);if(b.width()>576){b.width(576)}});$("#profile-posts-list .post-message img, .posts-list .post-message img").each(function(c,b){b=$(b);if(b.width()>360){b.width(360)}})}$("#delete-account").submit(this.handleDeleteAccount.bind(this));$(document.body).bind("save.modeleditor delete.modeleditor",this.observeModelEditor.bind(this))},updateNavigation:function(){var a=$("#left-navigation-sub");if(a.size()>0&&myDeco.user.isCurrentUser()){$.ajax({url:myDeco.urls.objectsCount,type:"get",dataType:"json",success:function(c){var b=false;for(name in c){if(c[name].count>0){b=a.find("."+name).show().size()>0||b}}if(b){a.show()}}})}},setAlertsObservers:function(){$("#alerts-list-type-selector").change(function(a){var b=$("#profile-whats-hot .alert");switch($(a.target).val()){case"personal":b.filter(".personal").show().end().filter(".friend").hide();break;case"friends":b.filter(".personal").hide().end().filter(".friend").show();break;default:b.show()}})},closableObserver:function(a,c){var b="";if(a.closest("#profile-whats-hot").size()>0){var d=a.attr("id");b={ctype:"alert",object_id:d.substring(d.indexOf("-")+1)}}else{if(a.closest(".profile-messages-thread").size()>0){b={ctype:"mailmessage",object_id:a.find(".name a:first").attr("rel")}}else{if(a.hasClass("bookmarks-list-item")){b={ctype:"bookmark",object_id:a.attr("id").substring(a.attr("id").indexOf("-")+1)}}}}if(b){$.ajax({type:"post",url:myDeco.urls.deleteObject,data:b,dataType:"json",success:function(e){if(!e.success){return false}myDeco.closable.close(a);if(b.ctype=="bookmark"){myDeco.bookmarks.saveCount(--myDeco.bookmarks.count)}}});return false}return true},projectListDeleteObserver:function(c,e){var b=c.closest(".project-list"),a=this,f=c.find("a.page-ajax-remove");if(f.size()>0){if(!myDeco.popin.isOpen()){var d="";if(c.hasClass("room")){d="3D room"}else{if(c.hasClass("moodboard")){d="moodboard"}else{if(c.hasClass("photo")||c.hasClass("scrapbook")){d="photo"}else{if(c.hasClass("product")){d="product"}else{console.error("unknown media type requested")}}}}myDeco.popin.confirm({title:"Delete "+d,message:"Do you really want to delete this "+d+"?",yesButtonText:"Delete "+d,noButtonText:"Cancel",yesButton:function(i){myDeco.buttons.disable(myDeco.popin.content().find(".toolbar"));i.stop();var g=$("#profile-list-content"),j=g.size()>0?g.find(".paginator li a.active"):false,h=(j!==false&&j.size()>0)?parseInt(j.eq(0).text().replace(/[^\d]/g,"")):0;$.ajax({type:"post",url:f.attr("href"),data:f.attr("rel")+(h?"&page="+h:""),dataType:"json",success:function(l){if(l.error){myDeco.popin.alert({title:"Error",message:l.error});return false}if(d=="product"){var k=f.attr("rel").match(/guid=(.{40})/);if(k.length>1){myDeco.shortlist.remove(k[1])}}myDeco.popin.alert({closeIn:2,title:"Delete "+d,message:"This "+d+" has been successfully deleted."});if(g.size()>0){g.html(l.objects);a.setPaginateObserver()}else{if(c.closest(".edit-profile").size()>0){a.editProfileObjectsUpdate(c.closest(".section").find('form input[name="section"]').val(),l)}else{e.remove(c)}}},error:a._failure})}});return false}else{return true}}return true},setAffiliationObservers:function(){var a=this;$(".affiliation-upload").click(function(b){b.stop();myDeco.popin.open({url:"#affiliation-upload",afterOpen:function(c){myDeco.fileInputs.init(c);c.find("a.save").click(function(d){d.stop();myDeco.buttons.disable($(d.target).closest("form")).submit()})}})});$(".affiliation-delete").click(function(b){b.stop();myDeco.popin.confirm({title:"Delete affiliation logo",message:"Do yoy really want to delete this logo?",yesButtonText:"Delete logo",noButtonText:"Cancel",yesButton:function(c){myDeco.buttons.disable(myDeco.popin.content().find(".toolbar"));c.stop();$.ajax({type:"post",url:$(b.target).closest("a").attr("href"),dataType:"json",success:function(d){if(d.error){myDeco.popin.alert({title:"Delete affiliation logo",message:d.error})}else{$("#affiliation-holder").html(d.response);a.setAffiliationObservers();myDeco.popin.alert({title:"Delete affiliation logo",message:"Logo has been successfully deleted.",closeIn:2})}}})}})})},affiliationUpload:function(a){if(!this._handleAjaxErrors(a)){$("#affiliation-holder").html(a.response);this.setAffiliationObservers();myDeco.popin.open({url:"#affiliation-upload-result",closeIn:2})}},setAttachmentObservers:function(){var a=this;$(".attachment-upload").click(function(b){b.stop();myDeco.popin.open({url:"#file-upload",afterOpen:function(c){myDeco.fileInputs.init(c);c.find("a.save").click(function(d){d.stop();myDeco.buttons.disable($(d.target).closest("form")).submit()})}})});$(".attachment-delete").click(function(b){b.stop();myDeco.popin.confirm({title:"Delete file",message:"Do yoy really want to delete this file?",yesButtonText:"Delete file",noButtonText:"Cancel",yesButton:function(c){myDeco.buttons.disable(myDeco.popin.content().find(".toolbar"));c.stop();$.ajax({type:"post",dataType:"json",url:$(b.target).closest("a").attr("href"),success:function(d){if(d.error){myDeco.popin.alert({title:"Delete file",message:d.error})}else{$("#attachment-holder").html(d.response);a.setAttachmentObservers();myDeco.popin.alert({title:"Delete file",message:"File has been successfully deleted.",closeIn:2})}}})}})})},attachedFileUpload:function(a){if(!this._handleAjaxErrors(a)){$("#attachment-holder").html(a.response);this.setAttachmentObservers();myDeco.popin.open({url:"#file-upload-result",closeIn:2})}},wishlistPopin:function(b){b.stop();var a=this;myDeco.popin.open({url:"#email-wishlist-popin",afterOpen:function(d){var c=d.find("form");c.submit(a.wishlistSubmit.bind(a));c.find("a.submit").click(function(f){f.stop();myDeco.buttons.disable(c).submit()})}})},wishlistSubmit:function(b){b.stop();var a=$(b.target),c=myDeco.formValidation.validate(a);if(c){$.ajax({type:"post",url:a.attr("action"),data:a.serialize(),success:function(){myDeco.popin.alert({title:"Email your wishlist",message:"Your wishlist has been successfully emailed",closeIn:3})},error:function(){myDeco.popin.alert({title:"An error was occured",message:"Cant send a message... Please try again later",closeIn:3})}})}},photoPopinInit:function(b){var a=b.find("form");myDeco.fileInputs.init(a);if(!this.isEditProfile){a.append('<input type="hidden" name="list" value="true" />')}a.find("a.save").click(function(c){c.stop();a.submit()});a.submit(function(f){myDeco.buttons.disable(a);var c=a.find("input[name=tags]");if(c.size()>0){var d=a.find(".checkbox .tag:checked").map(function(e){return $(e).val()}).get();d.push.apply(d,a.find(".text.tags").val().split(/\s*,\s*/));c.val(d.join(","))}})},addRoomPhoto:function(b){b.stop();var a=this;myDeco.popin.open({url:"#rooms-photo-upload-popin",afterOpen:a.photoPopinInit.bind(a)})},_photoUploadBase:function(a,b){if(!this._handleAjaxErrors(a)){if(b){this.editProfileObjectsUpdate(b,a)}else{$("#profile-list-content").html(a.objects);this.setPaginateObserver()}myDeco.popin.alert({title:"Add image",message:"Your image has been successfuly added.",closeIn:2})}},addPhotoUpload:function(a){this._photoUploadBase(a)},addRoomProfileUpload:function(a){this._photoUploadBase(a,"room_photos")},addPhotoProfileUpload:function(a){this._photoUploadBase(a,"photos")},addScrapbookPhotoPopin:function(b){b.stop();var a=this;myDeco.popin.open({url:"#scrapbook-photo-upload-popin",afterOpen:a.photoPopinInit.bind(a)})},surveySubmit:function(b){b.stop();var c=$("#profile-survey"),a=c.find("form");$.ajax({type:"post",url:a.attr("action"),data:$(b.target).closest("a").hasClass("cancel")?"cancel=true":a.serialize(),complete:function(){setTimeout(function(){$("div.blocker").remove()},500);c.fadeOut()}})},alertsDeleteAll:function(b){b.stop();var a=$(b.target).closest("form");$.ajax({url:myDeco.urls.alertsDeleteAll,type:post,data:a.serialize(),complete:function(){a.next(".top-lines").fadeOut();a.find(".form-submit-button").hide()}})},handleDeleteAccount:function(c,a){if(a!==true){c.stop()}var b=$(c.target);myDeco.popin.confirm({title:"Delete account",message:"Are you sure you want to delete your account from mydeco?",yesButtonText:"Delete account",noButtonText:"Cancel",yesButton:function(d){myDeco.buttons.disable(myDeco.popin.content().find(".toolbar"));d.stop();if(b.hasClass("has-facebook")){FB.Connect.requireSession(function(){myDeco.buttons.disable(b).trigger("submit",[true])})}else{myDeco.buttons.disable(b).trigger("submit",[true])}}})},observeModelEditor:function(c,d){if(this.isEditProfile){$("#profile-"+d.type+"-list-holder").change()}else{var b=$("#profile-list-content");if(b.size()>0){var a=b.find(".paginator .active");if(a.size()>0){a.click()}else{b.closest(".section").find(".sorting-selector select").change()}}}}};$(function(){$.extend(true,myDeco.profile,myDeco.profile.people);myDeco.profile.init()});myDeco.profile.avatar={init:function(){$("#profile-photo").find("div.edit-button, div.add-button").bind("mouseenter mouseleave",this._switch.bind(this)).find(".button").click(this._edit.bind(this));if($.isFunction(myDeco.profile.userPhoto)){myDeco.profile.userPhoto.call(myDeco.profile)}},_switch:function(a){$(a.target).closest(".edit-button, .add-button").toggleClass("semi",a.type=="mouseenter").find("a").toggle(a.type=="mouseenter")},_edit:function(a){a.stop();myDeco.popin.open({url:"#photo_upload",afterOpen:function(b){myDeco.fileInputs.init(b);b.find("a.save").click(function(d){d.stop();var c=$(d.target).closest("form");if(myDeco.buttons.isDisabled(c)||!myDeco.formValidation.validate(c)){return false}myDeco.buttons.disable(c).submit()})},beforeClose:myDeco.bubbles.removeAll})},upload:function(a){if(a.error){var c=myDeco.buttons.enable(myDeco.popin.content().find("form")).find(".error").text("");for(var b in a.error.message){c.filter("."+b+"_error").text(a.error.message[b].shift())}myDeco.popin.resize()}else{$("#profile-photo").html(a.response);$("#profile-photo-holder .authorized").show();this.init();myDeco.popin.open({url:"#photo_upload_result",closeIn:2})}}};addLoadEvent(myDeco.profile.avatar.init.bind(myDeco.profile.avatar));myDeco.profile.external={init:function(){$("#disassociate").click(this.disassociate.bind(this));$("#invite-friends").click(this.inviteFriends.bind(this));$(".invite-your-friend").click(this.invitePopin.bind(this));this.facebookPostLinkObserver()},disassociate:function(b){b.stop();var a=this;FB.Connect.requireSession(function(){$.ajax({type:"post",url:myDeco.urls.facebookDisassociate,dataType:"json",success:function(d){if(!d.success){var c=d.error?d.error.message:"Internal error. Please try again later.";myDeco.popin.alert({title:"Disassociation error",message:c})}else{$("#disassociate-text").html("Your account has been succesfully disconnected from Facebook.");$("#disassociate-form").remove()}}})})},inviteFriends:function(a){a.stop();FB.Connect.requireSession(function(){$.ajax({type:"get",url:myDeco.urls.facebookInviteIframe,success:function(c){var b=new FB.UI.FBMLPopupDialog("Invite your Facebook friends to mydeco!",c);b.setContentWidth(760);b.show()},error:function(){myDeco.popin.alert({title:"Invite friends",message:"Internal error. Please try again later."})}})})},invitePopin:function(b){b.stop();var a=this;myDeco.popin.open({url:"#invite-friend-popin",afterOpen:function(c){c.find("a.add-contact").click(a.invitePopinAddContact.bind(a));c.find("a.add-contacts").click(a.invitePopinAddContacts.bind(a));c.find("a.send").click(a.invitePopinSendInvite.bind(a))}})},invitePopinFillList:function(c){var a=myDeco.popin.content(),b=a.find("ul.invited-friends"),d=$.map(b.children(),function(f){return $(f).data("email")});$.each(c,function(f,e){if(!e.email){return}if($.inArray(e.email,d)==-1){var g=$('<li class="closable">'+e.email+"</li>").data("name",e.name).data("email",e.email);b.prepend(g);myDeco.closable.init(g)}})},invitePopinAddContact:function(d){d.stop();var a=$(d.target).closest("fieldset"),c=a.find("input.name"),b=a.find("input.email");myDeco.popin.content().find(".importer-error").html("&nbsp;");this.invitePopinFillList([{email:b.val(),name:c.val()}]);b.val("");c.val("")},invitePopinAddContacts:function(g){g.stop();var b=this,f=myDeco.popin.content(),d=$(g.target).closest("form"),a=f.find("img.ajaxLoader").show(),c=f.find(".importer-error").html("&nbsp");$.ajax({type:"post",url:d.attr("action"),data:d.serialize(),dataType:"json",success:function(e){if(e.success){b.invitePopinFillList(e.contacts)}else{c.html(e.errors[0].error)}},complete:function(){a.hide()},error:function(){myDeco.popin.alert({title:"Invite friends",message:"An error has occured. Please try later."})}})},invitePopinSendInvite:function(f){f.stop();var b=$(f.target).closest(".invite-friend-popin").find("form.sendform"),d=b.find("ul.invited-friends li"),a=myDeco.popin.content();a.find(".importer-error").html("&nbsp;");if(d.size()>0){var c=$.map(d,function(e){e=$(e);return[[e.data("email"),e.data("name")]]});b.find("input").val(JSON.stringify(c));$.ajax({type:"post",url:b.attr("action"),data:b.serialize(),dataType:"json",success:function(e){if(e.success){myDeco.popin.alert({title:"Invite friends",message:"Your friends have successfully been invited.",closeIn:2})}},error:function(){myDeco.popin.alert({title:"Invite friends",message:"An error has occured. Please try later."})}})}},facebookPostLinkObserver:function(a){(a||$(document.body)).find(".facebook-post-link").click(this.facebookPostLink.bind(this))},facebookPostLink:function(g){g.stop();var b=$(g.target).closest("a"),a=b.attr("href"),f=b.attr("rel").split(":"),h=f[2]?f[2]:document.title,c=f[0],d=f[1];window.open("http://www.facebook.com/sharer.php?u="+encodeURIComponent(a)+"&t="+encodeURIComponent(h),"sharer","toolbar=0,status=0,width=626,height=436");$.post(myDeco.urls.saveSharedItem,{url:a,ctype:c,object_id:d},null,"json")}};addLoadEvent(myDeco.profile.external.init.bind(myDeco.profile.external));myDeco.profile.slideshow={_types:["rooms","moodboards","room_photos"],_ajax:null,_container:null,_uploadContainer:null,_objectId:null,_objectType:null,_typeSelector:null,init:function(){$(".slideshow-append").click(this.show.bind(this));$(".slideshow-delete-all").click(this.removeAll.bind(this));$(document.body).bind("save.modeleditor delete.modeleditor",this.observeModelEditor.bind(this));this.setCommonObservers()},show:function(b){if(b){b.stop();if($(b.target).closest("a").hasClass("no-more")){myDeco.popin.alert({title:"Add item",message:"Sorry - maximum number of slideshow items is 6. If you'd like to add something new please choose remove an item from the existing showcase"})}}var a=this;myDeco.popin.open({url:"#slideshow-popin",width:690,height:590,afterOpen:function(c){a._container=c.find(".sidebar-menu-pane");a._uploadContainer=c.find(".slideshow-source-upload");a._ajax=a._container.find(".image-ajax-loader");a._typeSelector=a._container.find("select.slideshow-mydeco-source-type");c.find(".form-submit-button").click(function(e){e.stop();var d=$(e.target).closest("form");if(!myDeco.buttons.isDisabled(d)){myDeco.buttons.disable(d).submit()}});a._container.find(".slideshow-mydeco-items form").submit(a.addItem.bind(a));myDeco.sidebarMenu.init(c);myDeco.toolWindow.initToolLinks(c);c.find(".slideshow-upload").click(a.goUpload.bind(a));myDeco.profile.photoPopinInit(a._uploadContainer);c.find("div.fileinputs input.file").attr("size",48);a._typeSelector.change(function(d){a._objectsListRequest({section:$(d.target).val()})});a._typeSelector.change()}})},_objectsListRequest:function(c){var a=this;this._objectType=c.section;function b(){a._ajax.hide();a._container.find(".slideshow-mydeco-"+a._objectType+"-empty").show()}this._container.find(".hide-on-change").hide();this._container.find("a.add-item").addClass("disabled");this._ajax.show();$.ajax({type:"post",url:myDeco.urls.profileSlideshowObjectsToAddAjax,data:c,dataType:"json",success:function(f){var d=[".slideshow-mydeco-items"];if(f.error||f.count==0){b();return}var e=a._container.find(".slideshow-mydeco-items").find(".objects").html(f.objects).find("ul.items");e.find("a, span, input").click(a.select.bind(a));a._container.find(".slideshow-mydeco-items .paginator a:not(.disabled)").click(function(g){g.stop();a._objectsListRequest({section:a._objectType,page:($(g.target).closest("a").attr("href").replace(/.*page=(\d+).*$/,"$1")||1)})});d.push(".slideshow-mydeco-"+a._objectType+"-append");d.push(".slideshow-mydeco-items label."+a._objectType);a._container.find(d.join(",")).show();e.scrollTop(0)},error:b,complete:function(){a._ajax.hide()}})},select:function(b){var a=$(b.target).closest("li").find("input").attr("checked","checked");this._objectId=a.val();this._container.find(".add-item").removeClass("disabled");if(a.get(0)!=b.target){b.stop()}},goUpload:function(a){a.stop();this._uploadContainer.find(".error").hide();myDeco.popin.content().find(".upload-sidebar-item").click()},update:function(a){if(typeof a!="object"){a=JSON.parse(a)}if(a.error){this.error(false,a.error);return false}$("#profile-designer-showcase .slideshow-append").toggleClass("no-more",a.count>=6);if(a.count>0){var b=$("#profile-slideshow-list").html(a.objects);this.setCommonObservers();$("#slideshow-container").show();$("#slideshow-empty").hide();myDeco.tabSwitcher.init(b)}else{$("#slideshow-container").hide();$("#slideshow-empty").show()}$.each(this._types,function(c,d){if(a[d]){myDeco.profile.editProfileObjectsUpdate(d,a[d])}});return true},error:function(b,a){myDeco.popin.alert({title:b||"Error",message:a||"Unexpected error has occured. Please try again later"})},setCommonObservers:function(){$(".slideshow-remove-item").bind("mouseenter mouseleave",this.mouse.bind(this)).find(".button").click(this.remove.bind(this))},mouse:function(a){$(a.target).closest(".slideshow-remove-item").toggleClass("semi",a.type=="mouseenter").find("a").toggle(a.type=="mouseenter")},remove:function(b){b.stop();var a=this,c=$(b.target).closest("a").attr("rel");myDeco.popin.confirm({title:"Remove image",message:"Do you really want to remove this image from slideshow?",yesButtonText:"Remove image",noButtonText:"Cancel",yesButton:function(d){d.stop();$.ajax({type:"post",dataType:"json",data:{id:c},url:myDeco.urls.profileSlideshowDeleteAjax,success:function(e){a.update(e);myDeco.popin.alert({title:"Remove image",message:"Image has been successfully removed from slideshow",closeIn:2})},error:function(){a.error("Remove image")}})}})},removeAll:function(b){b.stop();var a=this;myDeco.popin.confirm({title:"Remove all slideshow items",message:"Do you really want to remove all items from slideshow?",yesButtonText:"Remove",noButtonText:"Cancel",yesButton:function(c){c.stop();$.ajax({type:"post",dataType:"json",url:myDeco.urls.profileSlideshowDeleteAllAjax,success:function(d){if(d.error){a.error("Remove all images",d.error)}else{a.update({count:0});myDeco.popin.alert({title:"Remove all slideshow items",message:"All slideshow items have been removed successfully.",closeIn:2})}},error:function(){a.error("Remove all images")}})}})},addItem:function(b){b.stop();var a=this;$.ajax({type:"post",dataType:"json",url:myDeco.urls.profileSlideshowAddAjax,data:{content_type:this._objectType=="scrapbook"?"scrapbook":"room",object_id:a._objectId},success:function(c){if(a.update(c)){myDeco.popin.alert({title:"Add slideshow item",message:"This item has been successfully added to slideshow",closeIn:2})}},error:function(){a.error()}})},upload:function(a){if(!myDeco.profile._handleAjaxErrors(a)){this.update(a);myDeco.popin.alert({title:"Add slideshow item",message:"Your photo has been successfully added to slideshow",closeIn:2})}},observeModelEditor:function(a){if(myDeco.popin.isOpen()&&myDeco.popin.content().find(".slideshow-popin")&&this._container.is(":visible")&&this._typeSelector.val()==a.memo.type){this._typeSelector.change()}}};addLoadEvent(myDeco.profile.slideshow.init.bind(myDeco.profile.slideshow));