// ads.js - Draw banner ads and sponsor buttons using internal ad server, Ad Variant, or ValueClick.
// (c) 1999-2009 Live365, Inc.

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="' + webServer + '/scripts/cookiemonster.js"></scr' + 'ipt>');

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

var gRMARecencyTimeout			=  180; // 3-min universal recency check
var gRMARecencyTimeoutRMAOnly	= 1800;	// 30-min recency check for non-TS PROs
var gRMARecencyTimeoutAudio		= 3600; // 60-min recency check if audio ads available, too

if (webServer.indexOf("nanocosm") != -1) {
	gRMARecencyTimeout			=   35;
	gRMARecencyTimeoutRMAOnly	=   60;
	gRMARecencyTimeoutAudio		=  120;
}

var gNoFlash = (navigator.userAgent.indexOf("iPhone") != -1 || navigator.userAgent.indexOf("webOS") != -1);
var bIsModernNS = (navigator.appName == "Netscape" && navigator.userAgent.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(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 = 0;

	if (window.location.href.indexOf('directory.cgi') > -1) // in directory, search or browse
		google_share = (genre == 'search') ? .50 : 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
	
	if (gAdsIsPM 
        || isNewbieListener()
        || !(tile == 1 || tile == 6) 
        || navigator.appName == "Netscape" 
        || genre == 'community' 
        || window.location.href.indexOf('easycast') != -1 
        || window.location.href.indexOf('suppress=P') != -1 
        || window.location.href.indexOf('suppress=p') != -1)
		return;
        
	DrawZedoAd('unicast', 1, 1); //custom Unicast ad-channel
}


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 (window.location.href.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;	

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


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


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


function GetCampaignFromGenre(genre)
{
	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 < 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 = 0;	// set to zero for regular ad programming, Currently 0 is 95% Zedo, 1 is 100% Zedo (1 turns off Google)
	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 (gNoFlash)
		google_share = 1.00;
	else if (site_takeover) {
		google_share = 0;
		zedo_pct = 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);
	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+'/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)
{
    var numArgs = DrawZedoAd.arguments.length + 1;
	if (numArgs < 4 || !hostpage)
		hostpage = '';
	if (numArgs < 5 || !displayType)
		displayType = 'LIVE365';
	if (numArgs < 6 || !site)
		site = '..';

	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
        campaign = 'a2sync';		// set campaign to 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 = 'ff2';
	var zedo_nid = 272;
	var zedo_sid = -1;
	var zedo_cid = ZedoChannelMap(campaign);
	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;

	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 + '/' + zedo_script + '.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)
{
	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!
	zedoAdCats["all"] = 0; // AKA "Run of Network"
	zedoAdCats["electronic"] = 1;
	zedoAdCats["alternative"] = 2;
	zedoAdCats["test"] = 3;
	zedoAdCats["blues"] = 4;
	zedoAdCats["classical"] = 5;
	zedoAdCats["comedy"] = 6;
	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["store"] = 20;
	zedoAdCats["community"] = 21;
	zedoAdCats["help"] = 22;
	// 23 intentionally absent
	zedoAdCats["internal"] = 24;
	// 25-32 absent
	zedoAdCats["search"] = 33;
	zedoAdCats["download"] = 34;
	zedoAdCats["play_b1"] = 35;
	// 36 absent
	zedoAdCats["a2sync"] = 37;
	// 38 absent
	zedoAdCats["unicast"] = 39;
	zedoAdCats["americana"] = 40;
	zedoAdCats["easy"] = 41;
	// 42 absent
	zedoAdCats["test2"] = 43;
	zedoAdCats["publishers"] = 44;
	zedoAdCats["affiliate"] = 45;
	zedoAdCats["test 3"] = 46;
	zedoAdCats["test3"] = 46; // "test 3" vs. "test3" -- just for safety's sake
	zedoAdCats["contest"] = 47;
	// 48 absent
	zedoAdCats["wmp"] = 49;
	zedoAdCats["vip"] = 50;
	zedoAdCats["podcasts"] = 51;
	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;
    
	zedoAdCats["prestitial"] = 65;
	// 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];

	if (zedoDim == 18 && skin_id == 1)
		// switch player-window controls 225x18 to different dimension ID for skinning
		zedoDim = 25;    
	else if (zedoDim == 9 && window.location.href.match(/adormessage1/))
		// switch player-window 300x250 to different dimension ID for separate targeting
		zedoDim = 28;
	else if (zedoDim == 4 && window.location.href.match(/directory\.cgi/))
		// switch 120x60 to directory-specific dimension id ("Directory Sponsor" - 24) 
		// for separate targeting of 120x60 ads on directory pages
		zedoDim = 24;
    else if (zedoDim == 15 && campaign == 'prestitial')
		zedoDim = 29;
	else if (zedoDim == '' || !zedoDim)
		zedoDim = '0';
			
	return zedoDim;
}


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(stationType)
{
    var numArgs = GetRMACookie.arguments.length + 1;
	if (numArgs < 1)
		stationType = 'none';
	
	var recencySpan = 0;

	if (stationType == 'audio')
		recencySpan = gRMARecencyTimeoutAudio;
	else if (stationType == 'rma')
		recencySpan = gRMARecencyTimeoutRMAOnly;
	else if (stationType == 'targetspot')
		recencySpan = gRMARecencyTimeout;
		
	var now = new Date(); 
	var epoch_secs = Math.round(now.getTime()/1000);
	var drop_dead = parseInt(GetCookieEx('box_mc', 'rmt')) + recencySpan;
	
	if (drop_dead >= epoch_secs)
		return parseInt(GetCookieEx('box_mc', '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);
}
