<!--
//Last Updated 2010 Sep 09 3:07 AM

onerror=handleErr;
window.onunload = onWindowClose;

var popUpWin; 

/* Width and height of the background image */
var g_widthBackground;
var g_heightBackground;

/* Width and height of the banner (BANNER 1) */ 
var g_widthBanner;
var g_heightBanner;

/* Width and height of the CD banner (BANNER 2) */ 
var g_widthCDCover;
var g_heightCDCover;

/* Width and height of the Streaming Player */
/* This involve g_dvSTREAM_PLAYER */
var g_widthStreamPlayer;
var g_heightStreamPlayer;

/* Width, height, top, left position of the Archive Video Player */
/* This involve g_dvSTREAM_PLAYER */
var g_widthStreamArchiveVideoPlayer = 0;
var g_heightStreamArchiveVideoPlayer = 0;
var g_xposStreamArchiveVideoPlayer;
var g_yposStreamArchiveVideoPlayer;

/* Width, height, top, left position of the Gateway Ad Video Player */
/* This involve g_dvGATEWAY_AD */
var g_widthGatewayAd;
var g_heightGatewayAd;
var g_xposGatewayAd = (g_heightBackground - g_heightGatewayAd) / 2; 
var g_yposGatewayAd = (g_widthBackground - g_widthGatewayAd) / 2;

/* Width and height of the Gateway Ad Video Banner */
/* This involve g_dvGATEWAY_AD */
var g_widthGatewayAdCDCover;
var g_heightGatewayAdCDCover;

/* Width and height of the Gateway Ad Banner */
/* This involve g_dvGATEWAY_AD */
var g_widthGatewayAdBanner;
var g_heightGatewayAdBanner;

/* Default volume level for windows media player */
var g_defaultWMVolume = 80; 

/* Listener's IP Address */
var g_ipAddress;

/* Station Call Letter */
var g_callLetter;

/* Station ID */
var g_stationId;

/* Owner ID */
var g_ownerId;

/* Station Website URL */
var g_website;

/* Station stream URL, this will be the stream protection URL or archive URL */
var g_mmsURL;

/* Station positioning statement */
var g_motto;

/* Station call letter for TargetSpot */
var g_TSCallLetter = "";

/* Debug flag; "true" to enable debug info. Refer function "debugMsg". */
var g_debug = false;

/* Default URL for CD banner (BANNER 2) */
var g_DefaultCDUrl = "/Player/images/black.jpg";

/* Default URL for banner (BANNER 1) */
var g_DefaultBannerUrl = "/Player/images/black.jpg";

/* Default URL to display (pop-up) when closing browser. */
/* It will not display (pop-up) if it is empty. */
var g_DefaultClosingUrl = "";

/* Flag to indicate if NOT to use banner (BANNER 1) */
/* Default value is to use banner. */
var g_NoBanner = false;

/* Flag to indicate if NOT to use CD banner (BANNER 2) */
/* Default value is to use CD banner. */
var g_NoCDBanner = false;

/* DIV identifer for Player Registration */
var g_dvPLAYER_REG = "PLAYER_REG";

/* Flag to indicate if listener has submitted the Player Registration form. */
/* This will affect the displaying text on g_dvSTREAM_PLAY_STATE */
var g_PlayerRegistrationOk = false;

/* Cookie name for Player Registration */
var g_PlayerRegistrationCookie = "SARegistration";

/* Cookie name for Player Registration zip code */
var g_PlayerRegistrationCookieZip = "SARegistrationZip";

/* Cookie name for Player Registration gender */
var g_PlayerRegistrationCookieGender = "SARegistrationGender";

/* Cookie validity (days) for Player Registration */
var g_PlayerRegistrationCookieDays = 365;
//var g_PlayerRegistrationForm;

/* Cookie value for Player Registration zip code */
var g_ListenerCookieZip = "";

/* Cookie value for Player Registration gender */
var g_ListenerCookieGender = "";

/* DIV identifer for audio streaming player */
var g_dvSTREAM_PLAYER = "STREAM_PLAYER";

/* DIV identifer for the play state of audio streaming player */
var g_dvSTREAM_PLAY_STATE = "STREAM_PLAY_STATE";

/* Default style for the displaying of play state of audio streaming player */
var g_styleSTREAM_PLAY_STATE = "color: yellow; font-family: arial, verdana; font-size: 8pt";

/* Flag to indicate if need to display the play state of audio streaming player */
var g_ShowSTREAM_PLAY_STATE = true;

/* The value of the previous play state of audio streaming player. */
/* Used in the process of hiding/showing gateway ad. */
var g_StreamPrevState = "";

/* Flag to indicate if need to display the UI of windows media player. */
var g_ShowWMPAudioPlayer = false;

/* Flag to indicate if this is for archive audio content. */
var g_Archive = false;

/* Flag to indicate if this is for archive video content. */
var g_ArchiveVideo = false;

/* DIV identifer for NowPlay Line 1 */
var g_dvNOWPLAY_LINE1 = "NOWPLAY_LINE1";

/* DIV identifer for NowPlay Line 2 */
var g_dvNOWPLAY_LINE2 = "NOWPLAY_LINE2";

/* Flag to indicate if NOT to display NowPlay information */
var g_NoNowPlay = false;

/* DIV identifer for Gateway Advertisement */
var g_dvGATEWAY_AD = "GATEWAY_AD";

/* DIV identifer for the displaying info text of Gateway Advertisement */
var g_dvGATEWAY_AD_INFO = "GATEWAY_INFO";

/* DIV identifer for Gateway Advertisement Banner*/
var g_dvGATEWAY_BANNER = "GATEWAY_BANNER";

/* Default style for the displaying of info text of Gateway Advertisement */
var g_styleGATEWAY_INFO = "color: yellow; font-family: arial, verdana; font-size: 8pt";

/* Flag to indicate NOT to use Gateway Advertisement */
var g_NoGatewayBanner = false;

/* DIV identifer for Feature Link */
var g_dvFEATURE_LINK = "FEATURE_LINK";

/* DIV identifer for Audio Control */
var g_dvAUDIO_CTRL = "AUDIO_CTRL";

/* Flag to indicate to hide the Audio Control DIV on non-ie browser */
var g_HideAudioCtrlOnNonIE = true;

/* The identifier of Gateway Advertisement. Retrieve from database. */
var g_GatewayId = 0;

/* Flag to indicate if Gateway Advertisement is playing now. */
var g_GatewayShowing = false;

/* Default info text to display for Gateway Advertisement */
var g_GatewayShowingText = "Advertisement";

/* Default info text to display audio streaming player */
var g_PlayerWaitingText = "Loading";

/* Timer for Gateway Advertisement */
var g_GatewayTimerID = 0;

/* For use to start the gateway timer after buffering if gateway is a WindowsMedia file. */
var g_GatewayMediaStartedBuffering = false; 

/* Flag to indicate if the Gateway Advertisement is of type Windows Media */
var g_GatewayIsWM = false;

/* For use to start the gateway timer after started if gateway is a WindowsMedia file. */
var g_GatewayWMStarted = false; 

/* Estimated duration of Gateway Advertisement */
/* This affect the Gateway Ad timer */
var g_GatewayEstDuration = 0;

/* Estimated adjustment duration of Gateway Advertisement */
/* This affect the Gateway Ad timer */
var g_GatewayEstDurationAdjustment = 5;

/* Estimated adjustment duration of Gateway Advertisement */
/* This affect the Gateway Ad timer */
var g_GatewayEstDuration2ndWait = 60;

/* Estimated idle duration to wait if Gateway Advertisement encounter error or ended. */
/* This affect the Gateway Ad timer */
var g_GatewayIdleAfterMediaEndedEvent = 3000; //3000 milliseconds

/* Flag to indicate to hide other DIV when playing Gateway Advertisement */
var g_HideOtherOnGatewayAd = false;

/* Flag to indicate to show the info text of Gateway Advertisement */
var g_ShowGatewayAdInfo = true;

/* Flag to indicate to skip Gateway Advertisement */
var g_SkipGateway = false;

/* Timer to retrieve ad replacement info, mainly for non-ie browser. */
var g_StreamPlayerMonitorTimerID = 0;
var g_StreamPlayerMonitorInterval = 5;
var g_StreamPlayerMonitorIntervalIncrement = 5;
var g_StreamPlayerMonitorMaxInterval = 60;

/* Flag to indicate to diplay the Player Registration */
var g_ShowPlayerRegistration = true;

/* The NowPlay info object */
var g_NowPlayInfo = new NowPlayInfo();

/* The Browser type object */
var isBrowser = new IsBrowser();  

/* Flag to indicate if TargetSpot API is ready to call */
var g_TargetSpotReady = false;

/* Flag to indicate if to use TargetSpot */
var g_UseTargetSpot = false;

/* Flag to indicate the mute state of audio streaming player. */
/* This is used to synchronize the mute state with TargetSpot media. */
var g_IsMutedB4TSAd = false;

/* Timer for Gateway Advertisement */
var g_StreamTimeoutEnabled = true;
var g_StreamTimeoutTimerID = 0;
var g_StreamTimeoutCountdownTimerID = 0;
var g_StreamTimeoutDuration = 3000; //milliseconds
var g_StreamTimeoutCountdownDefaultDuration = 45;
var g_StreamTimeoutCountdownDuration = g_StreamTimeoutCountdownDefaultDuration;
var http_request_playerStreamTimeout;

function IsBrowser()
{   
    var agt=navigator.userAgent.toLowerCase();

    //this.major = parseInt(navigator.appVersion);
    //this.minor = parseFloat(navigator.appVersion);

    this.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

    this.nav  = ((agt.indexOf('mozilla') != -1) && 
                 (agt.indexOf('spoofer')==-1 && agt.indexOf('compatible') == -1));
}    

function NowPlayInfo()
{
    this.lineId = "";
    this.bannerUrl = "";
    this.cdUrl = "";
    this.clickUrl = "";
    this.curSong = "";
    this.curArtist = "";
    this.estDuration = 0;
    this.spotRuntime = 0;
    this.isMusic = false;
}

function handleErr(msg, url, l)
{
    var txt = "There was an error on this page.\n\n";
    txt += "Error: " + msg + "\n";
    txt += "URL: " + url + "\n";
    txt += "Line: " + l + "\n\n";
    
    alert(txt);
    return true;
}

function resizePlayerScreen(width, height)
{
    if(width > 0)
    {                
        window.resizeTo(width, height);

        try 
        {
            if(isBrowser.nav)
            {
                window.innerWidth = width;
                window.innerHeight = height;
            }
            else
            {
                window.resizeTo(width, height);
                var curWidth = document.documentElement.clientWidth;
                var curHeight = document.documentElement.clientHeight;
                var diffWidth = width - curWidth;
                var diffHeight = height - curHeight;

                window.resizeTo(width + diffWidth, height + diffHeight);
            }
        }
        catch(e)
        {
        }
    }   
}


function onWindowClose()
{
    if(g_DefaultClosingUrl != "")
    {
        openWindowOnClose("_ClosingAd", g_DefaultClosingUrl, true);
    }
    return true;
}

function urlDecode(input)
{
    var output = "";

    output = unescape(input);

	output = output.replace(/&&/g,"&");
	output = output.replace(/\+/g," ");
	output = output.replace(/&apos;/g, "'");

    return output;
}

function cookieCreate(name, value, expireDays)
{
	var expiryDate = new Date();
	expiryDate.setDate(expiryDate.getDate() + expireDays);

	document.cookie = name + "=" + escape(value) + "; expires=" + expiryDate.toGMTString();
}

function cookieRead(name)
{
	var ca = document.cookie.split(';');
	var nameEQ = name + "=";

	for(var i=0; i<ca.length; i++) 
	{
		var c = ca[i];
		
		while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces

		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
	}
	return null;
}

function cookieErase (name)
{
  var cookie_date = new Date();  // current date & time
  cookie_date.setTime (cookie_date.getTime() - 1);
  document.cookie = name += "=; expires=" + cookie_date.toGMTString();
}

function onChangeFeatureMenu(featureSelect)
{
    var featureUrl = featureSelect.options[featureSelect.selectedIndex].value;
    
    var regExp = /^(http|https)/i ;
    if(featureUrl != "") 
    {
        if(!regExp.test(featureUrl)) 
        {
            featureUrl = "http://" + featureUrl;
        }
    }
    
    openWindow("_Feature", featureUrl);
}

function bookmark(title, url)
{
    if(isBrowser.ie) 
    {
        window.external.AddFavorite(url, title);
    }
    else
    {
        window.sidebar.addPanel(title, url, "");
    }
}

function openHelp()
{
	openWindow("_HELP", "http://www.streamaudio.com/site/support.aspx");
}


function openWindow(windowName, clickThruUrl)
{   
    var url = clickThruUrl; 
    if(url != "") 
    {
        window.open(url, windowName, 'resizable=yes,scrollbars=1,status=yes,toolbar=yes,width=800,height=600'); 
    }

	return true;
}

function openWindowOnClose(windowName, clickThruUrl, closePopup)
{   
    try {
        var url = clickThruUrl; 
        if(url != "") 
        {
            popUpWin = window.open(url, windowName, 'resizable=yes,scrollbars=1,status=yes,toolbar=yes,width=800,height=600').blur(); 
        }
    }
    catch(err) {}

	return true;
}

function openClickThruWindow(windowName, clickThruUrl)
{  
    try
    {
        var url = "http://www.streamaudio.com/stations/player/pages/newplayer/nowplay/adtrack.asp?type=Replacement&adid=" + g_NowPlayInfo.lineId + "&nexturl=" + clickThruUrl + "&station=" + g_callLetter;
        if(clickThruUrl != "") 
        {
            if(clickThruUrl != "" && g_NowPlayInfo.lineId > 0)
            {
                window.open(url, windowName, 'resizable=yes,scrollbars=1,status=yes,toolbar=yes'); 
            }
            else
            {
                window.open(clickThruUrl, windowName, 'resizable=yes,scrollbars=1,status=yes,toolbar=yes'); 
            }
        }
    }
    catch (e)
    {
    }

	return true;
}

function openClickThruWindowForGateway(windowName, clickThruUrl)
{  
    try
    {
		var url = "http://www.streamaudio.com/client/GateWayUtility/TrackClickThru.aspx?Gateway_ID=" + g_GatewayId + "&Station_ID=" + g_stationId + "&NextURL=" + clickThruUrl;
        if(clickThruUrl != "") 
        {
			window.open(url, windowName, 'resizable=yes,scrollbars=1,status=yes,toolbar=yes');             
        }
    }
    catch (e)
    {
    }

	return true;
}

function onClickPlayerRegistrationFormSubmit(playerRegId, playerRegForm)
{
    var email = document.getElementById("Email").value;
	var zip = document.getElementById("Zip").value;
	var gender = "FEMALE";
    if(document.getElementById("GenderM").checked)
    {
        gender = "MALE";
    }
	var yearBorn = document.getElementById("YearBorn").value;
    var thirdParty = "";
    if(document.getElementById("ThirdParty").checked)
    {
        thirdParty = document.getElementById("ThirdParty").value;
    }
    
    //insert to database
    if(registerListener(g_callLetter, zip, email, gender, yearBorn, thirdParty))
    {
        var playerRegDiv = document.getElementById(playerRegId);
        playerRegDiv.style.visibility = "hidden";

        setAllDivOpacityExceptPlayerRegistration(100);
    
        //set cookie
        cookieCreate(g_PlayerRegistrationCookie, email, g_PlayerRegistrationCookieDays);
        cookieCreate(g_PlayerRegistrationCookieZip, zip, g_PlayerRegistrationCookieDays);
        cookieCreate(g_PlayerRegistrationCookieGender, gender, g_PlayerRegistrationCookieDays);

        //cookieErase(g_PlayerRegistrationCookie);

        requestGatewayInfo(g_stationId, g_ownerId, g_ipAddress);
    }

	g_PlayerRegistrationOk = true;
}

function onClickPlayerRegistrationFormDecline(playerRegId)
{
    var playerRegDiv = document.getElementById(playerRegId);
    playerRegDiv.style.visibility = "hidden";

    setAllDivOpacityExceptPlayerRegistration(100);

    //set cookie
    cookieCreate(g_PlayerRegistrationCookie, "na", g_PlayerRegistrationCookieDays);

	requestGatewayInfo(g_stationId, g_ownerId, g_ipAddress);

	g_PlayerRegistrationOk = true;
}

function setAllDivOpacityExceptPlayerRegistration(opacityLevel)
{   
    var opacityLevelMoz = opacityLevel / 100;
    
    var divArray= new Array("BACKGROUND", "STREAM_PLAYER", 
                            "CD_COVER", "BANNER", "NOWPLAY", "FEATURE_LINK", "MAIL", "AUDIO_CTRL");
    var i = 0;
    
    for(i=0; i<divArray.length; i++) 
    {   
        try
        {
            var divLayer = document.getElementById(divArray[i]);

            if(divLayer) 
            {
                if(isBrowser.nav) 
                {
                    divLayer.style.opacity = opacityLevelMoz;
                }
                else 
                {
                    divLayer.style.filter = "alpha(opacity=" + opacityLevel + ")"; 
                }
                   
                if(opacityLevel < 100) 
                {
                    document.getElementById(g_dvFEATURE_LINK).style.visibility = "hidden";
                }
                else
                {
                    document.getElementById(g_dvFEATURE_LINK).style.visibility = "visible";
                }
            }
            divLayer = null;
        }
        catch (e)
        {
        }
    }

    if(isBrowser.nav && g_HideAudioCtrlOnNonIE)
    {
        try
        {
            document.getElementById(g_dvAUDIO_CTRL).style.visibility = "hidden";	
        }
        catch (e)
        {
        }
    }
}

function onGatewayWMPlayerError()
{
    try
    {
        g_GatewayWMStarted = true;
        clearTimeout(g_GatewayTimerID); 
        g_GatewayTimerID = setTimeout("onGatewayTimerUp(2)", g_GatewayIdleAfterMediaEndedEvent); 
    }
    catch(e) 
    {
    }
}

function onGatewayWMPlayerPlayStateChange(newState, wmPlayer, spanText)
{
    try
    {
        if(wmPlayer != null && wmPlayer.currentMedia != null) 
        {
            //var BitRate =  parseInt(wmPlayer.network.bitRate / 1000) + "K bits/second";
            //debugMsg(" newState " + newState + " " + wmPlayer.network.bitRate );

            switch (newState)
            {
                case 6:
                    g_GatewayMediaStartedBuffering = true;
                    spanText.innerHTML = g_GatewayShowingText + " - Loading...";                
                    break;
                case 3:
                    if(wmPlayer.network.bitRate > 0) 
                    {
                        //if(isUrlWinAudio(wmPlayer.URL))
                        //{
                        //    g_GatewayMediaStartedBuffering = true
                        //}

                        //if(g_GatewayMediaStartedBuffering == true)
                        //{
                            spanText.innerHTML = g_GatewayShowingText;
                            onGatewayWMVPlayerStarted();
                        //}
                    }

                    //g_GatewayMediaStartedBuffering = true
                    break;
                case 8:
                    //gateway media ended
                    //debugMsg("media ended");
                    clearTimeout(g_GatewayTimerID); 
                    g_GatewayTimerID = setTimeout("onGatewayTimerUp(2)", g_GatewayIdleAfterMediaEndedEvent); 

                    break;
            }
        }    	
    }
    catch (e)
    {
    }
}

function onGatewayWMVPlayerStarted() 
{
    if(g_GatewayWMStarted == false)
    {
        clearTimeout(g_GatewayTimerID);
        g_GatewayWMStarted = true;
        g_GatewayTimerID = setTimeout("onGatewayTimerUp(1)", (g_GatewayEstDuration * 1000)); 
    }
}

/*** MediaPlayer BEGIN ****/

function MediaPlayer(name, mediaObj) {

    this.onerror = handleErr;

	this.mediaObj = mediaObj;
    this.name = name;
    this.mediaPlayerPlayStateChangeTimerID = 0;
    this.mediaPlayerPlayStateChangeTimerInterval = 1000;
    
    this.mediaPlayerEventEstDuration = 0;
    this.mediaPlayerEstEOETimerID = 0;
    this.mediaPlayerNewEventArrived = false;

    MediaPlayer.prototype.play = play;
    MediaPlayer.prototype.stop = stop;
    MediaPlayer.prototype.pause = pause;
	MediaPlayer.prototype.mute = mute;
    MediaPlayer.prototype.muteUnmute = muteUnmute;
    MediaPlayer.prototype.isMute = isMute;
    MediaPlayer.prototype.volumeUp = volumeUp;
    MediaPlayer.prototype.volumeDown = volumeDown;
    MediaPlayer.prototype.volumeSet = volumeSet;
    MediaPlayer.prototype.getVolumeLevel = getVolumeLevel;

	
    MediaPlayer.prototype.startMediaPlayerPlayStateChangeTimer = startMediaPlayerPlayStateChangeTimer;
    MediaPlayer.prototype.resetMediaPlayerPlayStateChangeTimerOnPlaying = resetMediaPlayerPlayStateChangeTimerOnPlaying;
    MediaPlayer.prototype.startMediaPlayerPlayStateChange = startMediaPlayerPlayStateChange;
    MediaPlayer.prototype.onMediaPlayerPlayStateChange = onMediaPlayerPlayStateChange;
	MediaPlayer.prototype.setMediaPlayerPlayState = setMediaPlayerPlayState;

    MediaPlayer.prototype.onMediaPlayerScriptCommand = onMediaPlayerScriptCommand;
    //MediaPlayer.prototype.startMediaPlayeAdSyncTimer = startMediaPlayeAdSyncTimer;

    MediaPlayer.prototype.startMediaPlayerEstEOETimer = startMediaPlayerEstEOETimer;
    MediaPlayer.prototype.onMediaPlayerEstEOE = onMediaPlayerEstEOE;


    function play(audioPlayer)
    {
        if(audioPlayer != null && isBrowser.ie) 
        {
            audioPlayer.controls.play();
        }
    }

    function stop(audioPlayer)
    {
        if(audioPlayer != null && isBrowser.ie) 
        {
            audioPlayer.controls.stop();
        }
    }

    function pause(audioPlayer)
    {
        if(audioPlayer != null && isBrowser.ie) 
        {
            audioPlayer.controls.pause();
        }
    }

	function mute(toMute)
	{
        //debugMsg("mute " + toMute);

        if(isBrowser.ie) 
        {
		    mediaObj.settings.mute = toMute;
        }
	}

    function isMute()
    {
        if(mediaObj != null && isBrowser.ie) 
        {
            return mediaObj.settings.mute;
        }
        else
        {
            return false;
        }
    }

    function muteUnmute(audioPlayer)
    {
        if(audioPlayer != null && isBrowser.ie) 
        {
            audioPlayer.settings.mute = !audioPlayer.settings.mute;
        }
    }

    function getVolumeLevel(audioPlayer)
    {
        if(audioPlayer != null && isBrowser.ie) 
        {
            return audioPlayer.settings.volume;
        }
        else
        {
            return 0;
        }
    }

    function volumeUp(audioPlayer)
    {
		if(audioPlayer != null && isBrowser.ie) 
		{
			var vol = audioPlayer.settings.volume;
			if(vol >= 100) 
			{
				audioPlayer.settings.volume = 100;
			}
			else
			{
				audioPlayer.settings.volume = audioPlayer.settings.volume + 10;
			}
		}
    }

    function volumeDown(audioPlayer)
    {
		if(audioPlayer != null && isBrowser.ie) 
		{
			var vol = audioPlayer.settings.volume;
			if(vol <= 0) 
			{
				audioPlayer.settings.volume = 0;
			}
			else
			{
				audioPlayer.settings.volume = audioPlayer.settings.volume - 10;
			}
		}
    }

    function volumeSet(audioPlayer, newVolume)
    {
		if(audioPlayer != null && isBrowser.ie) 
		{
			if(newVolume >= 0) 
			{
				audioPlayer.settings.volume = newVolume;
				
				if(g_GatewayShowing) 
				{
				    mute(true);
				}
			}
		}
    }


    function startMediaPlayerPlayStateChangeTimer(captionDesc, audioPlayerId, spanTextId)
    {
        eval('this.startMediaPlayerPlayStateChange("'+captionDesc+'", document.'+audioPlayerId+', document.getElementById("'+spanTextId+'"));');
        
        if(this.mediaPlayerPlayStateChangeTimerInterval > 0) 
        {
            this.mediaPlayerPlayStateChangeTimerID = setTimeout(this.name + '.startMediaPlayerPlayStateChangeTimer("'+captionDesc+'","'+audioPlayerId+'","'+spanTextId+'")', this.mediaPlayerPlayStateChangeTimerInterval); 
        }
        else 
        {
            if(this.mediaPlayerPlayStateChangeTimerID > 0) 
            {
                clearTimeout(this.mediaPlayerPlayStateChangeTimerID);
            }
        }

        eval('this.resetMediaPlayerPlayStateChangeTimerOnPlaying(document.' + audioPlayerId + ', 30000);');
    }

    function resetMediaPlayerPlayStateChangeTimerOnPlaying(audioPlayer, newIntervalMilliseconds)
    {
        if(audioPlayer.playState == 3 && audioPlayer.network.bitRate > 0) 
        {   
            this.mediaPlayerPlayStateChangeTimerInterval = newIntervalMilliseconds;
        }
    }

    function startMediaPlayerPlayStateChange(captionDesc, audioPlayer, spanText)
    {   
        this.onMediaPlayerPlayStateChange(audioPlayer.playState, captionDesc, audioPlayer, spanText);
    }

	function setMediaPlayerPlayState(captionDesc, spanText)
	{
		if(captionDesc != "") 
		{
			spanText.innerHTML = captionDesc;
		}
	}

    function onMediaPlayerPlayStateChange(newState, captionDesc, audioPlayer, spanText)
    {
		var displayText = "Loading " + g_callLetter;
	    
        try
        {
            if(audioPlayer != null && audioPlayer.currentMedia != null) 
            {
                captionDesc = audioPlayer.currentMedia.name;
                var BitRate =  parseInt(audioPlayer.network.bitRate / 1000) + "K bits/second";
                
                switch (newState)
                {
                    case 1:
                        displayText = captionDesc + " Stopped";
                        break;

                    case 2:
                        displayText = captionDesc + " Paused";
                        break;

                    case 3:
                        if(audioPlayer.network.bitRate == 0) 
                        {
                            displayText = "Buffering " + captionDesc;
                        }
                        else 
                        {
                            displayText = "Playing " + captionDesc + ": " + BitRate;
                        }
                        break;

                    case 6:
                        displayText = "Buffering " + captionDesc + ": " + BitRate;
                        break;

                    case 7:
                        displayText = captionDesc + " Waiting";
                        break;

                    case 10:
                        displayText = captionDesc + " Ready";
                        break;
                    
                    case 11:
                        displayText = "Reconnecting " + captionDesc;
                        break;
                }
            }

            g_StreamPrevState = displayText;

            if(g_GatewayShowing == true)
            {
                displayText = g_GatewayShowingText;
            }

            if(g_PlayerRegistrationOk == false)
            {
                displayText = g_PlayerWaitingText;
            }

            spanText.innerHTML = displayText;  
        }
        catch (e)
        {
        }
    }

    function onMediaPlayerScriptCommand(scType, scParam, spanLine1, spanLine2)
    {
        try
        {
        	preAdReplacement(scType, scParam);
        }
        catch (e1)
        {
        }
        
        if(g_GatewayShowing == true) 
		{
			return false;
		}
		else 
		{
			if(scType == "TEXT") 
			{
				var paramsArray = scParam.split("&");
				var i = 0;

				var adid = -1;
                var curSong = "";
                var curArtist = "";

				for(i=0; i<paramsArray.length; i++) 
				{
					var nameValuePair = paramsArray[i].split("=");
					
                    if(nameValuePair[0] == "runtime")
                    {
                        //debugMsg("NowPlay runtime " + nameValuePair[1]);

                        if(!isNaN(nameValuePair[1])) 
                        {
                            g_NowPlayInfo.spotRuntime = parseInt(nameValuePair[1]);
                            this.mediaPlayerEventEstDuration = parseInt(nameValuePair[1]) + 10;
                        }
                        else 
                        {
                            g_NowPlayInfo.spotRuntime = 0;
                            this.mediaPlayerEventEstDuration = 0;
                        }
                    }                    

					if(nameValuePair[0] == "currentSong") 
					{
                        curSong = urlDecode(nameValuePair[1]);

						if(g_NoNowPlay == false)
						{
							spanLine1.innerHTML = curSong;
							spanLine1.focus();
						}
					}

					if(nameValuePair[0] == "currentArtist") 
					{
                        curArtist = urlDecode(nameValuePair[1]);

						if(g_NoNowPlay == false)
						{
							spanLine2.innerHTML = curArtist;
							spanLine2.focus();
						}
					}
					
					if(nameValuePair[0] == "adid") 
					{
						if(!isNaN(nameValuePair[1]))
						{
							adid = parseInt(nameValuePair[1]);
						}
					}
				}

				if(adid > 0) 
				{
                    //debugMsg("adid = " + adid);
					requestAdInfo(adid);
				}
				else
				{
                    try
                    {
                    	postAdReplacement();
                    }
                    catch (e2)
                    {
                    }
					loadDefaultCDAndBanner();
				}

                //g_NowPlayInfo.lineId = adid;
                //g_NowPlayInfo.curSong = curSong;
                //g_NowPlayInfo.curArtist = curArtist;
                //g_NowPlayInfo.estDuration = parseInt(this.mediaPlayerEventEstDuration);

                this.startMediaPlayerEstEOETimer();
			}
		}
    }

    function startMediaPlayerEstEOETimer()
    {
		clearTimeout(this.mediaPlayerEstEOETimerID);

        if(this.mediaPlayerEventEstDuration <= 0) 
        {
            this.mediaPlayerEventEstDuration = 60;
        }
        
        var timeout = this.mediaPlayerEventEstDuration * 1000;
        
        this.mediaPlayerEstEOETimerID = setTimeout(name + '.onMediaPlayerEstEOE()', timeout); 
    }

    function onMediaPlayerEstEOE()
    {
        //if(this.mediaPlayerNewEventArrived == false)
        //{
            clearTimeout(this.mediaPlayerEstEOETimerID);
            loadDefaultCDAndBanner();
			loadDefaultNowPlay();

            //reset non-ie stream monitor timer
            clearTimeout(g_StreamPlayerMonitorTimerID);
            g_StreamPlayerMonitorInterval = 5;
            g_StreamPlayerMonitorTimerID = setTimeout("startStreamPlayerMonitorTimer()", (g_StreamPlayerMonitorInterval * 1000)); 

        //}
        
    }
}
/*** MediaPlayer END ****/

var http_request;
var http_request_gw;

function loadTargetSpot()
{
    try
    {
        if(g_UseTargetSpot) 
        {
            if(g_TargetSpotReady && isBrowser.ie)
            {
                var duration = g_NowPlayInfo.spotRuntime;
                
                //debugMsg("TargetSpot. Duration : " + duration);

                ts_streamEvent('interruptAd', '');

                ts_setVolume(APObject.getVolumeLevel(document.AUDIO_PLAYER));

                showTargetSpotDiv(true);

                ts_streamEvent('playAd', parseInt(duration));
            }
            else
            {
            }
        }
    }
    catch(e)
    {
    }
}

function ts_ready()
{
    /* Your code to activate once ts_ready is called should go here */
    //debugMsg("ts_ready");
    g_TargetSpotReady = true;
}

function ts_mutePlayer()
{
    if(g_UseTargetSpot)
    {
        if(isBrowser.ie) 
        {
            if(APCtrl.isMute())
            {
                ts_setVolume(0);
                g_IsMutedB4TSAd = true;
            }
            APCtrl.mute(true);
        }
    }
}

function ts_unmutePlayer()
{  
    if(g_UseTargetSpot)
    {
        if(isBrowser.ie) 
        {   
            if(g_IsMutedB4TSAd == true)
            {
                APCtrl.mute(true);
            }
            else
            {
                APCtrl.mute(false);
            }
            g_IsMutedB4TSAd = false;
        }
        //debugMsg("TargetSpot done. Unmute player.");
        showTargetSpotDiv(false);
    }
}

function showTargetSpotDiv(toShow)
{
    try
    {
        var zIndex = 1;
        var sVisibility = "hidden";

        if(toShow)
        {
            zIndex = 6;
        }

        var divTS_AV = document.getElementById("TS_AV"); 
        var divTS_BANNER = document.getElementById("TS_BANNER"); 

        if(divTS_AV)
        {
            divTS_AV.style.zIndex = zIndex;
            //divTS_AV.style.visibility = "visible";
        }

        if(divTS_BANNER)
        {
            divTS_BANNER.style.zIndex = zIndex;
            //divTS_BANNER.style.visibility = "visible";
        }
    }
    catch(e)
    {
    }
}

function loadBanner(bannerUrl, clickUrl)
{   
    try
    {
        //debugMsg("banner " + bannerUrl);
        //debugMsg("clickUrl " + clickUrl);

		if(g_NoBanner) 
		{
		}
		else
		{
			if(g_NowPlayInfo.bannerUrl != bannerUrl)
			{
				var div = document.getElementById("BANNER");   

				g_NowPlayInfo.bannerUrl = bannerUrl;
				
				if(isUrlImage(bannerUrl))
				{
                    //debugMsg("isImage " + g_widthBanner + " x " + g_heightBanner);
					div.innerHTML = "<a href='#' onclick='openClickThruWindow(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img align='center' width='" + g_widthBanner + "' height='" + g_heightBanner + "' src='"+bannerUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
					div.style.visibility = "visible";
				}
				else if(isUrlFlash(bannerUrl)) 
				{
					div.innerHTML = "<center><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='" + g_widthBanner + "' height='" + g_heightBanner + "'><param name='movie' value='" + bannerUrl + "'><param name='WMODE' VALUE='transparent'><embed src='" + bannerUrl + "' width='" + g_widthBanner + "' height='" + g_heightBanner + "' wmode='transparent'></embed></object></center>";
					div.style.visibility = "visible";
				}
				else if (isUrlEmpty(bannerUrl))
				{
					div.innerHTML = "";
					div.style.visibility = "visible";
				}
				else 
				{
					div.innerHTML = "<center><table cellpadding='0' cellspacing='0' width='" + g_widthBanner + "' height='" + g_heightBanner + "' style='border-width: 0px;'><tr><td align='center' width='" + g_widthBanner + "' cellpadding='0' cellspacing='0' style='border-width: 0px; padding:0px'><iframe name='iframeBanner' align='middle' width='" + g_widthBanner + "' height='" + g_heightBanner + "' src='" + bannerUrl + "' scrolling='no' border='0' frameborder='0'>Your browser does not support inline frames or is currently configured not to display inline frames.</iframe></td></tr></table></center>";
					div.style.visibility = "visible";
				}
			} 
		}
    }
    catch (e)
    {
    }
}

function loadCD(cdUrl, clickUrl, cdImageUrl)
{
    try
    {
        if(g_NoCDBanner)
        {
        }
        else
        {
            if(g_NowPlayInfo.cdUrl != cdUrl)
            {
                var div = document.getElementById("CD_COVER"); 

                g_NowPlayInfo.cdUrl = cdUrl;

                if(isUrlImage(cdUrl))
                {
                    div.innerHTML = "<a href='#' onclick='openClickThruWindow(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img align='center' width='" + g_widthCDCover + "' height='" + g_heightCDCover + "' src='"+cdUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
                    div.style.visibility = "visible";
                }
                else if(isUrlFlash(cdUrl)) 
                {
                    div.innerHTML = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='" + g_widthCDCover + "' height='" + g_heightCDCover + "'><param name='movie' value='" + cdUrl + "'><param name='WMODE' VALUE='transparent'><embed src='" + cdUrl + "' width='" + g_widthCDCover + "' height='" + g_heightCDCover + "' wmode='transparent'></embed></object>";
                    div.style.visibility = "visible";
                }
                else if(isUrlWinVideo(cdUrl) || isUrlWinAudio(cdUrl))
                {
                    var innerHTML = "";

                    width = g_widthCDCover;
                    height = g_heightCDCover;

                    if(isUrlWinAudio(cdUrl)) 
                    {
                        width = 1;
                        height = 1;

                        innerHTML = "<a href='#' onclick='openClickThruWindow(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img width='" + g_widthCDCover + "' height='" + g_heightCDCover + "' align='center' src='"+cdImageUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
                    }

                    div.innerHTML = innerHTML + "<OBJECT ID='WM_PLAYER' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6' width='" + width + "' height='" + height + "'>"+
                                    "<PARAM name='URL' value='" + cdUrl +"'>" +
                                    "<PARAM name='autoStart' value='1'>" + 
                                    "<PARAM name='mute' value='0'>" +
                                    "<PARAM name='enableContextMenu' value='1'>" +
                                    "<PARAM name='windowlessVideo' value='1'>" +
                                    "<PARAM name='uiMode' value='none'>" + 
                                    "<PARAM name='volume' value='" + g_defaultWMVolume + "'>" + 
                                    "<embed ID='WM_PLAYER' type='application/x-mplayer2' pluginspage='http://www.microsoft.com/Windows/MediaPlayer/' " +
                                    "src='" + cdUrl + "' align='middle' width='" + width + "' height='" + height + "' ShowStatusBar='0' " +
                                    "ShowCaptioning='0' ShowControls='0' ShowPositionControls='0' stretchToFit='0' windowlessVideo='0' EnableContextMenu='1' ></embed> " +
                                    "</OBJECT>" +
                                    "<script language='javascript' for='WM_PLAYER' EVENT='playStateChange(NewState)'>" +
                                    "    onGatewayWMPlayerPlayStateChange(NewState, document.WM_PLAYER, document.getElementById('STREAM_PLAY_STATE'));" +
                                    "</script>";
                    div.style.visibility = "visible";
                }
                else if (isUrlEmpty(cdUrl))
                {
                    div.innerHTML = "&nbsp;";
                    div.style.visibility = "visible";
                }
                else 
                {
                    div.innerHTML = "<table cellpadding='0' cellspacing='0' width='" + g_widthCDCover + "' height='" + g_heightCDCover + "' style='border-width: 0px;'><tr><td align='center' width='" + g_widthCDCover + "' height='" + g_heightCDCover + "' cellpadding='0' cellspacing='0' style='border-width: 0px; padding:0px'><iframe name='iframeBanner' align='middle' width='" + g_widthCDCover + "' height='" + g_heightCDCover + "' src='" + cdUrl + "' scrolling='no' border='0' frameborder='0'>Your browser does not support inline frames or is currently configured not to display inline frames.</iframe></td></tr></table>";
                    div.style.visibility = "visible";
                }
            }
        }
    }
    catch (e)
    {
    }

}

function loadDefaultCDAndBanner()
{   
	loadBanner(g_DefaultBannerUrl, "");
	loadCD(g_DefaultCDUrl, "", "");
}

function loadDefaultNowPlay()
{
	if(g_NoNowPlay)
	{
	}
	else
	{
		var spanText1 = document.getElementById(g_dvNOWPLAY_LINE1);
		spanText1.innerHTML = g_motto;

		var spanText2 = document.getElementById(g_dvNOWPLAY_LINE2);
		spanText2.innerHTML = g_website;
	}
}

function loadBannerGateway(bannerUrl, clickUrl)
{   
    try
    {
		if(g_NoGatewayBanner) 
		{
		}
		else
		{
			if(g_NowPlayInfo.bannerUrl != bannerUrl)
			{
				var div = document.getElementById(g_dvGATEWAY_BANNER);   

				g_NowPlayInfo.bannerUrl = bannerUrl;
				
				if(isUrlImage(bannerUrl))
				{
					div.innerHTML = "<a href='#' onclick='openClickThruWindowForGateway(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img align='center' width='" + g_widthGatewayAdBanner + "' height='" + g_heightGatewayAdBanner + "' src='"+bannerUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
					div.style.visibility = "visible";
				}
				else if(isUrlFlash(bannerUrl)) 
				{
					div.innerHTML = "<center><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='" + g_widthGatewayAdBanner + "' height='" + g_heightGatewayAdBanner + "'><param name='movie' value='" + bannerUrl + "'><param name='WMODE' VALUE='transparent'><embed src='" + bannerUrl + "' width='" + g_widthBanner + "' height='" + g_heightBanner + "' wmode='transparent'></embed></object></center>";
					div.style.visibility = "visible";
				}
				else if (isUrlEmpty(bannerUrl))
				{
					div.innerHTML = "";
					div.style.visibility = "visible";
				}
				else 
				{
					div.innerHTML = "<center><table cellpadding='0' cellspacing='0' width='" + g_widthGatewayAdBanner + "' height='" + g_heightGatewayAdBanner + "' style='border-width: 0px;'><tr><td align='center' width='" + g_widthBanner + "' cellpadding='0' cellspacing='0' style='border-width: 0px; padding:0px'><iframe name='iframeBanner' align='middle' width='" + g_widthBanner + "' height='" + g_heightBanner + "' src='" + bannerUrl + "' scrolling='no' border='0' frameborder='0'>Your browser does not support inline frames or is currently configured not to display inline frames.</iframe></td></tr></table></center>";
					div.style.visibility = "visible";
				}
			}   
		}
    }
    catch (e)
    {
    }
}

function hideGatewayAd()
{
	setAllDivOpacityExceptPlayerRegistration(100);

	var div = document.getElementById(g_dvGATEWAY_AD);
	div.innerHTML = "";
	div.style.visibility = "hidden";

    var divGW_AdInfo = document.getElementById(g_dvGATEWAY_AD_INFO); 

	divGW_AdInfo.innerHTML = "";
	divGW_AdInfo.style.visibility = "hidden";

    var divGW_Banner = document.getElementById(g_dvGATEWAY_BANNER); 

	divGW_Banner.innerHTML = "";
	divGW_Banner.style.visibility = "hidden";

    var streamPlayStateDiv = document.getElementById(g_dvSTREAM_PLAY_STATE);
    if (g_ShowSTREAM_PLAY_STATE)
    {
        streamPlayStateDiv.style.visibility = "visible";
    }
    else
    {
        streamPlayStateDiv.style.visibility = "hidden";
    }

    if(isBrowser.ie)
    {
        APCtrl.mute(false);
        APCtrl.setMediaPlayerPlayState(g_StreamPrevState, streamPlayStateDiv);
    }
    else
    {
        streamPlayStateDiv.innerHTML = g_callLetter;
    }

    if(isBrowser.nav || g_ShowWMPAudioPlayer) 
    {
        //debugMsg("hideGatewayAd " + g_widthStreamPlayer + " x " + g_heightStreamPlayer);

        document.AUDIO_PLAYER.width = g_widthStreamPlayer;
        document.AUDIO_PLAYER.height = g_heightStreamPlayer;
    }
    else if(isBrowser.ie) 
    {
        document.AUDIO_PLAYER.width = 1;
        document.AUDIO_PLAYER.height = 1;
    }
}

function loadGatewayAd(bannerUrl, cdUrl, cdImageUrl, clickUrl)
{
    if(g_HideOtherOnGatewayAd)
    {
        setAllDivOpacityExceptPlayerRegistration(5);
    }

    if(isBrowser.ie) 
    {
        document.AUDIO_PLAYER.width = 1;
        document.AUDIO_PLAYER.height = 1;
    }

	var div = document.getElementById(g_dvGATEWAY_AD);

	div.style.top = g_xposGatewayAd + "px";
	div.style.left = g_yposGatewayAd + "px";
	div.style.width = g_widthGatewayAd + "px";

	//for CD window
	var gatewayAdCDWindow = "";
	if(isUrlImage(cdUrl))
	{
		gatewayAdCDWindow = "<a href='#' onclick='openClickThruWindowForGateway(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img align='center' width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "' src='"+cdUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
	}
	else if(isUrlFlash(cdUrl)) 
	{
		gatewayAdCDWindow = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "'><param name='movie' value='" + cdUrl + "'><embed src='" + cdUrl + "' width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "'></embed></object>";

		//var innerHTML = "";
        
        //cdUrl = "http://www.streamaudio.com/Player/GetGatewayASX.aspx?media=" + cdUrl + "&dur=" + g_GatewayEstDuration;

		//gatewayAdCDWindow = innerHTML + "<OBJECT ID='WM_PLAYER' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6' width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "'>"+
		//				"<PARAM name='URL' value='" + cdUrl +"'>" +
		//				"<PARAM name='autoStart' value='1'>" + 
		//				"<PARAM name='mute' value='0'>" +
		//				"<PARAM name='enableContextMenu' value='1'>" +
        //              "<PARAM name='windowlessVideo' value='1'>" +
		//				"<PARAM name='uiMode' value='none'>" + 
		//				"<PARAM name='volume' value='" + g_defaultWMVolume + "'>" + 
		//				"<embed ID='WM_PLAYER' type='application/x-mplayer2' pluginspage='http://www.microsoft.com/Windows/MediaPlayer/' " +
        //              "src='" + cdUrl + "' align='middle' width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "' ShowStatusBar='0' " +
		//	            "ShowCaptioning='0' ShowControls='0' ShowPositionControls='0' stretchToFit='0' windowlessVideo='0' EnableContextMenu='1' ></embed> " +
		//				"</OBJECT>" +
		//				"<script language='javascript' for='WM_PLAYER' EVENT='playStateChange(NewState)'>" +
		//				"    onGatewayWMPlayerPlayStateChange(NewState, document.WM_PLAYER, document.getElementById('STREAM_PLAY_STATE'));" +
		//				"</script>";
	}
	else if(isUrlWinVideo(cdUrl) || isUrlWinAudio(cdUrl))
	{
		var innerHTML = "";

        width = g_widthGatewayAdCDCover;
        height = g_heightGatewayAdCDCover;

		if(isUrlWinAudio(cdUrl)) 
		{
			width = 1;
			height = 1;
            if (!isUrlEmpty(cdImageUrl))
            {
			    innerHTML = "<a href='#' onclick='openClickThruWindowForGateway(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "' align='center' src='"+cdImageUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
            }			    
		}

		gatewayAdCDWindow = innerHTML + "<OBJECT ID='WM_PLAYER' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6' width='" + width + "' height='" + height + "'>"+
						"<PARAM name='URL' value='" + cdUrl +"'>" +
						"<PARAM name='autoStart' value='1'>" + 
						"<PARAM name='mute' value='0'>" +
						"<PARAM name='enableContextMenu' value='1'>" +
                        "<PARAM name='windowlessVideo' value='1'>" +
						"<PARAM name='uiMode' value='none'>" + 
						"<PARAM name='volume' value='" + g_defaultWMVolume + "'>" + 
						"<embed ID='WM_PLAYER' type='application/x-mplayer2' pluginspage='http://www.microsoft.com/Windows/MediaPlayer/' " +
                        "src='" + cdUrl + "' align='middle' width='" + width + "' height='" + height + "' ShowStatusBar='0' " +
			            "ShowCaptioning='0' ShowControls='0' ShowPositionControls='0' stretchToFit='0' windowlessVideo='0' EnableContextMenu='1' ></embed> " +
						"</OBJECT>" +
						"<script language='javascript' for='WM_PLAYER' EVENT='playStateChange(NewState)'>" +
						"    onGatewayWMPlayerPlayStateChange(NewState, document.WM_PLAYER, document.getElementById('STREAM_PLAY_STATE'));" +
						"</script>" +
                        "<script language='javascript' for='WM_PLAYER' EVENT='error()'>" +
                        "    onGatewayWMPlayerError();" + 
                        "</script>";
	}
	else if (isUrlEmpty(cdUrl))
	{
		gatewayAdCDWindow = "&nbsp;";
	}
	else 
	{
		gatewayAdCDWindow = "<table width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "' style='border-width: 0px;'><tr><td align='center' width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "' cellpadding='0' cellspacing='0' style='border-width: 0px; padding:0px'><iframe name='iframeBanner' align='middle' width='" + g_widthGatewayAdCDCover + "' height='" + g_heightGatewayAdCDCover + "' src='" + cdUrl + "' scrolling='no' border='0' frameborder='0'>Your browser does not support inline frames or is currently configured not to display inline frames.</iframe></td></tr></table>";
	}


	//for Banner window
	var gatewayAdBannerWindow = "";
	if(isUrlImage(bannerUrl))
	{
		gatewayAdBannerWindow = "<a href='#' onclick='openClickThruWindowForGateway(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img align='center' width='" + g_widthGatewayAdBanner + "px' height='" + g_heightGatewayAdBanner + "' src='"+bannerUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
	}
	else if(isUrlFlash(bannerUrl)) 
	{
		gatewayAdBannerWindow = "<center><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='" + g_widthGatewayAdBanner + "' height='" + g_heightGatewayAdBanner + "'><param name='movie' value='" + bannerUrl + "'><param name='WMODE' VALUE='transparent'><embed src='" + bannerUrl + "' width='" + g_widthGatewayAdBanner + "' height='" + g_heightGatewayAdBanner + "' wmode='transparent'></embed></object></center>";
	}
	else if (isUrlEmpty(bannerUrl))
	{
		gatewayAdBannerWindow = "";
	}
	else 
	{
		gatewayAdBannerWindow = "<center><table width='" + g_widthGatewayAdBanner + "' height='" + g_heightGatewayAdBanner + "' style='border-width: 0px;'><tr><td align='center' width='" + g_widthGatewayAdBanner + "' cellpadding='0' cellspacing='0' style='border-width: 0px; padding:0px'><iframe name='iframeBanner' align='middle' width='" + g_widthGatewayAdBanner + "' height='" + g_heightGatewayAdBanner + "' src='" + bannerUrl + "' scrolling='no' border='0' frameborder='0'>Your browser does not support inline frames or is currently configured not to display inline frames.</iframe></td></tr></table></center>";
	}
    
    var gatewayHTML = "<table style='border-width: 0px;' cellpadding='0' cellspacing='0' align='center'>";
    
    try
    {
        gatewayHTML = gatewayHTML + "<tr><td align='center' cellpadding='0' cellspacing='0' style='border-width: 0px; padding:0px'>" + gatewayAdCDWindow + "</td></tr>";
            
        loadBannerGateway(bannerUrl, clickUrl);  	
        
        var divGW_AdInfo = document.getElementById(g_dvGATEWAY_AD_INFO); 
        var divStream_StateInfo = document.getElementById(g_dvSTREAM_PLAY_STATE); 

        if(g_ShowGatewayAdInfo)
        {
            divGW_AdInfo.innerHTML = "<center>" + g_GatewayShowingText + "</center>";
            divGW_AdInfo.style.visibility = "visible";

            if(isBrowser.ie && g_ShowSTREAM_PLAY_STATE) 
            {
                divStream_StateInfo.style.visibility = "hidden";
            }
        }
        else
        {
            divGW_AdInfo.style.visibility = "hidden";

            if(isBrowser.ie && g_ShowSTREAM_PLAY_STATE) 
            {
                divStream_StateInfo.style.visibility = "visible";
            }
        }
    }
    catch (e)
    {
    }

    gatewayHTML = gatewayHTML + "</table>";

    div.innerHTML = gatewayHTML;

    div.style.visibility = "visible";
}

function isUrlImage(url) 
{
	var regExp = /(gif|jpg|png)$/i ;
    if(url != "") 
    {
        return regExp.test(url);
    }

    return false;
}

function isUrlFlash(url) 
{
	var regExp = /(swf)$/i ;
    if(url != "") 
    {
        return regExp.test(url);
    }

    return false;
}

function isUrlWinVideo(url)  
{
	var regExp = /(wmv|asf|asx)$/i ;
    if(url != "") 
    {
        return regExp.test(url);
    }

    return false;
}

function isUrlWinAudio(url) 
{
	var regExp = /(wma|mp3|asf|asx)$/i ;
    if(url != "") 
    {
        return regExp.test(url);
    }

    return false;
}

function isUrlEmpty(url) 
{
	if(url == null || url == "" || url == "http://")
	{
		return true;
	}

	return false;
}

var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() 
{
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) 
    {
		try 
        {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) 
        {
			continue;
		}
		break;
	}
	return xmlhttp;
}

function createXMLParser(xmlText) 
{
	xmlText = xmlText.replace(/&/g, "&amp;"); 

    var xmlDoc = false;
    
    if(isBrowser.ie) 
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(xmlText);
        while(xmlDoc.readyState != 4) 
        {
        }
    }
    else 
    {
        //xmlparser = document.implementation.createDocument("","",null);
        var xmlparser=new DOMParser();
        var xmlDoc = xmlparser.parseFromString(xmlText,"text/xml");
    }

    return xmlDoc;
}

function getNodeTagValue(xmlNode)
{
    var nodeTagValue = "";

    //nodeTagValue = xmlNode.nodeTypedValue;
    if(xmlNode.childNodes.length > 0) 
    {
        try
        {
            nodeTagValue = xmlNode.childNodes[0].nodeValue;
        }
        catch (e)
        {
            nodeTagValue = "";
        }
    }

    return nodeTagValue;
}

function displayAdSyncBanners()
{	
    try
    {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {

                var xmldoc = http_request.responseXML;

                var nodeText = xmldoc.getElementsByTagName("requestAdInfoResult")[0].childNodes[0].nodeValue;
                
                var adXmlDoc = createXMLParser(nodeText);
                
                var nodeBannerUrl = "";
                var nodeCdUrl = "";
                var nodeClickUrl = "";
                var targetSpot = "N";
               
                var xmlDoc =adXmlDoc.documentElement;
                var i;
                
                if(xmlDoc != null)
                {
                    for(i=0; i<xmlDoc.childNodes.length; i++)
                    {
                        if(xmlDoc.childNodes[i].nodeName == "BannerUrl")
                        {
                            nodeBannerUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                        }
                        else if(xmlDoc.childNodes[i].nodeName == "CdUrl")
                        {
                            nodeCdUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                        }
                        else if(xmlDoc.childNodes[i].nodeName == "ClickUrl")
                        {
                            nodeClickUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                        }
                        else if(xmlDoc.childNodes[i].nodeName == "TargetSpot")
                        {
                            targetSpot = getNodeTagValue(xmlDoc.childNodes[i]);
                        }
                    }
                }

                if(targetSpot == "Y")
                {
                    //debugMsg("TargetSpot Ad detected.");
                    loadTargetSpot();
                }
                else
                {
                    //debugMsg("Non-TargetSpot Ad detected.");
                    loadBanner(nodeBannerUrl, nodeClickUrl);
                    loadCD(nodeCdUrl, nodeClickUrl, "");
                }
                try
                {
                    postAdReplacement();
                }
                catch (ee)
                {
                }
            }
        }       
    }
    catch (e)
    {
    }
}

function requestAdInfo(adid)
{
    try
    {
        http_request = createXMLHTTPObject();
        
        if (!http_request) {
            return false;
        }

        var requestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><requestAdInfo xmlns=\"http://tempuri.org/\"><adId>" + adid + "</adId></requestAdInfo></soap:Body></soap:Envelope>";

        http_request.onreadystatechange = displayAdSyncBanners;
        http_request.open("POST", "/Player/Service/PlayerService.asmx", true);   
        http_request.setRequestHeader("Content-Type", "text/xml");    
        http_request.setRequestHeader("SOAPAction", "http://tempuri.org/requestAdInfo"); 
        http_request.send(requestBody);

        g_NowPlayInfo.lineId = adid;
    }
    catch (e1)
    {
    }

    try
    {
    	http_request_adImp = createXMLHTTPObject();
        if (http_request_adImp) {
            var requestBodyAdImp = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><insertAdImpression xmlns=\"http://tempuri.org/\"><adId>" + adid + "</adId><stationId>" + g_stationId + "</stationId></insertAdImpression></soap:Body></soap:Envelope>";

            http_request_adImp.onreadystatechange = adImpressionInserted;
            http_request_adImp.open("POST", "/Player/Service/PlayerService.asmx", true);   
            http_request_adImp.setRequestHeader("Content-Type", "text/xml");    
            http_request_adImp.setRequestHeader("SOAPAction", "http://tempuri.org/insertAdImpression"); 
            http_request_adImp.send(requestBodyAdImp);
        }
    }
    catch (e2)
    {
    }
}

function adImpressionInserted()
{
    try
    {
        if (http_request_adImp.readyState == 4) {
            if (http_request_adImp.status == 200) {
            
            }
        }    	
    }
    catch (e)
    {
    }
}

function displayGatewayAd()
{
    try
    {
        if (http_request_gw.readyState == 4) {
            if (http_request_gw.status == 200) {
                
                var nodeGatewayId = -1;
                var nodeBannerUrl = "";
                var nodeCdUrl = "";
                var nodeCdFolder = "";
                var nodeCdImageUrl = "";
                var nodeDuration = 30;
                var nodeClickUrl = "";

                var xmldoc = http_request_gw.responseXML;

                var nodeText = xmldoc.getElementsByTagName("requestGatewayAdInfoResult")[0].childNodes[0].nodeValue;

                var adXmlDoc = createXMLParser(unescape(nodeText));
                //while(adXmlDoc.readyState != 4) {}; 
                
                var xmlDoc =adXmlDoc.documentElement;
                var i;
                for(i=0; i<xmlDoc.childNodes.length; i++)
                {
                    if(xmlDoc.childNodes[i].nodeName == "GatewayId")
                    {
                        nodeGatewayId = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "Banner")
                    {
                        nodeBannerUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "Media")
                    {
                        nodeCdUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "Folder")
                    {
                        nodeCdFolder = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "MediaImage")
                    {
                        nodeCdImageUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "Duration")
                    {
                        nodeDuration = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "Link")
                    {
                        nodeClickUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                    }  
                }
                
                if(parseInt(nodeGatewayId) > 0) 
                {		
                    g_GatewayId = parseInt(nodeGatewayId);

                    var regExp = /^(http|https|www)/i ;
                    
                    //the following load gateway banner on normal ad banner position
                    //loadBanner(nodeBannerUrl, nodeClickUrl);

                    var isUrl = false;
                    if(nodeCdUrl != "") 
                    {
                        isUrl = regExp.test(nodeCdUrl);
                    }				
                    if(isUrl == false )
                    {
                        if (parseInt(nodeCdFolder) < 0)
                        {
                            nodeCdUrl = "http://content.streamaudio.com/GatewayAds/owner/" + Math.abs(parseInt(nodeCdFolder)) + "/" + nodeCdUrl;					
                        }
                        else
                        {
                            nodeCdUrl = "http://content.streamaudio.com/GatewayAds/" + nodeCdFolder + "/" + nodeCdUrl;					                        
                        }                        
                    }
                                        
                    if(isUrlWinVideo(nodeCdUrl) || isUrlWinAudio(nodeCdUrl)) 
                    {
                        nodeCdUrl = nodeCdUrl.replace("content.streamaudio.com", "archive.streamaudio.com");
                        g_GatewayIsWM = true;
                    }
                    else
                    {
                        g_GatewayIsWM = false;
                    }
                    
                    g_GatewayEstDuration = parseInt(nodeDuration);
                    g_GatewayEstDuration2ndWait = g_GatewayEstDuration / 4;

                    //the following load gateway cd on normal ad cd position
                    //loadCD(nodeCdUrl, nodeClickUrl, nodeCdImageUrl);

                    loadGatewayAd(nodeBannerUrl, nodeCdUrl, nodeCdImageUrl, nodeClickUrl);

                    displayGatewayPlayState(true, parseInt(nodeDuration) + g_GatewayEstDurationAdjustment);
                }
                else 
                {
                    g_GatewayIsWM = false;

                    displayGatewayPlayState(false, -1);
                }
            }
        }
    }
    catch (e)
    {
    }
}

function requestGatewayInfo(stationId, ownerId, ipAddress)
{
    try
    {
        if (g_Archive == true && isBrowser.ie)
        {
            APObject.stop(document.AUDIO_PLAYER);
            document.AUDIO_PLAYER.settings.autoStart = false;
        }    	
    }
    catch (e)
    {
    }

    try
    {          
        if(g_SkipGateway == true)
        {
            displayGatewayPlayState(false, -1);
        }
        else
        {
            http_request_gw = createXMLHTTPObject();
            
            if (!http_request_gw) {
                return false;
            }

            var requestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><requestGatewayAdInfo xmlns=\"http://tempuri.org/\"><stationId>" + stationId + "</stationId><ownerId>" + ownerId + "</ownerId><ipAddress>" + ipAddress + "</ipAddress></requestGatewayAdInfo></soap:Body></soap:Envelope>";

            http_request_gw.onreadystatechange = displayGatewayAd;
            http_request_gw.open("POST", "/Player/Service/PlayerService.asmx", true);   
            http_request_gw.setRequestHeader("Content-Type", "text/xml");    
            http_request_gw.setRequestHeader("SOAPAction", "http://tempuri.org/requestGatewayAdInfo"); 
            http_request_gw.send(requestBody);
        }
    }
    catch (ee)
    {
    }
}

function startProcess()
{       
    try
    {
    	preStart();
    }
    catch (e1)
    {
    }

    if(isBrowser.nav)
    {
        document.getElementById(g_dvSTREAM_PLAYER).innerHTML = "";
    }
	checkPlayerRegistration();

    try
    {
        setTimeout("getPlayerStreamTimeout()", 10 * 1000);
   
    	postStart();
    }
    catch (e2)
    {
    }    
}

function displayGatewayPlayState(gatewayVisible, gatewayDuration)
{
	if(gatewayVisible == true) 
	{
		g_GatewayShowing = true;
        if(isBrowser.ie) 
        {
		    APCtrl.mute(true);
        }
		g_GatewayTimerID = setTimeout("onGatewayTimerUp(1)", (gatewayDuration * 1000)); 
	}
	else
	{
		onGatewayTimerUp(2);
	}
}

function onGatewayTimerUp(timeUpCounter)
{
    try
    {
        if(timeUpCounter == 1)
        {
            clearTimeout(g_GatewayTimerID); 
            g_GatewayTimerID = setTimeout("onGatewayTimerUp(2)", (g_GatewayEstDuration2ndWait * 1000)); 
            
            var closeGatewayDiv = document.getElementById(g_dvGATEWAY_AD_INFO);
            closeGatewayDiv.innerHTML = "<center><a href='' onclick='closeGatewayAdByUser(); return false;' style='" + g_styleGATEWAY_INFO + "'>Close Advertisement</a></center>";
        }
        else 
        {
            //gateway finish
            g_GatewayShowing = false;
            clearTimeout(g_GatewayTimerID); 

            closeGatewayAdByUser();
        }
    }
    catch (e)
    {
    }
}

function closeGatewayAdByUser()
{
	g_GatewayShowing = false;
	clearTimeout(g_GatewayTimerID); 

	if(g_GatewayIsWM == false || isBrowser.nav || g_GatewayWMStarted == true)  
	{
        if(g_ArchiveVideo == true)
        {
            try
            {
                g_widthStreamPlayer = g_widthStreamArchiveVideoPlayer;
                g_heightStreamPlayer = g_heightStreamArchiveVideoPlayer;

                var divStreamPlayer = document.getElementById(g_dvSTREAM_PLAYER);
                divStreamPlayer.style.top = g_xposStreamArchiveVideoPlayer + "px";
                divStreamPlayer.style.left = g_yposStreamArchiveVideoPlayer + "px";
                divStreamPlayer.style.zIndex = 999;
            }
            catch (e)
            {
            }
        }

        if(g_Archive == true && isBrowser.ie)
        {
            APObject.play(document.AUDIO_PLAYER);
        }

		if(isBrowser.nav)
		{
            //debugMsg("is browser nav " + g_widthStreamPlayer + " x " + g_heightStreamPlayer);
            var innerHTMLForStreamPlayer;
            
			innerHTMLForStreamPlayer = "" +
				"<table border='0' cellpadding='0' cellspacing='0' align='center' width='" + g_widthStreamPlayer + " '>" +
				"    <tr>" +
				"        <td align='center'>" +
                "            <OBJECT ID='AUDIO_PLAYER' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6' width='" + g_widthStreamPlayer + "px' height='" + g_heightStreamPlayer + "px'>" +
                "                <PARAM name='URL' value='" + g_mmsURL + "'>" +
                "                <PARAM name='autoStart' value='1'>" +
                "                <PARAM name='mute' value='0'>" +
                "                <PARAM name='enableContextMenu' value='0'>" +
                "                <PARAM name='windowlessVideo' value='1'>" +
                "                <PARAM name='volume' value='" + g_defaultWMVolume + "'>" +
                "                <embed ID='AUDIO_PLAYER' type='application/x-mplayer2' " +
                "                    pluginspage = 'http://www.microsoft.com/Windows/MediaPlayer/'" +
                "                    src='" + g_mmsURL + "' align='middle'" +
                "                    width='" + g_widthStreamPlayer + "'" +
                "                    height='" + g_heightStreamPlayer + "'" +
				"                    ShowStatusBar='1' " +
				"                    ShowControls='1' " +
				"                    EnableContextMenu='1' " +
                "                    windowlessVideo='0' " +  
				"                    autoStart='1'>" +
                "            </OBJECT>" +
				"        </td>" +
				"    </tr>";

            var streamPlayStateDiv = document.getElementById(g_dvSTREAM_PLAY_STATE);
            try
            {
                if(streamPlayStateDiv)
                {
                    //already has streamPlayStateDiv
                    innerHTMLForStreamPlayer = innerHTMLForStreamPlayer + "</table>"; 
                }
                else
                {
                    innerHTMLForStreamPlayer = innerHTMLForStreamPlayer +
                    "    <tr>" +
                    "        <td align='center'>" +
                    "           <center>" +
                    "           <span id='" + g_dvSTREAM_PLAY_STATE + "' style='" + g_styleSTREAM_PLAY_STATE + "'></span>" + 
                    "           </center>" +
                    "        </td>" +
                    "    </tr>" +
                    "</table>"; 
                }
            }
            catch (e)
            {
                innerHTMLForStreamPlayer = innerHTMLForStreamPlayer + "</table>"; 
            }

            document.getElementById(g_dvSTREAM_PLAYER).innerHTML = innerHTMLForStreamPlayer;

            streamPlayStateDiv = document.getElementById(g_dvSTREAM_PLAY_STATE);

            if (g_ShowSTREAM_PLAY_STATE)
            {
                streamPlayStateDiv.style.visibility = "visible";
            }
            else
            {
                streamPlayStateDiv.style.visibility = "hidden";
            }            	
            

			startStreamPlayerMonitorTimer();

            //debugMsg("close gateway ad");
		}
		else
		{
            //debugMsg("g_ShowWMPAudioPlayer " + g_ShowWMPAudioPlayer);
			if(g_ShowWMPAudioPlayer) 
			{
				document.AUDIO_PLAYER.width = g_widthStreamPlayer;
				document.AUDIO_PLAYER.height = g_heightStreamPlayer;
			}
			else
			{
				document.AUDIO_PLAYER.width = 1;
				document.AUDIO_PLAYER.height = 1;
			}
		}

        hideGatewayAd();
        loadDefaultCDAndBanner();
	}
}

function startStreamPlayerMonitorTimer()
{
    if(isBrowser.nav)
    {
	    requestAdInfoFromDb();
    }
    else
    {
        clearTimeout(g_StreamPlayerMonitorTimerID);
    }
}

var http_request_db;
var http_request_registration;
var http_request_adImp;

function registerListener(station, zip, email, gender, yearBorn, thirdParty)
{
    try
    {
        if(email == "") 
        {   
            alert("Email cannot be blank!");
            return false;
        }
        else
        {
            http_request_registration = createXMLHTTPObject();

            if (!http_request_registration) {
                return false;
            }

            var requestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><registerListener xmlns=\"http://tempuri.org/\"><station>" + station + "</station><zip>" + zip + "</zip><email>" + email + "</email><gender>" + gender + "</gender><yearBorn>" + yearBorn + "</yearBorn><thirdParty>" + thirdParty + "</thirdParty></registerListener></soap:Body></soap:Envelope>";
            
            http_request_registration.onreadystatechange = function() 
            {
                if (http_request_registration.readyState == 4) 
                {
                    if (http_request_registration.status == 200) 
                    {
                        //var xml = http_request_registration.responseText; 
                    }
                }
            };
            http_request_registration.open("POST", "/Player/Service/PlayerService.asmx", true);   
            http_request_registration.setRequestHeader("Content-Type", "text/xml");    
            http_request_registration.setRequestHeader("SOAPAction", "http://tempuri.org/registerListener"); 
            http_request_registration.send(requestBody);

            return true;
        }    	
    }
    catch (ee)
    {
    }
}

/** This is for non-ie browser only **/
function requestAdInfoFromDb()
{
    try
    {
        if(isBrowser.nav)
        {
            http_request_db = createXMLHTTPObject();
            
            if (!http_request_db) {
                return false;
            }

            var requestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><requestNowPlayInfoFromDb xmlns=\"http://tempuri.org/\"><callLetter>" + g_callLetter + "</callLetter></requestNowPlayInfoFromDb></soap:Body></soap:Envelope>";

            http_request_db.onreadystatechange = onReceiveAdInfoFromDb;
            http_request_db.open("POST", "/Player/Service/PlayerService.asmx", true);   
            http_request_db.setRequestHeader("Content-Type", "text/xml");    
            http_request_db.setRequestHeader("SOAPAction", "http://tempuri.org/requestNowPlayInfoFromDb"); 
            http_request_db.send(requestBody);
        }    	
    }
    catch (ee)
    {
    }
}

function onReceiveAdInfoFromDb()
{
    try
    {
        if (http_request_db.readyState == 4 && isBrowser.nav) 
        {
            if (http_request_db.status == 200) 
            {
                var xml = http_request_db.responseXML;
                
                var nodeText = xml.getElementsByTagName("requestNowPlayInfoFromDbResult")[0].childNodes[0].nodeValue;
                
                var adXmlDoc = createXMLParser(nodeText);

                var xmlDoc =adXmlDoc.documentElement;
                
                var nodeLineId = -1;
                var nodeBannerUrl = "";
                var nodeCdUrl = "";
                var nodeClickUrl = "";
                var nodeCurSong = "";
                var nodeCurArtist = "";
                var nodeEstDuration = 0;

                var i;
                for(i=0; i<xmlDoc.childNodes.length; i++)
                {
                    if(xmlDoc.childNodes[i].nodeName == "LineID")
                    {
                        nodeLineId = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "BannerUrl")
                    {
                        nodeBannerUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "CdUrl")
                    {
                        nodeCdUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "ClickUrl")
                    {
                        nodeClickUrl = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "CurSong")
                    {
                        nodeCurSong = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "CurArtist")
                    {
                        nodeCurArtist = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "EstDuration")
                    {
                        nodeEstDuration = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                }
                
                var bToUpdateSync = false;

                if(isNaN(nodeEstDuration))
                {
                    nodeEstDuration = 0;
                }

                if(parseInt(nodeEstDuration) > 0) 
                {
                    bToUpdateSync = true;
                    /***
                    if(nodeLineId > 0) 
                    { 
                        //is a commercial ad
                        debugMsg(nodeLineId + " " + g_NowPlayInfo.lineId);

                        if(parseInt(nodeLineId) == g_NowPlayInfo.lineId)
                        {
                            bToUpdateSync = false;
                        }
                        else
                        {
                            bToUpdateSync = true;
                        }
                    }
                    else 
                    {
                        //is normal nowplay
                        if(nodeCurSong != g_NowPlayInfo.curSong || nodeCurArtist != g_NowPlayInfo.curArtist)
                        {
                            bToUpdateSync = true;
                        }
                        else
                        {
                            bToUpdateSync = false;
                        }
                    }
                    ***/
                }
              
                g_NowPlayInfo.lineId = nodeLineId;
                //g_NowPlayInfo.bannerUrl = nodeBannerUrl;
                //g_NowPlayInfo.cdUrl = nodeCdUrl;
                g_NowPlayInfo.clickUrl = nodeClickUrl;
                g_NowPlayInfo.curSong = nodeCurSong;
                g_NowPlayInfo.curArtist = nodeCurArtist;
                g_NowPlayInfo.estDuration = parseInt(nodeEstDuration);
                g_NowPlayInfo.spotRuntime = parseInt(nodeEstDuration);
                
                if(bToUpdateSync == true) 
                {
                    var scType = "TEXT";
                    var scParam = "type=SONG&runtime=" + nodeEstDuration + "&adid=" + nodeLineId +"&currentSong=" + nodeCurSong + "&currentArtist=" + nodeCurArtist + "&album=&label=";
                    
                    APObject.onMediaPlayerScriptCommand(scType, scParam, document.getElementById("NOWPLAY_LINE1"), document.getElementById("NOWPLAY_LINE2"));

                    g_StreamPlayerMonitorInterval = parseInt(g_NowPlayInfo.estDuration);
                }
                else 
                {
                    var estDuration = parseInt(g_NowPlayInfo.estDuration);

                    if(estDuration == 0)
                    {
                        g_StreamPlayerMonitorInterval = g_StreamPlayerMonitorInterval + g_StreamPlayerMonitorIntervalIncrement;
                        if(g_StreamPlayerMonitorInterval > g_StreamPlayerMonitorMaxInterval)
                        {
                            g_StreamPlayerMonitorInterval = 5;
                        }
                    }
                    else 
                    {
                        g_StreamPlayerMonitorInterval = estDuration;
                    }
                }
              
                clearTimeout(g_StreamPlayerMonitorTimerID);
                g_StreamPlayerMonitorTimerID = setTimeout("startStreamPlayerMonitorTimer()", (g_StreamPlayerMonitorInterval * 1000)); 
            }
        }
    }
    catch (e)
    {
    }
}

function checkPlayerRegistration()
{
	PlayerRegistrationCookie = cookieRead(g_PlayerRegistrationCookie);

	if (PlayerRegistrationCookie!=null && PlayerRegistrationCookie!="")
	{
        getListenerCookie();

		displayPlayerRegistration(false);
		setAllDivOpacityExceptPlayerRegistration(100);
        
		requestGatewayInfo(g_stationId, g_ownerId, g_ipAddress);

        g_PlayerRegistrationOk = true;
	}
	else 
	{
		setAllDivOpacityExceptPlayerRegistration(40);
		displayPlayerRegistration(true);
    }
}

function getListenerCookie()
{
    try
    {
        g_ListenerCookieZip = cookieRead(g_PlayerRegistrationCookieZip);
        if(g_ListenerCookieZip == null || g_ListenerCookieZip == "")
        {
            g_ListenerCookieZip = "0";
        }

        g_ListenerCookieGender = cookieRead(g_PlayerRegistrationCookieGender);
        if(g_ListenerCookieGender == null || g_ListenerCookieGender == "")
        {
            g_ListenerCookieGender = "0";
        }
        else
        {
            if(g_ListenerCookieGender == "FEMALE")
            {
                g_ListenerCookieGender = "2";
            }
            else if(g_ListenerCookieGender == "MALE")
            {
                g_ListenerCookieGender = "1";
            }
            else
            {
                g_ListenerCookieGender = "0";
            }
        }
    }
    catch (e)
    {
    }
}

function displayPlayerRegistration(show)
{
	if(show == true) 
	{
        if(g_ShowPlayerRegistration == false)
        {
            setAllDivOpacityExceptPlayerRegistration(100);
            
            requestGatewayInfo(g_stationId, g_ownerId, g_ipAddress);
        }
        else 
        {
            document.getElementById(g_dvPLAYER_REG).style.visibility = "visible";
        }
	}
	else
	{
		document.getElementById(g_dvPLAYER_REG).style.visibility = "hidden";
	}
}

function displaySendEmail(sendMailId, show)
{
    var sendMailDiv = document.getElementById(sendMailId);

    if(show == true)
    {
        sendMailDiv.style.visibility = "visible";

        setAllDivOpacityExceptPlayerRegistration(40);
    }
    else
    {
        sendMailDiv.style.visibility = "hidden";

        setAllDivOpacityExceptPlayerRegistration(100);
    }
}

function onClickSendMailSubmit(sendMailId)
{
    var SM_Subject = "Check This Radio Station Out!";

	var SM_Name = document.getElementById("SM_Name").value;
	var SM_Email = document.getElementById("SM_Email").value;
	var SM_FriendEmail = document.getElementById("SM_FriendEmail").value;
	var SM_Message = document.getElementById("SM_Message").value;

    SM_Message = SM_Message.replace(/&/g, "&amp;"); 

    if(sendEmailToFriend(g_callLetter, SM_Name, SM_Email, SM_FriendEmail, SM_Subject, SM_Message))
    {
        displaySendEmail(sendMailId, false);
    }
}

function onClickSendMailClose(sendMailId)
{
    displaySendEmail(sendMailId, false);
}

var http_request_sendmail;

function sendEmailToFriend(station, name, email, friendEmail, subject, message)
{
    try  
    {
        if(email == "" || friendEmail == "") 
        {   
            alert("Email cannot be blank!");
            return false;
        }
        else
        {
            http_request_sendmail = createXMLHTTPObject();

            if (!http_request_sendmail) {
                return false;
            }

            var requestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><sendEmailToFriend xmlns=\"http://tempuri.org/\"><station>" + station + "</station><name>" + name + "</name><email>" + email + "</email><friendEmail>" + friendEmail + "</friendEmail><subject>" + subject + "</subject><messageBody>" + message + "</messageBody></sendEmailToFriend></soap:Body></soap:Envelope>";

            http_request_sendmail.onreadystatechange = function() 
            {
                if (http_request_sendmail.readyState == 4) 
                {
                    if (http_request_sendmail.status == 200) 
                    {
                        //var xml = http_request_registration.responseText; 
                    }
                }
            };
            http_request_sendmail.open("POST", "/Player/Service/PlayerService.asmx", true);   
            http_request_sendmail.setRequestHeader("Content-Type", "text/xml");    
            http_request_sendmail.setRequestHeader("SOAPAction", "http://tempuri.org/sendEmailToFriend"); 
            http_request_sendmail.send(requestBody);

            return true;
        }        
    }
    catch (ee)
    {
    }
}

function startStreamTimeout()
{
    try 
    {
        clearTimeout(g_StreamTimeoutTimerID); 
        
        if(g_StreamTimeoutEnabled)
        {    
            g_StreamTimeoutTimerID = setTimeout("onStreamTimeout()", g_StreamTimeoutDuration); 
        }
    }
    catch (e)
    {
    }
}

function onStreamTimeout()
{
    try 
    {
        g_StreamTimeoutCountdownDuration = g_StreamTimeoutCountdownDefaultDuration;
        
        clearTimeout(g_StreamTimeoutTimerID); 
        
        clearTimeout(g_StreamTimeoutCountdownTimerID);
        g_StreamTimeoutCountdownTimerID = setTimeout("onStreamTimeoutCountdown()", 1000);    
    }
    catch (e)
    {
    }
    
}

function onStreamTimeoutContinueStreaming()
{
    try 
    {
        clearTimeout(g_StreamTimeoutCountdownTimerID);
        
        clearTimeout(g_StreamTimeoutTimerID); 
        
        g_StreamTimeoutTimerID = setTimeout("onStreamTimeout()", g_StreamTimeoutDuration); 
        
        var div = document.getElementById("STREAM_TIMEOUT"); 
            
        if(div)
        {
            div.style.visibility = "hidden";
        }
    }
    catch (e)
    {
    }
}

function onStreamTimeoutCountdown()
{   
    try 
    {
        clearTimeout(g_StreamTimeoutCountdownTimerID);
    
        var div = document.getElementById("STREAM_TIMEOUT"); 
            
        if(div)
        {         
            div.style.visibility = "visible";
            
            var htmlContent = "<table border='0' cellpadding='3' cellspacing='3'>";
            
            if(g_StreamTimeoutCountdownDuration > 0)
            {
                htmlContent = htmlContent + "<tr><td style='font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif'>Thanks for listening! " + 
                            " Please verify you want to continue by clicking on the button below" + 
                            " or this session will automatically time out in <strong> " + 
                            g_StreamTimeoutCountdownDuration + 
                            "</strong> seconds." + 
                            "</td></tr>"  +
                            "<tr><td style='font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif'><br><input name='StreamTimeoutContinue' type='button' id='StreamTimeoutContinue'" + 
                            " onClick='javascript:onStreamTimeoutContinueStreaming()' value='Click here to keep streaming'></td></tr>";
                            
                g_StreamTimeoutCountdownDuration = g_StreamTimeoutCountdownDuration - 1;
                
                g_StreamTimeoutCountdownTimerID = setTimeout("onStreamTimeoutCountdown()", 1000);
            }
            else 
            {
                htmlContent = htmlContent + "<tr><td style='font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif'>Your streaming session has automatically timed out." +
                                " You can restart our stream by closing this window" + 
                                " and clicking the play button on the player. Thanks.</td></tr>";
                                
                APCtrl.stop(document.AUDIO_PLAYER);
            }
            
            htmlContent = htmlContent + "</table>";
            
            div.innerHTML = htmlContent;
        }
        else 
        {   
        }
    }
    catch (e)
    {
    }
}

function getPlayerStreamTimeout()
{
    try
    {
        http_request_playerStreamTimeout = createXMLHTTPObject();
               
        if (!http_request_playerStreamTimeout) {
            return false;
        }

        var requestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><getPlayStreamTimeout xmlns=\"http://tempuri.org/\"><stationId>" + parseInt(g_stationId) + "</stationId></getPlayStreamTimeout></soap:Body></soap:Envelope>";

        http_request_playerStreamTimeout.onreadystatechange = onReceivedPlayerStreamTimeout;
        http_request_playerStreamTimeout.open("POST", "/Player/Service/PlayerService.asmx", true);   
        http_request_playerStreamTimeout.setRequestHeader("Content-Type", "text/xml");    
        http_request_playerStreamTimeout.setRequestHeader("SOAPAction", "http://tempuri.org/getPlayStreamTimeout"); 
        http_request_playerStreamTimeout.send(requestBody);
        
    }
    catch (e)
    {
    }
}

function onReceivedPlayerStreamTimeout()
{
    try
    {
        if (http_request_playerStreamTimeout.readyState == 4) {
            if (http_request_playerStreamTimeout.status == 200) {
                                
                var streamTimeoutEnabled = 0;
                var streamTimeoutValue = -1;
                
                var xmldoc = http_request_playerStreamTimeout.responseXML;
                
                var nodeText = xmldoc.getElementsByTagName("getPlayStreamTimeoutResult")[0].childNodes[0].nodeValue;
                
                var adXmlDoc = createXMLParser(unescape(nodeText));
                //while(adXmlDoc.readyState != 4) {}; 
                
                var xmlDoc =adXmlDoc.documentElement;
                var i;
                for(i=0; i<xmlDoc.childNodes.length; i++)
                {
                    if(xmlDoc.childNodes[i].nodeName == "StreamTimeoutEnabled")
                    {
                        streamTimeoutEnabled = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                    else if(xmlDoc.childNodes[i].nodeName == "StreamTimeoutValue")
                    {
                        streamTimeoutValue = getNodeTagValue(xmlDoc.childNodes[i]);
                    }
                }
                         
                //streamTimeoutEnabled = 1;
                //streamTimeoutValue = 3;         
                     
                if(streamTimeoutEnabled == 1 && streamTimeoutValue > 0)
                {
                    g_StreamTimeoutDuration = streamTimeoutValue * 1000; //milliseconds

                    startStreamTimeout();
                }
            }
        }
    }
    catch (e)
    {
    }
}

function getQueryVariable(variable) 
{ 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) 
    { 
        var pair = vars[i].split("="); 
        if (pair[0].toLowerCase() == variable.toLowerCase()) 
        { 
            return pair[1].toLowerCase(); 
        } 
    } 
} 

function debugMsg(msg)
{
    
    try
    {
        if(g_debug)
        {
    	    document.getElementById("debugMsg").value = msg + "\r\n" + document.getElementById("debugMsg").value;
        }
    }
    catch (e)
    {
    }
}
-->