var Shoutcast=new Class({Implements:[Options,Events],options:{path:"./assets/site/scripts/shoutcast.php",host:"rs3.radiostreamer.com",port:9330,limit:15,covers:2,loader:true,delay:15000,resume:30000,track:null,trackIndex:null,seller:"amazon",filter:"CRS Reminder|Werbung|CRS Commercial",lightbox:false},initialize:function(b,a){this.setOptions(a);this.slideContainerEl=document.id(b);if(!this.slideContainerEl){return false}this.timeoutID=null;this.trackTime=null;this.isUpdate=this.options.track?true:false;this.loaderEl=document.id("loaderID");this.request()},request:function(){this.params=new Hash({host:this.options.host,port:this.options.port,limit:this.options.limit,covers:this.options.covers,title:this.options.track});this.jsonRequest=new Request.JSON({method:"post",url:this.options.path,initialDelay:0,delay:this.options.delay,limit:90000,noCache:true,link:"chain",onRequest:function(){if(this.options.loader){this.loaderEl.show()}}.bind(this),onSuccess:function(a){if(!this.itemsAreValid(a)){return false}if(!this.itemsNeedUpdate(a)){return false}this.tblTracklist=null;this.tblTracklistExt=null;a.each(function(c,b){if(!$defined(c.track)){return false}this.processItems(c,b)}.bind(this));this.fireEvent("onCallback")}.bind(this),onComplete:function(){if(this.options.loader){this.loaderEl.hide()}}.bind(this)});this.options.track?this.jsonRequest.post(this.params):this.jsonRequest.startTimer(this.params)},itemsAreValid:function(a){if($type(a)!="array"){return false}if(a[0].track.test("Operation timed out")){return false}if(a[0].track.test("Connection timed out")){return false}return true},itemsNeedUpdate:function(a){if(this.options.track){return true}if(a[0].time==this.trackTime){return false}this.trackTime=$defined(a[0].time)?a[0].time:null;return true},processItems:function(b,a){this.processSlides(b,a);this.processTables(b,a)},processSlides:function(f,a){var g=f.track.test(this.options.filter,"i");if(this.isUpdate){var c=this.slideContainerEl}else{var c=this.slideContainerEl.getElements(".track")[a];c.eliminate("cover");c.store("track",f.track);c.empty();var b=this.setTrackHtml(f,g,false);new Element("div",{"class":"descr",html:b}).inject(c);if(g){c.store("cover",false);return false}}if(a>=this.options.covers){return false}var e=this.addCover(f,c);c.store("cover",e);if(!e){return false}e.inject(c,"top");var d=this.addOrder(f);if(!d){return false}d.inject(c,"bottom")},processTables:function(m,k){var f=m.track.test(this.options.filter,"i");if(this.isUpdate){if($defined(document.id("tracklistExtID"))){var j=document.id("tracklistExtID").getElements("tr")[this.options.trackIndex+1];var h=j.getElements("td")[2];var i=h.getElement(".track")}}else{if(!this.tblTracklist){var l=document.id("tracklistID");l.empty();var a=this.prepareTable();a.inject(l);this.tblTracklist=a}var e=this.setTrackHtml(m,f,true);var i=new Element("div",{"class":"track"}).adopt(new Element("div",{"class":"descr",html:e}));var g=this.tblTracklist.push([k+1,m.time,i]);g.tr.store("slideIndex",k);if($defined(document.id("tracklistExtID"))){if(!$defined(this.tblTracklistExt)){var l=document.id("tracklistExtID");l.empty();var a=this.prepareTable();a.inject(l);this.tblTracklistExt=a}var e=this.setTrackHtml(m,f,true);var i=new Element("div",{"class":"track"}).adopt(new Element("div",{"class":"descr",html:e}));var g=this.tblTracklistExt.push([k+1,m.time,i]);var j=g.tr;j.store("slideIndex",k);if(f){return false}var d=this.addToggleLink(d);d.inject(g.tds[2],"top");d.store("slideIndex",k);if(k>=this.options.covers){return false}}}if($defined(document.id("tracklistExtID"))){var c=this.addCover(m);if(!c){var d=j.getElement("a.toggle-track");if($defined(d)){j.set("tween",{onComplete:function(){d.dispose()}}).highlight("#cc0000")}return false}c.inject(i);j.addClass("on");var b=this.addOrder(m);if(!b){return false}b.inject(i)}},prepareTable:function(){var a=new HtmlTable({properties:{border:0,cellspacing:0},zebra:true});a.setHeaders(["<!-- Number -->","Time","Title"]);return a},addToggleLink:function(b){var a=new Element("a",{href:"",title:"","class":"toggle-track"});return a},addCover:function(b){if(!$defined(b.cover)||!$defined(b.cover.SmallImage)){return false}var c=new Element("div",{"class":"cover"}).adopt(new Element("img",{src:b.cover.SmallImage,height:"75px",width:"75px",title:"",alt:""}));var a=this.addLightbox(b);if(a){a.wraps(c.getFirst())}return c},addLightbox:function(b){if(!this.options.lightbox){return false}if(!$defined(b.cover)||!$defined(b.cover.LargeImage)){return false}var d=b.cover.LargeImage.replace("%3A",":");var a=new Element("a",{href:d,rel:"lightbox[cover]",title:"",target:"_blank"});return a},addOrder:function(b){if(!$defined(b.cover)||!$defined(b.cover.LargeImage)){return false}if(this.options.seller=="cede"){if(!b.track.contains(" - ")){return false}var d=b.track.split(" - ",2);var a="http://www.cede.ch/de/music-cd/partner.cfm";var e=new Hash({pid:"1180",Interpret:d[0].trim(),Track:d[1].trim()}).toQueryString()}else{var a="http://www.amazon.com/gp/product/"+b.cover.asin;var e=new Hash({ie:"UTF8",tag:"maswe0d-20",linkCode:"as2",camp:1789,creative:390957,creativeASIN:b.cover.asin}).toQueryString()}var c=new Element("div",{"class":"order"}).adopt(new Element("a",{href:a+"?"+e,text:"Buy...",title:"",rel:"external",target:"_blank","class":"tooltip"}));return c},setTrackHtml:function(f,a,e){var e=e||false;var h=e?" - ":"<br />";var g=f.track.split(" - ",2);g[0]=g[0].replace("on CRS -","-");var c='<span class="title">'+f.track+"</span>";if(g.length>1){var c="";if(!e){c+='<span class="time">'+f.time+"</span>"+h}c+='<span class="artist">'+g[0].trim()+"</span>"+h;c+='<span class="title">'+g[1].trim()+"</span>"}if(!a){return c}c='<span class="title"><em>'+c+"</em></span>";var d=/((?:http|https):\/\/[a-z0-9\/\?=_#&%~-]+(\.[a-z0-9\/\?=_#&%~-]+)+)|(www(\.[a-z0-9\/\?=_#&%~-]+){2,})/gi;var b=f.track.match(d);if(b){b=(b[0].match(/^www\./i))?"http://"+b[0]:b[0];return c.replace(d,'<a title="" href="'+b+'" rel="external" target="_blank">'+b.toLowerCase()+"</a>")}var d=/[a-zA-Z0-9._-]+@[a-zA-Z0-9]+.[a-z]+(.[a-z]+)?/gi;var b=f.track.match(d);if(b){return c.replace(d,'<a title="" rel="external" href="mailto:'+b[0]+'">'+b[0].toLowerCase()+"</a>")}return c},start:function(){this.timeoutID=this.jsonRequest.startTimer(this.params);this.fireEvent("onStart")},pause:function(){if(this.timeoutID){$clear(this.timeoutID)}this.jsonRequest.stopTimer();this.timeoutID=this.start.delay(this.options.resume,this);this.fireEvent("onPause")},stop:function(){if(this.timeoutID){$clear(this.timeoutID)}this.jsonRequest.stopTimer();this.fireEvent("onStop")},reset:function(a){this.trackTime=false;this.slideContainerEl=document.id(a);this.start()}});