var YoutubeMusicPlayer = {
start: function(){
YoutubeMusicPlayer.current_item = 0;
YoutubeMusicPlayer.ytplayer;
YoutubeMusicPlayer.playlist;
YoutubeMusicPlayer.loadPlayer();
},
loadPlayer: function(){
var params = { allowScriptAccess: "always", bgcolor: "#cccccc" };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&version=3&playerapiid=ytplayer", "ytapiplayer", "275", "186", "8", null, null, params, atts);
},
loadPlaylist: function(){
$("#playlist").empty();
jQuery.each(YoutubeMusicPlayer.playlist, function(k, v) {
YoutubeMusicPlayer.playlist[k]['playing'] = 0;
YoutubeMusicPlayer.playlist[k]['time'] = v.time;
YoutubeMusicPlayer.playlist[k]['title'] = v.title;
YoutubeMusicPlayer.playlist[k]['rating'] = v.rating;
YoutubeMusicPlayer.playlist[k]['youtube_id'] = v.youtube_id;
YoutubeMusicPlayer.playlist[k]['thumbnail'] = v.thumbnail;
var spri = v.title;
spri = spri.replace(/\"/g,"");
spri = spri.replace(/\'/g,"");
v.title = spri;
$("#playlist").append('
'+v.title+'





');
});
if(!$('#pane').parent('div').hasClass('jScrollPaneContainer'))
$('#pane').jScrollPane({showArrows:true, scrollbarWidth:14, dragMaxHeight:175});
},
loadControls: function(){
$("*").unbind("click");
$("*").unbind("hover");
$("*").unbind("submit");
$("*").unbind("slider");
$('#slider').slider({
range: "min",
value: 50,
min: 0,
max: 100
});
var min =(($("#playlist li").height()+parseFloat($("#playlist li").css("margin-top"))+parseFloat($("#playlist li").css("margin-bottom"))+parseFloat($("#playlist li").css("padding-top"))+parseFloat($("#playlist li").css("padding-bottom"))) * $("#playlist li").size());
if( min > $("#playlist").height()) {
$("#slider-vertical").slider({
orientation: "vertical",
range: "min",
min: -min+10,
max: 0,
value: 0,
slide: function(event, ui) {
$("#playlist").css('margin-top', ui.value);
}
});
} else {
$("#playlist").css('width', '100%');
$("#slider-vertical").css('display', 'none');
}
//set click events
$("#play").click(function() {
YoutubeMusicPlayer.play();
return false;
});
$("#watch").click(function() {
if($('#myytplayer').css('width') == '0px') {
$('#myytplayer').css('width', '275px');
$('#myytplayer').css('height', '186px');
$("#iecheck").hide();
$("#discovery").show();
} else {
$('#myytplayer').css('width', '0px');
$('#myytplayer').css('height', '0px');
$("#iecheck").show();
$("#discovery").hide();
}
return false;
});
$("#discovery").click(function() {
if($('#myytplayer').css('width') == '0px') {
$('.upperfoot').animate({
height: '140px'
}, 500, function() {
// Animation complete.
}); $("#watch").show();
$(".discovery").hide();
$('#myytplayer').css('width', '275px');
$('#myytplayer').css('height', '186px');
} else {
$('#myytplayer').css('width', '0px');
$('#myytplayer').css('height', '0px');
$("#watch").hide();
$(".discovery").show();
$('.upperfoot').animate({
height: '+=85%'
}, 2000, function() {
// Animation complete.
});
}
return false;
});
$(".discovery").click(function() {
$('.upperfoot').animate({
height: '140px'
}, 500, function() {
// Animation complete.
}); $("#watch").show();
$(".discovery").hide();
$('#myytplayer').css('width', '275px');
$('#myytplayer').css('height', '186px');
return false;
});
$("#pause").click(function() { YoutubeMusicPlayer.ytplayer.pauseVideo(); });
$("#stop").click(function() { YoutubeMusicPlayer.ytplayer.stopVideo(); });
$("#seek-next").click(function() { YoutubeMusicPlayer.ytplayer.seekTo(YoutubeMusicPlayer.ytplayer.getCurrentTime()+10, true);return false; });
$("#seek-prev").click(function() { YoutubeMusicPlayer.ytplayer.seekTo(YoutubeMusicPlayer.ytplayer.getCurrentTime()-10, true);return false; });
$("#seek-end").click(function() { YoutubeMusicPlayer.goToNextItem(); });
$("#seek-first").click(function() { YoutubeMusicPlayer.goToPrevItem(); });
$("#mute").click(function() {
$('#mute').addClass('ui-state-hover');
if($('#mute').hasClass('ui-icon-volume-on')) {
YoutubeMusicPlayer.ytplayer.mute();
$('#mute').removeClass('ui-icon-volume-on');
$('#mute').addClass('ui-icon-volume-off');
} else {
YoutubeMusicPlayer.ytplayer.unMute();
$('#mute').removeClass('ui-icon-volume-off');
$('#mute').addClass('ui-icon-volume-on');
}
return false;
});
$('#slider').bind('slide', function(event, ui) {
var newVolume = $('#slider').slider('option', 'value');
YoutubeMusicPlayer.ytplayer.setVolume(newVolume);
});
$('#icons li').hover(
function(){
$(YoutubeMusicPlayer).addClass("ui-state-hover");
},
function(){
$(YoutubeMusicPlayer).removeClass("ui-state-hover");
}
);
$("#playlist li").click(function() {
YoutubeMusicPlayer.current_item = parseInt(this.id.split('_')[1]);
YoutubeMusicPlayer.loadNewTrack(YoutubeMusicPlayer.current_item);
});
},
search: function(){
$.ajax({
type: 'POST',
url: "http://www.themp3place.com/sources/nebula_local.php",
data: {query : $('#keyword').val()},
dataType: 'json',
success: function(playlist){
YoutubeMusicPlayer.playlist = playlist;
YoutubeMusicPlayer.loadPlaylist();
YoutubeMusicPlayer.loadPlayer();
YoutubeMusicPlayer.setPlayer();
$('.loader').hide();
$('#content_1').show();
}
});
},
play: function(){
if(YoutubeMusicPlayer.ytplayer.getPlayerState() == 1) {
YoutubeMusicPlayer.ytplayer.pauseVideo();
} else if(YoutubeMusicPlayer.ytplayer.getPlayerState() >= 1 && YoutubeMusicPlayer.ytplayer.getPlayerState() <= 3) {
YoutubeMusicPlayer.ytplayer.playVideo();
} else {
YoutubeMusicPlayer.loadNewTrack(YoutubeMusicPlayer.current_item);
}
$('#slider').slider('option', 'value', YoutubeMusicPlayer.ytplayer.getVolume());
//$('#play').addClass('ui-state-hover');
},
setPlayer: function(){
var me = YoutubeMusicPlayer;
YoutubeMusicPlayer.ytplayer = $('#myytplayer')[0];
YoutubeMusicPlayer.updateytplayerInfo();
YoutubeMusicPlayer.loadControls();
setInterval(YoutubeMusicPlayer.updateytplayerInfo, 250);
YoutubeMusicPlayer.ytplayer.addEventListener("onStateChange", "YoutubeMusicPlayer.onytplayerStateChange");
YoutubeMusicPlayer.ytplayer.addEventListener("onError", "YoutubeMusicPlayer.onPlayerError");
},
updateytplayerInfo: function(){
//console.log(YoutubeMusicPlayer.current_item);
if( YoutubeMusicPlayer.ytplayer.getPlayerState() != -1 && YoutubeMusicPlayer.youtubeIDextract(YoutubeMusicPlayer.ytplayer.getVideoUrl()) == YoutubeMusicPlayer.playlist[YoutubeMusicPlayer.current_item].youtube_id) {
$('#currently_playing').html(YoutubeMusicPlayer.playlist[YoutubeMusicPlayer.current_item].title.substring(0,35));
}
$('#elapsed_time').html(YoutubeMusicPlayer.sec2hms(YoutubeMusicPlayer.getCurrentTime()));
if(YoutubeMusicPlayer.getDuration() == YoutubeMusicPlayer.getCurrentTime() && YoutubeMusicPlayer.getCurrentTime() > 1) {
YoutubeMusicPlayer.ytplayer.stopVideo();
YoutubeMusicPlayer.goToNextItem();
}
},
youtubeIDextract: function(url){
var youtube_id;
youtube_id = url.replace(/^[^v]+v.(.{11}).*/,"$1");
return youtube_id;
},
onPlayerError: function(error){
//console.log(error);
},
onytplayerStateChange: function(newState){
//YoutubeMusicPlayer.ytplayer.setVolume(0); //noise cancelling
var status = '';
$('.control').removeClass('ui-state-hover');
//console.log(newState);
switch(newState) {
case -1:
status = '';
break;
case 0:
status = 'ended';
break;
case 1:
status = '';
$('#play').addClass('ui-state-hover');
break;
case 2:
status = 'paused';
$('#play').removeClass('ui-state-hover');
break;
case 3:
status = 'buffering...';
break;
case 5:
status = 'stopped';
$('#stop').addClass('ui-state-hover');
break;
default:
status = '';
break;
}
$('#player_state').html(status);
},
loadNewTrack: function(id){
YoutubeMusicPlayer.current_item = id;
YoutubeMusicPlayer.ytplayer.loadVideoById(YoutubeMusicPlayer.playlist[YoutubeMusicPlayer.current_item].youtube_id, 0);
$('#playlist li').removeClass('ui-state-hover');
$('#track_'+id).addClass('ui-state-hover');
document.getElementById("embed").innerHTML = "";
$('#fbar').animate({
height: '130px'
}, 5000, function() {
// Animation complete.
});
},
goToNextItem: function(){
var next_item = YoutubeMusicPlayer.current_item + 1;
next_item = (next_item >= YoutubeMusicPlayer.playlist.length)?0:next_item;
YoutubeMusicPlayer.loadNewTrack(next_item);
$('#embed').slideUp();
},
goToPrevItem: function(){
var prev_item = YoutubeMusicPlayer.current_item - 1;
prev_item = (prev_item < 0)?(YoutubeMusicPlayer.playlist.length-1):prev_item;
YoutubeMusicPlayer.loadNewTrack(prev_item);
$('#embed').slideUp();
},
getCurrentTime: function(){
return YoutubeMusicPlayer.ytplayer.getCurrentTime();
},
getDuration: function(){
return YoutubeMusicPlayer.ytplayer.getDuration();
},
sec2hms: function(seconds){
if(seconds < 0) {
return '--:--';
}
var mins = Math.floor(seconds / 60);
var secs = seconds % 60;
return mins + ':' + YoutubeMusicPlayer.AddZero(Math.round(secs));
},
AddZero: function(num){
return ((num >= 0)&&(num < 10))?"0"+num:num+"";
}
};
$(document).ready(function () {
YoutubeMusicPlayer.start();
});
function onYouTubePlayerReady(playerId) {
// alert('ready');
YoutubeMusicPlayer.search();
YoutubeMusicPlayer.setPlayer();
YoutubeMusicPlayer.play();
}
function share(id){
var share = {
method: 'stream.share',
u: 'http://youtube.com/watch?v='+id
};
FB.ui(share, function(response) { console.log(response); });
}
function embedcode(){
$('#embed').slideDown();
}
function add(id,name) {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("icon"+id).innerHTML=xmlhttp.responseText;
}
}
if(name) {
if(id) {
xmlhttp.open("GET","http://www.themp3place.com/add.php?name="+name+"&url="+id,true);
}
}
xmlhttp.send();
}
function vidcheck(id,name) {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("icon"+id).innerHTML=xmlhttp.responseText;
}
}
if(name) {
if(id) {
xmlhttp.open("GET","http://www.themp3place.com/videocheck.php?name="+name+"&url="+id,true);
}
}
xmlhttp.send();
}
function del(id,name) {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("icon"+id).innerHTML=xmlhttp.responseText;
}
}
if(name) {
if(id) {
xmlhttp.open("GET","http://www.themp3place.com/del.php?name="+name+"&url="+id,true);
}
}
xmlhttp.send();
}
$.uicornerfix = function(r){
DD_roundies.addRule('.ui-corner-all', r);
DD_roundies.addRule('.ui-corner-top', r+' '+r+' 0 0');
DD_roundies.addRule('.ui-corner-bottom', '0 0 '+r+' '+r);
DD_roundies.addRule('.ui-corner-right', '0 '+r+' '+r+' 0');
DD_roundies.addRule('.ui-corner-left', r+' 0 0 '+r);
DD_roundies.addRule('.ui-corner-tl', r+' 0 0 0');
DD_roundies.addRule('.ui-corner-tr', '0 '+r+' 0 0');
DD_roundies.addRule('.ui-corner-br', '0 0 '+r+' 0');
DD_roundies.addRule('.ui-corner-bl', '0 0 0 '+r);
};