var player = null;
var base = '/';

$(function() {
	$('#audio').css('cursor','pointer').click(audio_panel);
	$('#video').css('cursor','pointer').click(video_panel);
	
	//base = dirname( $('#audio').attr('src') ) + '/../';
	$('#playerContainer')
		.flash({
	    	width: 227,
	    	height: 170,
	    	src: base + 'js/player.swf',
	    	id: 'player',
	    	name: 'player',
	    	flashvars: { autostart: 'true', controlbar: 'none', displayclick: 'none' }
		});	
		
  if ( type == 'video' ) {
		video_panel();
	} else {
		audio_panel();
	}
		
});


function setup_player() {
	player.addModelListener( 'TIME', 'timeUpdater' );
	player.addControllerListener( 'ITEM', 'metaUpdater' );
	player.addControllerListener( 'PLAYLIST', 'selectUpdater' );
	
	$('#rewind').click( function() {
		player.sendEvent( 'PREV' );
		
		$('#play').hide();
		$('#pause').show();
	});
	
	$('#stop').click( function() {
		player.sendEvent( 'STOP' );
		
		$('#play').show();
		$('#pause').hide();
	});
	
	$('#play').click( function() {
		player.sendEvent( 'PLAY' );
		
		$('#play').hide();
		$('#pause').show();
	});
	
	$('#pause').click( function() {
		player.sendEvent( 'PLAY' );
		
		$('#play').show();
		$('#pause').hide();
	});
	
	$('#fastforward').click( function() {
		player.sendEvent( 'NEXT' );
		
		$('#play').hide();
		$('#pause').show();
	});
	
	$('#playlist').change( function() {
		player.sendEvent( 'ITEM', ($(this).attr( 'selectedIndex' ) - 1) );
	});
	
	if ( type == 'video' ) {
		video_panel();
	} else {
		audio_panel();
	}
	
	$('#play').hide();
	$('#pause').show();
}


function video_panel() {
	$('#audio').attr( 'src', base + 'images/player_audio_off.gif' );
	$('#video').attr( 'src', base + 'images/player_video_on.gif' );
	
	//$('#playerContainer').css( 'left', $('#image').css('left') );
	
	type = 'video';
	
	if ( player ) {
	  url = base + 'player/video?format=xml';
	  
	  if ( 0 != event_id ) {
	    url += '&event='+event_id;
	  }
	  
		player.sendEvent( 'STOP' );
		player.sendEvent( 'LOAD', url );
		
		$('#play').hide();
		$('#pause').show();
	}
	
}

function audio_panel() {
	$('#audio').attr( 'src', base + 'images/player_audio_on.gif' );
	$('#video').attr( 'src', base + 'images/player_video_off.gif' );
	
	//$('#playerContainer').css( 'left', '-1000px' );
	
	type = 'audio';
	
	if ( player ) {
	  url = base + 'player/audio?format=xml';
	  
	  if ( 0 != event_id ) {
	    url += '&event='+event_id;
	  }
	  
		player.sendEvent( 'STOP' );
		player.sendEvent( 'LOAD', url );
		$('#play').hide();
		$('#pause').show();
	}
	
}

function dirname( str ) {
	return str.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
}




/* Player Javascript API */
function playerReady(obj) {
	var id = obj['id'];
	var version = obj['version'];
	var client = obj['client'];
	
	player = getPlayer(id);
	
	setup_player();
};

function timeUpdater(obj) {
	var timeObj = $('#time');
	var oldtime = $(time).text();
	
	var min = Math.floor( obj.position / 60 );
	var sec = Math.floor( obj.position  % 60 );
	
	if ( min < 10 ) {
		min = '0' + min;
	}
	
	if ( sec < 10 ) {
		sec = '0' + sec;
	}
	
	var newtime = min + ':' + sec;
	
	if ( newtime != oldtime ) {
		$(timeObj).text( newtime );
	}
} 

function metaUpdater(obj) {
	var playlist = player.getPlaylist();
	$('#title').text( playlist[obj.index].title );
	$('.scroll').empty().append( $(playlist[obj.index].description) ).jScrollPane( {
			  showArrows: true,
			  dragMinHeight: 8,
			  dragMaxHeight: 8,
			  arrowSize: 11,
			  scrollbarWidth: 11
			} );
}

function selectUpdater(obj) {
	var playlist = player.getPlaylist();
	var select = $('#playlist'); 
	
	select.empty();

	if ( type == 'video' ) {
		select.append('<option>choose video...</option>' );
	} else {
		select.append( '<option>choose song...</option>' );
	}
	
	if ( media_id == 0 ) {
	  var i = parseInt(Math.random() * playlist.length);
	  media_id = playlist[i].link;
	}

	for ( var i=0; i<playlist.length; i++ ) {
		select.append( '<option>' + playlist[i].title + '</option>' );
		
//		alert( media_id + ' == ' + playlist[i].link + ' ?' );
		if ( media_id == playlist[i].link ) {
		  select.attr( 'selectedIndex', i+1 );
		  player.sendEvent( 'ITEM', i );
		}
	}
	
	//player.sendEvent( 'PLAY' );
}

function getPlayer(gid) {
	if(navigator.appName.indexOf("Microsoft") != -1) {
		return window[gid];
	} else {
		return document[gid];
	}
};
