var tmxPlayer=new Class({Implements:[Options,Events],options:{autoplay:1,parent:"checkres",css:"tmxplayer",id:"wideplayer",loop:1,pause:0,volume:40},songs:Array(),curSong:0,playing:false,initialize:function(B,A){this.setOptions(B);this.parent=$(this.options.parent);if(!this.parent){alert("parent fehlt!!");return }if(this.parent.getStyle("display")=="none"){this.parent.setStyle("display","block")}this.swiffHome=new Element("div").setStyles({position:"absolute",top:1,left:1}).inject(this.parent);this.obj=new Swiff("/msound.swf",{width:1,height:1,container:this.swiffHome,swLiveConnect:true});this.build();if(A){this.load(A)}},build:function(){this.container=$(this.options.id)||new Element("div",{id:this.options.id,"class":this.options.css}).inject(this.parent);this.container.fade("hide");this.container.set("tween",{duration:"short"});this.playBtn=new Element("div",{"class":"play"}).addEvent("click",this.playToggle.bind(this)).injectInside(this.container);var A=new Element("div",{"class":"barframe"}).inject(this.container);this.seekbar=new Element("div",{"class":"seekbar"}).injectInside(A);this.position=new Element("div",{"class":"position"}).injectInside(A);this.nextBtn=new Element("div",{"class":"next"}).fade("hide").addEvent("click",this.next.bind(this)).injectInside(this.container);this.title=new Element("div",{"class":"title"}).fade("hide").injectInside(this.container);this.fxoptions={property:"width",unit:"%",link:"cancel"};this.progressFx=new Fx.Tween(this.seekbar,this.fxoptions);this.positionFx=new Fx.Tween(this.position,$merge(this.fxoptions,{duration:"short"}));this.seekbar.addEvent("click",this.jumpto.bind(this));this.position.addEvent("click",this.jumpto.bind(this))},load:function(C){this.reset(false);if(this.container.get("opacity")==0){this.container.fade("in")}var B;for(var A=0;A<C.length;A++){B=A+1;this.songs.push(new Sound(C[A][0],this,{volume:this.options.volume,onProgress:this.onProgress.bind(this),onPosition:this.onPosition.bind(this),onComplete:this.onComplete.bind(this),title:B+": "+C[A][1]}))}if(this.songs.length>1){this.nextBtn.fade("in")}if(this.options.autoplay){this.play_delayed()}},reset:function(A){this.stop();this.songs=Array();this.curSong=0;if(A){this.container.fade("out")}this.nextBtn.fade("out")},jumpto:function(C){var B=this.seekbar.getCoordinates();var A=((C.page.x-B.left)/B.width)*this.songs[this.curSong].duration;this.songs[this.curSong].jumpTo(A);this.playing=true;this.playBtn.addClass("playing")},play_delayed:function(A){A=A||1500;var B=this;setTimeout(function(){try{B.play()}catch(C){log("seltsamer fehler?!")}},A)},play:function(){if(this.songs.length==0){return }var A=this.songs[this.curSong].title;if(A){this.title.fade("hide").set("text",A).fade("in")}this.songs[this.curSong].start(0);this.seekbar.fade("in");this.playBtn.toggleClass("playing");this.playing=true},playToggle:function(){if(this.playing){this.pause()}else{this.play()}},pause:function(){if(!this.playing){return }this.songs[this.curSong].pause();this.playBtn.src="img/btnPlay.gif";this.playBtn.toggleClass("playing");this.playing=false},stop:function(){if(!this.playing){return }this.title.fade("hide");this.songs[this.curSong].stop();this.seekbar.fade("out");this.playBtn.toggleClass("playing");this.playing=false},next:function(){if(this.songs.length==0){return }this.stop();this.curSong++;if(this.curSong==this.songs.length){this.curSong=0;var A=1}if(A&&!this.options.loop){return }if(this.options.pause){this.play_delayed(this.options.pause)}else{this.play()}},prev:function(){this.stop();this.curSong--;if(this.curSong==-1){this.curSong=this.songs.length-1}this.play()},onProgress:function(A,C){var B=(A/C*100).round(2);if(B>100){alert(B)}this.progressFx.start(B)},onPosition:function(A,C){var B=(A/C*100).round(2);this.positionFx.start(B)},onComplete:function(){this.next(true)}});Super=new Class({Implements:[Events,Options],options:{auto:0,css:"web",container:"checkres",fade_duration:500,d_uil:"de",m_url:"/pix/uploaded/",music:[["m:/chill/sonnambula.mp3","*tmx - Sonnambula"],["m:/chill/callas.mp3","*tmx - Callas"]]},initialize:function(A){this.setOptions(A);if(this.options.auto){this.unit=this.options.auto}this.container=$(this.options.container);this.uil=this.options.d_uil;this.uis={de:{loading:"ICH LADE..."},en:{loading:"LOADING..."}};if(this.options.auto){this.load()}else{this.status="sleep"}this.bound={keyhandler:this.keyhandler.bind(this)}},keyhandler:function(A){if(A&&A.key){switch(A.key){case"space":this.pause();break;case"left":case"a":this.fj(-1);break;case"right":case"s":this.fj(1);break;case"up":this.sj(-1);break;case"down":this.sj(1);break}}},build:function(){this.box=this.container.getElement("#sbox");if(!this.box){this.container.empty();this.box=new Element("div",{id:"sbox"}).injectInside(this.container)}window.Playlist=new superPlayer(this.box);if(this.options.css){this.box.addClass(this.options.css)}this.infobar=$("sbinfo")||new Element("div",{id:"sbinfo"}).injectInside(this.box);this.info_l=new Element("div",{id:"sbinfoleft",style:"float:left"}).injectInside(this.infobar);this.info_r=new Element("div",{id:"sbinforight",style:"float:right"}).injectInside(this.infobar);this.main=this.box.getElement("div.main")||new Element("div",{"class":"main"}).injectInside(this.box);this.control=$("sbcontrol")||new Element("div",{id:"sbcontrol"}).injectInside(this.box);this.buttons=new Element("div",{}).injectInside(this.control);this.hideControls();this.fxoptions={property:"opacity",link:"cancel",duration:this.options.fade_duration};this.f=[];this.fx=[];var D,C,A;for(var B=0;B<3;B++){C=new Element("div",{"class":"lvtr"}).injectInside(this.main);A=new Element("div",{"class":"cell"}).injectInside(C);this.f.push(A);D=new Fx.Tween(A,this.fxoptions).set(0).addEvent("complete",this.fxended.bind(this));this.fx.push(D)}this.cterm=new Element("span",{"class":"s_term"}).injectInside(this.f[0]);this.ctype=new Element("span",{id:"s_type","class":"s_type",style:"font-size:12px;font-family:Tahoma,sans-serif;margin:0px 10px"}).injectInside(this.f[0]);this.cipa=new Element("div",{"class":"s_ipa"}).injectInside(this.f[0]);this.bc();this.halt=false;this.kill=false;window.addEvent("keydown",this.bound.keyhandler);if(this.options.music){log("trying to create musicPlayer...");window.musicPlayer=new tmxPlayer({parent:this.buttons,id:"wideplayer"});if(musicPlayer){musicPlayer.load(this.options.music)}}},bc:function(){this.pause_btn=new Element("a",{href:"#",id:"lvpause"}).inject(this.buttons).addEvent("click",this.pause.bind(this));this.quit_btn=new Element("a",{href:"#",id:"lvquit"}).inject(this.buttons).addEvent("click",this.quit.bind(this))},load:function(A){if(A){this.unit=A}log("wanna build!");this.build();this.hideControls();this.halt="loading";this.print(this.ui("loading"));var B=(this.unit)?"?u="+this.unit:"";new Request.JSON({url:"/php/superfeed.php"+B,onComplete:this.complete.bind(this)}).get()},reset:function(){this.voc=null;Playlist.reset()},complete:function(D,A){if(!D){alert(A);this.print(this.ui("error"),":-(");return }this.reset();this.voc=D.voc;if(D.unit){this.info_l.innerHTML=D.unit.subject_ui+" : "+D.unit.name}if(this.uis){this.uis=$merge(this.uis,D.ui);this.set_lang(this.uil)}if(D.help){var B=$("help");if(B){B.set("html",D.help)}}for(var C=0;C<this.voc.length;C++){if(this.voc[C].src){this.voc[C].img=new Element("img",{src:this.options.m_url+this.voc[C].src,"class":"s_img",alt:"",width:240,height:160})}if(this.voc[C].mp3){Playlist.add(this.voc[C].mp3,C)}}this.start()},start:function(){this.status="loop";this.frame=0;this.index=0;this.showControls();this.fxstart(1,0);this.fxc--;this.halt=false},jump:function(C){for(var B=0;B<3;B++){this.fx[B].cancel().set(0)}this.fxc=0;this.move(C);this.display();var A=this.semimode?2:3;for(var B=0;B<A;B++){this.fx[B].set(1)}this.frame=this.semimode?3:5;this.audio();if(!this.halt){this.next()}},fj:function(A){this.semimode=0;this.semi=false;this.jump(A)},sj:function(A){this.semimode=1;if(this.semi){this.fx[2].set(1);this.frame=3}else{this.jump(A)}this.semi=!this.semi},move:function(A){this.index=this.index+A;if(this.index<0){this.index=this.voc.length-1}if(this.index>=this.voc.length){this.index=0}},display:function(){this.info_r.innerHTML=(this.index+1)+" / "+this.voc.length;this.cterm.set("html",this.voc[this.index].term);this.ctype.set("html",this.voc[this.index].tg);this.cipa.set("html",this.voc[this.index].ipa);var B=this.voc[this.index].ex;if(!B&&this.voc[this.index].tr){B=this.voc[this.index].def}if(!B&&this.voc[this.index].d_alt){B=this.voc[this.index].d_alt}this.t2=B;this.f[1].set("html",B);this.f[2].empty();if(this.voc[this.index].img){this.voc[this.index].img.inject(this.f[2])}var A=this.voc[this.index].tr;if(!A){A=this.voc[this.index].def}new Element("div",{html:A}).inject(this.f[2])},anim:function(){switch(this.frame){case 0:this.display();this.fxstart(0,1);break;case 1:this.audio();this.await(2000);if(!this.t2){this.frame=this.frame+2}break;case 2:this.fxstart(1,1);break;case 3:this.await(4000);break;case 4:this.fxstart(2,1);break;case 5:this.await(4000);break;case 6:this.fxstart(0,0);this.fxstart(1,0);this.fxstart(2,0);this.move(1);break;case 7:this.frame=-1;this.await(300)}this.frame++},audio:function(){if(this.voc[this.index].mp3&&Playlist){Playlist.play(this.index)}},fxstart:function(B,A){this.fx[B].start(A);this.fxc++},fxended:function(){this.fxc--;if(this.fxc<0){this.fxc=0}if(!this.fxc&&!this.halt){this.next()}},await:function(A){if(this.waitTimer){this.waitTimer=window.clearTimeout(this.waitTimer)}this.waitTimer=this.next.delay(A,this)},next:function(){if(this.kill||this.halt=="pause"){return }if(this.box.getParent()==null){this.kill=1;this.cleanup();return }if(this.status=="loop"){this.anim()}},learn:function(B,A){if(!this.box.getParent()){this.build()}if(A){this.learn=A}if(B){this.unit=B}this.load();return false},pause:function(){if(!this.halt){this.halt="pause";this.pause_btn.innerHTML=this.ui("resume")}else{if(this.halt=="pause"){this.pause_btn.innerHTML=this.ui("pause");this.halt=false;this.next()}}return false},quit:function(){var A=(this.halt=="pause");this.halt="quit";this.status="done";if(A){this.fadeout()}this.cleanup();if(window._units){_units.back()}return false},cleanup:function(){this.reset();window.removeEvent("keydown",this.bound.keyhandler)},ui:function(A){return(this.uis&&this.uil&&A)?this.uis[this.uil][A]:""},set_lang:function(A){if(A&&this.uis[A]){this.uil=A;this.pause_btn.innerHTML=this.ui("pause");this.quit_btn.innerHTML=this.ui("quit")}return false},print:function(A){this.fx[0].cancel();this.fx[1].cancel();this.fx[2].cancel();this.fxc=0;if(A!==false){this.f[1].innerHTML=A}this.fxstart(0,0);this.fxstart(1,1);this.fxstart(2,0)},fadeout:function(){if(this.halt=="pause"){return }log("fadeout...");this.fxstart(0,0);this.fxstart(1,0);this.fxstart(2,0)},showControls:function(){if(this.buttons.getStyle("display")!="block"){this.buttons.setStyle("display","block")}},hideControls:function(){if(this.buttons.getStyle("display")!="none"){this.buttons.setStyle("display","none")}}});var m_url="http://media.planet-tmx.eu/";var superPlayer=new Class({Implements:Events,songs:new Hash(),curSong:0,imgdir:m_url+"player/",initialize:function(A,C,B){if(!A){alert("container fehlt!!");return }this.swiffHome=$("splayerc")||new Element("div",{id:"splayerc"}).setStyles({position:"absolute",top:1,left:1}).inject($(A));log("swiffHome "+this.swiffHome);this.flashLoaded=false;this.loadQueue=[];this.obj=new Swiff("/msound.swf",{width:1,height:1,container:this.swiffHome,swLiveConnect:true});this.autoplay=0;this.curSong=-1;this.playBtn=C?C:false;if(C){this.playBtn.addEvent("click",this.playToggle.bind(this))}},add:function(B,A){log("adding sample: "+B+" / "+A+"/ flash loaded? "+this.flashLoaded);if(!this.flashLoaded){this.loadQueue.push([B,A]);return }this.songs.set(A,new Sound(m_url+B,this,{streaming:false}))},kill:function(){this.songs.each(function(A){songs.kill()});delete this.obj},reset:function(){this.stop();this.songs.empty();this.curSong=-1},play:function(A){var B=this.songs.get(A);if(!B){return }B.start(0);this.curSong=A;this.playing=true},playToggle:function(){if(this.playing){this.stop()}else{this.play()}return false},stop:function(){if(!this.playing||this.curSong==-1){return }var A=this.songs.get(this.curSong);if(A){A.stop()}this.playing=false},onFlashLoaded:function(){log("flash loaded");this.flashLoaded=true;this.loadQueue.each(function(A){this.add(A[0],A[1])}.bind(this))}});