// (c) 1999-2011 Live365, Inc.  All rights reserved.

var gAdsServerURL = "http://ads.live365.com";
var webServer     = 'http://www.live365.com';
//gAdsServerURL   = "http://devweb01.nanocosm.com:88";
//webServer       = "http://devweb01.nanocosm.com";

if (typeof(GetCookieEx) != "function")
	document.write('<scr'+'ipt language="JavaScript" src="/scripts/cookiemonster.js"></scr' + 'ipt>');

if (typeof(GetGenreIndex) != "function")
	document.write('<scr'+'ipt language="JavaScript" src="/scripts/genre.js"></scr' + 'ipt>');
	
var gRunningPrestitials = false;
var psCookieTimeout = (webServer.indexOf("nanocosm") == -1) ? 12  : .01;

var gRMARecencyTimeoutHouse = 900;	// 15-min House RMA recency check
var gRMARecencyTimeoutTS	= 180;	// 3-min TargetSpot RMA recency check

if (webServer.indexOf("nanocosm") != -1) {
	gRMARecencyTimeoutHouse = 90;
	gRMARecencyTimeoutTS = 90;
}

var ua = navigator.userAgent;
var gNoFlash = (ua.indexOf("iPhone") != -1 || ua.indexOf("iPod") != -1 || ua.indexOf("iPad") != -1 || ua.indexOf("Android 1") != -1 || ua.indexOf("Android 2.1") != -1 || ua.indexOf("webOS") != -1);
var bIsModernNS = (navigator.appName == "Netscape" && ua.indexOf("Netscape/7.0") != -1);
var gAdsIsPM = displayPreferredAds();

function SetAdsIsPM(v)
{
	gAdsIsPM = v;
}
 
function displayPreferredAds() // use gAdsIsPM instead of calling this directly!
{
	var PM = false;
	
	if (typeof(GetCookie) == "function" && GetCookie("afl") != null && GetCookie("sessionid") != null)
		PM = true;
	
	try {
		if (typeof(parent.SetAdsIsPM) == "function")
			parent.SetAdsIsPM(PM);
		else if (typeof(top.SetAdsIsPM) == "function")
			top.SetAdsIsPM(PM);
	}
	catch(e) {
	}
	
	SetAdsIsPM(PM);
	
	return PM;	
}


function DrawTextSponsor()
{
	if (gAdsIsPM)
		return;

	var campaign = 'mixonic';
	var currentDate = new Date();
	var now = currentDate.getTime();
	var url = gAdsServerURL + '/cgi-bin/ads365.cgi?m=pick&z=sponsorship&ac=all&c=' + campaign + '&x=' + now + '&t=';
	var s = '';

	s += '<table cellspacing="0" cellpadding="2" border="0" width="100%">';
	s += '<tr>';
	s += '<td id="questionhead" width="100%"><img src="/images/dot.gif" width="1" height="3" border="0"></td>';
	s += '</tr>';
	s += '<tr>';
	s += '<td id="questionsubtext" width="100%">Make Pro CDs Online * Your Music * No Minimum Order * ';
	s += 'Sponsored&nbsp;by&nbsp;';

	document.write(s);

	DrawAdIFrame(110, 24, url + 'if', url + 'js');
	
	s = '</td>';
	s += '</tr>';
	s += '</table>';

	document.write(s);
}


function DrawSponsor(hostpage, genre, tile, tm)
{
	if (DrawSponsor.arguments.length < 3)
		tile = 2;

	if (DrawSponsor.arguments.length < 4)
		tm = 0;

	if (tile < 0 || 25 < tile)
		tile = 2;
		
	if (tile == 6)
		return DrawSkyscraperAd(hostpage, genre);
		
	var vc_shares = new Array(
		"All",	0
	);

	var advariant_shares = new Array(
		"All", 0.00
	);	
	
	var alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";

	DrawAd(vc_shares, 120, 60, genre, "120x60" + alphabet.charAt(tile), tile, tm, 'BUTTON', advariant_shares, 0, hostpage);
}


function DrawSkyscraperAd(hostpage, genre)
{
	var vc_shares = new Array(
		"All",	0
	);

	var advariant_shares = new Array(
		"All", 0.00
	);	
	
	var google_share = .50;

	if (hostpage.indexOf('directory.cgi') > -1) // in directory, search or browse
		google_share = (genre == 'search') ? 1.00 : 0.00;
		
	DrawWizzyTags(genre, 6);
	DrawAd(vc_shares, 160, 600, genre, "160x600", 6, 0, "SKYSCRAPER", advariant_shares, google_share, hostpage);
}


function GetPrestitialLockout()
{
	var now = new Date(); 
	FixCookieDate(now);

	var epoch_secs = Math.round(now.getTime()/1000);
	var drop_dead = GetCookieEx('session_mc', 'pst');
	
	if (drop_dead >= epoch_secs)
		return (drop_dead - epoch_secs);
	
	return 0;
}


function SetPrestitialLockout()
{
	var now = new Date(); 
	FixCookieDate(now);
	var until = Math.round(now.getTime()/1000) + (psCookieTimeout*3600);
	
	RememberItEx('session_mc', 'pst', until, true);
}


function DrawPrestitialAd(w, h, genre)
{
	if (gAdsIsPM)
		return '';
    
    var eligible = (!gNoFlash && gRunningPrestitials && !isNewbieListener() && GetPrestitialLockout() <= 0);
    
	if (w == 1 && h == 1) {
		if (eligible)
			return DrawZedoAd('prestitial', w, h);
	}
	else if (w == 300 && h == 250) {
		if (eligible) {
			SetPrestitialLockout();
			return DrawZedoAd('prestitial', w, h);
		}
		else
			return DrawRectAd(genre);
	}
}


function DrawWizzyTags(genre, tile)
{
	return;  // shutting off for now
}


function DrawBannerAd(genre, dummy, subNavDomain)
{
	var vc_shares = new Array(
		"All",	0
	);
	
	//AV BANNER
	var advariant_shares = new Array(
		"All", 0.00
	);

	var google_share = 0.0;
	
	if (DrawBannerAd.arguments.length < 3)
		subNavDomain = "";		

	if (genre == "")
		genre = subNavDomain;

	var tile = (subNavDomain == "player") ? 22 : 1;

	DrawWizzyTags(genre, tile);	
	
	DrawAd(vc_shares, 468, 60, genre, "468x60a", tile, 0, "BANNER", advariant_shares, google_share);
}


function DrawLeaderBoardAd(genre, dummy, subNavDomain)
{
	var vc_shares = new Array(
		"All",  0
	);
    
	//AV LEADERBOARD
	var advariant_shares = new Array(
		'All' , 0.00
	);

	var google_share = 0;

	if (GetContentURL().indexOf('directory.cgi') > -1) // in directory, search or browse
		google_share = (genre == 'search') ? .50 : 0.00;

	var tile = (subNavDomain == "player") ? 22 : 1;
	var campaign = "other";
	
	if (DrawLeaderBoardAd.arguments.length < 2)
		subNavDomain = "";		

	if (genre == "")
		genre = subNavDomain;
	
	DrawWizzyTags(genre, tile);	
	
	DrawAd(vc_shares, 728, 90, genre, "728x90a", tile, 0, "LEADERBOARD", advariant_shares, google_share);		
}


function DrawPopUpAd(genre, width, height)
{
	var vc_shares = new Array(
		"All", 0
	);

	//AV RECTANGLE
	var advariant_shares = new Array(
		'All', 0.00
	);

	DrawAd(vc_shares, width, height, genre, width + "x" + height + "y", 24, 0, "POP", advariant_shares, 0);
}


function DrawPrerollAd(genre)
{
	var vc_shares = new Array(
		"All", 0
	);

	var advariant_shares = new Array(
		'All', 0.00
	);

	DrawAd(vc_shares, 415, 73, genre, "415x73", 23, 0, "PREROLL", advariant_shares, 0);    
}


function DrawNavbarText(adcategory)
{
	DrawZedoAd(adcategory, 255, 11);
}


function DrawRectAd(genre, tile)
{
	if (gAdsIsPM)
		return;

	if (DrawRectAd.arguments.length < 2)
		tile = 1;
		
	var vc_shares = new Array(
		"All",	0
	);
	

	var advariant_shares = new Array(
		"All", 0.00
	);	

	var google_share = 0;//(top.GetSite() == 'web') ? 0 : 0;	

	DrawAd(vc_shares, 300, 250, genre, "300x250", tile, 0, "RECT", advariant_shares, google_share, window.location.href);
}


function DrawMicroBarAd(genre)
{
	if (gAdsIsPM)
		return;

	DrawGenreZedoAd(genre, 88, 31);
}


function DrawLoginWideAd(genre)
{
	DrawGenreZedoAd(genre, 300, 50);
}


function DrawLoginAd(genre)
{
	DrawGenreZedoAd(genre, 170, 60);
}


function GetCampaignFromGenre(genre)
{
	var stations = new Array(
		"harporadio"
	);
	
	var domains = new Array(
		"home",
		"listen",
		"broadcastintro",
		"broadcast",
		"easycast",
		"store",
		"community",
		"help",
		"about",
		"editorial",
		"person",
		"plr",
		"play_b1",
		"download",
		"contest",
		"podcasts",
		"test"
	);

	var campaigns = new Array(
		"home",
		"listen",
		"broadcast",
		"broadcast",
		"broadcast",
		"store",
		"community",
		"help",
		"help",
		"home",
		"broadcast",
		"broadcast",
		"play_b1",
		"download",
		"contest",
		"podcasts",
		"test"
	);

	var i;
	var id;
	var campaign = "other";

	for (id = 0; id < stations.length; id++) {
		if (genre == stations[id]) {
			campaign = genre;
			break;
		}
	}

	if (campaign == "other") {
		for (id = 0; id < domains.length; id++) {
			if (genre == domains[id]) {
				campaign = campaigns[id];
				break;
			}
		}
	}
	
	if (campaign == "other") {
		id = GetGenreIndex(genre);
		campaign = GetGenreAd(id);
	}

	return campaign;
}


function CalcSharesByCampaign(shares, campaign)
{
	var i;
	var pct = shares[1];

	for (i = 2; i < shares.length; i += 2) {
		if (campaign == shares[i]) {
			pct = shares[i + 1];
			break;
		}
	}

	return pct;
}


function DrawAd(vc_shares, width, height, genre, position, tile, tm, ad_unit, advariant_shares, google_share, hostpage)
{
	var site_takeover = (top.GetDefaultSite() != 'live365');
	var zedo_pct = .95;
	var currentDate = new Date();
	var vc_pct = 0.00;
	var AV_pct  = 0.00;
	var ad_type = 'NONE';

	if (DrawAd.arguments.length >= 8)
		ad_type = ad_unit;

	if (ad_type != 'NONE' && ad_type != 'BUTTON' && ad_type != 'PREROLL' && DrawAd.arguments.length >= 9)
		AV_pct = advariant_shares[1];
	
	if (DrawAd.arguments.length < 10)
    	google_share = 0;

	if (site_takeover) {
		google_share = 0;
		zedo_pct = 1.00;
	}
	else if (gNoFlash)
		google_share = 1.00;
		
	var campaign = "other";
	var now = tm;

	if (now == 0)
		now = currentDate.getTime();

	if (genre != "") {		// Non-numeric genres are regular genres.  Watch out for genre names which fail parseint!
		if (IsRegularGenre(genre)) {
			genre = CleanGenreStr(genre);
			campaign = GetCampaignFromGenre(genre);
		}
		else {				// Force AIS sync'd ads to use Zedo
			campaign = genre; //used for zedo keyword lookup in DrawZedoAd

			vc_pct = 0.0;
			zedo_pct = 1.0;  
			google_share = 0.0;
		}
	}
		
	//
	// Not all ad sizes are booked into all ad servers.
	//
	if (ad_type == 'LEADERBOARD' || ad_type == 'RECT' || ad_type == 'POP' || ad_type == 'SKYSCRAPER' || ad_type == 'BUTTON' || ad_type == 'BANNER')
		zedo_pct = 1.0; // force these to Zedo instead of ads365
	
	if (ad_type != 'LEADERBOARD' && ad_type != 'SKYSCRAPER' && ad_type != 'RECT')
		google_share = 0.0;

	if (vc_pct > 0 && typeof(GetCookie) == "function") {
		var lid = GetCookie("LID");
		if (lid && lid.indexOf('-US') == -1 && lid.indexOf('-usa') == -1  && lid.indexOf('-can') == -1)
			vc_pct = 0.00;
	}
		
	// TESTING
	// zedo_pct = 1;
	// google_share = 0;
	// vc_pct = 0;
		
	if (gAdsIsPM) // -internal- is a hard-coded ad-category with only AFL logos
		Draw365Ad("internal", width, height, tile, now);		
	else if (Math.random() <= google_share)
		DrawGoogleAd(ad_type);
	else if (Math.random() <= zedo_pct) // force all remaining leaderboards to run through Zedo
		DrawZedoAd(campaign, width, height, hostpage, 'LIVE365', '', tile);
	else
		Draw365Ad(campaign, width, height, tile, now);

	// shut off Advariant and ValueClick, they are offline
	//else if (Math.random() <= AV_pct)
	//	DrawAdvariantAd(ad_type, campaign);
	//else if (Math.random() <= vc_pct)
	//	DrawValueClickAd(ad_type, campaign, genre, width, height, tile, now);
}


function DrawValueClickAd(ad_type, campaign, genre, width, height, tile, now)
{
	// kill at some point
	return;
}


function GetValueClickSiteID(type, tile, campaign)
{
	// kill at some point
	return ;	
}


function Draw365Ad(campaign, width, height, tile, now)
{
	var iframeurl;
	var scripturl;
	var zone;

	if (campaign == 'internal' && width == 1 && height == 1)
		return;
		
	if (tile == 25)
		zone = 'play_b1';
	else if (tile == 22)
		zone = 'player';
	else if (tile == 1)
		zone = 'top';
	else if (tile == 2)
		zone = 'cta_b2';
	else if (tile == 3)
		zone = 'cta_b3';
	else if (tile == 4)
		zone = 'cta_b4';
	else if (tile == 5)
		zone = 'cta_b5';
	else if (tile == 6)
		zone = 'skyscraper';
	else if (tile == 24)
		zone = 'pop1';
	else if (tile == 23)
		zone = 'preroll';
	else if (tile == 21)
		zone = 'sponsorship';		
	else
		zone = 'top';

	iframeurl = gAdsServerURL + '/cgi-bin/ads365.cgi?m=pick&t=if&z=' + zone + '&ac=' + campaign + "&x=" + now;	
	scripturl = gAdsServerURL + '/cgi-bin/ads365.cgi?m=pick&t=js&z=' + zone + '&ac=' + campaign + "&x=" + now;
			
	DrawAdIFrame(width, height, iframeurl, scripturl);
}


function DrawAdIFrame(width, height, iframeurl, scripturl, noiframetext)
{
    var iframeName = 'int_' + width + 'x' + height;
    
	var s = '<iframe name="' + iframeName + '" src="' + iframeurl + '" width="' + width + '" height="' + height + '" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no" align="absmiddle" hspace="0" vspace="0" >';

	if (navigator.appName == "Netscape" && !bIsModernNS) {
		if (scripturl != '')
			s += '<SCR'+'IPT language="JavaScript" SRC="' + scripturl + '"></SCR'+'IPT>';
		else if (typeof(noiframetext) != "undefined" && noiframetext)
			s += noiframetext;
	}
	
	s += '</iframe>';
	
	document.write(s);
}


function DrawAdvariantAd(type, adcampaign)
{
	//kill at some point
	return;
}


function getAdVariantCampaign(adcampaign)
{
	//kill at some point
	return;
}


function DrawGoogleAd(type)
{
	var scripturl = '';
	var iframeurl = webServer + '/web/components/ads/google_';
	
	if (type == 'LEADERBOARD') {
		iframeurl += 'banner.live';
		DrawAdIFrame(728, 90, iframeurl, scripturl);
	}
	else if (type == 'SKYSCRAPER') {
		iframeurl += 'sky.live';
		DrawAdIFrame(160, 600, iframeurl, scripturl);
	}
	else if (type == 'RECT') {
		iframeurl += 'rect.live';
		DrawAdIFrame(300, 250, iframeurl, scripturl);
	}
}


function DrawGenreZedoAd(genre, width, height)
{
	var adcat = 'other';

	if (IsRegularGenre(genre)) {
		genre = CleanGenreStr(genre);
		adcat = GetCampaignFromGenre(genre);
	}

	DrawZedoAd(adcat, width, height);
}


function DrawZedoAd(campaign, width, height, hostpage, displayType, site, channel)
{
    var numArgs = DrawZedoAd.arguments.length + 1;
	if (numArgs < 4 || !hostpage)
		hostpage = '';
	if (numArgs < 5 || !displayType)
		displayType = 'LIVE365';
	if (numArgs < 6 || !site)
		site = top.GetSite();
	if (numArgs < 7)
		channel = '';

	var kw = '';
	var skin_id = 0;

	if (!isNaN(campaign)) {
		kw = "X" + campaign + "X";  // "X" is used to work around a substring matching bug in Zedo
		if (channel && isNaN(channel))
	        campaign = channel;		// set campaign to specified ZEDO channel
		else
	        campaign = 'a2sync';	// set campaign to default a2 sync-specific ZEDO channel
    }
		
	// switch player sponsor buttons to custom zedo channel
	if (hostpage) {
        if (hostpage.indexOf("sponsor.html") != -1) {
			if (kw == '')
				campaign = "play_b1";  // have to do this so we don't break other ad-servers
		}
        else if (displayType == 'SCP') {
			if (site != 'live365')
				skin_id = 1;
		}
	}
    
	var zedo_page_header = '';
	var zedo_server = 'c8';
	var zedo_script = 'fo';
	var zedo_nid = 272;
	var zedo_sid = -1;
	
	var zedo_cid = ZedoChannelMap(campaign, site);
	var zedo_cid_sfx = '';
	if (site == 'web2') 
		zedo_cid_sfx = '/73'
	else if (site == 'web3') 
		zedo_cid_sfx = '/117'
		
	var zedo_sz = ZedoAdDimsMap(height, width, skin_id, campaign);
	var zedo_width = width;
	var zedo_height = height;
	var zedo_no_lvbhnd = 0;
	var zedo_kw = kw;
	var zedo_fv	= 0;
	var zedo_freq = -1;
	var iframe = 1;

    if (campaign == 'prestitial')
		iframe = 0;

    var iframeName = zedo_cid + '_' + width + 'x' + height;
	zedo_cid += zedo_cid_sfx;
	
	var zedo_params = '<sc'+'ript language="JavaScript">';
	if (zedo_page_header)
		zedo_params += 'var zflag_page_header="'+ zedo_page_header + '";';
	zedo_params += 'var zflag_nid="' + zedo_nid + '";';
	zedo_params += 'var zflag_cid="' + zedo_cid + '";';
	if (zedo_sid != -1)
		zedo_params += 'var zflag_sid="' + zedo_sid + '";';
	zedo_params += 'var zflag_width="' + zedo_width + '";';
	zedo_params += 'var zflag_height="' + zedo_height + '";';
	zedo_params += 'var zflag_sz="' + zedo_sz + '";';
	if (zedo_no_lvbhnd)
		zedo_params += 'var zflag_no_lvbhnd=' + zedo_no_lvbhnd + ';';
	if (zedo_kw && zedo_kw != 'XX')
		zedo_params += 'var zflag_kw="' + zedo_kw + '";';
	if (zedo_fv)
		zedo_params += 'var zflag_fv="' + zedo_fv + '";';
	if (zedo_freq != -1)
		zedo_params += 'var zflag_freq="' + zedo_freq + '";';
	zedo_params += '</scri'+'pt>';
	if (iframe) {
		zedo_params += '<ifr'+'ame src="http://' + zedo_server + '.zedo.com/jsc/' + zedo_server + '/ff2.html?n=' + zedo_nid + ';c='+ zedo_cid + ';d=' + zedo_sz + ';w=' + zedo_width + ';h=' + zedo_height + ';q=' + zedo_kw + '"';
		zedo_params += '  frameborder=0 marginheight=0 marginwidth=0 scrolling="no" allowTransparency="true" width=' + zedo_width + ' height=' + zedo_height + ' name="' + iframeName + '">';
	}
	
	zedo_params += '<scr'+'ipt language="JavaScript" src="http://' + zedo_server + '.zedo.com/jsc/'+zedo_server+'/' + zedo_script + '.js"></scr'+'ipt>';
	
	if (iframe)
		zedo_params += '</if'+'rame>';
		
	document.write(zedo_params);
	return zedo_params;
}


function ZedoChannelMap(campaign, site)
{
	if (campaign)
		campaign = campaign.toLowerCase();

	var zedoAdCats = new Array();
	var zedoCampaign;

	// Map our ad-categories to ZEDO channels
	// NOTE: keys shoud be in LOWER CASE below!
	
	// Special stations and categories common to all themed sites
	zedoAdCats["test"]			= 3;
	zedoAdCats["test2"]			= 43;
	zedoAdCats["affiliate"]		= 45;
	zedoAdCats["test 3"]		= 46;
	zedoAdCats["test3"]			= 46;
	zedoAdCats["contest"]		= 47;
	zedoAdCats["wmp"]			= 49;
	zedoAdCats["vip"]			= 50;
	zedoAdCats["podcasts"]		= 51;
	zedoAdCats["prestitial"]	= 65;
	zedoAdCats["harporadio"]	= 68;
	zedoAdCats["store"]			= 20;
	zedoAdCats["internal"]		= 24;
	zedoAdCats["play_b1"]		= 35;
	zedoAdCats["unicast"]		= 39;

	if (site == 'web2') {					// Athena365 channels
		zedoAdCats["all"]			= 73;	// AKA "Run of Network"
		zedoAdCats["a2sync"]		= 74;
		zedoAdCats["alternative"]	= 75;
		zedoAdCats["blues"]			= 76;
		zedoAdCats["broadcast"]		= 77;
		zedoAdCats["classical"]		= 78;
		zedoAdCats["community"]		= 79;
		zedoAdCats["country"]		= 80;
		zedoAdCats["download"]		= 81;
		zedoAdCats["easy"]			= 82;
		zedoAdCats["electronic"]	= 83;
		zedoAdCats["folk"]			= 84;
		zedoAdCats["freeform"]		= 85;
		zedoAdCats["help"]			= 86;
		zedoAdCats["hiphop"]		= 87;
		zedoAdCats["home"]			= 88;
		zedoAdCats["inspirational"] = 89;
		zedoAdCats["international"] = 90;
		zedoAdCats["jazz"]			= 91;
		zedoAdCats["latin"]			= 92;
		zedoAdCats["listen"]		= 93;
		zedoAdCats["metal"]			= 94;
		zedoAdCats["newage"]		= 95;
		zedoAdCats["oldies"]		= 96;
		zedoAdCats["other"]			= 97;
		zedoAdCats["pop"]			= 98;
		zedoAdCats["publishers"]	= 99;
		zedoAdCats["reggae"]		= 100;
		zedoAdCats["rock"]			= 101;
		zedoAdCats["search"]		= 102;
		zedoAdCats["seasonal"]		= 103;
		zedoAdCats["soundtracks"]	= 104;
		zedoAdCats["talk"]			= 105;
		zedoAdCats["urban"]			= 106;
	}
	else if (site == 'web3') {				// MyGen365 channels
		zedoAdCats["all"]			= 117;	// AKA "Run of Network"
		zedoAdCats["a2sync"]		= 118;
		zedoAdCats["alternative"]	= 119;
		zedoAdCats["blues"]			= 120;
		zedoAdCats["broadcast"]		= 121;
		zedoAdCats["classical"]		= 122;
		zedoAdCats["community"]		= 123;
		zedoAdCats["country"]		= 124;
		zedoAdCats["download"]		= 125;
		zedoAdCats["easy"]			= 126;
		zedoAdCats["electronic"]	= 127;
		zedoAdCats["folk"]			= 128;
		zedoAdCats["freeform"]		= 129;
		zedoAdCats["help"]			= 130;
		zedoAdCats["hiphop"]		= 131;
		zedoAdCats["home"]			= 132;
		zedoAdCats["inspirational"] = 133;
		zedoAdCats["international"] = 134;
		zedoAdCats["jazz"]			= 135;
		zedoAdCats["latin"]			= 136;
		zedoAdCats["listen"]		= 137;
		zedoAdCats["metal"]			= 138;
		zedoAdCats["newage"]		= 139;
		zedoAdCats["oldies"]		= 140;
		zedoAdCats["other"]			= 141;
		zedoAdCats["pop"]			= 142;
		zedoAdCats["publishers"]	= 143;
		zedoAdCats["reggae"]		= 144;
		zedoAdCats["rock"]			= 145;
		zedoAdCats["search"]		= 146;
		zedoAdCats["seasonal"]		= 147;
		zedoAdCats["soundtracks"]	= 148;
		zedoAdCats["talk"]			= 149;
		zedoAdCats["urban"]			= 150;
	}
	else {									// Standard Live365 channels
		zedoAdCats["all"]			= 0;	// AKA "Run of Network"
		zedoAdCats["electronic"]	= 1;
		zedoAdCats["alternative"]	= 2;
		zedoAdCats["blues"]			= 4;
		zedoAdCats["classical"]		= 5;
		zedoAdCats["country"]		= 7;
		zedoAdCats["hiphop"]		= 8;
		zedoAdCats["jazz"]			= 9;
		zedoAdCats["latin"]			= 10;
		zedoAdCats["other"]			= 11;
		zedoAdCats["pop"]			= 12;
		zedoAdCats["inspirational"] = 13;
		zedoAdCats["rock"]			= 14;
		zedoAdCats["talk"]			= 15;
		zedoAdCats["international"] = 16;
		zedoAdCats["home"]			= 17;
		zedoAdCats["listen"]		= 18;
		zedoAdCats["broadcast"]		= 19;
		zedoAdCats["community"]		= 21;
		zedoAdCats["help"]			= 22;
		zedoAdCats["search"]		= 33;
		zedoAdCats["download"]		= 34;
		zedoAdCats["a2sync"]		= 37;
		zedoAdCats["easy"]			= 41;
		zedoAdCats["publishers"]	= 44;
		zedoAdCats["folk"]			= 52;
		zedoAdCats["freeform"]		= 53;
		zedoAdCats["metal"]			= 54;
		zedoAdCats["newage"]		= 55;
		zedoAdCats["oldies"]		= 56;
		zedoAdCats["urban"]			= 57;
		zedoAdCats["reggae"]		= 58;
		zedoAdCats["seasonal"]		= 59;
		zedoAdCats["soundtracks"]	= 60;
	}
		
	// find the value given the key
	zedoCampaign =  zedoAdCats[campaign];
	
	// default to Run of Site/All if not found
	if (zedoCampaign == '' || !zedoCampaign)
		zedoCampaign = '0';
			
	return zedoCampaign;
}


function ZedoAdDimsMap(height, width, skin_id, campaign)
{
	var zedoAdDims = new Array();
	var zedoDim;

	// map our ad-categories to those specified by AdVariant...
	zedoAdDims["468x60"] = '0';
	zedoAdDims["234x60"] = '1';
	zedoAdDims["88x31"] = '2';
	zedoAdDims["120x90"] = '3';	
	zedoAdDims["120x60"] = '4';
	zedoAdDims["120x240"] = '5';
	zedoAdDims["125x125"] = '6';
	zedoAdDims["160x600"] = '7';	
	zedoAdDims["120x600"] = '8';
	zedoAdDims["300x250"] = '9';
	zedoAdDims["250x250"] = '10';
	zedoAdDims["240x400"] = '11';	
	zedoAdDims["336x280"] = '12';		
	zedoAdDims["180x150"] = '13';	
	zedoAdDims["728x90"] = '14';	
	zedoAdDims["1x1"] = '15';	// pops
	zedoAdDims["300x300"] = '16';	
	//zedoAdDims["320x250"] = '17'; // RMA	
	zedoAdDims["225x18"] = '18';
	zedoAdDims["415x73"] = '19';	
	//zedoAdDims["1x1"] = '20'; //Overlay-Floaters
	zedoAdDims["490x65"] = '21';	
	zedoAdDims["170x60"] = '22';	
	zedoAdDims["255x11"] = '23';	
	//zedoAdDims["120x60"] = '24';	// Directory Sponsor
	//zedoAdDims["225x18"] = '25';	// Skinned PW Sponsor
	zedoAdDims["670x70"] = '26';	
	zedoAdDims["300x50"] = '27';	
   
	zedoDim =  zedoAdDims[width + 'x' + height];
	
	var url = GetContentURL();		// content frame page url
	
	if (zedoDim == 9) {				// remap 300x250s for non-Home Page
		if (url.indexOf("home.live") == -1)
			zedoDim = 28;
	}
	else if (zedoDim == 4) {		// remap 120x60s on directory (obsolete)
		if (url.indexOf("directory.cgi") != -1)
			zedoDim = 24;
	}
    else if (zedoDim == 15) {		// remap pop-ups (obsolete)
		if (campaign == 'prestitial')
			zedoDim = 29;
	}
	else if (zedoDim == 18) {		// remap 225x18s for skinning (obsolete)
		if (skin_id == 1)
			zedoDim = 25;
	}
	else if (zedoDim == '' || !zedoDim)
		zedoDim = '0';
			
	return zedoDim;
}


function GetContentURL()
{
	var url = '';
	
	try {
		url = top.window.frames.contentFrame.document.location.href;
	}
	catch(e) {
	}
	
	if (!url || url.indexOf('blank.html') != -1)
		url = "/web/components/content/home/home.live";
		
	return url;
}


function DrawDirectorySponsor(genre, num)
{
	if (gAdsIsPM)
		return;

	var adcat = 'other';

	if (IsRegularGenre(genre))
		adcat = GetCampaignFromGenre(genre);    // map genre to ad-category

	document.write('<TR><TD COLSPAN="'+num+'" class="tabledesc">');
	DrawZedoAd(adcat, 670, 70);
	document.write('</TD></TR>');
	document.write('<TR><TD COLSPAN="'+num+'"><IMG SRC="/images/dot.gif" WIDTH=1 HEIGHT=1 BORDER=0></TD></TR>');
}        


function isNewbieListener()
{
	if (typeof(GetCookie) == "function") {	
        var vc = GetCookie("VisitCount");
		if (vc < 1)
			return true;
	}
	return false;	
}


function RMAFinished(url)
{
	// dummy callback routine
}


function CleanGenreStr(genre)
{
	// remove any "-sky" suffix on genre string
	if(genre)
		genre = genre.replace(/-sky/, '');	
	
	return(genre);
}


function IsRegularGenre(genre)
{
	return (genre && (isNaN(parseInt(genre)) || genre == '10s' || genre == '20s' || genre == '30s' || genre == '40s' || genre == '50s' || genre == '60s' || genre == '70s' || genre == '80s' || genre == '90s'));
}


function RunToday(datestr)
{
	var today = new Date();
	var ds = datestr.split('/');
	var month = ds[0];
	var day = ds[1];
	var year = ds[2]; 
	
	if (today.getMonth()+1 == month && today.getDate() == day && today.getFullYear() == year ) {
		return true;
	}

	return false;
}


function GetRMACookie()
{
	var rm = GetCookieEx('box_mc', 'rm');

	if (rm == 'H' || rm == 'T') {
		var recency = (rm == 'H') ? gRMARecencyTimeoutHouse : gRMARecencyTimeoutTS;
		var now = new Date(); 
		var epoch_secs = Math.round(now.getTime()/1000);
		var drop_dead = parseInt(GetCookieEx('box_mc', 'rmt')) + recency;
		if (drop_dead >= epoch_secs)
			return rm;
	}
	return 0;
}


function SetRMACookie(val)
{
	var now = new Date(); 
	RememberItEx('box_mc', 'rmt', Math.round(now.getTime()/1000), true);
	RememberItEx('box_mc', 'rm',  val,   true);
}

