$(document).ready(function(){
var status = "stop";
var dragging = false;
var player = $("#zen .player");
player.jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
mp3: "audio/music.mp3",
oga: "audio/music.ogg",
wav: "audio/music.wav",
});
},
swfPath: "",
supplied: "mp3, oga, wav, m4a "
});
player.bind($.jPlayer.event.progress, function(event) {
var audio = $('#zen audio').get(0);
var pc = 0;
if ((audio.buffered != undefined) && (audio.buffered.length != 0)) {
pc = parseInt(((audio.buffered.end(0) / audio.duration) * 100), 10);
displayBuffered(pc);
console.log(pc);
if(pc >= 100) {
console.log("loaded");
$('#zen .buffer').addClass("loaded");
}
}
});
player.bind($.jPlayer.event.timeupdate, function(event) {
var pc = event.jPlayer.status.currentPercentAbsolute;
if (!dragging) {
displayProgress(pc);
}
});
player.bind($.jPlayer.event.ended, function(event) {
$('#zen .circle').removeClass( "rotate" );
$("#zen").removeClass( "play" );
$('#zen .progress').css({rotate: '0deg'});
status = "stop";
});
$("#zen .button").bind('mousedown', function() {
$(this).bind('mouseleave', function() {
$(this).unbind('mouseleave');
onClick();
});
});
$("#zen .button").bind('mouseup', function() {
$(this).unbind('mouseleave');
onClick();
});
function onClick() {
if(status != "play") {
status = "play";
$("#zen").addClass( "play" );
player.jPlayer("play");
setCookie('audiocookie', 'isplaying', 365);
} else {
$('#zen .circle').removeClass( "rotate" );
$("#zen").removeClass( "play" );
status = "pause";
player.jPlayer("pause");
setCookie('audiocookie', 'isstopped', 365);
}
};
window.onload = function() {
var audiostatus=getCookie("audiocookie");
if(audiostatus == 'isplaying'){
$("#zen").addClass( "play" );
player.jPlayer("play");
}
}
function setCookie(c_name,value,exdays){
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name){
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name){ return unescape(y); }
}
}
var clickControl = $('#zen .drag');
clickControl.grab({
onstart: function(){
dragging = true;
$('#zen .button').css( "pointer-events", "none" );
}, onmove: function(event){
var pc = getArcPc(event.position.x, event.position.y);
player.jPlayer("playHead", pc).jPlayer("play");
displayProgress(pc);
}, onfinish: function(event){
dragging = false;
var pc = getArcPc(event.position.x, event.position.y);
player.jPlayer("playHead", pc).jPlayer("play");
$('#zen .button').css( "pointer-events", "auto" );
}
});
function displayProgress(pc) {
var degs = pc * 3.6+"deg";
$('#zen .progress').css({rotate: degs});
}
function displayBuffered(pc) {
var degs = pc * 3.6+"deg";
$('#zen .buffer').css({rotate: degs});
}
function getArcPc(pageX, pageY) {
var	self	= clickControl,
offset	= self.offset(),
x	= pageX - offset.left - self.width()/2,
y	= pageY - offset.top - self.height()/2,
a	= Math.atan2(y,x);
if (a > -1*Math.PI && a < -0.5*Math.PI) {
a = 2*Math.PI+a;
}
var pc = (a + Math.PI/2) / 2*Math.PI * 10;
return pc;
}
});
