window.onunload = onWindowClose;

function getFlashMovieObject(movieName)
{ 
    var isBrowser = new IsBrowser();  
    
    if(isBrowser.nav || isBrowser.opera) {
        //debug("testMsg", "get flash movie object nav", true); 
        
        return document.embeds[movieName]; 
    }
    else {
        //debug("testMsg", "get flash movie object ie", true); 
        
        return document.getElementById(movieName);  
    }     
}

function onDebug(message) {
    //debug("testMsg", "Flash.onDebug:" + message, true); 
}

function onStatus(code, description) {
    //debug("testMsg", "Flash.onStatus:code:" + code, true); 
    //debug("testMsg", "Flash.onStatus:desc:" + description, true); 
}

function onFlashReady(message) {
    //debug("testMsg", "Flash.onFlashReady:" + message, true); 
}

function onFlashMetaData(name, value) {
    //debug("testMsg", "Flash.onMetaData: " + name + "=" + value, true);
}

function onFlashHeaderData(name, value) {
    //debug("testMsg", "Flash.onHeaderData: " + name + "=" + value, true);
}

function onFlashID3Tag(name, value) {
    //debug("testMsg", "Flash.onID3Tag: " + name + "=" + value, true);
}
     
function createStreamPlayer() {
    try {
        if(g_UseFlashStreaming) {
            if(g_IsArchive) {
                //to build a flash player to play mp3
                var html = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='1' height='1'><param name='movie' value='" + g_ArchiveUrl + "'><param name='wmode' VALUE='transparent'><embed src='" + g_ArchiveUrl + "' width='1' height='1' wmode='transparent'></embed></object>";
                
                $("#FLASH_PLAYER").html(html); 
            }
        }
        else {        
            $("#FLASH_PLAYER").html(" "); 
            
            createMySilverlightPlugin();
        }
    }
    catch(e) 
    {
        //alert("createStreamPlayer: " + e);
        //debug("testMsg", "ERR:createStreamPlayer:" + e.description, true);     
    }
}

function stop() {
    try {
        
        if(g_UseFlashStreaming) {
            var plugin = getFlashMovieObject(g_objFlashPlugin);  
            plugin.stopStream();
        }
        else {
            var plugin = document.getElementById(g_objSilverlightPlugin);     
            var media = plugin.content.findName("media");
            media.stop();
        }
    }
    catch(e) 
    {
        //debug("testMsg","ERR:stop:" + e.description, true);
    }
}

function pause() {
    try {
        if(g_UseFlashStreaming) {
            var plugin = getFlashMovieObject(g_objFlashPlugin);  
            plugin.stopStream();
        }
        else {
            var plugin = document.getElementById(g_objSilverlightPlugin);     
            var media = plugin.content.findName("media");
            media.stop();
        }
    }
    catch(e) 
    {
        //debug("testMsg","ERR:pause:" + e.description, true);
    }
}

function play() {
    
    try {
        
        //debug("testMsg","play", true);
        
        if(g_UseFlashStreaming) {
            var plugin = getFlashMovieObject(g_objFlashPlugin); 
            
            //debug("testMsg","play " + plugin, true);
            
            plugin.startStream();
             
            //debug("testMsg","play:plugin.startStream", true);
        }
        else { 
            var plugin = document.getElementById(g_objSilverlightPlugin);     
            var media = plugin.content.findName("media");
            media.play();
        }
         
        setVolume(g_NowStreamVolumeLevel);
    }
    catch(e) 
    {
        //alert("play: " + e);
        
        //debug("testMsg","ERR:play:" + e.description, true);
        
        setTimeout("play()", 3000);
    }
}

function setMediaSource() {
    
    //TODO 
    if(g_UseFlashStreaming) {
        play();
    }
    else {
        try {
            var plugin = document.getElementById(g_objSilverlightPlugin);     

            var media = plugin.content.findName("media");
            
            media.Source = g_MediaSource;            
        }
        catch(e)
        {
            setTimeout("setMediaSource()", 3000);
            //debug("testMsg","ERR:setMediaSource:" + e.description, true);
        }
    }

}

function setVolume(volumeValue) {
    
    try {  
    
        if(!g_IsTargetSpotPlaying) {
            if(g_UseFlashStreaming) {  
                var plugin = getFlashMovieObject(g_objFlashPlugin); 
                plugin.setVolume(volumeValue);
            }
            else {
                var plugin = document.getElementById(g_objSilverlightPlugin);     
                var media = plugin.content.findName("media");
                media.Volume = volumeValue;
            } 
        }
            
        g_NowStreamVolumeLevel = volumeValue;
        
        if(g_UseTargetSpot) {
            ts_setVolume(g_NowStreamVolumeLevel * 100);
        }
    }
    catch(e) 
    {
        //alert("setVolume: " + e);
        
        //debug("testMsg","ERR:setVolume:" + e.description, true);
    }
}

function setStreamVolume(volumeValue) {
    
    try {
        if(g_UseFlashStreaming) {
            var plugin = getFlashMovieObject(g_objFlashPlugin); 
            plugin.setVolume(volumeValue);
        }
        else {
            var plugin = document.getElementById(g_objSilverlightPlugin);     
 
            var media = plugin.content.findName("media");
        
            media.Volume = volumeValue;
        } 
    }
    catch(e) 
    {
        //alert("setStreamVolume: " + e);
        
        //debug("testMsg","ERR:setStreamVolume:" + e.description, true);
    }

}

function onError(sender, args) {
	//debug("testMsg", args.errorMessage, true); 
}

function startNowPlayProbe() {
    
    try {
        //debug("testMsg", "get np", true);
        
        loadXMLNowPlay();
       
        g_NowPlayProbeInterval = g_NowPlayProbeIntervalDefault;
               
        //if(g_NPAdId > 0 && g_NPCurrentRuntime > 0) {
        //    g_NowPlayProbeInterval = g_NPCurrentRuntime + g_NowPlayProbeIntervalAdjust;
        //}
        
        if(!g_IsArchive && !g_NPTargetSpotAd) {
            clearTimeout(g_NowPlayProbeID);
            g_NowPlayProbeID = setTimeout("startNowPlayProbe()", g_NowPlayProbeInterval);
            
            //debug("testMsg", "timeout " + g_NowPlayProbeInterval, true); 
        }
    }
    catch(e)
    {
        //debug("testMsg", "ERR:startNowPlayProbe: " + e, true); 
    }
}

function loadBanner(bannerDivName, bannerUrl, clickUrl, bannerWidth, bannerHeight) {
    
    //debug("testMsg", "to load banner " + bannerUrl, true); 
    
    try {
        if(bannerWidth > 0 && bannerHeight > 0) {
            var divBanner = $("#" + bannerDivName);
            
            var html = "";
            
            if(isUrlImage(bannerUrl)) {
        	    if(isUrlEmpty(clickUrl)) {
        	        html= "<img align='center' width='" + bannerWidth + "' height='" + bannerHeight + "' src='"+bannerUrl+"' alt='"+clickUrl+"' border='0'>";
        	    }
        	    else {
                    html= "<a href='#' onclick='openClickThruWindow(\"_ClickThruWin\", \""+clickUrl+"\"); return false;'><center><img align='center' width='" + bannerWidth + "' height='" + bannerHeight + "' src='"+bannerUrl+"' alt='"+clickUrl+"' border='0'></center></a>";
        
                }
        	}
        	else if(isUrlWinVideo(bannerUrl)) {
        	    //debug("testMsg", "not loading win video", true); 	
        	}
        	else if(isUrlWinAudio(bannerUrl)) { 
        	    //debug("testMsg", "not loading win audio", true); 	
        	}
        	else if(isUrlFlash(bannerUrl)) {
        	    debug("testMsg", "to load flash object.", true);         	    
        		//html = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='" + bannerWidth + "' height='" + bannerHeight + "'><param name='movie' value='" + bannerUrl + "'><param name='wmode' VALUE='transparent'><embed src='" + bannerUrl + "' width='" + bannerWidth + "' height='" + bannerHeight + "' wmode='transparent'></embed></object>";

                html = "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='" + bannerWidth + "' height='" + bannerHeight + "'><param name='movie' value='" + bannerUrl + "'><embed src='" + bannerUrl + "' width='" + bannerWidth + "' height='" + bannerHeight + "'></embed></object>";               
        	}
        	else if(!isUrlEmpty(bannerUrl)) {
        	    //debug("testMsg", "to load iframe. ", true); 
        	    
                html = "<iframe name='iframeBanner' align='middle' width='" + bannerWidth + "' height='" + bannerHeight + "' src='" + bannerUrl + "' scrolling='no' border='0' frameborder='0'>Your browser does not support inline frames or is currently configured not to display inline frames.</iframe>";
        	}
        	else {
        	    //debug("testMsg", "unknown type to load banner", true); 
        	}
        	
        	divBanner.html(html);
        	//divBanner.show('scale', {}, 'slow');
        	divBanner.show();
        }
    }
    catch(e)
    {
        //debug("testMsg", "ERR:loadBanner: " + e, true); 
    }
}

function onMarkerReached(sender, markerEventArgs) {

	//debug("testMsg", markerEventArgs.marker.type, true);
	//debug("testMsg", markerEventArgs.marker.text, true);	
	//markerEventArgs.marker.time.seconds.toString(); 
	
	var paramsArray = markerEventArgs.marker.text.split("&");
	var i = 0;

    g_NPAdId = -1;
    
	for(i=0; i<paramsArray.length; i++) 
	{
		var nameValuePair = paramsArray[i].split("=");
			
		if(nameValuePair[0] == "runtime") 
		{
		    g_NPCurrentRuntime = parseInt(nameValuePair[0]);
		}
		
		if(nameValuePair[0] == "currentSong") 
		{
    		g_NPCurrentTitle = urlDecode(nameValuePair[1]);
		}
		
		if(nameValuePair[0] == "currentArtist")
		{
	        g_NPCurrentArtist = urlDecode(nameValuePair[1]);
		}
		
		if(nameValuePair[0] == "adid") 
		{
		    var sTmp = "-1";
		    
		    try {
		        sTmp = urlDecode(nameValuePair[1]);		    
		    }
		    catch(ee) {
		    }		    
            
		    if(!isNaN(sTmp))
			{
				g_NPAdId = parseInt(sTmp);
			}			                
		}		    
	} 
	
    if(g_NPAdId > 0) {
        getAdInfo(g_NPAdId);
    }
    else {
        g_NPBanner1URL = "";
        g_NPBanner2URL = "";
        g_NPClickURL = "";
    }

    if(g_NPAdId <= 0 || isNaN(g_NPAdId)) {
        getAlbumArtsURL(g_NPCurrentTitle, g_NPCurrentArtist);
    } 
    
    displayNowPlay();
}

function onBufferingProgressChanged(sender, eventArgs)
{
    try {
//        if(g_SAStationID == '1783') {
//            var attribute;

//            var attributesCollection = sender.Attributes;
//            attribute = attributesCollection.getItemByName("Title");

//            alert("The title of the track is: " + attribute.value);
//        }
    
        //debug("testMsg", ">>> " + (sender.BufferingProgress * 100) + "% buffered");
        onSLMediaBufferingProgressChanged(sender.BufferingProgress);
    }
    catch(e)
    {
    }
}

function onCurrentStateChanged(sender, eventArgs)
{
    try {
        var media = sender.findName("media");
        //debug("testMsg", ">>> Current State " + media.CurrentState);
        onSLMediaStateChanged(media.CurrentState);
    }
    catch(e)
    {
    }
}

function startStream() {
    setMediaSource();
    //play();
}

function getAlbumArtsURL(title, artist) {
    try {
        if(g_DisplayAlbumArts) {
            if(title.length > 0 && artist.length > 0) {
                getAlbumInfo(title, artist);
            }
        }
        else {
            g_NPClickURL = g_NPDefaultClickURL;
            g_NPBanner1URL = g_NPDefaultBanner1URL;
        }
    }
    catch(e)
    {
    }
}

function displayNowPlay() {
    
    if(g_IsArchive) {
        g_NPAdId = -1;
        
        g_NPCurrentTitle = g_StationMotto;
        g_NPCurrentArtist = "Archived Content";
        g_NPCurrentAlbum = "";
        g_NPCurrentLabel = "";
        g_NPBanner1URL = g_NPDefaultBanner1URL;
        g_NPBanner2URL = g_NPDefaultBanner2URL;
    }
    
    if(g_NPAdId > 0) {
        
        if(g_NPAdId != g_NPAdIdPrev) {
            registerAdImpression(g_NPAdId);
            debug("testMsg", "register " + g_NPAdId, true); 
        }
                
        g_NPAdIdPrev = g_NPAdId;
    } 
    
    var currTitle = g_NPCurrentTitle.replace('&&','&');
    var currArtist = g_NPCurrentArtist.replace('&&','&');
    var currAlbum = g_NPCurrentAlbum;
    var currLabel = g_NPCurrentLabel;
    
    if($("#" + g_dvNowPlayTitle).html() != currTitle) {
        $("#" + g_dvNowPlayTitle).html(currTitle);
    }
    
    if($("#" + g_dvNowPlayArtist).html() != currArtist) {
        $("#" + g_dvNowPlayArtist).html(currArtist);
    }
    
    if($("#" + g_dvNowPlayAlbum).html() != currAlbum) {
        $("#" + g_dvNowPlayAlbum).html(currAlbum);
    }
    
    if($("#" + g_dvNowPlayLabel).html() != currLabel) {
        $("#" + g_dvNowPlayLabel).html(currLabel);
    }
    
    //$("#" + g_dvNowPlayTitle).html(currTitle);

    //$("#" + g_dvNowPlayArtist).html(currArtist);

    //$("#" + g_dvNowPlayAlbum).html(currAlbum);

    //$("#" + g_dvNowPlayLabel).html(currLabel);      
       
    var banner1URL= g_NPBanner1URL;
    var banner2URL = g_NPBanner2URL;
    var clickURL = g_NPClickURL;
    
    try {
        if(g_NPTargetSpotAd) 
        {
            var timeoutDuration = parseInt(g_NPCurrentRuntime) - 3000;
            
            clearTimeout(g_NowPlayProbeID);
            g_NowPlayProbeID = setTimeout("startNowPlayProbe()", g_NowPlayProbeIntervalDefault);  
            
            if(g_TSAdIdPrev != g_TSAdId) {
                loadTargetSpot();
            }
            
            g_TSAdIdPrev = g_TSAdId;
            
            debug("testMsg", "ts timeout " + g_NowPlayProbeIntervalDefault, true); 
            
            var divTSAV = $("#TS_AV");
            divTSAV.show();
            
        }
        else {
            if(g_HasBanner1) {
                if(isUrlEmpty(banner1URL)) {
                    if(g_NPAdId > 0) {
                        banner1URL = g_NPDefaultAdBanner1URL;
                    }
                    else {
                        banner1URL = g_NPDefaultBanner1URL;
                    }
                    g_NPBanner1URL = banner1URL;
                }
                
                if(g_NPBanner1URLPrev != banner1URL) {
                    loadBanner(g_dvBanner1, banner1URL, clickURL, g_Banner1Width, g_Banner1Height);
                }
                
                g_NPBanner1URLPrev = g_NPBanner1URL;   
            }
        }
    }  
    catch(e) {}
            
    try {
        if(g_HasBanner2) {
            if(isUrlEmpty(banner2URL)) {
                if(g_NPAdId > 0) {
                    banner2URL = g_NPDefaultAdBanner2URL;
                }
                else {
                    banner2URL = g_NPDefaultBanner2URL;
                }      
                g_NPBanner2URL = banner2URL;          
            }
                         
            if(g_NPBanner2URLPrev != banner2URL) {
                loadBanner(g_dvBanner2, banner2URL, clickURL, g_Banner2Width, g_Banner2Height);
            }
            
            g_NPBanner2URLPrev = g_NPBanner2URL;  
        }
    }
    catch(e) {}
 
}

function loadXMLNowPlay() {
    
    //loadXMLNowPlayFromFile();
     
    if(g_UseStationSpecificNowPlayScript) {
         displayNowPlay();
    }
    else {
        requestNowPlayInfo(g_SAStationCallLetter);
    }
}

function loadXMLNowPlayFromFile() {
    try {      
        var currentTime = new Date();
        var xmlURL = g_NowPlayXMLURL + "?time=" + currentTime.getTime();
        
        $.ajax({
            url: xmlURL,
            dataType: "xml",
            cache: false,
            async: false,
            success: function(data){
                $(data).find("SACurrentNowPlay").each(function() {
                    var xmlSACurrentNowPlay = $(this);  
                    
                    g_NPCurrentTitle = xmlSACurrentNowPlay.find("Title").text();
                    
                    g_NPCurrentArtist = xmlSACurrentNowPlay.find("Artist").text();
                    
                    g_NPCurrentAlbum = xmlSACurrentNowPlay.find("Album").text();
                    
                    g_NPCurrentLabel = xmlSACurrentNowPlay.find("Label").text();
                    
                    var duration = xmlSACurrentNowPlay.find("Duration").text();
                    g_NPCurrentRuntime = 0;
                    if(!isNaN(duration)) {
                        g_NPCurrentRuntime = parseInt(duration) + g_NowPlayProbeInterval;
                    }
                      
                    var adId = xmlSACurrentNowPlay.find("AdID").text();
                    g_NPAdId = -1;
                    if(!isNaN(adId)) {
                        g_NPAdId = parseInt(adId);
                    
                        g_NPBanner1URL = xmlSACurrentNowPlay.find("Banner1URL").text();
                        g_NPBanner2URL = xmlSACurrentNowPlay.find("Banner2URL").text();
                        g_NPClickURL = xmlSACurrentNowPlay.find("ClickURL").text();    
                        
                        g_NPClickURL = generateClickThruURL(g_NPClickURL, g_NPAdId, g_SAStationCallLetter); 
                    } 
                    if(g_NPAdId <= 0) {
                        getAlbumArtsURL(g_NPCurrentTitle, g_NPCurrentArtist);
                    }                        
   
                    displayNowPlay();
                });            
            }
        }); 
    }
    catch(e)
    {
        
    }
}
  
function getAdInfo(adId) {
    requestAdInfo(adId);
}

function startRadio() {
    
    startStream();
       
    var isBrowser = new IsBrowser();  

    //debug("testMsg", "start radio ", true); 
    //debug("testMsg", "linux? " + isBrowser.linux, true); 
    //debug("testMsg", "no script event? " + g_NoScriptEvent, true); 

    if(isBrowser.linux || g_NoScriptEvent) {    
        startNowPlayProbe();
    }   
    else {
        loadXMLNowPlay();
    }
    
    //startPlayerRegistration();
    
    if(g_HasStreamTimeout) 
    {
        checkStreamTimeout();
    }
}

function startGateway() {

    //debug("testMsg", "start gateway", true); 
    
    var ipAddress = getIPInfo();
    
    if(g_GWSkip) {
        onGatewayMediaEnded();
    }
    else {
        requestGatewayInfo(g_SAStationID, ipAddress);
    }
}

function displaySendEmail(show)
{
    try {
        if(show) {
            var html = $("#" + g_dvSendMailInternal).html();
            $("#" + g_dvSendMail).html(html);            
            $("#" + g_dvSendMail).show('scale', {}, 'slow');
        }
        else {
            $("#" + g_dvSendMail).html("");
            $("#" + g_dvSendMail).hide();
        }
    }
    catch(e)
    {
    }
    return false;
    
}

function onClickSendMailSubmit()
{
    var SM_Subject = "Check This Radio Station Out!";

	var SM_Name = $("#SM_Name").val();
	var SM_Email = $("#SM_Email").val(); 
	var SM_FriendEmail = $("#SM_FriendEmail").val();
	var SM_Message = $("#SM_Message").val(); 

    SM_Message = SM_Message.replace(/&/g, "&amp;"); 
    
    sendEmailToFriend(g_SAStationCallLetter, SM_Name, SM_Email, SM_FriendEmail, SM_Subject, SM_Message);

    displaySendEmail(false);

    return false;
}

function onClickSendMailClose() 
{
    displaySendEmail(false);
    
    return false;
}

function openHelp()
{
	openWindow("_HELP", "http://www.streamaudio.com/site/support.aspx");
}

function onWindowClose() 
{ 
    try {
        if(g_DefaultClosingUrl != "") 
        {
            popunderWindow("_ClosingAd", g_DefaultClosingUrl);
        }
    }
    catch(err) {}

	return true;
}

function hideDivOnStart()
{
    if(g_HasStreamTimeout)
    {
        $("#" + g_dvStreamTimeout).hide();
    }
    
    if(g_HasSendToFriend)
    {
        $("#" + g_dvSendMail).hide();
    }
    
    if(g_OptIn) 
    {
        $("#" + g_dvPlayerRegistration).hide();
    }
    
}


function startProcess() {
   
    g_IsReady = true;
    
    //debug("testMsg", "start process", true); 
    
    $('#' + g_AudioCtrlStop).click(function(){
        stop();
    });
    
    $('#' + g_AudioCtrlPlay).click(function(){
        play();
    });
    
    startPlayerRegistration(); 
    //startGateway();
      
}

$(document).ready(function() {    
    
    hideDivOnStart();
    
    //debug("testMsg", "ready...", true); 
    
    //debug("testMsg", "Flash version: " + GetSwfVer(), true);
    
    //debug("testMsg", "Minimum: " + DetectFlashVer(9, 0, 115), true);
    
    try {
        if(!DetectFlashVer(9, 0, 115)) {
            alert("This page required Adobe Flash Player 9 Update 3 (version 9.0.115) or above.");
            window.location = "http://www.adobe.com/go/getflashplayer";
        }
    }
    catch(e)
    {}
    
    setTimeout("startProcess()", 5000);
});



