eat.main={timers:[],xhr:null,data:{city:null},dom:{},init:function(){var A=this;eat.core.domCache(this.dom,["sections","city","cityPreview","cityPreviewData","cityControl","cityMessage","cityForm","cityInput","citySubmit"]);this.dom.cityInput.on("focus",function(B){if(this.className.indexOf("dimmed")!=-1){this.value="";this.className=""}A.dom.citySubmit.el.disabled=false});this.dom.cityForm.on("submit",function(B){B.preventDefault();if(A.dom.cityInput.el.className==""){A.search()}return false});this.render();this.dom.sections.show()},render:function(){var A=eat.main.data;if(A.city){this.dom.cityPreviewData.html(A.city.name);this.dom.cityControl.hide();this.dom.city.el.className="sectionClosed"}else{this.dom.cityPreviewData.html(__("city.help"));this.dom.cityControl.show();this.dom.cityInput.el.value=__("city.form.input.default");this.dom.cityInput.el.blur();this.dom.cityInput.addClass("dimmed");this.dom.citySubmit.el.disabled=true;this.dom.city.el.className="sectionOpen"}},search:function(){if(!this.dom.citySubmit.el.disabled){var A=this;var B=eat.main.data;var C=new Date().getTime();this.dom.citySubmit.el.disabled=true;eat.core.message(A.dom.cityMessage,__("city.progress.message"),{time:-1});this.xhr=C;window.setTimeout(function(){eat.core.ajax(settings.citySearchJsonUrl,{city:A.dom.cityInput.el.value},function(D){if(A.xhr==C){window.clearTimeout(A.timers[C]);if(D.status=="success"){eat.core.message(A.dom.cityMessage,__("city.success"),{style:"success",callback:function(){A.setCity(D.city)},delay:500})}else{eat.core.message(A.dom.cityMessage,D.message,{style:"error",delay:500,callback:function(){A.dom.citySubmit.el.disabled=false},time:3000})}}})},((eat.core.browser.symbian)?500:0));this.timers[C]=window.setTimeout(function(){A.xhr=null;A.dom.citySubmit.el.disabled=false;eat.core.message(A.dom.cityMessage,__("city.timeout"),{style:"error"})},30000)}},setCity:function(A){eat.core.scrollTop();eat.core.message(false,__("city.loading"),{time:-1});window.setTimeout(function(){document.location=settings.cityIndexUrl+"?city="+A.normalizedname},750)}};