Syn.TodayInHeader=Syn.Component.extend({loading:false,loaded_forecast:null,init:function(config){this._super(config);this.uniqueElmt("zip_code").connect("keydown",this,"zipCodeKeyDown");this.uniqueElmt("zip_code_go").connect("click",this,"changeZipCode");this.uniqueElmt("zip_code_close").connect("click",this,"zipCodeClose");this.uniqueElmt("change_location").connect("click",this,"toggleChangeLocation");this.uniqueElmt("three_day_forecast").connect("click",this,"showForecast");this.uniqueElmt("weather_img").fixPngImage();var full_width=this.uniqueElmt().outerWidth();var city_width=this.uniqueElmt().find(".todayinheader_city").outerWidth();var date_width=this.uniqueElmt().find(".todayinheader_date").outerWidth();var temp_width=this.uniqueElmt().find(".todayinheader_temperature").outerWidth();var avail_width=full_width-(city_width+date_width);var left=(avail_width-temp_width)/2;this.uniqueElmt().find(".todayinheader_temperature").css("left",left)},changeZipCode:function(element){if(!this.loading&&this.uniqueElmt("zip_code").val().match(/^\d{5}$/)){this.loading=true;this.submit({zip_code:this.uniqueElmt("zip_code").val()},{norender:true})}},finishedLoadingForecast:function(element){this.loaded_forecast=element;this.loading=false},result:function(){window.location=window.location;if($.browser.msie&&$.browser.version<7){window.location.reload()}},toggleChangeLocation:function(){var self=this;this.uniqueElmt("location_dropdown").slideToggle("normal",function(){if($(this).css("display")=="block"){self.uniqueElmt("zip_code").focus().select()}})},showForecast:function(element){if(this.loaded_forecast){var popup=$("#"+$(this.loaded_forecast).attr("id").replace(/:/,'\\:'));if(popup.size()){popup.remove();return}}var zip_code=$(element).attr("rel");if(!this.loading&&zip_code.match(/^\d{5}$/)){this.loading=true;this.popup({component:'todayinheaderweather:zip_code='+zip_code,draggable:false,left:$(element).getPosition().left+"px",max_popups:1,show_loading:false,top:$(element).getPosition().top+$(element).outerHeight()+"px",width:"325px"},this,"finishedLoadingForecast")}},zipCodeClose:function(){this.uniqueElmt("location_dropdown").slideUp()},zipCodeKeyDown:function(element,e){switch(e.keyCode){case 13:this.changeZipCode();return false;break;case 27:this.zipCodeClose();return false;break}return true}});