﻿function playAsset(theURL, programid) {
    g_openmusaftadroll = false;
    g_isPlaying = true;
    CloseMusicWindow();	
    g_selectedprgid = programid;
	g_paused = false;
	if (programid == 0) {
		if (typeof ActivateOverlays == 'function') { 
			ActivateOverlays();
		}		
		g_isPlaying = false;
	}
	else {
		//deactivate overlays so player shows loading status, they will be reactivated by play state
		//if its an audio program
		g_isPlaying = true;
		if (typeof DeactivateOverlays == 'function') {
            DeactivateOverlays();
        }
	}		 
	if (theURL != "") {
		if (theURL.indexOf("ls=y") != -1) {
			g_pf = "live";
		}
		else {
			g_pf = "od";
		}
	}
	
	g_musicPlaying = false;
	HandlePlayerAction('pa', '');
	
	IgnorePlayAfterBuffer = false;
	loadFile(theURL);
    LoadNowPlaying("p",programid,"n");

    g_adIdPlaying = "";
    g_adCheckId = "";

    if (programid != "")
	{
	    if (programid != 0) {
	        LogListeningAction("pswitch", '', '', '', '', '', '');
	        IncPlayCnt(programid);
	    }
	}
	
    return false;
}

function SchedulePrgClicked(theURL, programid) {
	//fired when a program is clicked from the schedule
	playAsset(theURL, programid);
    if (g_AutoPlayMode != 'O') {
        g_AutoPlayLiveS = true;
        if (g_AutoPlayMode != 'P') {
            g_AutoPlayMusicOn = true;
        }
    }
}

function playMusic(channelid, caller) {
    var theURL = g_MusicStreamUrl + "?musicchid=" + channelid;
    g_pmUrl = theURL;
    if (channelid != '') {
        g_musicchid = channelid;
        g_selectedprgid = "";
        g_paused = false;
		g_isPlaying = true;
        g_musicPlaying = true;
		HandlePlayerAction('pm', caller);
		if (typeof ActivateOverlays == 'function') {
            ActivateOverlays();
        }
		IgnorePlayAfterBuffer = false;
		g_npCallLoadFile = true;
		if (typeof LoadNowPlaying == 'function') {
		    LoadNowPlaying("m",g_musicchid,"n");
		}
		//loadfile will be called after nowplaying is refreshed
        g_adIdPlaying = "";
        g_adCheckId = "";
        LogListeningAction("pmusic",'','','','','',channelid);
    }
    else {
        g_paused = false;
		g_isPlaying = false;
        g_musicPlaying = false;
		HandlePlayerAction('pm', caller);
		CloseMusicWindow();
		//printTrace("playMusic blank channel id");
       	loadFile("");
       	g_npCallLoadFile = false;
       	if (typeof LoadNowPlaying == 'function') {
       	    LoadNowPlaying("", "", "n");
       	}
    }
    return false;

}	

function PlayMusicChannel(pup,purl,pupw,puph,bnhtml,blnprerolls,piseconds) {
	g_nextprgpnlactive = false;
	g_descpnlactive == false;
	g_rechkpisecs = false;
	if (g_npCallLoadFile == true) {
		g_pisecs = piseconds;			
	    if (pup == true) {
			g_purl = purl;
			g_pupw = pupw;
			g_puph = puph;					
			if (blnprerolls == true) {
				g_openmusaftadroll = true;
			    loadFile(g_pmUrl);
			}
			else {
				g_openmusaftadroll = false;
				loadFile("");
			    OpenMusicWindow(purl,pupw,puph,piseconds);
			}
	    }
	    else {
			g_purl = "";
			g_pupw = "";
			g_puph = "";			
		    CloseMusicWindow();
		    loadFile(g_pmUrl);
			StartInterstitialClock(g_musicchid,piseconds);
	    }
	    //SetBottomBannerAd(bnhtml);
	}
	else {
		HandleStreamTitle(g_MusicStreamTitle);
	}
	g_npCallLoadFile = false;
}

function Rp1MediaCenterLink(linkid) {
	g_openmusaftadroll = false;
	//SetBottomBannerAd('');
	g_isPlaying = true; 
	CloseMusicWindow();
	g_paused = false;
	ActivateOverlays();
	g_musicPlaying = false;
	HandlePlayerAction('pa', '');
	IgnorePlayAfterBuffer = false;
	
	loadFile( g_streambuilder + "?linkid=" + linkid);
	GetMediaCenterLinkValues(linkid);

	return false;	
}
	
function MediaCenterLinkPostSetup(linkid, playtype, itemid) {
//sets the needed ids of items playing since we dont' know when the items first start playing
//the GetMediaCenterLinkValues ajax function makes a call to this after getting its response
//playtype will be "asset" or "prg"
	var assetid = 0;
	var programid = 0;
	if (playtype == 'asset') {
		assetid = itemid;
	}
	else {
		programid = itemid;
		if (typeof LoadNowPlaying == 'function') {
	       	LoadNowPlaying("p",programid,"n");
       	}				
	}        

	g_adIdPlaying = "";
	g_adCheckId = "";
				
	if (programid != 0) {
		//CheckForScBdAds("scoreboard","","",programid,"audio","n",g_pf,"","");
	}
	else {
		//hiderating();
	}
		
	if (programid != "")
	{
		if (programid != 0) {
			LogListeningAction("pswitch",'','','','','','');
			IncPlayCnt(programid);
			//showrating();
			//resetrating();
		}
		else {
			//hiderating();
		}
	}			
}

function GetMediaCenterLinkValues(linkid) {
	var dataSource = pathtoajaxcalls + "GetMediaCenterLinkValues.asp?linkid=" + linkid;
	var XMLHttpRequestObject = false; 
	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
	}	
	
	if(XMLHttpRequestObject) {
	  XMLHttpRequestObject.open("GET", dataSource); 

	  XMLHttpRequestObject.onreadystatechange = function() 
	  { 
		if (XMLHttpRequestObject.readyState == 4 && 
		  XMLHttpRequestObject.status == 200) { 
			var r = XMLHttpRequestObject.responseText; 
			if (r != 'n')
			{
				try {
					eval(r);
					}
				catch(exception1)
				{
				}
			}		
						
			delete XMLHttpRequestObject;
			XMLHttpRequestObject = null;	
		} 
	  } 

	  XMLHttpRequestObject.send(null); 
	}
}


function HandlePlayerAction(action, caller) {
	var btnPlayMusic = gid("btnPlayMusic");
	var btnPlayProgram = gid("btnPlayProgram");
	var btnSwitchToMusic = gid("btnSwitchToMusic");
	var btnSwitchToProgram = gid("btnSwitchToProgram");
	var btnPlayVOD = gid("btnPlayVOD");
	var btnStop = gid("btnStop");
	var blnAllowMusic = true;
	var blnAllowPrgs = true;
		
	if (g_AutoPlayMode == 'B') {
	}
	else if (g_AutoPlayMode == 'M') {
		blnAllowPrgs = false;
	}
	else if (g_AutoPlayMode == 'P') {
		blnAllowMusic = false;
	}
	else if (g_AutoPlayMode == 'O') {
	}
	
	if (g_AllowMusic == false) {
		blnAllowMusic = false;
	}

	if (g_musicPlaying) {
		if (g_liveavailable) {
			if (blnAllowPrgs) {
				EditPlayerActionButton(btnSwitchToProgram, 'show');
			}
			else {
				EditPlayerActionButton(btnSwitchToProgram, 'hide');
			}
			EditPlayerActionButton(btnStop, 'show');
			EditPlayerActionButton(btnPlayVOD, 'hide');
			EditPlayerActionButton(btnPlayMusic, 'hide');
			EditPlayerActionButton(btnPlayProgram, 'hide');
			EditPlayerActionButton(btnSwitchToMusic, 'hide');
		}
		else {
		    EditPlayerActionButton(btnSwitchToProgram, 'hide');
		    if (g_defprgid != '') {
		        EditPlayerActionButton(btnPlayVOD, 'show');
		    }
			EditPlayerActionButton(btnStop, 'show');
			EditPlayerActionButton(btnPlayMusic, 'hide');
			EditPlayerActionButton(btnPlayProgram, 'hide');
			EditPlayerActionButton(btnSwitchToMusic, 'hide');
		}
	}
	else if(g_liveavailable && g_isPlaying == true && g_pf == "live") {	//playing livestream
		EditPlayerActionButton(btnSwitchToProgram, 'hide');
		EditPlayerActionButton(btnStop, 'show');
	    EditPlayerActionButton(btnPlayVOD, 'hide');
		EditPlayerActionButton(btnPlayMusic, 'hide');
		EditPlayerActionButton(btnPlayProgram, 'hide');
		if (blnAllowMusic) {	
			EditPlayerActionButton(btnSwitchToMusic, 'show');
		}
		else {
			EditPlayerActionButton(btnSwitchToMusic, 'hide');
		}
	}
	else {
		EditPlayerActionButton(btnSwitchToProgram, 'hide');
		EditPlayerActionButton(btnStop, 'hide');
		EditPlayerActionButton(btnSwitchToMusic, 'hide');
		if (g_liveavailable) {
			if (blnAllowPrgs) {
				EditPlayerActionButton(btnPlayProgram, 'show');
			}
			else {
				EditPlayerActionButton(btnPlayProgram, 'hide');
			}
		}
		else {
			EditPlayerActionButton(btnPlayProgram, 'hide');

        }
        if (g_defprgid != '' && g_isPlaying == false) {
            EditPlayerActionButton(btnPlayVOD, 'show');
        }
        else {
            EditPlayerActionButton(btnPlayVOD, 'hide');
        }
		if (blnAllowMusic) {
			EditPlayerActionButton(btnPlayMusic, 'show');
		}
		else {
			EditPlayerActionButton(btnPlayMusic, 'hide');
		}
	}		
}

function EditPlayerActionButton(btn, action) {
    if (btn) {
	    if (action == 'hide') {
		    btn.style.display = 'none';
	    }
	    else {
		    btn.style.display = '';
	    }
    }
}

function LogListeningAction(action, prgid, ctype, pformat, bitrate, adid, mchid) {
    var dataSource = pathtoajaxcalls + "logListeningAction.asp?rSid=" + prgsch_stationid;
    dataSource += '&prgid=' + prgid;
    dataSource += '&act=' + action;
    dataSource += '&ctype=' + ctype;
    dataSource += '&pformat=' + pformat;
    dataSource += '&lisid=' + g_ListenerId;
    dataSource += '&pnum=' + g_PlayerNumber;
    dataSource += '&clogid=' + g_listeningLogId;
    dataSource += '&bitr=' + bitrate;
    dataSource += '&adid=' + adid;
    dataSource += '&mcnum=2';
    dataSource += '&mchid=' + mchid;
    dataSource += '&sesid=' + g_SessionID;

    var XMLHttpRequestObject = false;
    if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (XMLHttpRequestObject) {
        XMLHttpRequestObject.open("GET", dataSource);

        XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 &&
		  XMLHttpRequestObject.status == 200) {
                var r = XMLHttpRequestObject.responseText;
                if (r != 'n') {
                    try {
                        eval(r);
                    }
                    catch (exception1) {
                    }
                }

                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }

        XMLHttpRequestObject.send(null);
    }
}

function IncPlayCnt(prgid) {

    var dataSource = pathtoajaxcalls + "saveplaycnt.asp";

    var XMLHttpRequestObject = false;
    if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (XMLHttpRequestObject) {
        XMLHttpRequestObject.open("POST", dataSource);
        XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 &&
		  XMLHttpRequestObject.status == 200) {
                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        var p = "rSid=" + prgsch_stationid;
        p += '&prgid=' + urlen(prgid);
        XMLHttpRequestObject.send(p);
    }
}

function StartMusic() {
    if (g_AutoPlayMode == 'B') {
        g_skipprgid = livestr_theProgramId;
        g_AutoPlayLiveS = true;
        g_AutoPlayMusicOn = true;
    }
    g_paused = false;
    g_isPlaying = true;
    g_musicPlaying = true;
    if (g_AutoPlayMode != 'O') {
        g_AutoPlayMusicOn = true;
    }
    playMusic(g_musicchid, 'pm');
    return false;
}
function PlayProgram() {
    g_paused = false;
    g_isPlaying = true;
    g_musicPlaying = false;
    g_skipprgid = 0;
    if (g_AutoPlayMode != 'O') {
        g_AutoPlayLiveS = true;
        if (g_AutoPlayMode != 'P') {
            g_AutoPlayMusicOn = true;
        }
    }
    PlayLiveStream(false);
    return false;
}
function PlayDefaultProgram() {
    if (g_defprgurl != '') {
        g_paused = false;
        g_isPlaying = true;
        g_musicPlaying = false;
        g_skipprgid = 0;
  
        //turn on autoplay music and livestreams in case auto-start disabled them initially
        if (g_AutoPlayMode == 'B') {
            g_AutoPlayMusicOn = true;
            g_AutoPlayLiveS = true;
        }        
        playAsset(g_defprgurl, g_defprgid);
    }
    return false;
}
function SwitchToMusic() {
    if (g_AutoPlayMode == 'B') {
        g_skipprgid = livestr_theProgramId;
    }
    g_paused = false;
    g_isPlaying = true;
    g_musicPlaying = true;
    if (g_AutoPlayMode != 'O') {
        g_AutoPlayMusicOn = true;
        //turn on autoplay music and livestreams in case auto-start disabled them initially
        if (g_AutoPlayMode == 'B') {
            g_AutoPlayLiveS = true;
        }     
    }
    playMusic(g_musicchid, 'pm');
    return false;
}
function SwitchToProgram() {
    g_paused = false;
    g_isPlaying = true;
    g_musicPlaying = false;
    g_skipprgid = 0;
    if (g_AutoPlayMode != 'O') {
        g_AutoPlayLiveS = true;
        //turn on autoplay music and livestreams in case auto-start disabled them initially
        if (g_AutoPlayMode == 'B') {
            g_AutoPlayMusicOn = true;
        }     
    }
    PlayLiveStream(false);
    return false;
}
function StopPlaying(bLog) {
    try {
        if (bLog == true && g_musicPlaying == false) {
            var ply = GetPlaylistObject();
            var plyI = GetConfigValue("item");
            LogListeningAction("stopped", ply[plyI]["rp1ProgramID"], ply[plyI]["rp1ContentType"], ply[plyI]["rp1PlayFormat"], "", ply[plyI]["rp1AdAssetID"], ply[plyI]["rp1MusicChannelID"]);
        }
        else if (g_musicPlaying == true) {
            LogListeningAction("stopped", "", "", "", "", "", "");
        }

        g_AutoPlayMusicOn = false;
        g_AutoPlayLiveS = false;
        if (g_musicPlaying) {
            playMusic('', 'sm');
        }
        else {
            playAsset("", 0);
        }


        return false;
    }
    catch (err) {
    }
}

    
function CreatePlayer() {   
    var flashvars = {};
    flashvars.file = "";
    flashvars.autostart = "true";
    flashvars.repeat = "list";
    flashvars.javascriptid = "playerID";
    var params = {};
    params.wmode = "opaque";
    params.allowfullscreen = "true";
    params.allowscriptaccess = "always";
    var attributes = {};
    attributes.id = "playerID";
    attributes.name = "playerID";

    swfobject.embedSWF(g_FlashPlayer, "playerholder", "640", "500", "10.0.0", "swfobject/expressInstall.swf", flashvars, params, attributes);

    try {
        window["playerID"] = document.forms["form1"]["playerID"];
    }
    catch (err) {
    }
    
};

function loadFile(obj) {
	if(g_debug) { printTrace("load: " + obj); }
    player.sendEvent('LOAD', obj);
};
function GoToPostRolls() {
	var i = GetConfigValue("item");
	player.sendEvent('ITEM', i + 1);
};

function playerReady(obj) {
    player = gid(obj.id);
    addListeners();
    PlayerIsReady();
    pFirstReady = false;
};

function addListeners() {
    if (player) {
        player.addModelListener("STATE", "stateListener");
        player.addViewListener("STOP", "stopListener");
        player.addModelListener("META", "metaListener");
        player.addViewListener("PLAY", "playListener");
    } else {
        setTimeout("addListeners()", 100);
    }
};
function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
};
function stateListener(obj) {
	if(g_debug) { printTrace("stateListener:"+obj.newstate+"|"+obj.oldstate); }
    PlayStateChanged(obj.newstate, obj.oldstate);
};
function stopListener() {    
    PlayStateChanged("STOPPED", "PLAYING");
};
function playListener(playing) {
    g_ignorepause = false;
};
function metaListener(obj) {
	if (obj.message) {
		if(g_debug) { printTrace(obj.message); }
	}	
    if (obj.StreamTitle) {
        HandleStreamTitle(obj.StreamTitle);
    }
    if (obj.videodatarate) {
        if (typeof DeactivateOverlays == 'function') {
            DeactivateOverlays();
        }        
    }
};

var configobj;
var playlistobj;
function printConfig() {
    tracing = false;
    var cfg = thisMovie('playerID').getConfig();
    configobj = cfg;
    printData(cfg);
}
function printPlaylist() {
    tracing = false;
    var ply = thisMovie('playerID').getPlaylist();
    playlistobj = ply;
    var txt = "";
    for (var i = 0; i < ply.length; i++) {
        txt += i + ":\r\n";
        for (var itm in ply[i]) {
            txt += "-> " + itm + ": " + ply[i][itm] + "<br/>";
        }
    }
    var itm = gid('tracecode');
    itm.innerHTML = txt;
}
function GetPlaylistObject() {
    return thisMovie('playerID').getPlaylist();
}
function GetPlaylistValue(PlaylistObject, PlyI, ValueName) {
    return PlaylistObject[PlyI][ValueName];
}
function GetConfigValue(itm) {
    var cfg = player.getConfig();
    return cfg[itm];
}
function printData(cfg) {
    var txt = "";
    for (var itm in cfg) {
        txt += itm + ": " + cfg[itm] + "<br/>";
    }
    var itm = gid('tracecode');
    itm.innerHTML = txt;
}
function submitSend() {
    var typ = gid('eventtype').value;
    var prm = gid('eventdata').value;
    thisMovie('playerID').sendEvent(typ, prm);
    return false;
};
function submitSubs() {
    var sbs = gid('subscription').value;
    var evt = sbs.substr(1);
    var typ = sbs.substr(0, 1);
    if (typ == 'm') {
        thisMovie('playerID').addModelListener(evt, 'tracer.trace');
    } else if (typ == 'c') {
        thisMovie('playerID').addControllerListener(evt, 'tracer.trace');
    } else if (typ == 'v') {
        thisMovie('playerID').addViewListener(evt, 'tracer.trace');
    }
    return false;
};
var tracer = new Object();
tracer.trace = function(cfg) {
    var txt = "";
    for (var itm in cfg) {
        txt += itm + ": " + cfg[itm] + "\r\n";
    }
    alert(txt);
}


function PlayLiveStream(chkplay) {
    var play = true;

    if (chkplay == true) {
        if (g_isPlaying == false) {
            play = true;
        }
    }

    if (play == true && livestr_url != "" && g_paused == false) {
        g_lastlsstoppid = 0;
        playAsset(livestr_url, livestr_theProgramId);
    }
}

function PlayStateChanged(NewState, OldState) {

    if (NewState == "PLAYING") {
    }
    else if (NewState == "COMPLETED") {
        IgnorePlayAfterBuffer = false;
    }
    else if (NewState == "PAUSED") {
        IgnorePlayAfterBuffer = false;
    }
    else if (NewState == "BUFFERING") {
    }
    else if (NewState == "IDLE") {
        IgnorePlayAfterBuffer = false;
    }
    else if (NewState == "STOPPED") {
        IgnorePlayAfterBuffer = false;
    }
    else {
        NewState = "OTHER";
    }

    switch (NewState) {
        case "PLAYING":
            g_ignorepause = true;
            g_paused = false;
            g_isPlaying = true;
            if (IgnorePlayAfterBuffer != true) {
                var ply = GetPlaylistObject();
                var plyI = GetConfigValue("item");

                var psMediaType, psProgramID, psContentType, psPlayFormat, psAdAssetID, psMusicChannelID;
                var psSynOvID, psSynOvUrl, psSynOvHyp, psAdAssignIDType, psAdAssignID, psRoll;
                var psSynBnID, psSynBnUrl, psSynBnHyp, psLastItem;

                psMediaType = ply[plyI]["rp1MediaType"];
                psProgramID = ply[plyI]["rp1ProgramID"];
                psContentType = ply[plyI]["rp1ContentType"];
                psPlayFormat = ply[plyI]["rp1PlayFormat"];
                psAdAssetID = ply[plyI]["rp1AdAssetID"];
                psMusicChannelID = ply[plyI]["rp1MusicChannelID"];
                psSynOvID = ply[plyI]["rp1SyncedOverlayID"];
                psSynOvUrl = ply[plyI]["rp1SyncedOverlayUrl"];
                psSynOvHyp = ply[plyI]["rp1SyncedOverlayHyp"];
                psAdAssignIDType = ply[plyI]["rp1AdAssignIDType"];
                psAdAssignID = ply[plyI]["rp1AdAssignID"];
                psRoll = ply[plyI]["rp1RollType"];
                psSynBnID = ply[plyI]["rp1SyncedBannerID"];
                psSynBnUrl = ply[plyI]["rp1SyncedBannerUrl"];
                psSynBnHyp = ply[plyI]["rp1SyncedBannerHyp"];
                psLastItem = ply[plyI]["rp1LastInPlayList"];

                g_selectedprgid = psProgramID;

                if (psContentType == 'music') {
                    g_musicPlaying = true;
                }

                if (psMediaType == 'video') {
                    if (typeof DeactivateOverlays == 'function') {
                        DeactivateOverlays();
                    }
                }
				else {
					if (typeof ActivateOverlays == 'function') {
						ActivateOverlays();
					}
				}

                g_psSynOvID = psSynOvID;
                g_psSynBnID = psSynBnID;
                g_psMediaType = psMediaType;
                g_psPlayFormat = psPlayFormat;
                g_psContentType = psContentType;
                g_psRoll = psRoll;

                LogListeningAction("playing", psProgramID, psContentType, psPlayFormat, "", psAdAssetID, psMusicChannelID);

                if (psContentType == 'ad') {
                    if (typeof DisplayOverlayAd == 'function') {//this if is needed in case ad package isn't enabled in the page
                        if (g_adIdPlaying != psAdAssetID) {
                            if (psSynOvID != '') {
                                g_SwitchOvAdTimerId = g_SwitchOvAdTimerId + 1;
                                g_lastAdChkUrl = '';
                                DisplayOverlayAd(psSynOvID, psSynOvUrl, psSynOvHyp, psAdAssignIDType, psAdAssignID, psProgramID, psRoll, psPlayFormat, psContentType, psMusicChannelID);
                            }
                            if (psSynBnID != '') {
                                g_SwitchBnAdTimerId = g_SwitchBnAdTimerId + 1;
                                g_lastAdChkUrl = '';
                                DisplayBannerAd(psSynBnID, psSynBnUrl, psSynBnHyp, psAdAssignIDType, psAdAssignID, psProgramID, psRoll, psPlayFormat, psContentType, psMusicChannelID);
                            }
                            //check if asset defaults are defined
                            if (psSynOvID == '' || psSynBnID == '') {
                                //printTrace("call check ads from playing state 1");
                                CheckForGraphicAds(psRoll, psSynOvID, psSynBnID, psProgramID, psMediaType, "y", psPlayFormat, psContentType, psMusicChannelID);
                            }
                            recordadimpress(psAdAssetID, psAdAssignIDType, psAdAssignID, psProgramID, psRoll, psPlayFormat, psMediaType, psContentType, psMusicChannelID);
                        }
                        g_adIdPlaying = psAdAssetID;
                    }
                }
                else {
                    if (g_musicPlaying == true) {
                        if (g_adCheckId != psMusicChannelID) {
                            g_psRoll = "musicplaying";
                            if (typeof CheckForGraphicAds == 'function') {
                                //printTrace("call check ads from playing state 2");
                                CheckForGraphicAds("musicplaying", "", "", "0", "audio", "n", "live", "music", g_musicchid);
                            }
                        }
                        g_adCheckId = psMusicChannelID;
                        g_adIdPlaying = '';
                    }
                    else {
                        if (g_adCheckId != psProgramID) {
                            if (typeof CheckForGraphicAds == 'function') {
                                //printTrace("call check ads from playing state 3");
                                CheckForGraphicAds("program", "", "", psProgramID, psMediaType, "n", psPlayFormat, psContentType, psMusicChannelID);
                            }
                        }
                        g_adCheckId = psProgramID;
                        g_adIdPlaying = '';
                    }
                }
            }
            IgnorePlayAfterBuffer = true;
            break;
        case "COMPLETED":
            //printTrace("State:COMPLETED");
            ClearGlobalStateVars();
            g_paused = false;
            g_adIdPlaying = "";
            var ply = GetPlaylistObject();
            var plyI = GetConfigValue("item");
            LogListeningAction("mediaended", ply[plyI]["rp1ProgramID"], ply[plyI]["rp1ContentType"], ply[plyI]["rp1PlayFormat"], "", ply[plyI]["rp1AdAssetID"], ply[plyI]["rp1MusicChannelID"]);
            if (typeof ActivateOverlays == 'function') {
                ActivateOverlays();
            }
            if (ply[plyI]["rp1LastInPlayList"] == 'y') {
                if (ply[plyI]["rp1RollType"] == 'interstitial') {
                    if (g_purl != '') {
                        loadFile("");
                        OpenMusicWindow(g_purl, g_pupw, g_puph, g_pisecs);
                    }
                    else {
                        loadFile(g_pmUrl + "&noads=y");
                        StartInterstitialClock(g_musicchid, g_pisecs);
                    }
                }
                else {
                    if (g_openmusaftadroll == true) {
                        OpenMusicWindow(g_purl, g_pupw, g_puph, g_pisecs);
                    }
                    else {
                        g_isPlaying = false;
                        g_musicPlaying = false;
                        if (typeof CheckForGraphicAds == 'function') {
                            //printTrace("call check ads from completed state 1");
                            CheckForGraphicAds("noprogram", "", "", "", "", "n", "", "", "");
                        }
                    }
                }
            }
            break;
        case "PAUSED":
            //printTrace("State:PAUSED");
            if (g_ignorepause == false) {
                g_paused = true;
                var ply = GetPlaylistObject();
                var plyI = GetConfigValue("item");
                LogListeningAction("paused", ply[plyI]["rp1ProgramID"], ply[plyI]["rp1ContentType"], ply[plyI]["rp1PlayFormat"], "", ply[plyI]["rp1AdAssetID"], ply[plyI]["rp1MusicChannelID"]);

                if (ply[plyI]["rp1MediaType"] != "video") {
                    if (typeof CheckForGraphicAds == 'function') {
                        //printTrace("call check ads from paused state 1");
                        CheckForGraphicAds("noprogram", "", "", "", "", "n", "", "", "");
                    }
                }
            }
            g_ignorepause = true;
            break;
        case "STOPPED":
            //printTrace("State:STOPPED");
            var ply = GetPlaylistObject();
            var plyI = GetConfigValue("item");
            LogListeningAction("stopped", ply[plyI]["rp1ProgramID"], ply[plyI]["rp1ContentType"], ply[plyI]["rp1PlayFormat"], "", ply[plyI]["rp1AdAssetID"], ply[plyI]["rp1MusicChannelID"]);
            ClearGlobalStateVars();
            StopPlaying(false);
            g_paused = false;
            g_isPlaying = false;
            g_musicPlaying = false;
            g_adIdPlaying = "";
            if (typeof ActivateOverlays == 'function') {
                ActivateOverlays();
            }
            if (typeof CheckForGraphicAds == 'function') {
                //printTrace("call check ads from stopped state 1");
                CheckForGraphicAds("noprogram", "", "", "", "", "n", "", "", "");
            }
            break;
        case "BUFFERING":
            //printTrace("State:Buffering");
            g_paused = false;
            g_isPlaying = true;
            break;
        case "IDLE":
            //printTrace("State:Idle");
            ClearGlobalStateVars();
            g_paused = false;
            g_adCheckId = "";
            g_adIdPlaying = "";
            if (typeof ActivateOverlays == 'function') {
                ActivateOverlays();
            }
            if (typeof CheckForGraphicAds == 'function') {
                //printTrace("call check ads from idle state 1");
                CheckForGraphicAds("noprogram", "", "", "", "", "n", "", "", "");
            }
            break;
        case "OTHER":
            //printTrace("State:Other");
            ClearGlobalStateVars();
            g_paused = false;
            g_isPlaying = false;
            g_musicPlaying = false;
            g_adCheckId = "";
            g_adIdPlaying = "";
            var ply = GetPlaylistObject();
            var plyI = GetConfigValue("item");
            LogListeningAction("other", ply[plyI]["rp1ProgramID"], ply[plyI]["rp1ContentType"], ply[plyI]["rp1PlayFormat"], "", ply[plyI]["rp1AdAssetID"], ply[plyI]["rp1MusicChannelID"]);
            if (typeof CheckForGraphicAds == 'function') {
                //printTrace("call check ads from other state 1");
                CheckForGraphicAds("noprogram", "", "", "", "", "n", "", "", "");
            }
            break;
    }
}

function ClearGlobalStateVars() {
    g_psSynOvID = '';
    g_psSynBnID = '';
    g_psMediaType = '';
    g_psPlayFormat = '';
    g_psContentType = '';
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

function HandleStreamTitle(s) {
    if (gid("musicDetailNowPlayingText")) {
        s = s.replace(" - ", "<br/><br/>");
        gid("musicDetailNowPlayingText").innerHTML = "<strong>" + s + "</strong>";
    }
    g_MusicStreamTitle = s;
}

function ChangeMusicChannelID(newid) {
    if (newid != 0) {
        createCookie("DefaultMusicStation", newid, 365);
        g_musicchid = newid;
        g_MusicStreamTitle = '';
        playMusic(newid);
    }
    return false;
}

function OpenMusicWindow(purl, pupw, puph, piseconds) {
    g_openmusaftadroll = false;
    g_isPlaying = true;
    g_musicPlaying = true;
    g_psRoll = "musicplaying";
    if (purl.indexOf("?") != -1) {
        purl = purl + "&rp1extptype=" + g_ExternalPlayerType;
    }
    if (gid("ifrPandora") && gid("ifrMusic")) {
        if ((purl.indexOf("pandora") != -1) || (purl.indexOf("espn.go.com") != -1)) {
            gid("ifrMusic").src = "views/blankMusic.htm";
            gid("ifrMusic").style.display = '';
            gid("ifrMusic").height = "1px";

            gid("ifrPandora").src = purl;
            if (purl.indexOf("espn.go.com") != -1) {
                gid("ifrPandora").height = "650px";
            }
            else {
                gid("ifrPandora").height = "950px";
            }

            gid("ifrPandora").style.display = '';
        }
        else {
            gid("ifrPandora").src = "views/blankMusic.htm";
            gid("ifrPandora").height = "1px";
            gid("ifrPandora").style.display = '';

            gid("ifrMusic").src = purl;
            gid("ifrMusic").height = "100px";
            gid("ifrMusic").style.display = '';
        }
    }
    if (typeof CheckForGraphicAds == 'function') {
        //printTrace("call check ads from open music window");
        CheckForGraphicAds(g_psRoll, "", "", "0", "audio", "n", "live", "music", g_musicchid);
    }
    StartInterstitialClock(g_musicchid, piseconds);
    return false;
}
function ReOpenMusicWindow() {
    OpenMusicWindow(g_purl, g_pupw, g_puph, g_pisecs);
    return false;
}
function CloseMusicWindow() {
    if (gid("ifrPandora") && gid("ifrMusic")) {
        gid("ifrMusic").src = "views/blankMusic.htm";
        gid("ifrMusic").style.display = 'none';
        gid("ifrPandora").src = "views/blankMusic.htm";
        gid("ifrPandora").style.display = 'none';
        gid("ifrMusic").height = "1px";
        gid("ifrPandora").height = "1px";
    }
    return false;
}

function StartInterstitialClock(chid, pi) {
    if (g_rechkpisecs) {
        LookupInterstitialInterval(chid);
    }
    else {
        if (pi > 0) {
            if (g_intertimer) {
                clearTimeout(g_intertimer);
            }
            g_intertimer = setTimeout("PlayInterstitial('" + chid + "','" + pi + "')", (pi * 1000));
        }
    }
    g_rechkpisecs = true;
}

function PlayInterstitial(chid, pi) {
    if (g_intertimer) {
        clearTimeout(g_intertimer);
    }
    if (g_musicchid == chid && g_isPlaying == true && g_musicPlaying == true) {
        var theURL = g_MusicStreamUrl + "?roll=interstitial&musicchid=" + chid;

        CloseMusicWindow();
        HandleStreamTitle("Music will resume shortly...");
        loadFile(theURL);
    }
}

function LookupInterstitialInterval(chid) {
    var dataSource = pathtoajaxcalls + "LookupMusicInterstitialInterval.aspx?chid=" + chid;
    var XMLHttpRequestObject = false;
    if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (XMLHttpRequestObject) {
        XMLHttpRequestObject.open("GET", dataSource);

        XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 &&
		  XMLHttpRequestObject.status == 200) {
                var r = XMLHttpRequestObject.responseText;

                if (r != 'n') {
                    try {
                        g_pisecs = r;
                        if (g_pisecs > 0) {
                            if (g_intertimer) {
                                clearTimeout(g_intertimer);
                            }
                            g_intertimer = setTimeout("PlayInterstitial('" + g_musicchid + "','" + g_pisecs + "')", (g_pisecs * 1000));
                        }
                    }
                    catch (exception1) {
                    }
                }

                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }

        XMLHttpRequestObject.send(null);
    }
}

function LogMCStat(action, sttypeid, tabid, feedid, postid) {
    //printTrace("In LogMCStat");
    var dataSource = pathtoajaxcalls + "logMCStatsAction.asp?rSid=" + prgsch_stationid;
    dataSource += '&act=' + action;
    dataSource += '&lisid=' + g_ListenerId;
    dataSource += '&pnum=' + g_PlayerNumber;
    dataSource += '&clogid=' + g_mcstatlogid;
    dataSource += '&sesid=' + g_SessionID;
    dataSource += '&sttypeid=' + sttypeid;
    dataSource += '&tabid=' + tabid;
    dataSource += '&feedid=' + feedid;
    dataSource += '&postid=' + postid;

    var XMLHttpRequestObject = false;
    if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (XMLHttpRequestObject) {
        XMLHttpRequestObject.open("GET", dataSource);

        XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 &&
		  XMLHttpRequestObject.status == 200) {
                var r = XMLHttpRequestObject.responseText;
                if (r != 'n') {
                    try {
                        eval(r);
                    }
                    catch (exception1) {
                    }
                }

                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }

        XMLHttpRequestObject.send(null);
    }
}

function CheckLiveStreamCountDown(calltick, igpid, callHandlePlayerAction) {

    var dataSource = pathtoajaxcalls + "getLiveStreamCountDown.asp?rSid=" + prgsch_stationid + "&igpid=" + igpid + "&curid=" + g_lstr_cd_prgid;
    //printTrace(dataSource + " | g_lstr_cd_prgid:" + g_lstr_cd_prgid + " | livestr_stop:" + livestr_stop);
    var XMLHttpRequestObject = false;
    if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (XMLHttpRequestObject) {
        XMLHttpRequestObject.open("GET", dataSource);
        //printTrace("checklivestream sent");
        XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 &&
		  XMLHttpRequestObject.status == 200) {
                var r = XMLHttpRequestObject.responseText;

                //if the response isn't blank then there is a livestream available
                if (r == "n") {
                    g_lstr_cd_amount = "";
                    g_lstr_cd_prgid = "";
                    g_lstr_cd_text = "";
                    livestr_url = "";
                    livestr_imgFull = "";
                    livestr_theLink = "";
                    livestr_theType = "";
                    livestr_theProgramTitle = "";
                    livestr_theProgramId = "";
                    livestr_start = null;
                    livestr_stop = null;
                    livestr_extended = false;
                    g_liveavailable = false;
                    //printTrace("livestream count callback: blank response");
                }
                else {
                    eval(r);

                    //printTrace("livestream count callback: g_liveavailable: " + g_liveavailable + " | g_lstr_cd_prgid:" + g_lstr_cd_prgid + " | livestr_stop:" + livestr_stop);
                    //printTrace("livestream count callback: response executed");
                }

                if (calltick == true) {
                    tick();
                }
                if (callHandlePlayerAction == true) {
                    HandlePlayerAction('load', '');
                }
                //printTrace("Done LS Cnt Down");
                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        XMLHttpRequestObject.send(null);
    }

}

function SetStationTime() {

    var dataSource = pathtoajaxcalls + "getStationTime.asp?rSid=" + prgsch_stationid
    var XMLHttpRequestObject = false;
    if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (XMLHttpRequestObject) {
        XMLHttpRequestObject.open("GET", dataSource);
        //printTrace("checklivestream sent");
        XMLHttpRequestObject.onreadystatechange = function() {
            if (XMLHttpRequestObject.readyState == 4 &&
		  XMLHttpRequestObject.status == 200) {
                var r = XMLHttpRequestObject.responseText;

                Digital = new Date(r);

                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        XMLHttpRequestObject.send(null);
    }
}




