var InfosUpdater=new Class({initialize:function(c,b,a){this.channelId=c;this.retry=a||0;this.infosContainer=b;this.updated=this.infosContainer.getElement("span.updated");this.rq=new Request.JSON({method:"get",url:"/djs/get-status/",onComplete:function(e){var d=e[0]?Platform.simpleStatus(e[0].status):{error:"Status unavailable"};this.processStatus(d)}.bind(this)});this.getStatus()},getRqData:function(){return{id:this.channelId,t:(new Date().getTime())}},getStatus:function(){this.rq.send({data:this.getRqData()})},processStatus:function(a){if(a.available||a.error){if(this.updating){new Request.HTML({method:"get",url:"/djs/get-infos/",update:this.infosContainer}).send({data:this.getRqData()})}else{if(this.retry-->0){setTimeout(this.getStatus.bind(this),2000)}}}else{this.updating=true;this.updated.addClass("busy");this.updated.innerHTML="Updating: "+a.percent+"% ("+a.state+")";setTimeout(this.getStatus.bind(this),7000)}}});var SlugField=new Class({initialize:function(a){this.input=$(a);this.wrapper=$(a.parentNode.parentNode);this.error=$(a.parentNode).getElement(".error");if(this.error){this.error.content=this.error.getElement("ul li")}else{this.error=a.parentNode.appendChild(new Element("div").addClass("error")).hide();this.error.content=this.error.appendChild(new Element("span"));this.error.appendChild(new Element("div"))}this.preview=a.parentNode.appendChild(new Element("div").addClass("urlPreview"));this.preview.style.lineHeight=a.offsetHeight+"px";this.rq=new Request.JSON({method:"get",url:"/djs/check-slug/",onComplete:this.processCheck.bind(this)});a.addEvent("keyup",function(){clearTimeout(this.timer);this.timer=setTimeout(this.checkSlug.bind(this),300)}.bind(this));a.addEvent("blur",this.checkSlug.bind(this));if(a.value){this.buildPreview(a.value)}},buildPreview:function(a){this.preview.show();this.preview.innerHTML="http://stupeflix.tv/<b>"+a+"</b>/"},checkSlug:function(){var a=this.input.value;if(a==this.input._value){return}this.error.hide();if(!a){this.wrapper.removeClass("error");this.preview.hide()}else{this.buildPreview(a);this.rq.send({data:{slug:a,t:(new Date().getTime()),current:this.currentSlug}})}this.input._value=a},processCheck:function(a){if(a.error){this.wrapper.addClass("error");this.error.show().content.innerHTML=a.error}else{this.wrapper.removeClass("error")}},setValue:function(a){this.input.value=a;this.checkSlug()},getValue:function(a){return this.input.value}});var QueryField=new Class({initialize:function(a,b){this.template=b;this.input=$(a);this.link=a.parentNode.appendChild(new Element("a",{target:"_blank"}).addClass("link")).hide();a.addEvent("keyup",this.update.bind(this));this.update()},update:function(){var a=this.input.value;if(a){this.link.show();this.link.href=this.template.replace("xxx",encodeURIComponent(a))}else{this.link.hide()}},setValue:function(a){this.input.value=a;this.update()},getValue:function(a){return this.input.value}});var ChannelForm=new Class({initialize:function(b,c,a){this.form=b;this.slug=new SlugField(b.slug);this.twitter=new QueryField(b.twitter_query,c);this.flickr=new QueryField(b.flickr_query,a);$(b.name).addEvent("blur",this.update.bind(this))},update:function(){var a=this.form.name.value;if(!this.slug.getValue()){this.slug.setValue(a.replace(/[^\w\s.\-_]*/g,"").replace(/\s/g,"."))}if(!this.twitter.getValue()){this.twitter.setValue(a)}if(!this.flickr.getValue()){this.flickr.setValue(a)}}});
