function position(barID){
   // variable y refers to length of position bar parent
   // variable x refers to length of position bar
   var INTERVAL = 200;
   var oThis = this;
   var mySlider;
   var isIntervalSlide = true;
   var isHumanSlide = false;
   var positionInterval;
   var completePos = -1;
   
   document.observe('sound:open', function(){
      completePos = -1;
   });
   document.observe('sound:complete', function(){
      completePos = mySound.getPosition();
   });
      
   /* Private */
   function getSliderValue(){ // Output 0 -> 100
      var len = mySound.estimatedLength();
      var pos = mySound.getPosition();
      
      if (len == 0)
         return 0;
      if (completePos >= 0 && pos == completePos)
         return 100;
      else{
         var barWidth = $(barID).getWidth();
         
         if (barWidth == 0){
            return 0;
         }else{
            var percentOfY = parseInt(Math.round(100 * pos / len));
            var pixelOnY = $('positionShell').getWidth() * percentOfY / 100;
            var percentOfX = pixelOnY / barWidth;
            return parseInt(Math.round(percentOfX * 100));
         } 
      }
   }
   function updateTime(){      
      //var bytesLoaded = ytplayer.getVideoBytesLoaded();
      //var bytesTotal = ytplayer.getVideoBytesTotal();
      
      // todox $(currentTimeID).innerHTML = myUtils.formatTime(ytplayer.getCurrentTime());
      // todox $(timeRemainingID).innerHTML = '-' + myUtils.formatTime(ytplayer.getDuration() - ytplayer.getCurrentTime());
      
      /* todox if (ytquality = 1){
         if (bytesLoaded == null || bytesTotal == null || bytesTotal <= 0){
            $(barLoadedID).style.width = '0';
         }else{
            $(barLoadedID).style.width = (100 * bytesLoaded / bytesTotal) + '%';
         }
      }*/
   }
   
   /* Public */
   this.start = function(){
	   if (mySlider == null){ // Prevent duplicate event listeners
         mySlider = jQuery('#' + barID).slider({
             handles: [
                {start:0,min:0,max:0},
                {start:0,min:0,max:100}
            ],
            range: true,
            slide: function(e, ui){ 
               if (!isIntervalSlide){
                  isHumanSlide = true;
                  
                  // Convert % of x to % of y
                  var yWidth = $('positionShell').getWidth();
                  var xWidth = $(barID).getWidth();
                  var posOnX = xWidth * ui.value / 100;
                  
                  mySound.setPosition(posOnX / yWidth, true);
                  isHumanSlide = false;
                  updateTime();
               }
            }
         });
			
			// Clear slider
			isIntervalSlide = true;
	      jQuery(mySlider).slider("moveTo", 0, 1);
	      isIntervalSlide = false;
			
			// Set an update interval
			positionInterval = setInterval(function(){
		      if (!isHumanSlide){
	            updateTime();
	            isIntervalSlide = true;
	            jQuery(mySlider).slider("moveTo", getSliderValue(), 1);
	            isIntervalSlide = false;
	         }
		   }, INTERVAL);
		}
   }
}
