jQuery.fn.extend({ 
        disableSelection : function() { 
                this.each(function() { 
                        this.onselectstart = function() { return false; }; 
                        this.unselectable = "on"; 
                        jQuery(this).css('-moz-user-select', 'none'); 
                }); 
        } 
});

var numCDs = 18;
var CDs = new Array(
	"bolcom1.mp3", 
	"bolcom2.mp3", 
	"bolcom3.mp3", 
	"kalliwoda.mp3",
	"prokofieff1.mp3",
	"prokofieff2.mp3",
	"prokofieff3.mp3",
	"prokofieff4.mp3",
	"tailleferre.mp3",
	"mozart2.mp3",
	"mozart3.mp3",
	"mandat2.mp3",
	"mandat5.mp3",
	"schoenfield1.mp3",
	"schoenfield2.mp3",
	"schoenfield3.mp3",
	"schoenfield4.mp3",
	"nielsen.mp3"
);
var titles = new Array(
	"Bolcom, Concerto for Clarinet, First Movement", 
	"Bolcom, Concerto for Clarinet, Second Movement",
	"Bolcom, Concerto for Clarinet, Third Movement",
	"Kalliwoda, Morceau de Salon, op. 229",
	"Prokofieff, Sonata in D Major, op. 94, First Movement",
	"Prokofieff, Sonata in D Major, op. 94, Second Movement",
	"Prokofieff, Sonata in D Major, op. 94, Third Movement",
	"Prokofieff, Sonata in D Major, op. 94, Fourth Movement",
	"Tailleferre, Arabesque",
	"Mozart, Concerto for Clarinet, Second Movement",
	"Mozart, Concerto for Clarinet, Third Movement",
	"Mandat, Folk Songs, Second Movement",
	"Mandat, Folk Songs, Fifth Movement",
	"Schoenfield, Trio for Clarinet, Violin, and Piano, First Movement",
	"Schoenfield, Trio for Clarinet, Violin, and Piano, Second Movement",
	"Schoenfield, Trio for Clarinet, Violin, and Piano, Third Movement",
	"Schoenfield, Trio for Clarinet, Violin, and Piano, Fourth Movement",
	"Nielsen, Concerto for Clarinet"
);

$(document).ready(function() {

	for(var i = 0; i < numCDs; i++) {
		$("#cd"+i).attr("title", titles[i]);
	}
	//stupid IE
	$("#audio").animate({
		opacity:0.0
	},1);
	$("#audio").disableSelection();
	$("#audioopen").disableSelection();
	$("#bg").fadeIn(2000,function() {
	
		$("#content").fadeIn(2000).animate({
			opacity: 0.95
		}, 1 );

	});

	$("#nav a").click(function() {
		var tar = $("#content"+$(this).attr("id"));
		$("#content").animate({
			opacity: 0.0
		}, 1000, function() {
			$(".contents").hide();
			tar.show()
			$("#contenttxt").scrollTop(top);
		}).animate({
			opacity:0.95
		},1000);
	});
	$(".contents").hide();
	$("#contenthome").show();
	
	$(".holder").droppable({
		accept: '.cd',
		drop: function(event, ui) {
			stopCD(ui.draggable.attr("id").substring(2))
		}
	}).droppable('disable');
	
	$("#player").droppable({
		accept: '.cd',
		drop: function(event, ui) {
			playCD(ui.draggable.attr("id").substring(2));
		}
	}).droppable('enable');

	$("#jP").jPlayer( {
		ready: function() {
			$(this).setFile("../mp3/silence.mp3");
			stopCD(0);
		}
	})
	.jPlayerId( "play", "playbtn")
	.jPlayerId( "stop", "stopbtn")
	.jPlayerId( "pause", "pausebtn")
	.onProgressChange( function(lp,ppr,ppa,pt,tt) {
		var ptm = parseInt(pt/1000/60);
		var pts = parseInt(pt/1000 - (ptm * 60));
		if(ptm < 10) { ptm = 0 + "" + ptm; }
		if(pts < 10) { pts = 0 + "" + pts; }

		var ttm = parseInt(tt/1000/60);
		var tts = parseInt(tt/1000 - (ttm * 60));
		if(ttm < 10) { ttm = 0 + "" + ttm; }
		if(tts < 10) { tts = 0 + "" + tts; }
		
 		$("#time").html(ptm + ":" + pts +"<br>"+ttm+":"+tts);
	});

	$("#audioopen").bind("click", function() {
		var aud = $("#audio");
		if(aud.css("margin-top")=="25px") {
			aud.animate({
				marginTop:"-450px",
				opacity:0.0
			}, 2000);
			$("#audioopen").html("Open Audio Player");
		} else {
			aud.animate({
				marginTop:"25px",
				opacity:0.9
			}, 2000);
			$("#audioopen").html("Close Audio Player");
		}
	});

});

function playCD(cdnum) {
	$("#results").html("Playing: "+titles[cdnum]);
	$("#jP").setFile("mp3/"+CDs[cdnum]).play();
	$("#holder"+cdnum).droppable('enable');
	$(".cd").draggable("destroy");
	$(".cd").draggable({ 
		zIndex:350,
		snap: '#holder'+cdnum,
		snapMode: 'inner',
		snapTolerance: 15,
		revert: 'invalid'
	}).draggable('disable');
	$("#cd"+cdnum).draggable('enable');
	$("#player").droppable('disable');
}

function stopCD(cdnum) {
	$("#results").html("Place a CD in the player.");
	$("#jP").setFile("mp3/silence.mp3");

	$(".holder").droppable('disable');
	$("#player").droppable('enable');
	$(".cd").draggable("destroy");
	$(".cd").draggable({ 
		snap: '#player',
		zIndex:350,
		snapMode: 'inner',
		snapTolerance: 15,
		revert: 'invalid'
	}).draggable('enable');
}