var myUI = new ui();

function ui(){
   var oThis = this;
   var myPos;
   
   document.observe('flash:loaded', function() {
      $('btnPlay').observe('mousedown', controlButtonPressed);
      $('btnPlay').observe('click', myMusic.playPause);
      $('btnPause').observe('mousedown', controlButtonPressed);
      $('btnPause').observe('click', myMusic.playPause);
      $('btnPrev').observe('mousedown', controlButtonPressed);
      $('btnPrev').observe('click', myMusic.prev);
      $('btnNext').observe('mousedown', controlButtonPressed);
      $('btnNext').observe('click', myMusic.next);

      jQuery('#volumeBar').slider({
         handle: '#volumeHandle',
         min: 0,
         max: 100,
         startValue: 100,
         slide: function(e, ui) { mySound.setVolume(ui.value / 100); }
      });
      myPos = new position('positionBar');
      checkForDefaultSong();
   });
   document.observe('mouseup', function(){
		setPressed($('btnPlay'), false);
		setPressed($('btnPause'), false);
		setPressed($('btnPrev'), false);
		setPressed($('btnNext'), false);
	});
   document.observe('sound:preopen', function(){
      myPos.start();
      setPlayButton(true);
      setPositionBar(0);
      resetPositionBarHandle();
   });
   document.observe('sound:complete', function(){
      setPlayButton(false);
      oThis.incPly();
      myMusic.next();
   });
   document.observe('sound:playpause', function(e){
      setPlayButton(e.memo.isPlaying);
   });
   document.observe('song:playing', function(e){
      $('playingName').innerHTML = e.memo.song.Name;
      highlightPlaying(e.memo.song);
   });
   document.observe('songs:repaint', function(e){
      highlightPlaying(e.memo.song);
   });
   document.observe('sound:progress', function(e){
      setPositionBar(e.memo.percentLoaded);
   });
   document.observe('sound:loadcomplete', function(){
      setPositionBar(100);
   });
   
   function checkForDefaultSong(){
      // check if we're supposed to start playing a song
      var temp = window.location.toString().split("?");
      
      if (temp.length == 2){
         var id = temp[1].replace('song=', '');
         
         // check isnumeric
         if (id != null && !isNaN(id)){
            myMusic.play(id);
         }
      }
   }
   function setPlayButton(isPlaying){
      if (isPlaying){
         $('btnPlay').hide();
         $('btnPause').show();
      }else{
         $('btnPlay').show();
         $('btnPause').hide();
      }
   }
   function highlightPlaying(song){
      var row = $('song_' + song.ID);
      
      $('main').select('table tr.playing').each(function(r){
         r.removeClassName('playing');
      });
      
      row.addClassName('playing');
   }
   function setPositionBar(percent){
      $('positionBar').style.width = percent + '%';
   }
   function resetPositionBarHandle(){
      $('positionBar').select('.ui-slider-handle')[0].style.left = 0;
   }
   function controlButtonPressed(e){
		setPressed(Event.element(e), true);
	}
	function setPressed(btn, isPressed){
		var src = btn.src;
		btn.src = isPressed ? src.replace('.png', '_pressed.png') : src.replace('_pressed.png', '.png');
	}
   
   this.incPly = function(){
      /*var song = myMusic.getPlayingSong();
      
      if (song != null){
         jQuery.ajax({
            type: "POST",
            url: "/Audio/Played/" + song.ID,
            data: "",
            success: function(msg){}
         });
      }*/
   }
}
