﻿jQuery.noConflict();
/*---------------------------------------------
 *				M A R Q U E E
 ----------------------------------------------*/

//MARQUEE
var moStop = true;//Stop ticker when mouse over

/* COMMENTS */
var tSpeedCM = 2; // scroll speed (1 = slow, 5 = fast)
var cpsCM = tSpeedCM;
var awCM, mqCM;
var tickerCM = null;
var widthCM = 235;
var heightCM = 12;
function StartTickerCM() {
	var scrollText = jQuery('#Comments').html();
	var fsz = parseInt(heightCM) - 4;
	var tick = '<div style="position:relative; width: ' + widthCM + ' px; height: ' + heightCM + 'px;overflow:hidden;"';
	if (moStop) tick += ' onmouseover="cpsCM=0" onmouseout="cpsCM=tSpeedCM"';
	tick += '><div id="mqCM" style="position:absolute;left:0px;top:0px;white-space:nowrap;"><\/div><\/div>';
	jQuery('#Comments').html(tick);
	mqCM = document.getElementById("mqCM");
	mqCM.style.left = (parseInt(widthCM) + 10) + "px";
	jQuery("#mqCM").html('<span id="txCM" style="">' + scrollText + '<\/span>');
	awCM = document.getElementById("txCM").offsetWidth;
	tickerCM = setInterval(scrollTickerCM(), 50);
}
function scrollTickerCM() {
	mqCM.style.left = (parseInt(mqCM.style.left) > (-10 - awCM)) ? parseInt(mqCM.style.left) - cpsCM + "px" : parseInt(widthCM) + 10 + "px";
	//if (mqCM.style.left == "0px") { clearInterval(tickerCM); setTimeout('tickerCM = setInterval(scrollTickerCM(), 50)', 5000); }
}
function StopTickerCM() { clearInterval(tickerCM); tickerCM = null; }
function RestartTickerCM() { StopTickerCM(); StartTickerCM(); }



/*---------------------------------------------
*			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://streaming7.radionomy.com/swd.php?radioid=';
var _defaultUrl = 'http://streaming7.radionomy.com/swd.php?radioid=' + _radUID;
var _mediaPlayerId = 'radioPlayer';
var _mediaPlayer = null;
var _IE = jQuery.browser['msie'];
var _FF = jQuery.browser['mozilla'];
var _GC = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var _WIN = navigator.userAgent.indexOf('Windows') != -1;
var _baseURL = 'http://www.radionomy.com'
var _pollDelay = 3000;
var commentTimer = null;
var _playerID = null;
var _coverUrl = null;

jQuery(document).ready(function() {

	LoadCssFile(_cssFile);

	GetPlayInfo();
	GetRadioInfo();

	var embedCode = GetEmbedCode();

	if (_WIN) {
		jQuery('#PlayerEmbed').html(embedCode);
		_mediaPlayer = document.getElementById(_mediaPlayerId);
		if (_IE) {
			_mediaPlayer.attachEvent('playStateChange', StatusChanged);
		}
		else {
			_mediaPlayer.addEventListener('playStateChange', StatusChanged, false);
		}
	}
	else {
		$('PlayerEmbed').innerHTML = embedCode;
		_mediaPlayer = $(_mediaPlayerId);

		_mediaPlayer.addEventListener('qt_begin', qt_begin, false);
		_mediaPlayer.addEventListener('qt_pause', qt_pause, false);
		_mediaPlayer.addEventListener('qt_timechanged', qt_timechanged, 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('#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 + ''); });

	/* INIT THE DEFAULT VOLUME*/
	HoverVolume('2');

	/* PLAY PAUSE*/
	jQuery('#PlayPause').hover(function() {
		if (!_WIN || _playerStatus == 3 || _GC) {
			if (!_isMute) ChangePicture('PlayPause', _baseURL + '/Images/' + _imgPauseHover);
			else ChangePicture('PlayPause', _baseURL + '/Images/' + _imgPlayHover);
		}
	}, function() {
		if (!_WIN || _playerStatus == 3 || _GC) {
			if (!_isMute) ChangePicture('PlayPause', _baseURL + '/Images/' + _imgPause);
			else ChangePicture('PlayPause', _baseURL + '/Images/' + _imgPlay);
		}
	});

	jQuery('#PlayPause').click(function() {
		jQuery('#PlayPause').stop(true, true).hover(0);
		if (_WIN && _playerStatus != 9 && _playerStatus != 6 && _playerStatus != 3 && _playerStatus != 10 && !_GC) {
			ForcePlay();
		}
		else {
			toggleMute();
		}
	});

	ChangePicture('PlayPause', _baseURL + '/Images/' + _imgPlay);
	ChangePicture('player-logo-link', _baseURL + '/Images/' + _imgDefaultLogo);
	ChangePicture('CoverPicture', _baseURL + '/Images/' + _imgDefaultCover);
	ChangePicture('player-export', _baseURL + '/Images/' + _imgExport);
	ChangePicture('Detach', _baseURL + '/Images/' + _imgDetach);

	//LoadGoogle();
	//LoadPubbleGum();
});

/*---------------------------------------------
*				F U N C T I O N S
----------------------------------------------*/
//Starting the Embed
function qt_begin() { Log('qt_begin'); StatusChanged(6); _mediaPlayer.SetMute(true); ChangeVolume(2); }
function qt_timechanged() { Log('qt_timechanged'); StatusChanged(3); } // Flux is starting

//Extra stuff
function qt_pause() { Log('qt_pause'); StatusChanged(2); } // Occur when connection is lost


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) {

	switch (level) {
		case '1':
			jQuery('#Volume').css({ 'background-image': 'url(' + _baseURL + '/Images/' + _imgVol1 + ')' });
			break;
		case '2':
			jQuery('#Volume').css({ 'background-image': 'url(' + _baseURL + '/Images/' + _imgVol2 + ')' });
			break;
		case '3':
			jQuery('#Volume').css({ 'background-image': 'url(' + _baseURL + '/Images/' + _imgVol3 + ')' });
			break;
		case '4':
			jQuery('#Volume').css({ 'background-image': 'url(' + _baseURL + '/Images/' + _imgVol4 + ')' });
			break;
		case '5':
			jQuery('#Volume').css({ 'background-image': 'url(' + _baseURL + '/Images/' + _imgVol5 + ')' });
			break;
		default:
			break;
	}
	
}
function ChangeVolume(level) {
	_volumeLevel = level;
	if (_WIN) {
		switch(level)
		{
			case 1:
				_mediaPlayer.settings.volume = 20;
				break;
			case 2:
				_mediaPlayer.settings.volume = 40;
				break;
			case 3:
				_mediaPlayer.settings.volume = 60;
				break;
			case 4:
				_mediaPlayer.settings.volume = 80;
				break;
			case 5:
				_mediaPlayer.settings.volume = 100;
				break;
			default:
				break;
		}
		_mediaPlayer.settings.mute = _isMute;
	}
	else {
		switch (level) {
			case 1:
				_mediaPlayer.SetVolume(51);
				break;
			case 2:
				_mediaPlayer.SetVolume(102);
				break;
			case 3:
				_mediaPlayer.SetVolume(153);
				break;
			case 4:
				_mediaPlayer.SetVolume(204);
				break;
			case 5:
				_mediaPlayer.SetVolume(255);
				break;
			default:
				break;
		}
		_mediaPlayer.SetMute(_isMute);
	}
}

function toggleMute() {
	if (_isMute) {
		Mute(false);
		FadeDivPicture('PlayPause', _baseURL + '/Images/' + _imgPause);
	}
	else {
		Mute(true);
		FadeDivPicture('PlayPause', _baseURL + '/Images/' + _imgPlay);
	}
}

function Mute(isMute) {
	if (_WIN) { _mediaPlayer.settings.mute = isMute; }
	else { _mediaPlayer.SetMute(isMute); }
	_isMute = isMute;
}

function Play() {
	if (_WIN) {
		if (_isMute) { FadeDivPicture('PlayPause', _baseURL + '/Images/' + _imgPlay); }
		else {
			if(_prePlay) FadeDivPicture('PlayPause', _baseURL + '/Images/' + _imgPause);
		}
	}
	else {
		if (_isMute) { FadeDivPicture('PlayPause', _baseURL + '/Images/' + _imgPlay); }
		else { FadeDivPicture('PlayPause', _baseURL + '/Images/' + _imgPause); }
	}
}

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("http://www.radionomy.com/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="invisible" />';
		embedCode = embedCode + '<param name="showcontrols" value="0" />';
		embedCode = embedCode + '<param name="showstatusbar" value="0" />';
		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;
}


function StatusChanged(state) {
	switch (state) {
		case 0:    // Undefined
			Debug("Undefined");
			break;
		case 1:    // Stopped
		case 2:    // Paused
			ChangePicture('PlayPause', _baseURL + '/Images/' + _imgPlay);
			Debug("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) {
				Debug("Playing");
				Play();
			}
			else { _prePlay = true; }
			break;
		case 4:
			Debug("ScanForward");
			break;
		case 5:
			Debug("ScanReverse");
			break;
		case 6:
			Debug("Buffering");
			ChangePicture('PlayPause', _baseURL + '/Images/' + _imgLoading);
			break;
		case 7:
			Debug("Waiting");
			break;
		case 8:
			Debug("MediaEnded");
			break;
		case 9:    // Transitioning
			Debug("Transitioning");
			ChangePicture('PlayPause', _baseURL + '/Images/' + _imgLoading);
			break;
		case 10:   // Ready
			Debug("Ready");
			//FadeDivPicture('PlayPause', '/Images/btnPlayEmbed.gif');
			break;
		case 11:   // Reconnecting
			Debug("Reconnecting");
			break;
		case 12:   // Last
			Debug("Last");
			break;
		default:
			Debug("Unknown State: " + state);
			break;
	}
	_playerStatus = state;
}
/* VERY IMPORTANT FOR FIREFOX !!!*/
function OnDSPlayStateChangeEvt(state) { StatusChanged(state); }
function Log(msg) { if (_D && window.console) console.log(msg); }
function Debug(msg) { jQuery('#Debugger').html(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 GetPlayInfo() {
	var reqUrl = _baseURL + "/JSon.aspx?radUID=" + _radUID;
	jsonp(reqUrl, "GetRemotePlayInfo", "GetRemotePlayInfo", ""); //This method will asynchronously call GetRemoteUrl to specify the URL
}
function GetRadioInfo() {
	var reqUrl = _baseURL + "/JSon.aspx?radUID=" + _radUID;
	jsonp(reqUrl, "", "GetRemoteRadioInfo", ""); //This method will asynchronously call GetRemoteUrl to specify the URL
}

function GetRemoteRadioInfo(result) {
	if (result) {
		//StopTickerRN();
		jQuery('#RadioName').html(result.name);
		jQuery('#RadioName').attr("title", result.name);
		jQuery('#RadioName').attr("alt", result.name);

		var logoLink = document.getElementById('player-logo-link');
		if (logoLink) { logoLink.href = _baseURL + result.url; }

		var logoImg = document.getElementById('player-logo-img');
		if (logoImg) { logoImg.src = _baseURL + "/Thumbnail.aspx?h=60&w=60&t=logo&p=" + _baseURL + result.image; }

		var exportLink = document.getElementById('player-export');
		if (exportLink) { exportLink.href = _baseURL + result.promote; }
	}
}


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 ');
	}
}

function GetRemoteDedications(result) {
	jQuery('#Scroller1').html(result.dedications);	
	setTimeout("scrollTSH()", 1000);
}

function scrollTSH() {
	clearTimeout(commentTimer);
	var scroll1Pos = parseInt(jQuery('#Scroller1').css('left'));
	scroll1Pos -= 1;
	jQuery('#Scroller1').css('left', scroll1Pos);
	var scroll1OffW = $('Scroller1').offsetWidth;
	if (scroll1Pos < - scroll1OffW) { jQuery('#Scroller1').css('left', scroll1OffW); }
	commentTimer = setTimeout("scrollTSH()", 25)
}

function LoadCssFile(filename) {
	var fileref = document.createElement("link")
	fileref.setAttribute("rel", "stylesheet")
	fileref.setAttribute("type", "text/css")
	fileref.setAttribute("href", filename)
	var head = document.getElementsByTagName("head");
	if(head)
		head[0].appendChild(fileref);
}

function LoadJSFile(filename) {
	var fileref = document.createElement("script")
	fileref.setAttribute("type", "text/javascript")
	fileref.setAttribute("src", filename)
	var head = document.getElementsByTagName("head");
	if (head)
		head[0].appendChild(fileref);
}



//POLLING
var pollId;
function startPoll() { pollId = setInterval(GetPlayInfo, _pollDelay); }
function stopPoll() { if(pollId) clearInterval(pollId); }
function restartPoll() { stopPoll(); startPoll(); }

/*GOOGLE ANALYTICS*/
function LoadGoogle() {
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
	try {
		var pageTracker = _gat._getTracker("UA-2800126-11");
		pageTracker._trackPageview(_radUID);
		pageTracker._trackPageview(document.location.href);
	} catch (err) { }
}

/*PUBBLEGUM ANALYTICS*/
function LoadPubbleGum() {
	var pubHost = "http://www.radionomy.com/Scripts/pubblegum_min.js";
	document.write(unescape("%3Cscript src='" + pubHost + "' type='text/javascript'%3E%3C/script%3E"))
	try {
		pubble = new Pubblegum('radionomy', 'Campaign1', 'Creative1');
	} catch (err) { }
}