/*
 * YouTube Player com Jquery e Jquery UI
 * http://jotaquery.com.br/
 * http://jquery.com/
 * http://jqueryui.com/
 *
 * Copyright (c) 2009 Joćo Henrique
 * Dual licensed under the MIT and GPL licenses.
 *
 * Date: 2009-12-21 17:03:00 -0300
 * Revision: 3
 */
var ytplayer;
function onPlayerError(errorCode) {
  $('#playerError').html('An error occured of type:' + errorCode);
}
function onPlayerStateChange(newState) {
  if (ytplayer) {
    if (newState == 1) {
      $('#yt-play span').removeClass('ui-icon-play').removeClass('ui-icon-clock').addClass('ui-icon-pause');
    } else if (newState == 5 || newState == 2) {
      $('#yt-play span').removeClass('ui-icon-pause').removeClass('ui-icon-clock').addClass('ui-icon-play');
    } else if (newState == 3) {
      $('#yt-play span').removeClass('ui-icon-play').removeClass('ui-icon-pause').addClass('ui-icon-clock');
    }
  }
}
function r3(t, v) {
  return parseFloat((v * 100) / t);
}
function live() {
  if (ytplayer && ytplayer.getDuration) {
    $('#playerControlsSlider').slider('value', r3(ytplayer.getDuration(), ytplayer.getCurrentTime()));
  }
}
function onYouTubePlayerReady(playerId) {
  $.fn.ytPlayer.onYouTubePlayerReady(playerId);
} (function($) {
  var opts;
  $.fn.ytPlayer = function(options) {
    opts = $.extend({},
    $.fn.ytPlayer.defaults, options);
	
	$(this).css('width', opts.width).css('height', opts.height);
    $(this).append('<div id="youtube_this"></div>');
	
    if (opts.controls) {
      $(this).after('<div id="playerControls" class="ui-widget ui-helper-clearfix"></div>');
      $(this).append('<div id="playerControlsSliderVolume"></div>');
      $('#playerControlsSliderVolume').css('left', opts.width - 22);
      $('#playerControls').append('<div id="yt-play" class="ui-state-default ui-corner-all btn"><span class="ui-icon ui-icon-play"></span></div><div id="playerControlsSlider"></div><div id="yt-volume" class="ui-state-default ui-corner-all btn"><span class="ui-icon ui-icon-volume-on"></span></div>');
      $('#playerControls .btn').css('cursor', 'pointer').hover(function() {
        $(this).addClass('ui-state-hover');
      },
      function() {
        $(this).removeClass('ui-state-hover');
      });
      $('#playerControls').css('width', opts.width).css('margin-top', '5px');
      $('#playerControlsSlider').css('width', opts.width - 60).css('float', 'left').css('margin-top', '7px').css('margin-left', '2px').css('margin-right', '2px').slider({
        range: "min",
        value: 30,
        min: 1,
        max: 100,
        slide: function(event, ui) {
          if (ytplayer) {
            ytplayer.seekTo(parseFloat((ui.value * ytplayer.getDuration()) / 100), true);
          }
        }
      });
      $("#playerControlsSliderVolume").slider({
        orientation: "vertical",
        range: "min",
        min: 0,
        max: 100,
        value: 75,
        slide: function(event, ui) {
          if (ui.value) ytplayer.setVolume(ui.value);
        }
      }).mouseleave(function() {
        setTimeout(function() {
          $("#playerControlsSliderVolume").hide();
        },
        500);
      });
      $('.ui-icon-play').click(function() {
        if (ytplayer.getPlayerState() != 1) {
          ytplayer.playVideo();
        } else {
          ytplayer.pauseVideo();
        }
        onPlayerStateChange(ytplayer.getPlayerState());
      });
      $('#yt-volume').click(function() {
        if (ytplayer) {
          var state = ytplayer.getPlayerState();
          if (state == 1 || state == 2) {
            var thisBtn = $('#yt-volume span');
            if (thisBtn.hasClass('ui-icon-volume-on')) {
              ytplayer.mute();
              $("#playerControlsSliderVolume").slider('value', 0);
              thisBtn.removeClass('ui-icon-volume-on').addClass('ui-icon-volume-off');
            } else {
              ytplayer.unMute();
              $("#playerControlsSliderVolume").slider('value', ytplayer.getVolume());
              thisBtn.removeClass('ui-icon-volume-off').addClass('ui-icon-volume-on');
            }
          }
        }
      }).mouseover(function() {
        $("#playerControlsSliderVolume").show('slow');
      });
    }
    var params = {
      allowScriptAccess: opts.allowScriptAccess,
      wmode: "transparent"
    };
    var atts = {
      id: opts.ytPlayer
    };
    swfobject.embedSWF("http://www.youtube.com/apiplayer?" + "&enablejsapi=" + opts.enablejsapi.toString() + "&playerapiid=player1", $(this).attr('id') + '_this', opts.width, opts.height, "8", null, null, params, atts);
    onYouTubePlayerReady = function(playerId) {
      ytplayer = document.getElementById(opts.ytPlayer);
      ytplayer.addEventListener("onStateChange", "onPlayerStateChange");
      ytplayer.addEventListener("onError", "onPlayerError");
      ytplayer.cueVideoById(opts.videoId);
	  if(opts.autoPlay){
		  ytplayer.playVideo();
	  }
      setInterval('live()', 250);
    }
  }
  $.fn.ytPlayer.defaults = {
    ytPlayer: 'ytPlayer',
    videoId: 'tlTi8r3mqW0',
    width: 480,
    height: 295,
    allowScriptAccess: 'always',
    enablejsapi: 1,
    autoPlay: false,
    controls: true
  }
})(jQuery);