<!-- start scripting
// (c) 2000-2003 Live365, Inc.  All rights reserved.
// pca.js - draws, decides and stores PCA values.

var gPCABaseURL = "http://www.live365.com";
//gPCABaseURL = "http://fc02.corp.nanocosm.com";

// Define Globals
var gLeftMargin			= 0;
var gLeftMarginImg		= '<img src="' + gPCABaseURL + '/images/dot.gif" width="' + gLeftMargin + '" height="1">';
var gBoxVertSpacing		= '<img src="' + gPCABaseURL + '/images/dot.gif" width="1" height="10">';
var gRightSideBarWidth	= "100%";
var gCellPadding		= 0;
var gFileName			= document.location.pathname;
var iLastSlash			= gFileName.lastIndexOf("/");
gFileName				= gFileName.slice(iLastSlash + 1);
var gUser 				= DetermineUser("user");			// Get user ID for UserBox
var gSessionId			= DetermineUser("sessionid");	
var gLoggedIn 			= (gUser != "");

function Random(limit) 
{
	var today = new Date();
	var num = today.getTime();
	var num = Math.round(Math.abs(Math.sin(num) * 1000000)) % limit;
	return num;
}

// THIS IS TEMPORARY TO SERVE ONLY SPONSORS UNTIL WE'RE READY TO TURN ON USER BOX FOR THE WHOLE SITE
function TempDrawSideBarRight(content1,content2,redirectURL,suppressLoginBox,suppressSponsor,site,genre,suppressCTA,adNumber)
{
	
	// handle undefined variables		
	if (TempDrawSideBarRight.arguments.length < 1 || TempDrawSideBarRight.arguments[0] == "")
		content1 = false;
	else
	if (TempDrawSideBarRight.arguments.length < 2 || TempDrawSideBarRight.arguments[1] == "")
		content2 = false;
	else
	if (TempDrawSideBarRight.arguments.length < 3 || TempDrawSideBarRight.arguments[3] == "")
		redirectURL = gPCABaseURL + "/home/";
	if (TempDrawSideBarRight.arguments.length < 6)
		site = "..";
	if (TempDrawSideBarRight.arguments.length < 7)
		genre = (content1) ? content1 : "";	
	if (TempDrawSideBarRight.arguments.length < 8 || TempDrawSideBarRight.arguments[7] == "")
		suppressCTA = false;
	if (TempDrawSideBarRight.arguments.length < 9 || TempDrawSideBarRightarRight.arguments[8] == "")
		adNumber = 100;
	if (!displayPreferredAds() &&
		 self.location.href.indexOf("cafeshops") == -1 &&
		 self.location.href.indexOf("trakhelp") == -1) {
			if (!suppressSponsor) {
				DrawSponsorBox(pageLocation,genre,adNumber);
				document.write(gBoxVertSpacing);
			}
	}	

	printBoxes(content1,content2);
}


// DrawSideBarRight() -- top level
//   draws components of sidebar on the right side of the layout.
//   content1 = optional = defines high level organization
//   content2 = optional = defines second tier organization
//   suppressLogin = optional = doesn't display the login box
//   suppressSponsor = optional = doesn't display the sponsor box
//   redirectURL = optional = if not present, will assume redirect back to the page you are currently on.
//   suppressCTA = optional = doesn't display any CTAs.. used for popup displays.
function DrawSideBarRight(content1,content2,redirectURL,suppressLoginBox,suppressSponsor,site,genre,suppressCTA,adNumber) 
{
//alert('content1: '+content1+'\ncontent2: '+content2+'\nredirectURL: '+redirectURL+'\nsuppressLoginBox: '+suppressLoginBox+'\nsuppressSponsor: '+suppressSponsor+'\nsite: '+site+'\ngenre: '+genre+'\nsuppressCTA: '+suppressCTA+'\nadNumber: '+adNumber);
	// handle undefined variables		
	if (DrawSideBarRight.arguments.length < 1 || DrawSideBarRight.arguments[0] == "")
		content1 = false;
	if (DrawSideBarRight.arguments.length < 2 || DrawSideBarRight.arguments[1] == "")
		content2 = false;
	if (DrawSideBarRight.arguments.length < 3 || DrawSideBarRight.arguments[2] == "")
		redirectURL = gPCABaseURL + "/home/";
	if (DrawSideBarRight.arguments.length < 6)
		site = "..";
	if (DrawSideBarRight.arguments.length < 7)
		genre = (content1) ? content1 : "";	
	if (DrawSideBarRight.arguments.length < 8 || DrawSideBarRight.arguments[7] == "")
		suppressCTA = false;
	if (DrawSideBarRight.arguments.length < 9 || DrawSideBarRight.arguments[8] == "")
		adNumber = 100;
		
//	if (!suppressLoginBox) {
//		DrawUserBox(redirectURL,site,genre,content1,content2);		// draw UserBox
//		if (!displayPreferredAds() && content1 == "listen")
//			document.write('<img src="/images/dot.gif" alt="" width="1" height="6" border="0"></br>');
//		else
//			document.write(gBoxVertSpacing);
		//if (!gLoggedIn)
		//document.write(gBoxVertSpacing);
//	}
	
	if ((content1 != "home-sky") && (content1 != "musiclibrary")) {
		DrawSearchBox()
	}
	
	if (!displayPreferredAds() && content1 == "listen") {
		DrawLoginAd(genre);
		document.write('<img src="/images/dot.gif" alt="" width="1" height="6" border="0"></br>');
	}
	if (!suppressSponsor)
		DrawSponsorAdBox(pageLocation, genre, adNumber, content1);
		
	if (content1 == "listen" && pageLocation.indexOf("directory.cgi") != -1) {
//	var fromDirectory = (typeof(pageLocation) != "undefined" && pageLocation.indexOf("directory.cgi") != -1);
		// DrawLegends is in directory.js
		// gLegend is defined in main_head.html
		
		document.write('<TABLE WIDTH="170">');
//		document.write('<TR>');
//		document.write('<TD VALIGN="top">');
		if (gLegend.indexOf('M') != -1)
			DrawLegends("main", gUser, gRightSideBarWidth);

		if (gLegend.indexOf('L') != -1)
			DrawLegends("listeners", gUser, gRightSideBarWidth);

		if (gLegend.indexOf('R') != -1)
			DrawLegends("ratings", gUser, gRightSideBarWidth);

		if (gLegend.indexOf('A') != -1)
			DrawLegends("attributes", gUser, gRightSideBarWidth);
//		document.write('</TD>');
//		document.write('</TR>');
		document.write('</TABLE>');
	}
		
	if (displayPreferredAds() && content1 == "listen")
		suppressCTA = false;
		
	if (!suppressCTA) {
		var maxCTAs	= 2;
		
//		if (content1 == 'listen')
//			maxCTAs	= 1;

		printBoxes(content1,content2,maxCTAs);
	}	

}

function drawFindology () {
//	alert('gSearchDesc-'+gSearchDesc+"-\ngGenre-"+gGenre+'-');
	if (typeof gSearchDesc == "string") {
		var param_e = gSearchDesc ? "search" : "category";
		var param_d = gSearchDesc ? gSearchDesc : gGenre;
		if (param_d.indexOf("All") == 0 || param_d.indexOf("EPS") == 0 || param_d.indexOf("Presets") == 0 || param_d.indexOf("Indy/Official") == 0 || param_d.indexOf("Pro") == 0) 
			var param_d = "Internet Radio";
	} else {
		var param_e = "category";
		var myArray = gGenre.split(",");
		var param_d = myArray[0];
	}
	
	document.write('<iframe src="http://www.findology.com/partner/live365.php?e='+param_e+'&d='+param_d+'" width="170" height="600" scrolling="no" frameborder="0"></iframe>');
}

function DoGenreSearchPca()
{
	var f = document.forms.SearchFormPca;

	CheckFilters(f);

	var url = gBaseURL + "/cgi-bin/directory.cgi";
	var value = GetGenreID(f.genre.selectedIndex - 1);
	var conn = '?';
	
	if (value) {
		if (value == "Presets" && !ReadCookie("sessionid")) {
			alert('You must be logged in to go to your list of Presets');
			f.genre.selectedIndex = 0;
		   	return false;
		}

		url += '?genre=' + value;
		conn = '&';
	}

	if (f.quality.value && f.quality.value > 0)
		url += conn + "quality=" + f.quality.value;
	
	document.location = url;
	return false;
}


function DrawSearchBox() 
{		
	var s = '';
	var quality = parseInt(ReadCookie("quality"));

	s += '<form name="SearchFormPca" action="' + gPCABaseURL + '/cgi-bin/directory.cgi" onsubmit="CheckFilters(document.forms.SearchFormPca)">';
	s += '<input type="hidden" name="searchgenre" value="">';
	s += '<input type="hidden" name="quality" value=' + quality + '>';
	s += '<table border="0" width="100%" cellpadding="0" cellspacing="0">';
	document.write(s);

	DrawTitleRow("Find Your Music", 2);

	s = '</table>';
	s += '<table border="0" cellpadding="4" cellspacing="0" width="100%">';
	s += '<tr class="informationbox-content"><td class="informationbox-content">';
		s += '<table border="0" width="100%" cellpadding="0" cellspacing="0">';
		s += '<tr><td width="50%" align="left" class="informationbox-content">Browse</td>';
		s += '<td nowrap align="right" class="informationbox-content">';
		s += '<input name="mp3pro_cb" type="checkbox"' + ((quality >= 132) ? 'CHECKED' : '') + '><img src="' + gPCABaseURL + '/images/mp3pro-logo-directory.gif" hspace=3 width=30 height=15 border=0 alt="List mp3PRO stations only">';
		s += '</td></tr></table>';
	document.write(s);

	DrawNamedGenreSelections("genre", 0, "DoGenreSearchPca", -1, 1);

	s = '</td>';
	s += '</tr>';
	s += '</table>';
	s += '<img src="' + gPCABaseURL + '/images/dot.gif" width="1" height="2"><br>';
	s += '<table border="0" cellpadding="4" cellspacing="0" width="100%">';
	s += '<tr>';
	s += '<td class="pca-content" width="100%">';
	s += '<font class="informationbox-content"><b>or</b> Search:</font>&nbsp;&nbsp;(<a href="#advsearch">Advanced</a>)';
	s += '<br><img src="' + gPCABaseURL + '/images/dot.gif" width="1" height="3"><br>';
	s += '<input type="text" name="searchdesc" class="searchinput" size="16" align="absmiddle"> <input type=image src="' + gImageURL + '/navigation/images/go.gif" width="20" height="20" border="0" alt="Go" align="absmiddle"><br>';
	s += '<select name="searchfields" class="searchinput">';
	s += '<option value="TAC" selected>Artists/Tracks/CDs</option>';
	s += '<option value="A">-- Artists only</option>';
	s += '<option value="T">-- Tracks only</option>';
	s += '<option value="C">-- CDs only</option>';
	s += '<option value="">Live365 Stations</option>';
	s += '<option value="L">Locations</option>';
	s += '<option value="H">Broadcasters</option>';			
	s += '</select>';
	s += '</td>';
	s += '</tr>';	
	s += '</table>';
	s += '</form>';

	s += gBoxVertSpacing;
	document.write(s);
}


// DetermineUser()
//   call with flag for what part of the sessionid cookie to read.
function DetermineUser(flag) 
{
	var sid = ReadCookie("sessionid");

	if (sid) {
		if (flag == "user")
			return sid.slice(0, sid.indexOf(':'));
		else if (flag == "sessionid")
			return sid.slice(sid.indexOf(':') + 1);
	} 
	else {
		return "";
	}
}


// DrawSponsorBox()
function DrawSponsorBox(sourceFile, genre, maxTiles, content1)
{
	var numTiles = 1; // number of tiles to draw
	
	var tile;
	var firstTile = 2; // tile 1 is reserved for the banner
	var currentDate = new Date();
	var tm = currentDate.getTime();

	if (numTiles > maxTiles)
		numTiles = maxTiles;

	var i = genre.indexOf("-sky");
	if (i > -1)
		var isSky = true;

	if (i != -1) {
		numTiles = 1;
		firstTile = 6;
		genre = genre.substr(0, i);
	}

	document.write('<table border="0" width="100%" cellspacing="0" cellpadding="0">');	

	if (!isSky || (content1 == "musiclibrary")) {
		if (numTiles > 1)
			DrawTitleRow("Sponsors");
		else
			DrawTitleRow("Sponsor");
	}

	document.write('<tr><td class="pca-content" align="center">');
	
	document.write('<table border="0" width="100%" cellspacing="0" cellpadding="4">');
	document.write('<tr>');
	document.write('<td align="center" class="pca-content">');
	for (tile = firstTile; tile < firstTile + numTiles; tile++) {
		DrawSponsor(sourceFile, genre, tile, tm);
		
		if (numTiles > 1)
			document.write('<br><img src="' + gPCABaseURL + '/images/dot.gif" width="1" height="5"><br>');	
	}
	document.write('</td>');
	document.write('</tr>');
	document.write('</table>');
	document.write('</td></tr>');
	document.write('</table>');
} // DrawSponsorBox()


// DrawTitleRow()
//   title = required
//   colspan = optional = used to span more than one column as in the user box.
function DrawTitleRow(title, colspan)
{
	if (DrawTitleRow.arguments.length >= 1)
		colspan = 'colspan="' + colspan + '"';
	else
		colspan = '';

	document.write('<tr><td ' + colspan + ' class="pca-header" width="100%">');
	document.write('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
	document.write('<tr>');
		document.write('<td class="pca-header" width="4" align="left" valign="top"><img src="' + gPCABaseURL + '/images/corner-tl-dkgray.gif" width="4" height="4" border="0"></td>');
		document.write('<td class="pca-header" valign="middle" width="100%">');
		document.write(title);
		document.write('</td>');
		document.write('<td class="pca-header" width="1"><img src="/images/dot.gif" width="1" height="20" border="0"></td>');
		document.write('<td class="pca-header" width="4" align="right" valign="top"><img src="' + gPCABaseURL + '/images/corner-tr-dkgray.gif" width="4" height="4" border="0"></td>');
	document.write('</tr>');
	document.write('</table>');
	document.write('</td></tr>');
}

// DrawSubTitleRow()
//   title = required
//   colspan = optional = used to span more than one column as in the user box.
function DrawSubTitleRow(title, colspan)
{
	if (DrawSubTitleRow.arguments.length >= 1)
		colspan = 'colspan="' + colspan + '"';
	else
		colspan = '';

	document.write('<tr align="left"><td  ' + colspan + ' class="pca-content" width="' + gRightSideBarWidth + '">');
	document.write(title);
	document.write('</td></tr>');
}

// DrawByLineRow()
//   byline = required
function DrawBylineRow(byline, colspan)
{
	if (DrawBylineRow.arguments.length >= 1)
		colspan = 'colspan="' + colspan + '"';
	else
		colspan = '';

	document.write('<tr><td ' + colspan + ' class="pca-content">');
	document.write('<table border="0" width="100%" cellspacing="0" cellpadding="4">');
	document.write('<tr>');
	document.write('<td class="pca-content">');
	document.write(byline);
	document.write('</td>');
	document.write('</tr>');
	document.write('</table>');
	document.write('</td></tr>');
}


// DrawUserBox()
//   user = required
//   site = optional
//   genre = optional (used in directory, and changes buttons if on Presets directory)
//   content1 = used for home page
//   content2 = used for "down" state
//
function DrawUserBox(redirectURL, site, genre, content1, content2)
{
	if (DrawUserBox.arguments.length < 2)
		site = "..";
	if (DrawUserBox.arguments.length < 3)
		genre = "";
	if (DrawUserBox.arguments.length < 4)
		content1 = "";		
	if (DrawUserBox.arguments.length < 5)
		content2 = "";

	var s = '';
	var tmd = new Date();
	var tm = tmd.getTime();
	var target = (site == "..") ? "_self" : "_blank";
	redirectURL = escape(redirectURL);	

	document.write('<table border="0"  width="100%" cellpadding="0" cellspacing="0">');

	if (!gLoggedIn)
		DrawTitleRow('Log In or <a href="' + gPCABaseURL + '/registration/index.live" target=' + target + '>Sign Up</a>', "2");
	else
		DrawTitleRow('You are logged in. <a href="' + gPCABaseURL + '/members/login.live?action=out&path=' + gPath + '">log out</a>', "2");		
		
	if (!gLoggedIn) {
		s += '<FORM NAME="LoginInForm" ACTION="' + gPCABaseURL + '/cgi-bin/login.cgi" METHOD="post">';
		s += '<input type="hidden" name="url" value="' + redirectURL + '">';
		s += '<input type="hidden" name="success" value="' + gPath + '">';
		s += '<input type="hidden" name="site" value="' + site + '">';

		s += '<tr><td width="100%" align="right" class="informationbox-content">';
	
		s += '<table border="0" width="100%" cellpadding="4" cellspacing="0">';		
		s += '<tr>';
			s += '<td class="pca-content"><font class="informationbox-content">Username</font><br>';
			s += '<input type="text" name="membername" class="searchinput" size="10" maxlength="32"></td>';
			s += '<td class="pca-content"><font class="informationbox-content">Password</font><br>';
			s += '<input type="password" name="password" size="9" class="searchinput" maxlength="32"></td>';
		s += '</tr>';
    	s += '<tr valign="middle">';
		s += '<td valign="middle" colspan="2" class="informationbox-content">';
    		s += 'Remember&nbsp;me:<input type="checkbox" name="rememberme" align="absmiddle" value="Y">';
			s += '<input type="Image" src="' + gPCABaseURL + '/navigation/images/go.gif" alt="Go" width="20" height="20" border="0" align="absmiddle"><br><img src="/images/dot.gif" width="1" height="4" border="0">';
		s += '</td>';
		s += '</tr>';
		s += '</table></form>';	
	} 
	else {
		s += '<tr><td colspan="2" class="informationbox-content">';
		s += '<table border="0"  width="100%" cellpadding="4" cellspacing="0"><tr><td class="informationbox-content">Username: ' + gUser + '</td></tr></table>';	
	}
	s += '</td></tr></table>';

	document.write(s);
}

// Determine content
function printBoxes(content1,content2, displayLimit, displayPermanent) {
	if (printBoxes.arguments.length < 3 || printBoxes.arguments[2] == "")
		displayLimit		= 2;
//		displayLimit		= aTitle.length;		
	if (printBoxes.arguments.length < 4 || printBoxes.arguments[3] == "")
		displayPermanent	= "";
		
	var randomNumber;
	var alreadyUsed = "";
	var n;
	
	
	
	if (aTitleTop && aBodyTop) {
		document.write('<table border="0" width="100%" cellspacing="0" cellpadding="' + gCellPadding + '">');
		DrawTitleRow(aTitleTop);
		DrawBylineRow(aBodyTop);	
		document.write('</table>');
		document.write(gBoxVertSpacing);
		displayLimit = displayLimit - 1 ;
	} 	

	
	
	// if the inventory is reduced, adjust the overrequest
	if (displayLimit > aTitle.length) {
		displayLimit = aTitle.length;
	}
	
	for (i = 0; i < displayLimit; i++) {

		// don't bother randomizing CTAs if they are all going to be displayed anyway
		if (displayLimit == aTitle.length) {
			n = i;
		} else {

		// generate a random number
		randomNumber = Random(aTitle.length);

		if (i > 0) {
			while(alreadyUsed.search(randomNumber) >= 0) {
				randomNumber = Random(aTitle.length);
			}
		}
		
		// set random number to display index
		n = randomNumber;
		
		// if it's the frist time through and there is a permanent CTA, trump display index	
		if (i == 0) {
			if (displayPermanent != "")
				n = displayPermanent;
		}
		
		// add display index to already used so that it doesn't show up twice
		alreadyUsed += n;

		}
		
				
		if (aTitle[n]) {
			document.write('<table border="0" width="100%" cellspacing="0" cellpadding="' + gCellPadding + '">');
			DrawTitleRow(aTitle[n]);
			DrawBylineRow(aBody[n]);
			document.write('</table>');
			document.write(gBoxVertSpacing);
		} else {
			return false;
		}
	}
}


function DrawSponsorAdBox(page, genre, adNumber,content1)
{
	if (!displayPreferredAds() &&
		 self.location.href.indexOf("cafeshops") == -1 &&
		 self.location.href.indexOf("trakhelp") == -1) {
		DrawSponsorBox(page, genre, adNumber,content1);
		document.write(gBoxVertSpacing);
	}
}


// end scripting -->
