var Engine=new Class({Implements:[Options,Events],options:{},initialize:function(a){this.amount=1;this.username;this.widgetStyle;this.tweets={};this.timer;this.usernameEl=$("username");this.amountEl=$("amount");this.pluralEl=$("plural");this.widgetEl=$("widget-content");this.widgets=$$("#widgets a");this.copyWidget=$("copy-widget");this.modal=$("widget-modal");this.close=$("close-modal");this.key=$("dummy-helper");this.text=$$(".widgetText");this.generator=$("generator");this.step={first:$("step-1"),second:$("step-2"),third:$("step-3")};this.allSteps=$$(this.step.first,this.step.second,this.step.third);this.prepareTurkey();this.setTweetAmount();this.setUsername();this.setWidget();this.showWidget();this.closeModal()},prepareTurkey:function(){this.pluralEl.setStyle("opacity",0);this.amountEl.set("value",1);this.usernameEl.set("value","");this.usernameEl.focus();$$(this.step.second,this.step.third).set("styles",{opacity:0,top:-20});this.modal.setStyle("opacity",0);$$(this.step.second,this.step.third,this.modal).set("morph",{transition:"quad:out"});this.key.set("text",(Browser.Platform.mac?"CMD":"CTRL"));this.generator.addEvent("submit",function(a){a.stop()});if(Browser.Platform.mac){new Asset.css("static/css/mac.css")}},requestedTweets:function(a){this.tweets=a},requestTweet:function(){new Asset.javascript("http://twitter.com/statuses/user_timeline/"+this.username+".json?callback=LastTweet.requestedTweets&count=1",{onload:function(){$$(this.text).fade("out");(function(){this.text.set("text",this.tweets[0].text);$$(this.text).fade("in")}).delay(500,this)}.bind(this)})},setTweetAmount:function(){this.amountEl.addEvent("change",function(a){this.amount=$(a.target).value;this.pluralEl.fade((this.amount>1?"in":"out"))}.bind(this))},setUsername:function(){this.usernameEl.addEvent("keyup",function(a){this.username=$(a.target).value;if(this.username.length>=1){$clear(this.timer);this.timer=this.requestTweet.delay(2000,this);this.step.second.morph({opacity:1,top:0})}else{$$(this.step.second,this.step.third).morph({opacity:0,top:-20});$$("h3")[1].tween("opacity",1)}$$("h3")[0].tween("opacity",(this.username.length>=2?0.3:1))}.bind(this))},setWidget:function(){this.widgets.each(function(b){var a=b.getParent();b.addEvent("click",function(c){switch(a.get("id")){case"widget-1":this.widgetStyle="1";break;case"widget-2":this.widgetStyle="2";break;case"widget-3":this.widgetStyle="3";break;case"widget-4":this.widgetStyle="4";break;default:this.widgetStyle="1"}this.widgets.each(function(d){if(b!=d){if(Browser.Engine.webkit){d.getParent().style["-webkit-transform"]="scale(0.8)";d.getParent().style.opacity=".4"}else{d.tween("opacity",0.4)}}else{if(Browser.Engine.webkit){d.getParent().style["-webkit-transform"]="scale(1) rotate("+$random(-4,4)+"deg)";d.getParent().style.opacity="1"}else{d.tween("opacity",1)}}});this.showFinalStep();c.stop()}.bind(this))},this)},showFinalStep:function(){if(this.amount&&this.username&&this.widgetStyle){$$("h3")[1].tween("opacity",0.3);this.step.third.morph({opacity:1,top:0})}},generateWidget:function(){this.widgetStyle=this.widgetStyle.replace(/(widget-)/g,"");new Request({url:"get-widget/"+this.username+"/"+this.amount+"/"+this.widgetStyle,method:"post",onComplete:function(a){this.widgetEl.set("value",a);(function(){this.widgetEl.focus();this.widgetEl.select()}).delay(100,this)}.bind(this)}).send()},showWidget:function(){this.copyWidget.addEvent("click",function(a){this.generateWidget();this.modal.morph({top:[150,200],opacity:1});this.allSteps.morph({opacity:0,top:0});a.stop()}.bind(this))},closeModal:function(){this.close.addEvent("click",function(a){(function(){this.usernameEl.focus();this.usernameEl.select()}).delay(100,this);this.modal.morph({top:[200,250],opacity:0});this.allSteps.tween("opacity",1);if(a){a.stop()}}.bind(this));window.addEvent("keyup",function(a){if(a.key.contains("esc")){this.close.fireEvent("click")}}.bind(this))}});