/*
jqIzeYoutubeControls - (c) 2010 Emil Müller
http://ize.webhop.net/home/jquery-plugins/jqizeyoutubeplayer
Released under the GPL License
http://www.gnu.org/licenses/gpl-3.0.txt
requires:
- jQuery 1.4.x
- jQueryUI 1.8.x
*/
(function ($) {
$.fn.IzeYoutubeControls = function (settings) {
var config = {
width: 640,
height: 'auto',
playlistbutton: false,
onSeekFirstClick: function () { },
onSeekPreviousClick: function () { },
onPlayClick: function () { },
onPauseClick: function () { },
onSeekNextClick: function () { },
onSeekEndClick: function () { },
onMuteClick: function () { },
onUnMuteClick: function () { },
onPlaylistClick: function () { }
};
if (settings) $.extend(config, settings);
init = function (el) {
setupMainContainer(el);
setupButtons(el);
}
setupMainContainer = function (el) {
$(el).css({ width: config.width, height: config.height });
}
setupButtons = function (el) {
$(el).hide();
$(el).append($("").text('first').button({ icons: { primary: 'ui-icon-seek-first' }, text: false }).click(function () { doSeekFirstClick(); }));
$(el).append($("").text('previous').button({ icons: { primary: 'ui-icon-seek-prev' }, text: false }).click(function () { doSeekPreviousClick(); }));
$(el).append($("").text('play').button({ icons: { primary: 'ui-icon-play' }, text: false }).click(function () { doPlayClick(); }));
$(el).append($("").text('pause').button({ icons: { primary: 'ui-icon-pause' }, text: false }).click(function () { doPauseClick(); }));
$(el).append($("").text('next').button({ icons: { primary: 'ui-icon-seek-next' }, text: false }).click(function () { doSeekNextClick(); }));
$(el).append($("").text('end').button({ icons: { primary: 'ui-icon-seek-end' }, text: false }).click(function () { doSeekEndClick(); }));
$(el).append($("").text('mute').button({ icons: { primary: 'ui-icon-volume-off' }, text: false }).click(function () { doMuteClick(); }));
$(el).append($("").text('unmute').button({ icons: { primary: 'ui-icon-volume-on' }, text: false }).click(function () { doUnMuteClick(); }));
if (config.playlistbutton) $(el).append($("").text('playlist').button({ icons: { primary: 'ui-icon-note' }, text: false }).click(function () { doPlaylistClick(); }));
}
doSeekFirstClick = function () {
if ($.isFunction(config.onSeekFirstClick)) config.onSeekFirstClick.call(this);
}
doSeekPreviousClick = function () {
if ($.isFunction(config.onSeekPreviousClick)) config.onSeekPreviousClick.call(this);
}
doPlayClick = function () {
if ($.isFunction(config.onPlayClick)) config.onPlayClick.call(this);
}
doPauseClick = function () {
if ($.isFunction(config.onPauseClick)) config.onPauseClick.call(this);
}
doSeekNextClick = function () {
if ($.isFunction(config.onSeekNextClick)) config.onSeekNextClick.call(this);
}
doSeekEndClick = function () {
if ($.isFunction(config.onSeekEndClick)) config.onSeekEndClick.call(this);
}
doMuteClick = function () {
if ($.isFunction(config.onMuteClick)) config.onMuteClick.call(this);
}
doUnMuteClick = function () {
if ($.isFunction(config.onUnMuteClick)) config.onUnMuteClick.call(this);
}
doPlaylistClick = function () {
if ($.isFunction(config.onPlaylistClick)) config.onPlaylistClick.call(this);
}
this.each(function () {
//setup element
init(this);
});
//put instance of this object in data
$(this).data("ytcontrols", this);
return this;
};
})(jQuery);