function Util(){throw new Error("Util is a static class. You can't create instances of it.")}Util.windowSize=function(){var B=0,A=0;if(typeof (window.innerWidth)=="number"){B=window.innerWidth;A=window.innerHeight}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){B=document.documentElement.clientWidth;A=document.documentElement.clientHeight}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){B=document.body.clientWidth;A=document.body.clientHeight}}}return{width:B,height:A}};Util.getEltDoc=function(A){if(A.ownerDocument){return A.ownerDocument}if(A.document){return A.document}return document};Util.appendNewElement=function(A,C,B){var D=document.createElement(C);$H(B).each(function(E){D.setAttribute(E[0],E[1])});A.appendChild(D)};Util.blankString=function(A){return !(A&&!A.match(/^\s*$/))};function makeNestedHash(B){var A=$H();$H(B).each(function(C){A.set(C.key,(C.value instanceof Object)?makeNestedHash(C.value):C.value)});return A}function appendScript(B){var C=document.getElementsByTagName("head")[0];var A=document.createElement("script");A.charset="utf-8";A.src=B;A.type="text/javascript";C.appendChild(A)}Element.showHide=function(B,A){if(A){Element.show(B)}else{Element.hide(B)}};var StepsWidget=Class.create();StepsWidget.prototype={initialize:function(C,B){this.element=$(C);var A=this.element.id;B=Object.extend({groupClass:A+"_step_group",headerClass:A+"_step_header",bodyClass:A+"_step_body",collapsedClass:"js_collapsed",expandedClass:"js_expanded"},B||{});if(!this.element){throw"StepsWidget element cannot be null"}this.groupClass=B.groupClass;this.bodyClass=B.bodyClass;this.headerClass=B.headerClass;this.collapsedClass=B.collapsedClass;this.expandedClass=B.expandedClass;this.steps=$A(this.element.childNodes).collect(function(E){return(E.className&&Element.hasClassName(E,B.groupClass)?E:null)}).compact();this.bodies=this.getStepChildrenOfClass(this.bodyClass);this.headers=this.getStepChildrenOfClass(this.headerClass);var D=this;this.headers.each(function(E){Element.addClassName(E,D.collapsedClass);Event.observe(E,"click",function(){D.toggle(E)})})},getStepChildrenOfClass:function(B){var A=$A();this.steps.each(function(C){A.push($A(C.childNodes).find(function(D){return D.className&&Element.hasClassName(D,B)}))});return A},toggle:function(D,B){var C=Element.hasClassName(D,this.collapsedClass);if(C){Element.removeClassName(D,this.collapsedClass);Element.addClassName(D,this.expandedClass)}else{Element.removeClassName(D,this.expandedClass);Element.addClassName(D,this.collapsedClass)}var A=this.headers.indexOf(D);if(B){new B(this.bodies[A],{queue:"end"})}else{Element.toggle(this.bodies[A])}},openStep:function(D,A){var B=this.headers[D];var E=Element.hasClassName(B,this.collapsedClass);if(E){this.toggle(B,Effect.Appear)}if(A){var C=this.bodies[D];new Effect.Highlight(C,{queue:"end"});new Effect.Highlight(C,{queue:"end"})}},closeStep:function(C){var A=this.headers[C];var B=Element.hasClassName(A,this.expandedClass);if(B){this.toggle(A)}}};var TabbedWidget=Class.create();TabbedWidget.prototype={initialize:function(C,B){this.element=$(C);var A=this.element.id;B=Object.extend({headerUL:A+"_tab_header",bodyClass:A+"_tab_body",selectedClass:"current"},B||{});if(!this.element){throw"StepsWidget element cannot be null"}this.bodyClass=B.bodyClass;this.selectedClass=B.selectedClass;var D=$(B.headerUL);Element.cleanWhitespace(this.element);Element.cleanWhitespace(D);this.headers=$A(D.childNodes);this.bodies=this.element.select("."+B.bodyClass);this.bodies.each(function(F,G){if(G){F.hide()}});var E=this;this.headers.each(function(F){Event.observe(F,"click",function(){E.select(F)})})},select:function(D){var C=this.selectedClass;var B=Element.hasClassName(D,C);if(!B){this.headers.each(function(E){if(E!=D){Element.removeClassName(E,C)}});Element.addClassName(D,C);var A=this.headers.indexOf(D);this.bodies.each(function(E,F){if(F==A){Element.show(E)}else{Element.hide(E)}})}}};var ImagePicker=Class.create();ImagePicker.prototype={initialize:function(A){A=Object.extend({selectedClass:"selected",searchField:"image_keywords",defaultEngine:"google"},A||{});this.pickerDiv=$(A.pickerDiv);this.spinner=$(A.spinner);this.selectedClass=A.selectedClass;this.currentEngine=A.defaultEngine;this.searchField=$(A.searchField);this.setupEngineLinks();$("image_preview").onclick=this.previewUrl.bindAsEventListener(this);this.setupFreeLinks()},setupFreeLinks:function(){var A=$$("#free_images a");var B=$$("#free_images img");A.each(function(D,C){var F=B[Math.floor(C/2)];var E=F.src.sub("_thumb","");var G=new ImageInfo("free image",E);G.keywords=F.title;D.onclick=function(){le.setBackgroundForCheck(G)}})},setupEngineLinks:function(){var A=this;$H(ImageSearcher.engines).keys().each(function(B){A.setAnEngineLink(B)})},setAnEngineLink:function(A){var C=$("more_"+A);var B=this;if(this.currentEngine==A){C.onclick=null;Element.addClassName(C,"current")}else{C.onclick=function(){B.selectNewEngine(A,true)};Element.removeClassName(C,"current")}},selectNewEngine:function(A,B){if(A!=this.currentEngine){Element.removeClassName(this.searchField,this.currentEngine);this.currentEngine=A;Element.addClassName(this.searchField,this.currentEngine);this.setupEngineLinks();if(B){this.search()}}},search:function(B){B=Object.extend({engine:this.currentEngine,keywords:this.searchField.value},B||{});Element.hide("more_image_results");Element.hide("previous_image_results");if(B.page<=0){new Ajax.Updater({success:"image_results"},"/layout/popular",{method:"get",asynchronous:true});return }if(Util.blankString(B.keywords)){return }var A=B.newPage&&this.currentEngine=="google"&&this.imageSearcher;if(A){A.options=B;if(B.page>4){this.pickerDiv.innerHTML="<p>Sorry, no more results</p>";Element.show("previous_image_results")}else{this.imageSearcher.gSearch.gotoPage(B.page-1)}return }this.searchField.value=B.keywords;this.selectNewEngine(B.engine);Element.show(this.spinner);this.imageSearcher=new ImageSearcher(this,B)},update:function(B,E){Element.hide(this.spinner);var C=this;if(B.length>0){this.pickerDiv.innerHTML="";var H=this.pickerDiv;this.images=B;B.each(function(I){var K=new Element("a",{href:"javascript:void(0)"});H.insert(new Element("div",{"class":"thumb"}).insert(K));var J=I.getThumbImage(96,96);if(J){I.keywords=E.keywords;J.onclick=function(){C.selectImage(this)};K.appendChild(J)}});var G=$("more_image_results");var F={keywords:E.keywords,page:E.page+1,newPage:true};G.onclick=function(){C.search(F)};Element.show("more_image_results")}else{this.pickerDiv.innerHTML="<p>Sorry, no results found!</p>"}var D=$("previous_image_results");var A={keywords:E.keywords,page:E.page-1,newPage:true};D.onclick=function(){C.search(A)};Element.show("previous_image_results")},selectImage:function(A){if(this.selectedImage==A){return }if(this.selectedImage&&this.selectedImage.parentNode){Element.removeClassName(this.selectedImage.parentNode,this.selectedClass)}if(A&&A.parentNode){Element.addClassName(A.parentNode,this.selectedClass)}this.selectedImage=A;$("image_url").value=A.imgInfo.url;le.setBackgroundForCheck(A.imgInfo)},previewUrl:function(){var A=$("image_url").value=encodeURI($("image_url").value.strip());if(A.match(/^https?:\/\//)){var B=new ImageInfo("submitted url",A);le.setBackgroundForCheck(B)}else{StatusNotifier.showMessage("<h1>Oops!</h1>URL should begin with http://...<br /> e.g. http://url.com/image.gif",{closeBox:true})}},updateErr:function(A){alert(A)}};var ImageSearcher=Class.create();ImageSearcher.engines={bing:{baseURL:"http://api.search.live.net/json.aspx?AppId=F49E8B6ADE036032B7D27B226B4EFE2B8287E521&Market=en-US&Version=2.0&Sources=Image&JsonType=callback&Adult=Strict&JsonCallback=ImageSearcher.updateFunc&Query=",updateFunc:function(B){var D=B.SearchResponse.Errors;if(D){this.picker.updateErr(D)}else{var C=(B.SearchResponse.Image&&B.SearchResponse.Image.Results)||[];var A=[];C.each(function(E){var F=new ImageInfo(E.Title,E.MediaUrl,E.Thumbnail.Url,E.Width,E.Height,E.Thumbnail.Width,E.Thumbnail.Height);F.engine="Bing";F.creditsLink=E.Url;A.push(F)});this.picker.update(A,this.options)}},pageParameter:function(A){return"Image.Offset="+A*8+"&Image.Count=8"}},flickr:{baseURL:"http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=b3c10aaffb08eccf9b3afffa2c66066f&per_page=10&sort=interestingness-desc&format=json&jsoncallback=ImageSearcher.updateFunc&license=4,5,6&text=",updateFunc:function(B){var C=null;try{if(B.stat=="ok"){var A=[];B.photos.photo.each(function(E){var H="http://farm"+E.farm+".static.flickr.com/"+E.server+"/"+E.id+"_"+E.secret+".jpg";var G="http://farm"+E.farm+".static.flickr.com/"+E.server+"/"+E.id+"_"+E.secret+"_s.jpg";var F=new ImageInfo(E.title,H,G,1024,768,75,75);F.engine="flickr";F.creditsLink="http://flickr.com/photos/"+E.owner+"/"+E.id;A.push(F)});this.picker.update(A,this.options)}else{C=B.message}}catch(D){C=D}if(C){this.picker.updateErr(C)}},pageParameter:function(A){return"page="+A}},google:{baseURL:"/background/proxy_mash?keywords=",updateFunc:function(B){var A=[];B.results.each(function(C){imgInfo=new ImageInfo(C.displayUrl,C.imageUrl,C.thumbnailUrl,C.imageWidth,C.imageHeight,C.thumbnailWidth,C.thumbnailHeight);imgInfo.creditsLink=C.url;imgInfo.engine="Google";A.push(imgInfo)});this.picker.update(A,this.options)},pageParameter:function(A){return"start="+((A-1)*8+1)},fetchImages:function(A){var B=A.gSearch=new GimageSearch();B.setResultSetSize(GSearch.LARGE_RESULTSET);B.setRestriction(google.search.Search.RESTRICT_SAFESEARCH,google.search.Search.SAFESEARCH_STRICT);B.setSearchCompleteCallback(this,this.updateFunc2,[A]);B.execute(A.options.keywords);return true},updateFunc2:function(B){var A=[];var C=B.gSearch;C.results.each(function(D){imgInfo=new ImageInfo(D.visibleUrl,D.unescapedUrl,D.tbUrl,D.width,D.height,D.tbWidth,D.tbHeight);imgInfo.creditsLink=D.originalContextUrl;imgInfo.engine="Google";A.push(imgInfo)});B.picker.update(A,B.options)}},photobucket:{baseURL:"/background/proxy_pb?keywords=",fetchImages:function(C){var B=ImageSearcher.fetchPBCache(C.options.keywords);if(B){var D=(C.options.page-1)*10;var A=function(){C.picker.update(B.slice(D,D+10),C.options)};setTimeout(A,10);return true}return false},updateFunc:function(C,B){var A=C.collect(function(D){var E=new ImageInfo(D.title,unescape(D.imageUrl),unescape(D.thumbnailUrl));E.engine="Photobucket";E.creditsLink=D.creditsLink;return E});ImageSearcher.addPBCache(B,A);this.picker.update(A.slice(0,10),this.options)},pageParameter:function(A){return"page="+A}}};ImageSearcher.addPBCache=function(B,A){if(!ImageSearcher.pbCache){ImageSearcher.pbCache={}}ImageSearcher.pbCache[B]=A};ImageSearcher.fetchPBCache=function(A){if(ImageSearcher.pbCache){return ImageSearcher.pbCache[A]}else{return null}};ImageSearcher.prototype={initialize:function(B,A){this.picker=B;A=Object.extend({engine:"yahoo",page:1},A||{});this.options=A;var D=ImageSearcher.engines[A.engine];if(!(D.fetchImages&&D.fetchImages(this))){ImageSearcher.updateFunc=D.updateFunc.bind(this);var C=D.baseURL+encodeURIComponent(A.keywords);if(A.page){C+="&"+D.pageParameter(A.page)}setTimeout(function(){appendScript(C)},10)}}};var ImageInfo=Class.create();ImageInfo.prototype={initialize:function(G,A,E,B,I,H,F,C,D){this.title=G;this.url=A;this.thumbUrl=E;this.width=B;this.height=I;this.thumbWidth=H;this.thumbHeight=F;this.backgroundID=C;this.keywords=D},getThumbImage:function(D,C){if(this.thumbUrl.match(/^https?:\/\//)){var B=new Element("img");B.title=this.title;if(this.width&&this.height){B.title+=": "+this.width+"x"+this.height}B.imgInfo=this;B.errFunc=function(){this.src=this.imgInfo.thumbUrl};B.onerror=function(){setTimeout(B.errFunc.bind(B),Math.floor(Math.random()*100+1))};B.src=this.thumbUrl;if(this.thumbWidth&&this.thumbHeight){this.setThumbImageDimensions(B,D,C)}else{var A=this;B.onload=function(){A.thumbHeight=this.height;A.thumbWidth=this.width;A.setThumbImageDimensions(this,D,C)}}return B}},getKeywords:function(){if(this.keywords){return this.keywords.gsub(/\./," ").strip().gsub(/\s+/," ").toLowerCase()}else{return""}},setThumbImageDimensions:function(B,C,A){if(this.thumbWidth/C<this.thumbHeight/A){B.width=C;B.height=this.thumbHeight*C/this.thumbWidth;var D=(B.height-A)/2;B.style.marginTop=-D+"px";B.style.marginLeft="0px";B.style.clip="rect("+D+"px, "+C+"px, "+(D+A)+"px, 0px)"}else{B.height=A;B.width=this.thumbWidth*A/this.thumbHeight;var D=(B.width-C)/2;B.style.marginTop="0px";B.style.marginLeft=-D+"px";B.style.clip="rect(0px, "+(D+C)+"px, "+A+"px, "+D+"px)"}B.style.width=B.width+"px";B.style.height=B.height+"px"},getEngineLabel:function(){var A=this.engine||"";if(this.engine){if(this.engine=="flickr"||this.engine=="Photobucket"){A+=" user"}else{A+=" search result"}}return A},getCreditsHTML:function(){var A="";if(this.engine){A+="background from ";if(this.creditsLink){A+='<a href="'+this.creditsLink+'" target="_blank">'+this.getEngineLabel()+"</a>"}else{A+=this.getEngineLabel()}}return A},getFormParameters:function(){var A="background[original_url]="+encodeURIComponent(this.url);if(this.engine){A+="&background[engine]="+this.engine}if(this.creditsLink){A+="&background[credits_link]="+encodeURIComponent(this.creditsLink)}return A},setFormElements:function(A){Util.appendNewElement(A,"input",{name:"background[original_url]",value:this.url});if(this.engine){Util.appendNewElement(A,"input",{name:"background[engine]",value:this.engine})}if(this.creditsLink){Util.appendNewElement(A,"input",{name:"background[credits_link]",value:this.creditsLink})}}};var Theme=Class.create();Theme.init=function(A){Object.extend(this,A);this.basic_profile_css=this.basic_css;this.profile_template=this.template};Theme.generateCSS=function(A,C,D){var B=C;A.each(function(E){var F=E[0];var G=E[1];G.each(function(J){if(Object.isHash(J[1])){J[1].each(function(K){if(K[1]||K[1]==0){B=B.gsub("@"+[F,J[0],K[0]].join("_")+"@",K[1])}})}else{if(F!="body_bg"||J[0]!="color"){if(J[1]||J[1]==0){var H=!D&&(F=="makeit");var I=H&&Theme.generateCSS(A,J[1],true);B=B.gsub("@"+F+"_"+J[0]+"@",H?I:J[1])}}}})});B=B.gsub(/^[^@\n]*@[^@\n]+@[^@\n]*$/m,"");B=B.gsub("@background@","");return B};Theme.setBkgndColor=function(A){if(A.get("body_bg")&&A.get("body_bg").get("color")){document.body.style.backgroundColor="#"+A.get("body_bg").get("color")}};Theme.prototype={initialize:function(A){Object.extend(this,A);this.configs=makeNestedHash(this.configs)},getCSS:function(A){if(!this[A]){this[A]=Theme["basic_"+A+"_css"]+Theme.generateCSS(this.configs,Theme[A+"_template"])}return this[A]},getMainCSS:function(){if(!this.main_css){this.main_css=Theme.basic_css+Theme.generateCSS(this.configs,Theme.template)}return this.main_css},getBlogCSS:function(){if(!this.blog_css){this.blog_css=Theme.basic_blog_css+Theme.generateCSS(this.configs,Theme.blog_template)}return this.blog_css},getBkgndColor:function(){conf=this.configs;return conf.get("body_bg")&&conf.get("body_bg").get("color")||"e2e2e2"}};var LayoutPreview=Class.create();LayoutPreview.prototype={initialize:function(C,B){this.insertionID=B.insertionID;this.frame=$(B.frame);this.backgroundElt=$(B.background);this.selectedTheme=null;this.css_selectors=$H(C);this.previewMode="profile";window.onresize=this.onResize.bind(this);var A=this;this.css_selectors.each(function(D){var E=D[0];var F,G;if(D[1].usage=="boolean"){F="checked";G="click"}else{F="value";G="change"}$("layout_"+E).value=$(E)[F]=D[1].default_val;$(E)["on"+G]=function(){A.updateStyle(true);$("layout_"+E).value=$(E)[F]}})},updateThemes:function(A,B){if(B){this.ownThemes=A}else{this.themes=A}},selectBackground:function(C){var A=C.checkImage;this.backgroundImageInfo=C;this.backgroundElt.innerHTML="";if(C.width>250&&C.height>250){var B=this.backgroundImage=new Element("img");B.src=A.src;B.width=1024;B.height=A.height*1024/A.width;this.usingDiv=true;this.updateBackgroundPosition();this.backgroundElt.appendChild(B);this.setBackgroundUrl(null)}else{this.setBackgroundUrl(C.url);$("layout_background_repeat").value=$("background_repeat").value="repeat";this.updateStyle()}this.updateCredits()},selectTheme:function(A){this.selectedTheme=this.themes&&this.themes.find(function(B){return B.id==A});if(!this.selectedTheme){this.selectedTheme=this.ownThemes.find(function(B){return B.id==A})}if(!this.selectedTheme){return alert("can't find selected theme!")}$("layout_background_color").value=$("background_color").value=this.selectedTheme.getBkgndColor();this.updateStyle();this.updateCredits()},_generateCSS:function(){cssText="";if(this.selectedTheme){cssText=this.selectedTheme.getCSS(this.previewMode)}var A=this;this.css_selectors.each(function(B){var E=B.value;var D=(A.previewMode=="profile_v2")?(E.css_v2||E.css):E.css;if(E.func){cssText+=LayoutPreview.prototype[E.func].call(A,B[0].value)}else{if(E.usage=="boolean"){if($(B[0]).checked){cssText+=D}}else{if(E.usage=="replace"){var C=$(B[0]).value;if(E[C]!=null){cssText+=E[C]}else{cssText+=D.gsub("@arg@",C)}}}}});cssText=cssText.gsub("@background@","");return cssText},updateStyle:function(C){var A=this._getStyleElt();var B=this._generateCSS();if(A.styleSheet){A.styleSheet.cssText=B}else{try{A.innerHTML=B}catch(D){A.innerText=A.textContent=B}}},updateCredits:function(){var C=this.selectedTheme;if(true){var B=this._getPreviewElt("theme_creator");if(B&&C){B.href="/user/profile/"+C.user_id;B.innerHTML=C.username}var A=this._getPreviewElt("bg_credits");if(A){var D=this.backgroundImageInfo;A.innerHTML=D?D.getCreditsHTML():""}}if(C){$("tinfo_name").innerHTML=C.name.escapeHTML();$("tinfo_author").href="/user/profile/"+C.user_id;$("tinfo_author").innerHTML=C.username&&C.username.escapeHTML();$("tinfo_count").innerHTML=C.layouts_rough_count;$("tinfo_desc").innerHTML=C.description.escapeHTML()||"none";$("tinfo_fav").innerHTML="Add to Favorites";$("theme_info").show()}},updateBackgroundColor:function(){document.body.style.backgroundColor="#"+$("background_color").value;return""},updateBackgroundRepeat:function(){document.body.style.backgroundRepeat=$("background_repeat").value;return""},setBackgroundUrl:function(A){var B=A?"url('"+A+"')":"";document.body.style.backgroundImage=B},updateBackgroundPosition:function(){if(this.backgroundImage){var C=Util.windowSize();var D=$("background_pos").value;switch(D){case"top":this.backgroundElt.style.top=0;break;case"center":var B=(C.height-this.backgroundImage.height)/2;this.backgroundElt.style.top=Math.round(B)+"px";break;case"bottom":var B=(C.height-this.backgroundImage.height);this.backgroundElt.style.top=Math.round(B)+"px";break}var A=(C.width-this.backgroundImage.width)/2;this.backgroundElt.style.left=Math.round(A)+"px"}document.body.style.backgroundPosition=$("background_pos").value;return""},onResize:function(){if(this.usingDiv){this.updateBackgroundPosition()}},setPreviewMode:function(B){if(this.previewMode!=B){this.previewMode=B;var A="/layout/"+B+"_preview";this.frame.src=A}},_getStyleElt:function(){return this._getPreviewElt(this.insertionID)},_getPreviewElt:function(B){var A=this.frame.contentWindow.document;return A.getElementById(B)}};var ThemePicker=Class.create();ThemePicker.prototype={initialize:function(A,B,C,D){this.mainDiv=$(A);this.selectedImageLink=null;this.selectedImageLinkClass="selected";this.moreResults=$(B);this.prevResults=$(C);this.waitImg=$(D);this.moreResults.observe("click",this.fetchThemes.bind(this,1));this.prevResults.observe("click",this.fetchThemes.bind(this,-1));this.page=0;this.fetchUrlSuffix=null;if(!this.mainDiv){throw"theme picker has no mainDiv!"}},updateThemes:function(A){var B=this.mainDiv;var C=this;this.mainDiv.innerHTML="";this.themes=A;if(A.length==0){if(this.search_tag){this.mainDiv.innerHTML="sorry, no "+this.search_tag+" themes found..."}else{this.mainDiv.innerHTML='No themes yet! Be the first to enter our <a href="/message/holiday">Holiday Theme Contest</a>'}}else{A.each(function(F){var D=new Element("div",{"class":"theme"});B.insert(D);var H=new Element("a",{href:"javascript:void(0)"});D.insert(H.insert(new Element("img",{src:F.thumb_url,title:F.name+" theme"})));var G=new Element("a",{href:"javascript:void(0)"}).update(F.name.truncate(8,".."));D.insert(new Element("p").insert(G));var E=function(){C.selectTheme(F.id,H)};Event.observe(H,"click",E);Event.observe(G,"click",E)})}Element.showHide(this.prevResults,this.page>0);Element.showHide(this.moreResults,A.size()==9);this.waitImg.hide()},selectTheme:function(A,B){if(B!=this.selectedImageLink){le.setTheme(A);if(B){Element.addClassName(B,this.selectedImageLinkClass)}if(this.selectedImageLink){Element.removeClassName(this.selectedImageLink,this.selectedImageLinkClass)}this.selectedImageLink=B}},fetchThemes:function(B){if(this.waitImg.visible()){return }if(!B){B=0}if(!this.themes){this.page=0}else{this.page+=B}if(this.page<0){this.page=0}var A="/themes/fetch_more";if(this.fetchUrlSuffix){A+="_"+this.fetchUrlSuffix}A+="?page="+this.page;if(this.search_tag){A+="&search_tag="+this.search_tag}this.waitImg.show();new Ajax.Request(A)},setFetchUrlSuffix:function(B,A){this.fetchUrlSuffix=B;this.search_tag=A;this.page=0},showFeatured:function(){$("search_choice").hide();this.prevResults.hide();this.moreResults.hide();new Ajax.Updater({success:"_theme_picker"},"/themes/featured_searches")}};var Slider=Class.create();Slider.prototype={initialize:function(B){this.out=false;this.mainDiv=$(B);this.tab=$(arguments[1]);var A=this;$A(arguments).each(function(D,C){if(C!=0){Event.observe(D,"click",A.toggle.bindAsEventListener(A))}})},toggle:function(){if(!this.disabled&&!this.tempDisabled){this.tempDisabled=true;var B=this.mainDiv.offsetWidth*(this.out?-1:1);var A=this;new Effect.MoveBy(this.mainDiv,0,B,{afterFinish:A.enable.bind(A),queue:"end"});this.out=!this.out}},open:function(){this.disabled=false;if(!this.out){this.toggle()}},enable:function(){this.tempDisabled=false;if(this.intervalHdl){clearInterval(this.intervalHdl);this.intervalHdl=null}else{if(!this.out&&this.tab){var A=this;this.intervalHdl=setInterval(function(){new Effect.Shake(A.tab,{queue:"end"})},90000)}}},disable:function(){if(this.out){this.toggle()}this.disabled=true}};var StatusNotifier=Class.create();StatusNotifier={initialize:function(A,E,D,C,B){this.mainDiv=$(A);this.spinner=$(E);this.message=$(D);this.close=$(C);this.close.onclick=function(){StatusNotifier.hideMessage()};this.notificationLevel=0;this.slider=B;Element.hide(A)},showMessage:function(B,A){A=A||{};this.message.innerHTML=B;Element.showHide(this.spinner,A.showSpinner);Element.showHide(this.close,A.closeBox);this.notificationLevel++;Element.show("black_screen");new Effect.Appear(this.mainDiv,{queue:"front"})},hideMessage:function(A){if(A){this.message.innerHTML=A}new Effect.Fade(this.mainDiv,{queue:"end"});Element.hide("black_screen");this.slider.open();this.notificationLevel--},showHideSpinner:function(A){Element.showHide(this.spinner,A)}};var LinkToggle=Class.create();LinkToggle.prototype={initialize:function(C,A){C=$(C);this._clickFunc=A;this.linkElements=C.select("a");var B=this;this.linkElements.each(function(D){D.observe("click",B.click.bindAsEventListener(B))})},click:function(A){var B=Event.element(A);if(!B.hasClassName("current")){this.linkElements.each(function(C){if(C==B){C.addClassName("current")}else{C.removeClassName("current")}});this._clickFunc(B)}}};var LayoutEditor=Class.create();LayoutEditor.prototype={initialize:function(C,E,B){$("preview").src="/layout/profile_preview";Theme.init(C);var D=this.slider=new Slider("sb","js_customise_btn","js_hide_link");StatusNotifier.initialize("status","status_spinner","status_text","status_close",D);this.stepWidget=new StepsWidget("js_editor");this.preview=new LayoutPreview(B,{background:"bg",frame:"preview",insertionID:"c2_style"});this.themePicker=new ThemePicker("_theme_picker","more_featured_themes","prev_featured_themes","theme_wait");this.imgPicker=new ImagePicker({pickerDiv:"image_results",spinner:"image_search_wait"});if(E){this.preview.updateThemes([new Theme(E)])}new TabbedWidget("select_bg");new TabbedWidget("themes");this.update_form=document.forms.update_form;this.background=null;this.theme=null;this.profilePreview=true;this.search_theme_suffix="";this.initForm();$("update_link").onclick=this.showAutoUpdate.bindAsEventListener(this);$("update_profile").onclick=this.updateProfile.bindAsEventListener(this);$("cancel_update_profile").onclick=this.cancelAutoUpdate.bindAsEventListener(this);$("blog").value=$("proto_blog").checked;$("proto_blog").onclick=function(){$("blog").value=this.checked};var A=this;new LinkToggle("theme_choice",function(G){var F=G.getAttribute("fetch");if(F=="featured"){A.themePicker.showFeatured()}else{A.themePicker.setFetchUrlSuffix(F);A.themePicker.fetchThemes();$("search_tag").value="";$("search_choice").hide()}return true});new LinkToggle("search_choice",function(F){A.search_theme_suffix=F.getAttribute("search_suffix");A.searchThemes();return true});new LinkToggle("my_theme_choice",function(F){if(A.userThemePicker){A.userThemePicker.setFetchUrlSuffix(F.getAttribute("fetch"));A.userThemePicker.fetchThemes();return true}});setTimeout(function(){D.toggle()},1500)},searchThemes:function(A){$("theme_choice").select("a").each(function(C){C.removeClassName("current")});$("search_choice").show();if(A){$("search_tag").value=A}le.themePicker.setFetchUrlSuffix("search"+this.search_theme_suffix,$("search_tag").value);try{pageTracker._trackPageview("/themes/search?"+encodeURIComponent($("search_tag").value))}catch(B){}this.themePicker.fetchThemes()},doImageSearch:function(A){this.imgPicker.search(A)},initForm:function(){this.update_form["layout[theme_id]"].value="";this.update_form["layout[background_id]"].value="";this.update_form["layout[keywords]"].value="";$("upload_1").value=""},updateThemes:function(A,B){A=$A(A).collect(function(C){return new Theme(C)});this.preview.updateThemes(A,B);if(B){this.userThemePicker.updateThemes(A)}else{this.themePicker.updateThemes(A)}},_prepareFormSubmit:function(){var A=Form.serialize(this.update_form);if(this.background){A+="&"+this.background.getFormParameters()}StatusNotifier.showMessage("...generating layout codes...",{closeBox:true,showSpinner:true});return A},showGigya:function(){var A=this._prepareFormSubmit();new Ajax.Request("/layout/gigya_save",{parameters:A,onFailure:this._xhrError.bind(this)})},noEmbedSave:function(){var A=this._prepareFormSubmit();new Ajax.Request("/layout/no_embed_save",{parameters:A,onFailure:this._xhrError.bind(this)})},guestSave:function(){if(confirm("Are you sure? If you skip signup, you won't be able to edit or re-use this layout later.")){if(this.background){this.background.setFormElements(this.update_form)}this.update_form.submit()}},login:function(A){new Ajax.Request("/account/ajax_test_login?success_action="+encodeURIComponent(A),{onFailure:this._xhrError.bind(this)})},showAutoUpdate:function(){var A="";if(Util.blankString(this.update_form["layout[theme_id]"].value)){this.stepWidget.openStep(0,true);A+="<p>&middot; Please choose a theme before updating the profile.</p>"}if(A){A="<h1>Oops!</h1>"+A;StatusNotifier.showMessage(A,{closeBox:true});return }this.slider.disable();if(true){this.login("le.noEmbedSave()")}else{if(window.allGigya||(window.showGigya&&!(Prototype.Browser.Gecko&&(navigator.userAgent.indexOf("Macintosh")>=0)&&(navigator.userAgent.indexOf("Firefox/2")>=0)))){this.showGigya()}else{StatusNotifier.showMessage("",{showSpinner:false});$("status_text").innerHTML="";$("status_text").appendChild($("auto_update"))}}},cancelAutoUpdate:function(){$("auto_update_parent").appendChild($("auto_update"));StatusNotifier.hideMessage()},updateProfile:function(){var A="";if(Util.blankString(this.update_form.email.value)){A+="Email can't be blank.<br />"}if(Util.blankString(this.update_form.password.value)){A+="Password can't be blank.\n"}if(A){$("auto_warning").innerHTML=A;new Effect.Highlight("auto_warning");return }$("auto_update_parent").appendChild($("auto_update"));A="Updating profile now...<br /> This may take a while...";if(this.background&&!this.update_form["layout[background_id]"].value){A+="<br />...uploading your background...";new Ajax.Request("/background/fetch",{method:"post",asynchronous:true,evalScripts:true,parameters:this.background.getFormParameters(),onFailure:this._xhrError.bind(this),onSuccess:this._backgroundFetched.bind(this)})}else{A+="<br />...inserting your layout...";new Ajax.Request("/layout/insert",{method:"post",asynchronous:true,evalScripts:true,parameters:Form.serialize(this.update_form),onFailure:this._xhrError.bind(this)})}StatusNotifier.showMessage(A,{showSpinner:true})},setBackgroundForCheck:function(B,A){this._temp_image=B;this._checkImage(A)},setTheme:function(A){this.preview.selectTheme(A);this.update_form["layout[theme_id]"].value=A;if($("all_themes_tab").hasClassName("current")){this.update_form.theme_keyword.value=$("search_tag").value}this.theme=A},addFavoriteTheme:function(){if(this.theme){new Ajax.Request("/user/add_favorite_theme",{method:"get",parameters:{theme_id:this.theme},onFailure:this._xhrError.bind(this)})}},showUserThemes:function(){if(!this.userThemePicker){this.userThemePicker=new ThemePicker("user_theme_picker","more_user_themes","prev_user_themes","my_theme_wait");this.userThemePicker.setFetchUrlSuffix("own");this.userThemePicker.fetchThemes()}},showHelp:function(){Element.hide("sb");Element.show("help_screen");Element.show("editor_screen")},closeHelp:function(){Element.show("sb");Element.hide("help_screen");Element.hide("editor_screen")},tweakInit:function(){if(!this._tweakLoaded){this._tweakLoaded=true;["dragdrop","slider","builder","yahoo.color","colorPicker"].each(function(A){appendScript("/javascripts/"+A+".js")})}},setPreviewMode:function(A){setTimeout(this.preview.setPreviewMode.bind(this.preview,A),10);$("cool_header").select("li").each(function(B){if(B.id=="header_"+A){B.addClassName("current")}else{B.removeClassName("current")}});if(A!="blog"){setCookie("profile_version",A,10)}},updateStyle:function(A){if(this.theme){this.preview.updateStyle(A)}},_checkImage:function(A){if(!A){StatusNotifier.showMessage("Please wait... checking to see if full image of "+this._temp_image.title+" is available.",{showSpinner:true})}var B=this._temp_image.checkImage=new Image();B.onload=this._imageLoaded.bind(this);B.onerror=this._imageError.bind(this);B.onabort=this._imageAborted.bind(this);B.src=this._temp_image.url},_imageLoaded:function(){if(!this._temp_image){return }StatusNotifier.hideMessage("Full image found! Loading image now...");var A=this._temp_image.url;this.background=this._temp_image;this.update_form["layout[keywords]"].value=this.background.getKeywords();this.update_form["layout[background_id]"].value=this.background.backgroundID||"";if(!this.background.width){this.background.width=this.background.checkImage.width}if(!this.background.height){this.background.height=this.background.checkImage.height}this.preview.selectBackground(this._temp_image);this._temp_image=null},_imageError:function(){if(!this._temp_image){return }StatusNotifier.showMessage("<h1>Oops!</h1><p>sorry: full image of "+this._temp_image.title+" is not available</p>",{closeBox:true});this._temp_image=null},_imageAborted:function(){if(!this._temp_image){return }StatusNotifier.showMessage("<h1>Oops!</h1><p>sorry: loading of image "+this._temp_image.title+" has been aborted</p>");this._temp_image=null},_backgroundFetched:function(A){this.update_form["layout[background_id]"].value=A.responseText;this.updateProfile()},_xhrError:function(A){StatusNotifier.showMessage("<h1>Oops!</h1><p>sorry: an error occurred while trying to communicate to the Coolchaser server.</p>"+A.statusText+" "+A.responseText+" "+A.status,{closeBox:true})}};function mySpaceAction(D,E,C){var B=$("myspace_login");B.onsubmit=function(){new Ajax.Request(D,{asynchronous:true,evalScripts:true,onLoading:function(F){$("use_submit").disabled=true;$("inserting_now").show();$("error").hide()},onComplete:function(){$("use_submit").disabled=false},parameters:Form.serialize(this)});return false};B.id.value=E;var A=$("proto_blog");B.blog.value=A&&A.checked;if(C){B.notice.value=C}$("inserting_now").hide();$("prompt").show();return false}Uploader={showStep1:function(){$("upload_1").value="";$("upload_1").show();$("upload_2").hide()},showStep2:function(){$("upload_1").hide();$("upload_2").show();var B=$("upload_title");B.value="click to add title";B.show();B.addClassName("add_title");$("upload_btn").show();$("upload_wait").hide();var A=$("upload_1").value.match(/(\/|\\)([^\/\\]*)$/);$("upload_name").innerHTML=A&&A[2]||$("upload_1").value},success:function(){$("upload_btn").hide();$("upload_title").hide();$("upload_wait").hide()}};Nabbr={doProfilePreview:function(){if(Prototype.Browser.IE){if($("nabbr")){$("nabbr").show()}}else{if($("no_nabbr")){$("no_nabbr").show()}}}};