function FPlayer(elementId, startAlbum, startTrack) {
	this.swfObject    = document.getElementById( elementId );
	this.fPlayerTrack = new FPlayerTrack(startAlbum, startTrack);
	this.isPlaying    = false;
}

FPlayer.prototype.playSong = function( albumNo, trackNo, trackCount, title, callback ) 
{
	this.fPlayerTrack.setAlbumNo(albumNo);
    this.fPlayerTrack.setTrackNo(trackNo);
	this.fPlayerTrack.setTrackCount( trackCount );

    this.swfObject.fPlayerLoadTrack( albumNo, trackNo, title );
    
	this.isPlaying = true;
	this.showFplayer( true, 0 ); 
}

FPlayer.prototype.pauseSong = function() {
	this.swfObject.fPlayerPause();
	this.isPlaying = false;
}

FPlayer.prototype.resumeSong = function() {
	this.swfObject.fPlayerResume();
	this.isPlaying = true;
	this.showFplayer(true);
}

FPlayer.prototype.playNextSong = function() {
	this.playSong(this.fPlayerTrack.getAlbumNo(), this.fPlayerTrack.getNextSong());
}

FPlayer.prototype.playPrevSong = function() {
	this.playSong(this.fPlayerTrack.getAlbumNo(), this.fPlayerTrack.getPrevSong());
}

FPlayer.prototype.playerStarted = function() {
	this.isPlaying = true;
}

FPlayer.prototype.playerPaused = function() {
	this.isPlaying = false;
}

FPlayer.prototype.showFplayer = function(onlyShow, timeOut) {
	var fplayer = document.getElementById("fplayer");
	var fplayerButton = document.getElementById("fplayer-button");
	
	if(fplayerButton.className == "active" && !onlyShow) {
		fplayer.style.opacity = 0;
		if(this.isPlaying === true) {
			fplayerButton.className = "playing";
		} else {
			fplayerButton.className = "";
		}
		fplayerButton.title = "Show player";
		fplayer.className = "";
	/*fplayer.getElementsByTagName("object")[0].style.width = "0px";
		fplayer.getElementsByTagName("object")[0].style.height = "0px";
		fplayer.getElementsByTagName("img")[0].style.width = "0px";
		fplayer.getElementsByTagName("img")[0].style.height = "0px";*/
	} else if(fplayerButton.className == "" || fplayerButton.className == "playing") {
		fplayer.style.opacity = 1;
		fplayerButton.className = "active";
		fplayerButton.title = "Hide player";
		fplayer.className = "showInIE";
		
		if(timeOut) {
			var pointer = this;
			setTimeout( function() {
				pointer.showFplayer();
			}, timeOut);
		}
	/*fplayer.getElementsByTagName("object")[0].style.width = "365px";
		fplayer.getElementsByTagName("object")[0].style.height = "200px";
		fplayer.getElementsByTagName("img")[0].style.width = "16px";
		fplayer.getElementsByTagName("img")[0].style.height = "14px";*/
	}
}

FPlayer.prototype.showTrackList = function(trackListButton) {
	var trackList = document.getElementById("track-list");
	
	if(trackList.className == "hidden") {
		trackList.className = "";
		if(this.isPlaying === false) {
			this.resumeSong();
		}
		
		if(isElement(trackListButton)) {
			trackListButton.innerHTML = "hide playlist";
			trackListButton.className += " active"; 
		}
	} else {
		trackList.className = "hidden";
		if(isElement(trackListButton)) {
			trackListButton.innerHTML = "listen";
			trackListButton.className = trackListButton.getAttribute("data-origClass");
		}
	}
}


function FPlayerTrack( albumNo, trackNo, trackCount ) 
{
	this.albumNo    = albumNo;
    this.trackNo    = trackNo;
	this.trackCount = trackCount;
}



FPlayerTrack.prototype.getTrackInfo = function( albumId ) 
{
    var request  = new ajaxClass( url );
    var pointer  = this;
    request.ajaxRequest( { ajax: "true" }, function( xmlHttpObject ){ pointer.callbackonfinish( xmlHttpObject ); })
}

FPlayerTrack.prototype.setAlbumNo = function(albumNo) {
	this.albumNo = albumNo;
}

FPlayerTrack.prototype.setTrackNo = function(trackNo) {
	this.trackNo = trackNo;
}

FPlayerTrack.prototype.setTrackCount = function( trackCount ) 
{
    this.trackCount = trackCount;
}

FPlayerTrack.prototype.getAlbumNo = function() {
	return this.albumNo;
}

FPlayerTrack.prototype.getTrackNo = function() {
	return this.trackNo;
}

FPlayerTrack.prototype.getAlbumTitle = function() {
	// dotaz do databaze
	switch (this.albumNo) {
		case 1:
			return "Hard Dollar";
			break;
		default:
			return "Unknown";
			break;
	}
}

FPlayerTrack.prototype.getAlbumYear = function() {
	// dotaz do databaze
	switch (this.albumNo) {
		case 1:
			return "2011";
			break;
		default:
			return "Unknown";
			break;
	}
}

FPlayerTrack.prototype.getTrackList = function() {
	// dotaz do databaze
	var list = new Array;

	switch (this.albumNo) {
		default:
			list.push("Unknown");
			break;
	}

	return list;
}

FPlayerTrack.prototype.getNextSong = function() 
{
	if( this.trackNo >= this.trackCount ) 
		this.trackNo = 1;
    else 
        this.trackNo++;
    
    return this.trackNo
}

FPlayerTrack.prototype.getPrevSong = function() {

	if(this.trackNo <= 1) 
		this.trackNo = 1;
    else 
		this.trackNo--;
        
    return this.trackNo;
}

FPlayerTrack.prototype.getTitle = function() {
	// dotaz do databaze
	switch (this.albumNo) 
    {
		default:
			return "Unknown";
			break;
	}
}

FPlayerTrack.prototype.getLyrics = function() {
	// dotaz do databaze
	switch (this.albumNo) {
		default:
			return "Unknown";
			break;
	}
}
