(function($){
	
	var playList = {
		_tracks: [],
		_currTrack: null,
		_playState:"STOPPED", //PLAYING,PAUSED,STOPPED
		/**
		 * During setup, adds tracks to the list so we know the order
		 */
		addTrack:function(id){
			this._tracks.push(id);
		},
		/**
		 * Called when a track is clicked - plays or pauses it
		 */
		toggleTrack:function(id){
			if(id === this._currTrack){
				//if same as current track, toggle player
				this.togglePlayer();
			}else{
				//change track to play this one
		        soundManager.stopAll();
				this.playTrack(id);
			}
		},
		playTrack:function(id){
	        soundManager.play(id);
			this.setCurrTrack(id);
			this.setPlayState("PLAYING");
		},
		/**
		 * Function called when the big button is clicked
		 */
		togglePlayer:function(){
			if(this._playState === "PLAYING"){
				//pause it
				soundManager.pauseAll();
				this.setPlayState("PAUSED");
			}else if(this._playState === "STOPPED"){
				//stopped - play first
				this.playTrack(this._tracks[0]);
			}else{
				//paused - resume
				soundManager.resumeAll();
				this.setPlayState("PLAYING");
			}
		},
		/**
		 * Called when a track finishes and starts the next track
		 */
		playNext:function(){
			var nextIndex = $.inArray(this._currTrack, this._tracks)+1;
			//wrap back to beginning
			if(nextIndex === this._tracks.length){
				nextIndex = 0;
			}
			this.playTrack(this._tracks[nextIndex]);
		},
		setCurrTrack:function(trackId){
			if(this._currTrack !== trackId){
				//change the active flag
				$("#"+this._currTrack).removeClass("active-track");
				$("#"+trackId).addClass("active-track");
				this._currTrack = trackId;
			}
		},
		setPlayState:function(playState){
			if(this._playState !== playState){
				$("#music-player")
					.removeClass(this._playState)
					.addClass(playState);
				this._playState = playState;
			}
		}
	};
	
	
	$(document).ready(function(){
        $("#tweet").tweet({
            username: "ZillaPersona",
            count: 1,
            loading_text: "loading..."
        });
		$("#player-button").click(function(event){
			event.stopPropagation();
			event.preventDefault();
			playList.togglePlayer();
		});
		//Makes all local nav happen ajax style
		$("a[href]").live("click", function(event){
			//debugger;
			if(this.host === window.location.host && this.href.match(/\/$|\.html$/)){
				//this is a local nav
				event.preventDefault();
				$("#unique-content").load(this.href + " #unique-content");
			}
		});
    });


	soundManager.debugMode = false; // disable debug output
	soundManager.url = 'soundmanager/swf/'; // path to directory containing SoundManager2 .SWF file
	soundManager.flashVersion = 8;
	soundManager.useFlashBlock = false; // skip for now. See the flashblock demo when you want to start getting fancy.

	soundManager.onload = function() {
	    $(".track")
	    .each(function(){
	        var id = this.id;
	        var sound = soundManager.createSound({
	            id: id,
	            url: this.href,
	            //use this to loop
	            onfinish:function(){
	                playList.playNext();
	            }
	        });
	        playList.addTrack(id);
	    })
	    .click(function(event){
			event.stopPropagation();
	        event.preventDefault();
			playList.toggleTrack(this.id);
	    });
	}
})(jQuery);


