$(document).ready( function() {
	$.legends_radio = {};
	
	$.legends_radio.logged_in = $("#logged_in").val();

	$.legends_radio.radio_active = 0;

	radioOnLoad();
	
	$(window).unload(function(){
		saveRadioState();
	});
	
	$('#radio').click( function() {
		$('#search-close').click();
		$('#share-close').click();

		$('#radio').removeClass('active');
		$('#radio').css('opacity', 1).stop(true);
		$('#share-interface').fadeOut(250);
		$('#radio-interface').fadeIn(250);
	});

	$('#radio-close, #radio-icon').click( function() {
		$('#radio-channels').slideUp(500);
		$('#radio-interface').fadeOut(250);

		if ($.legends_radio.radio_active == 1) {
			$('#radio').addClass('active');
			blink('#radio', 1000);
		} else {
			$('#radio').removeClass('active');
			blinkStop('#radio', 1000);
		}
	});
	
	$('#radio-play').click( function() {
		playRadio();
	});

	$('#radio-stop').click( function() {
		stopRadio();
	});
	
	$('#radio-channel-change').click( function() {
		$('#radio-channels').slideToggle(250);
	});

	$('#radio-channels #channels a').click( function() {
		changeRadioChannel(this);
	});
	
	$('#radio-buttons').hover( function() {
		if ($.legends_radio.radio_active == 0) {
			$('#radio-animated').cycle('pause');
			$('#radio-animated').hide();
			$('#radio').show();
		}
	}, function () {
		if ($.legends_radio.radio_active == 0) {
			$('#radio-animated').cycle('resume');
			$('#radio-animated').show();
			$('#radio').hide();
		}
	});
	
	$('#radio-animated').cycle({ timeout:500, speed:0, cleartypeNoBg: true });
	
});

//Runs when the page loads
function radioOnLoad(){
	if ($("#radio_stream_id").html()
			&& $("#radio_channel_id").html()
			&& $("#radio_stream_id").html()
			&& $("#radio_stream_id").html()) {
		
		$.legends_radio.radio_channel_id = $("#radio_channel_id").html();
		$('#channels a.legends-highlight').removeClass('legends-highlight');
		$('#channel-'+$.legends_radio.radio_channel_id).addClass('legends-highlight');
		$('#radio-channel').text($('#channel-'+$.legends_radio.radio_channel_id).html());
		
		$.ajax({
			url: '/radio/setChannel/'+$.legends_radio.radio_channel_id,
			async: true,
			type: 'GET',
			dataType: 'json',
			success: function(response) {
				if (response != false) {
					playRadioStream(response);
				} else {
					return false;
				}
			}
		});
	}
}

function changeRadioChannel(el) {
	stopRadio();
	
	$('#channels a.legends-highlight').removeClass('legends-highlight');
	$(el).addClass('legends-highlight');
	$('#radio-channel').text($(el).text());
	$('#radio-channels').slideUp(250);
	id = $(el).attr('id');
	
	if (typeof id !== 'undefined') {
		$.legends_radio.radio_channel_id = id.split('-')[1];

		$.ajax({
			url: '/radio/setChannel/'+$.legends_radio.radio_channel_id,
			async: true,
			type: 'GET',
			dataType: 'json',
			success: function(response) {
				if (response != false) {
					playRadioStream(response);
				} else {
					return false;
				}
			}
		});
	}
}

function playRadioStream(response) {
	var fl = response.Media.location + '/' + response.Media.name
	var pos = response.RadioStream.position;
	
	jwplayer('radioplayer').remove();
	
	var st = false;
	$.legends_radio.radio_stream_state = 'stop';
	if (response.RadioStream.state == 'play'){
		var st = true;
		
		$('#radio-animated').hide();
		$("#radio").addClass('active');
		blink("#radio", 1000);
		$('#radio').show();
		$('#radio-status').text('STREAMING');
		blinkStop('#radio-stop', 500);
		blink('#radio-status', 500);
		blink('#radio-play', 500);
		
		$.legends_radio.radio_active = 1;
		$.legends_radio.radio_stream_state = 'play';
	} else {
		$('#radio').hide();
		$('#radio-animated').show();
		$('#radio-status').text('STOPPED');
		blinkStop('#radio-status', 500);
		blinkStop('#radio-play', 500);
		blink('#radio-stop', 500);
		
		$.legends_radio.radio_active = 0;
		$.legends_radio.radio_stream_state = 'stop';
	}
	
	jwplayer("radioplayer").setup({
        flashplayer: "/flash/mediaplayer-5.7/player.swf",
        height: 1,
        width: 1,
        provider: "rtmp",
        streamer: "rtmp://s12jbancvd7hrv.cloudfront.net/cfx/st/",
        file: fl,
        start: pos,
        autostart: st
    });
	
	$("#radioplayer_wrapper").attr('style', 'visibility:hidden');
	$("#radioplayer").attr('width', '1');
	$("#radioplayer").attr('height', '1');
}

function stopRadio(){
	if (jwplayer("radioplayer").getState() == 'PLAYING'){
		jwplayer("radioplayer").pause();
		
		$('#radio').hide();
		$('#radio-animated').show();
		$('#radio-status').text('STOPPED');
		blinkStop('#radio-status', 500);
		blinkStop('#radio-play', 500);
		blink('#radio-stop', 500);
		
		$.legends_radio.radio_active = 0;
		$.legends_radio.radio_stream_state = 'stop';
		
		saveRadioState();
	}
}

function playRadio(){	
	if ((jwplayer("radioplayer").getState() == 'PAUSED')||(jwplayer("radioplayer").getState() == 'IDLE')){
		jwplayer("radioplayer").play();
		
		$('#radio-animated').hide();
		$("#radio").addClass('active');
		blink("#radio", 1000);
		$('#radio').show();
		$('#radio-status').text('STREAMING');
		blinkStop('#radio-stop', 500);
		blink('#radio-status', 500);
		blink('#radio-play', 500);
		
		$.legends_radio.radio_active = 1;
		$.legends_radio.radio_stream_state = 'play';
		
		saveRadioState();
	}
}

function saveRadioState(){
	$.legends_radio.radio_stream_position = jwplayer('radioplayer').getPosition();
	
	if (typeof $.legends_radio.radio_stream_position === 'undefined') {
		return false;
	}
	
	$.ajax({
		url: '/radio/setState/'+$.legends_radio.radio_channel_id+'/'+$.legends_radio.radio_stream_state+'/'+$.legends_radio.radio_stream_position,
		async: false,
		type: 'GET',
		dataType: 'json'
	});
	
}

