﻿function PlayLiveStream(chkplay) {
	//printTrace("In PlayLiveStream");
	var play = true;
	
	if (chkplay == true) {
		if (g_isPlaying == false) {
			play = true;
		}
	}

	if (play == true && livestr_url != "" && g_paused == false) {
		//printTrace("YES PlayLiveStream");
		g_lastlsstoppid = 0;
		playAsset(livestr_url, livestr_theProgramId);
	}
}

function AutoReloadProgramSchedule() {
	if (document.getElementById('ifrSchedule')) {
		if(typeof document.getElementById('ifrSchedule').contentWindow.AutoRefreshSchedule == 'function') {
			g_lschreltime = new Date();
			//printTrace("Calling Auto-Reload"); 
			document.getElementById('ifrSchedule').contentWindow.AutoRefreshSchedule();
			//printTrace("After Auto-Reloading call");
		}
		else {
			//printTrace("Ignored Schedule Auto-Refresh");	
		}
	}
}

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":
			//printTrace("State:Playing");
			//printTrace("IgnorePlayAfterBuffer: " + IgnorePlayAfterBuffer);
			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"];
				
				if (psContentType == 'music') {
					g_musicPlaying = true;
					//printTrace("g_musicPlaying = true in playstate - playing");
				}
				
				if (psMediaType == 'video') {
					DeactivateOverlays();
				}
				
				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 (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 == '') {
							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";
							CheckForGraphicAds("musicplaying","","","0","audio","n","live","music",g_musicchid);
						}
						g_adCheckId = psMusicChannelID;
						g_adIdPlaying = '';
					}
					else {
						if (g_adCheckId != psProgramID) {
							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"]);			
			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) {
						//loadFile("");
						OpenMusicWindow(g_purl,g_pupw,g_puph,g_pisecs);
					}
					else {
						g_isPlaying = false;
						g_musicPlaying = false;
						CheckForGraphicAds("noprogram","","","","","n","","","");
					}
				}
			}
            break;
        case "PAUSED":
			//printTrace("State:Paused-g_ignorepause=" + g_ignorepause);
			if (g_ignorepause == false) {				
				g_paused = true;
				//g_isPlaying = false;
				//g_musicPlaying = false;
				//g_adIdPlaying = "";
				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 video is paused don't check for graphic ads
				if (ply[plyI]["rp1MediaType"] != "video") {
					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 = "";
			ActivateOverlays();
            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_isPlaying = true;
			g_adCheckId = "";
			g_adIdPlaying = "";      
			ActivateOverlays();
            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"]);
			
            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 LogListeningAction(action,prgid,ctype,pformat,bitrate,adid,mchid)
{
	//printTrace("In LogListeningAction");
	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;
		
	//printTrace(dataSource);
					
	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;	
		} 
	  } 
	//printTrace(dataSource);
	var p = "rSid=" + prgsch_stationid;		
		p += '&prgid=' + urlen(prgid);

	XMLHttpRequestObject.send(p); 
	}	
}


////////////////////////////////////////////////////////////////////////////////////////////////////////
//Ads
function recordadimpress(adid,asst,assid,prgid,roll,prgtype,media,ctype,mchid) {

	var dataSource = pathtoajaxcalls + "adimp.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 += '&playnum=' + urlen(g_PlayerNumber);
		p += '&g_listeningLogId=' + urlen(g_listeningLogId);
		p += '&adid=' + urlen(adid);
		p += '&asst=' + urlen(asst);
		p += '&assid=' + urlen(assid);
		p += '&prgid=' + urlen(prgid);
		p += '&roll=' + urlen(roll);
		p += '&prgtype=' + urlen(prgtype);
		p += '&lisid=' + g_ListenerId;
		p += '&media=' + media;
		p += '&mcnum=2';
		p += '&ctype=' + ctype;
		p += '&mchid=' + mchid;
		p += '&sesid=' + g_SessionID;
		
		////printTrace("adimp.asp?" + p);

		XMLHttpRequestObject.send(p); 
	}	
}

function DisplayBannerAd(adid,url,hyp,asst,assid,prgid,roll,prgtype,ctype,mchid) {
	var h = "";
	var hc = "";
	var img = "";
	var d = "";	
	var t = "";
	if (url != '') {	    
		if (hyp != '') {
			if (hyp.substring(0,10) == 'customlink') {
				t = '<a href="#" onClick="return RunCustomLink(\'' + hyp + '\');"><img src="' + url + '" border="0"></a>';
			}
			else {
				//incase the url was already encoded have to replace the %2520 with %20
				var encurl = urlen(hyp);				
				encurl = encurl.replace(/%2520/gi,"%20");
				
				var shyp = pathtoajaxcalls + "clickthru.asp?rSid=" + prgsch_stationid;
					shyp += '&turl=' + encurl;
					shyp += '&g_ListenerId=' + urlen(g_ListenerId);
					shyp += '&g_PlayerNumber=' + urlen(g_PlayerNumber);
					shyp += '&g_listeningLogId=' + urlen(g_listeningLogId);
					shyp += '&adid=' + urlen(adid);
					shyp += '&asst=' + urlen(asst);
					shyp += '&assid=' + urlen(assid);
					shyp += '&prgid=' + urlen(prgid);
					shyp += '&roll=' + urlen(roll);
					shyp += '&prgtype=' + urlen(prgtype);
					shyp += '&lisid=' + g_ListenerId;
					shyp += '&media=b';
					shyp += '&ctype=' + ctype;
					shyp += '&mchid=' + mchid;
					shyp += '&sesid=' + g_SessionID;
		        if (shyp != "") {
					t = '<a href="' + shyp + '" target="_blank">';
				}
				t += '<img src="' + url + '" border="0">';
				if (shyp != "") {
					t += "</a>";
				}	
			}
		}//hyp != ''		
		else {
			t += '<img src="' + url + '" border="0">';
		}//hyp == ''
		 
        

        document.getElementById('bannerad').innerHTML = t;						
	} //url != ''
	
	recordadimpress(adid,asst,assid,prgid,roll,prgtype,"b",ctype,mchid);
}

function ActivateOverlays() {
	document.getElementById('overlayimage').style.display = '';
}
function DeactivateOverlays() {
	document.getElementById('overlayimage').style.display = 'none';
}

function DisplayOverlayAd(adid,url,hyp,asst,assid,prgid,roll,prgtype,ctype,mchid) {
	var t = "";
	if (url != '') {
		if (hyp != '') {
			if (hyp.substring(0,10) == 'customlink') {
				t = '<a href="#" onClick="return RunCustomLink(\'' + hyp + '\');"><img src="' + url + '" border="0"></a>';
			}
			else {
				//incase the url was already encoded have to replace the %2520 with %20
				var encurl = urlen(hyp);				
				encurl = encurl.replace(/%2520/gi,"%20");
				
				var shyp = pathtoajaxcalls + "clickthru.asp?rSid=" + prgsch_stationid;
					shyp += '&turl=' + encurl;			
					shyp += '&g_ListenerId=' + urlen(g_ListenerId);
					shyp += '&g_PlayerNumber=' + urlen(g_PlayerNumber);
					shyp += '&g_listeningLogId=' + urlen(g_listeningLogId);				
					shyp += '&adid=' + urlen(adid);
					shyp += '&asst=' + urlen(asst);
					shyp += '&assid=' + urlen(assid);
					shyp += '&prgid=' + urlen(prgid);
					shyp += '&roll=' + urlen(roll);
					shyp += '&prgtype=' + urlen(prgtype);
					shyp += '&lisid=' + g_ListenerId;
					shyp += '&media=o';
					shyp += '&ctype=' + ctype;
					shyp += '&mchid=' + mchid;
					shyp += '&sesid=' + g_SessionID;
		        if (shyp != "") {
					t = '<a href="' + shyp + '" target="_blank">';
				}
				if (prgsch_stationid == "35") {
					t += '<img src="' + url + '" border="0" width="320" height="240">';
				}
				else {
					t += '<img src="' + url + '" border="0">';
				}
				if (shyp != "") {
					t += "</a>";
				}	
			}
		}//hyp != ''		
		else {
			t += '<img src="' + url + '" border="0">';
		}//hyp == ''
		
        document.getElementById('overlayimage').innerHTML = t;
	}
	if (document.getElementById('overlayimage').style.display != 'none') {
		recordadimpress(adid,asst,assid,prgid,roll,prgtype,"o",ctype,mchid);
	}
}

function SetupGraphicAds(prgid,roll,prgtype,ctype,mchid) {
   //printTrace("SetupGraphicAds: " + prgid + " roll: " + roll + " prgtype: " + prgtype); 
	var dur;
	if (isArray(g_arrOverlays)) {		
		DisplayOverlayAd(g_arrOverlays[0][0],g_arrOverlays[0][3],g_arrOverlays[0][4],g_arrOverlays[0][8],g_arrOverlays[0][1],prgid,roll,prgtype,ctype,mchid);
		//if overlay has a synced banner than display it
		if (g_arrOverlays[0][5] != '' && g_arrOverlays[0][6] != '') {
			DisplayBannerAd(g_arrOverlays[0][5],g_arrOverlays[0][6],g_arrOverlays[0][7],g_arrOverlays[0][8],g_arrOverlays[0][1],prgid,roll,prgtype,ctype,mchid);
			g_allowBannerRotate = false;
		}
		else {
			g_allowBannerRotate = true;
		}
		if (g_arrOverlays[0][2] == '') { dur = 30; } else { dur = g_arrOverlays[0][2] }

		g_SwitchOvAdTimerId = g_SwitchOvAdTimerId + 1;
		if (g_SwitchOvAdTimerId > 2)
			g_SwitchOvAdTimerId = 0;

		if (g_arrOverlays.length > 1) {
			setTimeout("SwitchGraphicAd('o',0,'"+prgid+"','" + roll + "','" + prgtype+ "','" +g_SwitchOvAdTimerId+"','" + ctype+ "','" + mchid+ "')", (dur * 1000) );
		}	
	}
	if (isArray(g_arrBanners)) {
		if (g_allowBannerRotate == true) {
			DisplayBannerAd(g_arrBanners[0][0],g_arrBanners[0][3],g_arrBanners[0][4],g_arrBanners[0][5],g_arrBanners[0][1],prgid,roll,prgtype,ctype,mchid);
		}
		if (g_arrBanners[0][2] == '') { dur = 30; } else { dur = g_arrBanners[0][2] }

		g_SwitchBnAdTimerId = g_SwitchBnAdTimerId + 1;
		if (g_SwitchBnAdTimerId > 2)
			g_SwitchBnAdTimerId = 0;
			
		if (g_arrBanners.length > 1) {
			setTimeout("SwitchGraphicAd('b',0,'"+prgid+"','" + roll + "','" + prgtype+ "','" +g_SwitchBnAdTimerId+"','" + ctype+ "','" + mchid+ "')", (dur * 1000) );
		}	
	}
	
}

function SwitchGraphicAd(t,lasti,prgid,roll,prgtype,timerid,ctype,mchid) {	
	var r = lasti + 1;
	var dur;
	if (t == 'o') {	
		if (timerid == g_SwitchOvAdTimerId) {
			if (isArray(g_arrOverlays)) {	
				if ((g_arrOverlays.length - 1) < r) {
					r = 0;
				}
				DisplayOverlayAd(g_arrOverlays[r][0],g_arrOverlays[r][3],g_arrOverlays[r][4],g_arrOverlays[r][8],g_arrOverlays[r][1],prgid,roll,prgtype,ctype,mchid);
				if (g_arrOverlays[r][5] != '' && g_arrOverlays[r][6] != '') {
					DisplayBannerAd(g_arrOverlays[r][5],g_arrOverlays[r][6],g_arrOverlays[r][7],g_arrOverlays[r][8],g_arrOverlays[r][1],prgid,roll,prgtype,ctype,mchid);
					g_allowBannerRotate = false;
				}
				else {
					g_allowBannerRotate = true;
				}
				if (g_arrOverlays[r][2] == '') { dur = 30; } else { dur = g_arrOverlays[r][2] }
				setTimeout("SwitchGraphicAd('o',"+r+",'"+prgid+"','" + roll + "','" + prgtype+ "','" +timerid+"','" + ctype+ "','" + mchid+ "')", (dur * 1000) );
			}
		}
	}
	else {
		if (timerid == g_SwitchBnAdTimerId) {
			if (isArray(g_arrBanners)) {
				if ((g_arrBanners.length - 1) < r) {
					r = 0;
				}
				if (g_allowBannerRotate == true) {
					DisplayBannerAd(g_arrBanners[r][0],g_arrBanners[r][3],g_arrBanners[r][4],g_arrBanners[r][5],g_arrBanners[r][1],prgid,roll,prgtype,ctype,mchid);
				}
				if (g_arrBanners[r][2] == '') { dur = 30; } else { dur = g_arrBanners[r][2] }			
				setTimeout("SwitchGraphicAd('b',"+r+",'"+prgid+"','" + roll + "','" + prgtype+ "','" +timerid+"','" + ctype+ "','" + mchid+ "')", (dur * 1000) );
			}
		}
	}
}

function CheckForGraphicAds(rolltype,oID,bnID,prgid,mediatype,isad,pformat,ctype,mchid) {	
	var ls = "n";
	if (pformat == 'live') {
		ls = "y";
	}
	
	var dataSource = pathtoajaxcalls + "getCheckForGraphicAds5.asp?rSid=" + prgsch_stationid;
		dataSource += "&roll=" + rolltype + "&oid=" + oID + "&bnId=" + bnID + "&prgid=" + prgid + "&mtype=" + mediatype + "&isad=" + isad + "&ls=" + ls + "&cid=" + prgsch_catid + "&ctype=" + ctype + "&mchid=" + mchid + "&tabid=" + g_TabId + "&isp="+g_isPlaying+"&mp="+g_musicPlaying+"&subroll="+g_psRoll;

    //check to make sure not calling the same thing again
 	if (g_lastAdChkUrl != dataSource) {
	    g_lastAdChkUrl = dataSource;
 
		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);										
						SetupGraphicAds(prgid,rolltype,pformat,ctype,mchid);
						}
					catch(exception1)
					{
					}
				}		
		
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;				
			} 
		  } 
		 // printTrace(dataSource);
		  XMLHttpRequestObject.send(null); 
		}
	}
}

function ChangeProgramScheduleCategory(cid)
{
    prgsch_catid = cid;
    if (g_isPlaying == false) {
		CheckForGraphicAds("noprogram","","","","","n","","","");
	}
}

function ChangeActiveMenuTab(tabid) {
	//printTrace("Menu Tab Refreshed");
	var isad = "n";
	if (g_adIdPlaying != '') {
		isad = "y";
	}
	if (g_TabId != tabid) {
		g_TabId = tabid;
		CheckForGraphicAds("menutabchange",g_psSynOvID,g_psSynBnID,g_selectedprgid,g_psMediaType,isad,g_psPlayFormat,g_psContentType,g_musicchid);
	}
	g_TabId = tabid;
}

function isArray(testObject) {	 
    return testObject && !(testObject.propertyIsEnumerable('length')) && typeof testObject === 'object' && typeof testObject.length === 'number';
}
function urlen(val)
{
	return escape(val);
}

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);
				//printTrace("set time to :" + r);

                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        XMLHttpRequestObject.send(null);
    }
}

//SCoreboard banner ads logic
function DisplayScBdBannerAd(adid,url,hyp,asst,assid,prgid,roll,prgtype,ctype,mchid) {
	var h = "";
	var hc = "";
	var img = "";
	var d = "";	
	if (url != '') {
	    var shyp = "";
		if (hyp != '') {
				//incase the url was already encoded have to replace the %2520 with %20
				var encurl = urlen(hyp);				
				encurl = encurl.replace(/%2520/gi,"%20");
			
				var shyp = "http://www.radiop1.com/p1player/clickthru.asp?rSid=" + prgsch_stationid;
					shyp += '&turl=' + encurl;
					shyp += '&g_ListenerId=' + urlen(g_ListenerId);
					shyp += '&g_PlayerNumber=' + urlen(g_PlayerNumber);
					shyp += '&g_listeningLogId=' + urlen(g_listeningLogId);
					shyp += '&adid=' + urlen(adid);
					shyp += '&asst=' + urlen(asst);
					shyp += '&assid=' + urlen(assid);
					shyp += '&prgid=' + urlen(prgid);
					shyp += '&roll=scoreboard';// + urlen(roll);
					shyp += '&prgtype=' + urlen(prgtype);
					shyp += '&lisid=' + g_ListenerId;
					shyp += '&media=b';
					shyp += '&ctype=' + ctype;
					shyp += '&mchid=' + mchid;					
		}
        var t = "";
        if (shyp != "") {
            t = '<a href="' + shyp + '" target="_blank">';
        }
        t += '<img src="' + url + '" border="0">';
        if (shyp != "") {
            t += "</a>";
        }
		if (document.getElementById('ifrSchedule').contentWindow.document.getElementById('scoreboardbannerad')) {
			document.getElementById('ifrSchedule').contentWindow.document.getElementById('scoreboardbannerad').innerHTML = t;
		}
		else {
			//printTrace("Display Scoreboard banner ignored, banner ad doesn't exist");
		}
        //document.getElementById('scoreboardbannerad').innerHTML = t;						
	}
	
	recordadimpress(adid,asst,assid,prgid,roll,prgtype,"b",ctype,mchid);
}

function SetupScBdAds(prgid,roll,prgtype,ctype,mchid) {
	var dur;
	if (isArray(g_arrScBdBanners)) {
		if (g_allowScBdBannerRotate == true) {
			DisplayScBdBannerAd(g_arrScBdBanners[0][0],g_arrScBdBanners[0][3],g_arrScBdBanners[0][4],g_arrScBdBanners[0][5],g_arrScBdBanners[0][1],prgid,roll,prgtype,ctype,mchid);
		}
		if (g_arrScBdBanners[0][2] == '') { dur = 30; } else { dur = g_arrScBdBanners[0][2] }

		g_SwitchScBdBnAdTimerId = g_SwitchScBdBnAdTimerId + 1;
		if (g_SwitchScBdBnAdTimerId > 2)
			g_SwitchScBdBnAdTimerId = 0;
			
		if (g_arrScBdBanners.length > 1) {
			setTimeout("SwitchScBdAd('b',0,'"+prgid+"','" + roll + "','" + prgtype+ "','" +g_SwitchScBdBnAdTimerId+"','" +ctype+"','" +mchid+"')", (dur * 1000) );
		}	
	}
	
}

function SwitchScBdAd(t,lasti,prgid,roll,prgtype,timerid,ctype,mchid) {	
	var r = lasti + 1;
	var dur;
	if (timerid == g_SwitchScBdBnAdTimerId) {
		if (isArray(g_arrScBdBanners)) {
			if ((g_arrScBdBanners.length - 1) < r) {
				r = 0;
			}
			if (g_allowScBdBannerRotate == true) {
				DisplayScBdBannerAd(g_arrScBdBanners[r][0],g_arrScBdBanners[r][3],g_arrScBdBanners[r][4],g_arrScBdBanners[r][5],g_arrScBdBanners[r][1],prgid,roll,prgtype,ctype,mchid);
			}
			if (g_arrScBdBanners[r][2] == '') { dur = 30; } else { dur = g_arrScBdBanners[r][2] }			
			setTimeout("SwitchScBdAd('b',"+r+",'"+prgid+"','" + roll + "','" + prgtype+ "','" +timerid+"','" +ctype+"','" +mchid+"')", (dur * 1000) );
		}
	}
}

function CheckForScBdAds(rolltype,oID,bnID,prgid,mediatype,isad,pformat,ctype,mchid) {
	if(typeof document.getElementById('ifrSchedule').contentWindow.OnScoreBoardFunction == 'function') {
		var ls = "n";
		if (pformat == 'live') {
			ls = "y";
		}
		
		var dataSource = pathtoajaxcalls + "getCheckForScBdAds.asp?rSid=" + prgsch_stationid;
			dataSource += "&roll=" + rolltype + "&oid=" + oID + "&bnId=" + bnID + "&prgid=" + prgid + "&mtype=" + mediatype + "&isad=" + isad + "&ls=" + ls + "&cid=" + prgsch_catid + "&ctype=" + ctype + "&mchid=" + mchid;
		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);
						SetupScBdAds(prgid,rolltype,pformat,ctype,mchid);
						}
					catch(exception1)
					{
					}
				}		
		
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;				
			} 
		  } 
	
		  XMLHttpRequestObject.send(null); 
		}
	}
}

function GetTickerContent() {
	var dataSource = pathtoajaxcalls + "OutputTickerRss.aspx?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); 

	  XMLHttpRequestObject.onreadystatechange = function() 
	  { 
		if (XMLHttpRequestObject.readyState == 4 && 
		  XMLHttpRequestObject.status == 200) { 
			var r = XMLHttpRequestObject.responseText; 		  		  	
				
			if (r != 'n')
			{
				try {					
				    document.getElementById('TICKER').innerHTML = r; 
                    ticker_start();
					}
				catch(exception1)
				{
				}
			}		
	
			delete XMLHttpRequestObject;
			XMLHttpRequestObject = null;				
		} 
	  } 

	  XMLHttpRequestObject.send(null); 
	}
}

var TICKER_RIGHTTOLEFT = false;
var TICKER_SPEED = 2;
var TICKER_STYLE = "";
var TICKER_PAUSED = false;

function ticker_start() {
	var TICKER_CONTENT = document.getElementById("TICKER").innerHTML;

	var tickerSupported = false;
	TICKER_WIDTH = document.getElementById("TICKER").style.width;
	var img = "<img src=ticker_space.gif width="+TICKER_WIDTH+" height=0>";

	// Firefox
	if (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("Safari")!=-1) {
		document.getElementById("TICKER").innerHTML = "<TABLE  cellspacing='0' cellpadding='0' width='100%'><TR><TD nowrap='nowrap'>"+img+"<SPAN style='"+TICKER_STYLE+"' ID='TICKER_BODY' width='100%'>&nbsp;</SPAN>"+img+"</TD></TR></TABLE>";
		tickerSupported = true;
	}
	// IE
	if (navigator.userAgent.indexOf("MSIE")!=-1 && navigator.userAgent.indexOf("Opera")==-1) {
		document.getElementById("TICKER").innerHTML = "<DIV nowrap='nowrap' style='width:100%;'>"+img+"<SPAN style='"+TICKER_STYLE+"' ID='TICKER_BODY' width='100%'></SPAN>"+img+"</DIV>";
		tickerSupported = true;
	}
	if(!tickerSupported) document.getElementById("TICKER").outerHTML = ""; else {
		document.getElementById("TICKER").scrollLeft = TICKER_RIGHTTOLEFT ? document.getElementById("TICKER").scrollWidth - document.getElementById("TICKER").offsetWidth : 0;
		document.getElementById("TICKER_BODY").innerHTML = TICKER_CONTENT;
		document.getElementById("TICKER").style.display="block";
		TICKER_tick();
	}
}

function TICKER_tick() {
	if(!TICKER_PAUSED) document.getElementById("TICKER").scrollLeft += TICKER_SPEED * (TICKER_RIGHTTOLEFT ? -1 : 1);
	if(TICKER_RIGHTTOLEFT && document.getElementById("TICKER").scrollLeft <= 0) document.getElementById("TICKER").scrollLeft = document.getElementById("TICKER").scrollWidth - document.getElementById("TICKER").offsetWidth;
	if(!TICKER_RIGHTTOLEFT && document.getElementById("TICKER").scrollLeft >= document.getElementById("TICKER").scrollWidth - document.getElementById("TICKER").offsetWidth) document.getElementById("TICKER").scrollLeft = 0;
	window.setTimeout("TICKER_tick()", 30);
}

function SetBottomBannerAd(bnhtml) {
	if (bnhtml != '') {
		if (bnhtml != document.getElementById("bottom_banner_ad").innerHTML) {
			document.getElementById("bottom_banner_ad").innerHTML = bnhtml;
		}
		document.getElementById("bottom_banner_ad").style.display = '';
	}
	else {
		document.getElementById("bottom_banner_ad").style.display = 'none';
	}		
}

//Functions for performing custom links
function RunCustomLink(s) {
	var ps = new Querystring(s.substring(11));
	var lt = ps.get("linkto");
	var a = "";
	//parse parameters and build string
	if (lt != 'program') {
		if (lt == "rss") {
			a = "Views/news.aspx?StationID=" + prgsch_stationid + "&TabID=" + ps.get("tabid") + "&FeedID=" + ps.get("feedid");
		}
		else if (lt == "schedule") {
			a = "Views/StationSchedule.aspx?StationID=" + prgsch_stationid + "&TabID=" + ps.get("tabid");
			if (ps.get("catid"))
				a = a + "&CategoryID=" + ps.get("catid");
		}
		else if (lt == "html") {
			a = "Views/Custom.aspx?StationID=" + prgsch_stationid + "&TabID=" + ps.get("tabid");
		}
		loadintoIframe('ifrSchedule', a);
	}		
}

function HandleStreamTitle(s) {
	if(document.getElementById("musicDetailNowPlayingText")) {
		s = s.replace(" - ","<br/><br/>");
		document.getElementById("musicDetailNowPlayingText").innerHTML = "<strong>" + s + "</strong>";
	}
	g_MusicStreamTitle = s;
}

function ChangeMusicChannel(dd) {
	var newid = dd.options[dd.selectedIndex].value;
	//printTrace("ChangeMusicChannel: " + newid);
	if (newid != 0) {
		createCookie("DefaultMusicStation",newid,365);
		g_musicchid = newid;
		g_MusicStreamTitle = '';
		playMusic(newid);	
	}
	return false;
}

function ChangeMusicChannelID(newid) {
	//printTrace("ChangeMusicChannel: " + newid);
	if (newid != 0) {
		createCookie("DefaultMusicStation",newid,365);
		g_musicchid = newid;
		g_MusicStreamTitle = '';
		playMusic(newid);	
	}
	return false;
}

function ChangeAutoPlayMode(dd) {
	g_AutoPlayMode = dd.options[dd.selectedIndex].value;
	createCookie("DefaultAutoPlayMode",g_AutoPlayMode,365);
	var bcallpact = true;
	
	if (g_AutoPlayMode == 'B') {
		g_skipprgid = 0;
		g_AutoPlayLiveS = true;
		g_AutoPlayMusicOn = true;		
	}
	else if (g_AutoPlayMode == 'M') {
		g_AutoPlayLiveS = false;
		g_AutoPlayMusicOn = true;
		if (g_musicPlaying == false) {
			bcallpact = false;
			StartMusic();
		}
	}
	else if (g_AutoPlayMode == 'P') {
		g_skipprgid = 0;
		g_AutoPlayLiveS = true;
		g_AutoPlayMusicOn = false;
		if(g_liveavailable && g_isPlaying == true && g_pf == "live" && g_musicPlaying == false) {//playing livestream
		}
		else {
			if (g_liveavailable) {
				bcallpact = false;
				PlayProgram();
			}
			else if (g_musicPlaying) {
				StopPlaying(false);
			}
		}		
	}
	else if (g_AutoPlayMode == 'O') {
		g_AutoPlayLiveS = false;
		g_AutoPlayMusicOn = false;
	}	
	
	if (bcallpact) {
		HandlePlayerAction('automodechange', 'cap');
	}
	
	return false;
}

function ToggleAutoPlay() {
	if (g_AutoPlayMode == 'B') {
		g_AutoPlayMode = 'O';
		document.getElementById("btnAutoPlay").src = "images/LivePlayOffButton.gif";
	}
	else {
		g_AutoPlayMode = 'B';
		document.getElementById("btnAutoPlay").src = "images/LivePlayOnButton.gif";
	}
	createCookie("DefaultAutoPlayMode",g_AutoPlayMode,365);

	var bcallpact = true;
	
	if (g_AutoPlayMode == 'B') {
		g_skipprgid = 0;
		g_AutoPlayLiveS = true;
		g_AutoPlayMusicOn = true;		
	}
	else if (g_AutoPlayMode == 'M') {
		g_AutoPlayLiveS = false;
		g_AutoPlayMusicOn = true;
		if (g_musicPlaying == false) {
			bcallpact = false;
			StartMusic();
		}
	}
	else if (g_AutoPlayMode == 'P') {
		g_skipprgid = 0;
		g_AutoPlayLiveS = true;
		g_AutoPlayMusicOn = false;
		if(g_liveavailable && g_isPlaying == true && g_pf == "live" && g_musicPlaying == false) {//playing livestream
		}
		else {
			if (g_liveavailable) {
				bcallpact = false;
				PlayProgram();
			}
			else if (g_musicPlaying) {
				StopPlaying(false);
			}
		}		
	}
	else if (g_AutoPlayMode == 'O') {
		g_AutoPlayLiveS = false;
		g_AutoPlayMusicOn = false;
	}	
	
	if (bcallpact) {
		HandlePlayerAction('automodechange', 'cap');
	}
	
	return false;
}


function HandlePlayerAction(action, caller) {
	var btnPlayMusic = document.getElementById("btnPlayMusic");
	var btnPlayProgram = document.getElementById("btnPlayProgram");
	var btnSwitchToMusic = document.getElementById("btnSwitchToMusic");
	var btnSwitchToProgram = document.getElementById("btnSwitchToProgram");
	var btnStop = document.getElementById("btnStop");
	var blnAllowMusic = true;
	var blnAllowPrgs = true;
	
	//printTrace("HandlePlayerAction - action: " + action + " <br />g_AutoPlayMode: " + g_AutoPlayMode + " <br />g_liveavailable: " + g_liveavailable);
	//printTrace("g_musicPlaying: " + g_musicPlaying + " <br />g_isPlaying: " + g_isPlaying + " <br />g_pf: " + g_pf);
	
	//alert("g_AutoPlayMode: " + g_AutoPlayMode + "\ng_liveavailable: " + g_liveavailable);
	
	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(btnPlayMusic, 'hide');
			EditPlayerActionButton(btnPlayProgram, 'hide');
			EditPlayerActionButton(btnSwitchToMusic, 'hide');
		}
		else {
			EditPlayerActionButton(btnSwitchToProgram, 'hide');
			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(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 (blnAllowMusic)		
			EditPlayerActionButton(btnPlayMusic, 'show');
		else
			EditPlayerActionButton(btnPlayMusic, 'hide');		
	}		
}

function EditPlayerActionButton(btn, action) {
	if (action == 'hide') {
		btn.style.display = 'none';
	}
	else {
		btn.style.display = '';
	}
}

function StartMusic() {
	if (g_AutoPlayMode == 'B') {
		g_skipprgid = livestr_theProgramId;
		g_AutoPlayLiveS = true;
	}
	g_paused = false;
	g_isPlaying = true;
	g_musicPlaying = true;
	if (g_AutoPlayMode != 'O') {
		g_AutoPlayMusicOn = true;
	}
	//printTrace("SwitchToMusic - g_skipprgid:" + g_skipprgid + " g_AutoPlayMode:" + g_AutoPlayMode);
	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 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;
	}	
	//printTrace("SwitchToMusic - g_skipprgid:" + g_skipprgid + " g_AutoPlayMode:" + g_AutoPlayMode);
	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;
	}
	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 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;
	}
	//MusicWindow = window.open(purl,'MediaPlayer3','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width='+pupw+',height='+puph);			
	//MusicWindow.blur();
	if ((purl.indexOf("pandora") != -1) || (purl.indexOf("espn.go.com") != -1)) {
		document.getElementById("ifrMusic").src = "views/blankMusic.htm";
		document.getElementById("ifrMusic").style.display = '';
		document.getElementById("ifrMusic").height = "1px";
		
		document.getElementById("ifrPandora").src = purl;
		if (purl.indexOf("espn.go.com") != -1) {
			document.getElementById("ifrPandora").height = "650px";
		}
		else {
			document.getElementById("ifrPandora").height = "950px";
		}

		document.getElementById("ifrPandora").style.display = '';
		//document.getElementById("ifrPandora").scrollRight = 50;
	}
	else {
		document.getElementById("ifrPandora").src = "views/blankMusic.htm";
		document.getElementById("ifrPandora").height = "1px";
		document.getElementById("ifrPandora").style.display = '';
		
		document.getElementById("ifrMusic").src = purl;
		document.getElementById("ifrMusic").height = "100px";
		document.getElementById("ifrMusic").style.display = '';
	}
	
	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() {
	document.getElementById("ifrMusic").src = "views/blankMusic.htm";
	document.getElementById("ifrMusic").style.display = 'none';
	document.getElementById("ifrPandora").src = "views/blankMusic.htm";
	document.getElementById("ifrPandora").style.display = 'none';	
	document.getElementById("ifrMusic").height = "1px";
	document.getElementById("ifrPandora").height = "1px";
	
	
	////printTrace("CloseMusicWindow");
	//if (MusicWindow) {
	//	MusicWindow.close();
	//}
	//else {
	//		alert("window not open");
	//}
	return false;
}

function StartInterstitialClock(chid,pi) {
	//printTrace("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);
	}	
	//printTrace("PlayInterstitial("+chid+","+pi+")");
	if (g_musicchid == chid && g_isPlaying == true && g_musicPlaying == true) {
		//load file here
		var theURL = g_MusicStreamUrl + "?roll=interstitial&musicchid=" + chid;
		
		CloseMusicWindow();
		//printTrace("PlayInterstitial loadFile");
		HandleStreamTitle("Music will resume shortly...");
		loadFile(theURL);		
	}
}

function LookupInterstitialInterval(chid) {
	//printTrace("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));
						//printTrace("LookupInterstitialInterval After play("+g_musicchid+","+g_pisecs+")");
					}
				}
				catch(exception1)
				{
				}
			}		
	
			delete XMLHttpRequestObject;
			XMLHttpRequestObject = null;				
		} 
	  } 

	  XMLHttpRequestObject.send(null); 
	}
}

function ChangeMusicProvider(dd, callplay, initial) {
	var target = document.getElementById("selMusicChannel");
	displayOptionItemsByClass(target, dd.value);
	var options = target.getElementsByTagName("option");
	if (options.length == 2) {
		if (callplay) {
			for (var i=0;i<options.length; i++) {
				if (options[i].value != 0) {
					target.selectedValue = options[i].value;
					target.selectedIndex = i;
					break;
				}
			}			
			ChangeMusicChannel(target);			
		}
		target.style.display = 'none';
		if (options[1].text != 'Pandora') {			
			document.getElementById("divMusicChannelTitle").innerHTML = options[1].text;
			document.getElementById("divMusicChannelTitle").style.display = '';
			document.getElementById("channelheadertext").style.display = '';
		}
		else {
			document.getElementById("channelheadertext").style.display = 'none';
		}		
	}
	else {
		target.style.display = '';
		document.getElementById("divMusicChannelTitle").style.display = 'none';
		document.getElementById("channelheadertext").style.display = '';
		if (initial) {
			var defid = document.getElementById(g_SelMusChanIdHidName).value;
			for (var j=0;j<options.length;j++) {
				if (options[j].value == defid) {
					document.getElementById("selMusicChannel").selectedIndex = j;
					break;
				}
			}
			target.selectedValue = defid;
		}
	}
}

function CascadeMusicProviders() {
	applyCascadingDropdown("selMusicProvider", "selMusicChannel");
	ChangeMusicProvider(document.getElementById("selMusicProvider"), false, true);
}

function applyCascadingDropdown(sourceId, targetId) {
	var source = document.getElementById(sourceId);
	var target = document.getElementById(targetId);
	if (source && target) {
		displayOptionItemsByClass(target, source.value);
	}
}

function displayOptionItemsByClass(selectElement, className) {
	if (!selectElement.backup) {
		selectElement.backup = selectElement.cloneNode(true);
	}
	var options = selectElement.getElementsByTagName("option");
	for (var i = 0, length = options.length; i < length; i++) {
		selectElement.removeChild(options[0]);
	}
	var options = selectElement.backup.getElementsByTagName("option");
	for (var i = 0, length = options.length; i < length; i++) {
		if (options[i].className == className)
			selectElement.appendChild(options[i].cloneNode(true));
	}
}

function ChangeExternalPlayerType(val) {
    if (g_ExternalPlayerType != val) {
        //printTrace("ChangeExternalPlayerType: " + val);
        createCookie("ExternalPlayerType", val, 365);
        g_ExternalPlayerType = val;
        if (g_musicPlaying) {
			CloseMusicWindow();
            ReOpenMusicWindow();
        }
    }    
}

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 ClearSysRequestError() {
	document.getElementById("divNetworkError").style.display = 'none';
}

function LogSysRequestError(strErr) {
	//printTrace("LogSysRequestError - " + strErr);	
	document.getElementById("divNetworkError").style.display = '';
    var dataSource = pathtoajaxcalls + "ReportPlayerError.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 += '&playnum=' + urlen(g_PlayerNumber);
		p += '&lisid=' + urlen(g_ListenerId);
		p += '&errormsg=' + strErr;
		p += '&errtype=sysajax';
		
		XMLHttpRequestObject.send(p); 
	}	
}

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;		
		
	//printTrace(dataSource);
					
	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); 
	}	
}

/* Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008
	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}
