jQuery.noConflict();
/*---------------------------------------------
*				M A R Q U E E
----------------------------------------------*/

//MARQUEE
var moStop = true; //Stop ticker when mouse over

/* RADIO NAME */
var tSpeedRN = 1; // scroll speed (1 = slow, 5 = fast)
var cpsRN = tSpeedRN;
var awRN, mqRN;
var tickerRN = null;
var widthRN = 125;
var heightRN = 20;
function StartTickerRN() {
	var scrollText = jQuery('#RadioName').html();
	var fsz = parseInt(heightRN) - 4;
	var tick = '<div style="position:relative; width: ' + widthRN + ' px; height: ' + heightRN + 'px;overflow:hidden;"';
	if (moStop) tick += ' onmouseover="cpsRN=0" onmouseout="cpsRN=tSpeedRN"';
	tick += '><div id="mqRN" style="position:absolute;left:0px;top:0px;white-space:nowrap;"><\/div><\/div>';
	jQuery('#RadioName').html(tick);
	mqRN = document.getElementById("mqRN");
	mqRN.style.left = (parseInt(widthRN) + 10) + "px";
	jQuery("#mqRN").html('<span id="txRN" style="">' + scrollText + '<\/span>');
	awRN = document.getElementById("txRN").offsetWidth;
	tickerRN = setInterval("scrollTickerRN()", 50);
}
function scrollTickerRN() {
	mqRN.style.left = (parseInt(mqRN.style.left) > (-10 - awRN)) ? parseInt(mqRN.style.left) - cpsRN + "px" : parseInt(widthRN) + 10 + "px";
	if (mqRN.style.left == "0px") { clearInterval(tickerRN); setTimeout('tickerRN = setInterval("scrollTickerRN()", 50)', 20000); }
}
function StopTickerRN() { clearInterval(tickerRN); tickerRN = null; }
function RestartTickerRN() { StopTickerRN(); StartTickerRN(); }

/* SONG TITLE */
var tSpeedST = 1; // scroll speed (1 = slow, 5 = fast)
var cpsST = tSpeedST;
var awST, mqST;
var tickerST = null;
var widthST = 125;
var heightST = 20;
function StartTickerST() {
	cpsST = tSpeedST;
	var scrollText = jQuery('#Song').html();
	var fsz = parseInt(heightST) - 4;
	var tick = '<div style="position:relative; width: ' + widthST + ' px; height: ' + heightST + 'px;overflow:hidden;"';
	if (moStop) tick += ' onmouseover="cpsST=0" onmouseout="cpsST=tSpeedST"';
	tick += '><div id="mqST" style="position:absolute;left:0px;top:0px;white-space:nowrap;"><\/div><\/div>';
	jQuery('#Song').html(tick);
	mqST = document.getElementById("mqST");
	mqST.style.left = (parseInt(widthST) + 10) + "px";
	jQuery("#mqST").html('<span id="txST" style="">' + scrollText + '<\/span>');
	awST = document.getElementById("txST").offsetWidth;
	tickerST = setInterval("scrollTickerST()", 50);
}
function scrollTickerST() {
	mqST.style.left = (parseInt(mqST.style.left) > (-10 - awST)) ? parseInt(mqST.style.left) - cpsST + "px" : parseInt(widthST) + 10 + "px";
	if (mqST.style.left == "0px") { clearInterval(tickerST); setTimeout('tickerST = setInterval("scrollTickerST()", 50)', 10000); }
}
function StopTickerST() { clearInterval(tickerST); tickerST = null; jQuery('#txST').html(jQuery('#Song').html()); cpsST = tSpeedST; }
function RestartTickerST() { StopTickerST(); StartTickerST(); }


/*---------------------------------------------
*			I N I T I A L I Z A T I O N
----------------------------------------------*/
/* ON LOAD*/
var _D = true;
var _forceStop = false;
var _playerStatus = 0;
var _prePlay = false; //The event change to status = play (3) just before buffering (6) and after buffer complete go back
var _volumeLevel = 2;
var _rootUrl = 'http://streaming.radionomy.com/swd.php?radioid=';
var _defaultUrl = 'http://streaming.radionomy.com/swd.php?radioid=' + _radUID;
var _mediaPlayerId = 'radioPlayer';
var _mediaPlayer = null;
var _IE = jQuery.browser['msie'];
var _FF = jQuery.browser['mozilla'];
var _WIN = navigator.userAgent.indexOf('Windows') != -1;
var _baseURL = 'http://liberation.radionomy.com'
var _pollDelay = 3000;
var commentTimer = null;
var _playerID = null;
var _coverUrl = null;

jQuery(document).ready(function() {

	GetPlayListInfo();

	var embedCode = GetEmbedCode();

	if (_WIN) {
		jQuery('#PlayerEmbed').html(embedCode);
		_mediaPlayer = $(_mediaPlayerId);
		if (_IE) {
			_mediaPlayer.attachEvent('playStateChange', StatusChanged);
		}
		else {
			_mediaPlayer.addEventListener('playStateChange', StatusChanged, false);
		}
	}
	else {
		$('PlayerEmbed').innerHTML = embedCode;
		_mediaPlayer = $(_mediaPlayerId);

		_mediaPlayer.addEventListener('qt_load', qt_load, false);
		_mediaPlayer.addEventListener('qt_begin', qt_begin, false);
		_mediaPlayer.addEventListener('qt_loadedmetadata', qt_loadedmetadata, false);
		_mediaPlayer.addEventListener('qt_loadedfirstframe', qt_loadedfirstframe, false);
		_mediaPlayer.addEventListener('qt_canplay', qt_canplay, false);
		_mediaPlayer.addEventListener('qt_canplaythrough', qt_canplaythrough, false);
		_mediaPlayer.addEventListener('qt_durationchange', qt_durationchange, false);
		_mediaPlayer.addEventListener('qt_ended', qt_ended, false);
		_mediaPlayer.addEventListener('qt_error', qt_error, false);
		_mediaPlayer.addEventListener('qt_pause', qt_pause, false);
		_mediaPlayer.addEventListener('qt_play', qt_play, false);
		_mediaPlayer.addEventListener('qt_progress', qt_progress, false);
		_mediaPlayer.addEventListener('qt_waiting', qt_waiting, false);
		_mediaPlayer.addEventListener('qt_stalled', qt_stalled, false);
		_mediaPlayer.addEventListener('qt_timechanged', qt_timechanged, false);
		_mediaPlayer.addEventListener('qt_volumechange', qt_volumechange, false);
	}

	/* VOLUME */
	jQuery('#Volume1').click(function() {
		ChangeVolume(1);
	});
	jQuery('#Volume2').click(function() {
		ChangeVolume(2);
	});
	jQuery('#Volume3').click(function() {
		ChangeVolume(3);
	});
	jQuery('#Volume4').click(function() {
		ChangeVolume(4);
	});
	jQuery('#Volume5').click(function() {
		ChangeVolume(5);
	});
	jQuery('#Volume6').click(function() {
		ChangeVolume(6);
	});

	jQuery('#Volume1').hover(function() {
		HoverVolume('1');
	}, function() {
		HoverVolume(_volumeLevel);
	});
	jQuery('#Volume2').hover(function() {
		HoverVolume('2');
	}, function() {
		HoverVolume(_volumeLevel);
	});
	jQuery('#Volume3').hover(function() {
		HoverVolume('3');
	}, function() {
		HoverVolume(_volumeLevel);
	});
	jQuery('#Volume4').hover(function() {
		HoverVolume('4');
	}, function() {
		HoverVolume(_volumeLevel);
	});
	jQuery('#Volume5').hover(function() {
		HoverVolume('5');
	}, function() {
		HoverVolume(_volumeLevel);
	});

	jQuery('#Volume6').hover(function() {
		HoverVolume('6');
	}, function() {
		HoverVolume(_volumeLevel);
	});


	/* INIT THE DEFAULT VOLUME*/
	HoverVolume('2');

	/* PLAY PAUSE*/
	jQuery('#PlayPause').hover(function() {
		if (!_WIN || _playerStatus == 3) {
			if (!_isMute) ChangePicture('PlayPause', '/Images/btnPause_over.gif');
			else ChangePicture('PlayPause', '/Images/btnPlayEmbed_over.gif');
		}
	}, function() {
		if (!_WIN || _playerStatus == 3) {
			if (!_isMute) ChangePicture('PlayPause', '/Images/btnPause.gif');
			else ChangePicture('PlayPause', '/Images/btnPlayEmbed.gif');
		}
	});

	jQuery('#PlayPause').click(function() {
		jQuery('#PlayPause').stop(true, true).hover(0);
		if (_WIN && _playerStatus != 9 && _playerStatus != 6 && _playerStatus != 3 && _playerStatus != 10) {
			ForcePlay();
		}
		else {
			toggleMute();
		}
	});

	jQuery('#Scroller1').hover(function() { clearTimeout(commentTimer) }, function() { scrollTSH() });

});

/*---------------------------------------------
*				F U N C T I O N S
----------------------------------------------*/

function ChangePicture(div, newPicture) {
	if (div != null) {
		var img = jQuery('#' + div).children("img");
		img.attr('src', newPicture);
	}
}
function FadeDivPicture(div, newPicture) {
	var img = jQuery('#' + div).children("img");
	img.fadeOut(function() {
		jQuery('#' + div).children('img').attr('src', newPicture);
	});
	img.fadeIn();
	jQuery('#' + div).stop(true, true).hover(0);
}

function HoverVolume(level) {
	jQuery('#Volume').css({ 'background-image': 'url(/Images/volume_' + level + '.png)' });
}
function ChangeVolume(level) {
	_volumeLevel = level;
	if (_WIN) {
		switch (level) {
			case 0:
				_mediaPlayer.settings.volume = 0;
				break;
			case 1:
				_mediaPlayer.settings.volume = 17;
				break;
			case 2:
				_mediaPlayer.settings.volume = 34;
				break;
			case 3:
				_mediaPlayer.settings.volume = 51;
				break;
			case 4:
				_mediaPlayer.settings.volume = 68;
				break;
			case 5:
				_mediaPlayer.settings.volume = 85;
				break;
			case 6:
				_mediaPlayer.settings.volume = 100;
				break;
			default:
				break;
		}
		_mediaPlayer.settings.mute = _isMute;
	}
	else {
		switch (level) {
			case 1:
				_mediaPlayer.SetVolume(42);
				break;
			case 2:
				_mediaPlayer.SetVolume(84);
				break;
			case 3:
				_mediaPlayer.SetVolume(126);
				break;
			case 4:
				_mediaPlayer.SetVolume(168);
				break;
			case 5:
				_mediaPlayer.SetVolume(210);
				break;
			case 6:
				_mediaPlayer.SetVolume(255);
				break;
			default:
				break;
		}
		_mediaPlayer.SetMute(_isMute);
	}
}

function toggleMute() {
	if (_isMute) {
		Mute(false);
		FadeDivPicture('PlayPause', '/Images/btnPause.gif');
	}
	else {
		Mute(true);
		FadeDivPicture('PlayPause', '/Images/btnPlayEmbed.gif');
	}
}

function Mute(isMute) {
	if (_WIN) {
		_mediaPlayer.settings.mute = isMute;
	}
	else {
		_mediaPlayer.SetMute(isMute);
	}
	_isMute = isMute;
}

function Play() {
	if (_WIN) {
		if (_isMute) {
			FadeDivPicture('PlayPause', '/Images/btnPlayEmbed.gif');
		}
		else {
			if (_prePlay)
				FadeDivPicture('PlayPause', '/Images/btnPause.gif');
		}
	}
	else {
		if (_isMute) {
			FadeDivPicture('PlayPause', '/Images/btnPlayEmbed.gif');
		}
		else {
			FadeDivPicture('PlayPause', '/Images/btnPause.gif');
		}
	}
}

function ForcePlay() {
	if (_WIN) {
		_prePlay = false;
		if (_mediaPlayer.controls) {
			_mediaPlayer.controls.Play();
		}
	}
	else {
		_mediaPlayer.Play();
	}
}
function AutoLaunchRadio(strRadUID) {
	if (_isMute) {
		ListenRadio(strRadUID);
	}
}
function ListenRadio(radioId) {

	//Save a cookie for auto-play
	var dteExpiration = new Date();
	dteExpiration.setDate(dteExpiration.getDate() + 1);

	document.cookie = "Radio=" + radioId + ";expires=" + dteExpiration.toUTCString();
	if (_playerID != null && !_playerID.closed) {
		document.cookie = "Detach=1;expires=" + dteExpiration.toUTCString();
		_playerID.ListenRadio(radioId);
		return;
	}
	else {
		document.cookie = "Detach=0;expires=" + dteExpiration.toUTCString();
	}

	if (_radUID == radioId) {
		if (_isMute) {
			toggleMute();
		}
		return;
	}
	_prePlay = false;
	_radUID = radioId;
	stopPoll();
	StopTickerST();
	StopTickerRN();
	GetRadioInfo();
	GetPlayInfo();
	if (_WIN) {
		_mediaPlayer.URL = _rootUrl + _radUID;
	}
	else {
		_mediaPlayer.SetURL(_rootUrl + _radUID);
	}

	if (_WIN && _playerStatus != 9 && _playerStatus != 6 && _playerStatus != 3 && _playerStatus != 10) {
		ForcePlay();
	}
	if (_isMute) toggleMute();
}
function DetachPlayer() {
	if (_radUID != null && _radUID != "") {
		Mute(true);
		_playerID = window.open("/FR/Cust/Player2.aspx?RadUID=" + _radUID, "Player", "menubar=no,status=no,scrollbars=no,toolbar=no,location=no,directories=no,resizable=no,height=70,width=365");
	}
}

function GetEmbedCode() {

	if (_WIN) {
		var embedCode = '<object id="' + _mediaPlayerId + '"';

		if (_IE) {
			embedCode = embedCode + ' classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" ';
		}
		else {
			embedCode = embedCode + ' type="application/x-ms-wmp" ';
		}
		embedCode = embedCode + 'width="1" height="1">';
		embedCode = embedCode + '<param name="volume" value="40" />';
		embedCode = embedCode + '<param name="url" value="' + _defaultUrl + '" />';
		embedCode = embedCode + '<param name="fullScreen" value="0" />';
		embedCode = embedCode + '<param name="uiMode" value="mini" />';
		embedCode = embedCode + '<param name="showcontrols" value="1" />';
		embedCode = embedCode + '<param name="showstatusbar" value="1" />';
		embedCode = embedCode + '<param name="autostart" value="1" />';
		embedCode = embedCode + '<param name="mute" value="' + _isMute + '" />';
		embedCode = embedCode + '</object>';
	}
	else {
		if (_FF) {
			embedCode = '<object id="' + _mediaPlayerId + '" name="' + _mediaPlayerId + '" data="' + _defaultUrl + '" width="1" height="1" type="video/quicktime" pluginspace="http://www.apple.com/quicktime/download/index.html">';
			embedCode += '<param name="autoplay" value="true"/>';
			embedCode += '<param name="enablejavascript" value="true"/>';
			embedCode += '<param name="qtsrc" value="' + _defaultUrl + '"/>';
			embedCode += '<param name="qtsrcdontusebroswer" value="false"/>';
			embedCode += '<param name="kioskmode" value="true"/>';
			embedCode += '<param name="mute" value="' + _isMute + '"/>'
			embedCode += '<param name="postdomevents" value="true"/>';
			embedCode += '</object>';
		}
		else {
			embedCode = '<object id="' + _mediaPlayerId + '" name="' + _mediaPlayerId + '" width="1" height="1" type="video/quicktime" pluginspace="http://www.apple.com/quicktime/download/index.html">';
			embedCode += '<param name="autoplay" value="true"/>';
			embedCode += '<param name="enablejavascript" value="true"/>';
			embedCode += '<param name="qtsrc" value="' + _defaultUrl + '"/>';
			embedCode += '<param name="qtsrcdontusebroswer" value="false"/>';
			embedCode += '<param name="kioskmode" value="true"/>';
			embedCode += '<param name="mute" value="' + _isMute + '"/>';
			embedCode += '<param name="postdomevents" value="true"/>';
			embedCode += '<param name="src" value="' + _defaultUrl + '"/>';
			embedCode += '</object>';
		}
	}

	return embedCode;
}

//Starting the Embed
function qt_begin() { Log('qt_begin'); StatusChanged(6); _mediaPlayer.SetMute(true); ChangeVolume(2); }
function qt_loadedmetadata() { Log('qt_loadedmetadata'); }
function qt_durationchange() { Log('qt_durationchange'); }
function qt_loadedfirstframe() { Log('qt_loadedfirstframe'); }
function qt_canplay() { Log('qt_canplay'); }
function qt_canplaythrough() { Log('qt_canplaythrough'); }
function qt_load() { Log('qt_load'); }
function qt_play() { Log('qt_play'); }
function qt_timechanged() { Log('qt_timechanged'); StatusChanged(3); } // Flux is starting

function qt_volumechange() { Log('qt_volumechange'); }

//Extra stuff
function qt_pause() { Log('qt_pause'); StatusChanged(2); } // Occur when connection is lost
function qt_ended() { Log('qt_ended'); }
function qt_error() { Log('qt_error'); }
function qt_progress() { Log('qt_waiting'); }
function qt_waiting() { Log('qt_progress'); }
function qt_stalled() { Log('qt_stalled'); }



function StatusChanged(state) {
	switch (state) {
		case 0:    // Undefined
			jQuery('#Debugger').html("Undefined");
			break;
		case 1:    // Stopped
		case 2:    // Paused
			ChangePicture('PlayPause', '/Images/btnPlayEmbed.gif');
			jQuery('#Debugger').html("Stopped");
			if (!_forceStop) {
				ForcePlay();
			}
			break;
		case 3:    // Playing
			//Test if the previous status was not 9 (because it will bufferize just after though skip the playing status change)
			if (_prePlay || !_WIN) {
				jQuery('#Debugger').html("Playing");
				Play();
			}
			else {
				_prePlay = true;
			}
			break;
		case 4:    // ScanForward
			jQuery('#Debugger').html("ScanForward");
			break;
		case 5:    // ScanReverse
			jQuery('#Debugger').html("ScanReverse");
			break;
		case 6:    // Buffering
			jQuery('#Debugger').html("Buffering");
			ChangePicture('PlayPause', '/Images/btnLoading.gif');
			break;
		case 7:    // Waiting
			jQuery('#Debugger').html("Waiting");
			break;
		case 8:    // MediaEnded
			jQuery('#Debugger').html("MediaEnded");
			break;
		case 9:    // Transitioning
			jQuery('#Debugger').html("Transitioning");
			ChangePicture('PlayPause', '/Images/btnLoading.gif');
			break;
		case 10:   // Ready
			jQuery('#Debugger').html("Ready");
			//FadeDivPicture('PlayPause', '/Images/btnPlayEmbed.gif');
			break;
		case 11:   // Reconnecting
			jQuery('#Debugger').html("Reconnecting");
			break;
		case 12:   // Last
			jQuery('#Debugger').html("Last");
			break;
		default:
			jQuery('#Debugger').html("Unknown State: " + state);
			break;
	}
	_playerStatus = state;
}
/* VERY IMPORTANT FOR FIREFOX !!!*/
function OnDSPlayStateChangeEvt(state) { StatusChanged(state); }
function staticLoadScript(url) { document.write('<script src=/js/' + url, '" type="text/javascript"></script>'); }
function Log(msg) { if (_D && window.console) console.log(msg); }


/* REMOTE INFORMATION */
function jsonp(url, callback, name, query) {
	if (url.indexOf("?") > -1) { url += "&jsonp="; }
	else { url += "?jsonp="; }

	url += name + "&";

	if (query) { url += encodeURIComponent(query) + "&"; }
	url += new Date().getTime().toString(); // prevent caching

	var script = document.createElement("script");
	script.setAttribute("src", url);
	script.setAttribute("type", "text/javascript");
	var head = document.getElementsByTagName('head')[0];
	if (head) {
		head.appendChild(script);
	}
}

function GetPlayListInfo() {
	var reqUrl = _baseURL + "/JSon.aspx?radUID=" + _radUID;
	jsonp(reqUrl, "GetRemotePlayListInfo", "GetRemotePlayListInfo", ""); //This method will asynchronously call GetRemoteUrl to specify the URL
}

function GetRemotePlayListInfo(result) {
	var dots = "...";
	/*
	var radInfo = new Array();
	radInfo[0] = result.title;
	radInfo[1] = result.artists;
	radInfo[2] = result.titleartists;
	radInfo[3] = result.image;
	radInfo[4] = result.url;
	radInfo[5] = result.type;
	radInfo[6] = result.recall;
	radInfo[7] = result.link;
	*/
	_coverUrl = result.Link;



	if (result.Recall <= 0)
		_pollDelay = 5000;
	else
		_pollDelay = (result.Recall * 1); //Change with the next song + 1 second of security;

	restartPoll();

	if (result.ArtistsP2.length > 24)
		jQuery('#ajax-prev2art').html(result.ArtistsP2.slice(0, 22) + dots);
	else
		jQuery('#ajax-prev2art').html(result.ArtistsP2);
	jQuery('#ajax-prev2art').attr("title", result.ArtistsP2);

	if (result.TitleP2.length > 24)
		jQuery('#ajax-prev2title').html(result.TitleP2.slice(0, 22) + dots);
	else
		jQuery('#ajax-prev2title').html(result.TitleP2);
	jQuery('#ajax-prev2title').attr("title", result.TitleP2);

	if (result.ArtistsP1.length > 24)
		jQuery('#ajax-prev1art').html(result.ArtistsP1.slice(0, 22) + dots);
	else
		jQuery('#ajax-prev1art').html(result.ArtistsP1);
	jQuery('#ajax-prev1art').attr("title", result.ArtistsP1);

	if (result.TitleP1.length > 24)
		jQuery('#ajax-prev1title').html(result.TitleP1.slice(0, 22) + dots);
	else
		jQuery('#ajax-prev1title').html(result.TitleP1);
	jQuery('#ajax-prev1title').attr("title", result.TitleP1);

	if (result.Artists.length > 24)
		jQuery('#ajax-artcurrent').html(result.Artists.slice(0, 22) + dots);
	else
		jQuery('#ajax-artcurrent').html(result.Artists);
	jQuery('#ajax-artcurrent').attr("title",result.Artists);

	if (result.Title.length > 24)
		jQuery('#ajax-title').html(result.Title.slice(0, 22) + dots);
	else
		jQuery('#ajax-title').html(result.Title);
	jQuery('#ajax-title').attr("title", result.Title);

	if (result.ArtistsN1.length > 24)
		jQuery('#ajax-next1art').html(result.ArtistsN1.slice(0, 22) + dots);
	else
		jQuery('#ajax-next1art').html(result.ArtistsN1);
	jQuery('#ajax-next1art').attr("title",result.ArtistsN1);

	if (result.TitleN1.length > 24)
		jQuery('#ajax-next1title').html(result.TitleN1.slice(0, 22) + dots);
	else
		jQuery('#ajax-next1title').html(result.TitleN1);
	jQuery('#ajax-next1title').attr("title", result.TitleN1);

	var coverPic = $('ajax-banner')
	if (coverPic) {
		jQuery('#ajax-banner').html("<img width=\"50\" height=\"50\" src=\"http://www.radionomy.com/Thumbnail.aspx?t=cover&p=" + result.ImageUrl + "\"/>");
	}
}

function JumpCover() {
	if (_coverUrl != null && _coverUrl.length > 0) {
		window.open(_coverUrl, 'Cover', 'left=20,top=20,width=500,height=500,status=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes ');
	}
}

//POLLING
var pollId;
function startPoll() { pollId = setInterval(GetPlayListInfo, _pollDelay); }
function stopPoll() { if (pollId) clearInterval(pollId); }
function restartPoll() { stopPoll(); startPoll(); }