// javascript banner [2003.TWB.IDWERX]

var caption = new Array(); 

var description = new Array();

var link = new Array();



caption[0] =			' Next JSC Event';	

description[0] =		' August 29th, 2010 5pm-10pm, Maggianos @ Town Center';

link[0] =				'events.htm';



caption[1] =			' Next JSC Trip';

description[1] =		' Breckenridge, CO January 22-29';

link[1] =				'clubtrips.htm';



caption[2] =			' 2010-2011 Club Membership';

description[2] =		' Now Accepting Applications';

link[2] =				'membership.htm';


caption[3] =			' 2011 Trips';

description[3] =		' Tentative Trip List Now Available';

link[3] =				'clubtrips.htm';



// this list can contain as many entries as you like.

// caption[3] =			'SOME CAPTION';

// description[3] =		'SOME DESCRIPTION';

// link[3] =			'http://www.SOME_URL.com';





// NOTE: hex color values do NOT include the # symbol...

var pagecolor =				'000033';		// match the background of the page 

var captioncolor =			'000040';		// dark green

var descriptioncolor =		'090DAD';		// gold

var descriptionmouseover =	'FF0000';		// white



// These values effect the performance of the banner animation

var cyclesIn =				10;				// number of color shifts while fading in

var cyclesOut =				20;				// number of color shifts while fading out

var refreshDelay =			50;				// msec delay between shifts

var pauseBetween =			.5;				// number of seconds between items

var pauseDuring =			3;				// number of seconds to hold an item



// NOTE: all values are measured in pixels

var listLeft =				5;				// banner x 

var listTop =				5;				// banner y

var listHeight =			20;				// banner h

var listWidth =				700;			// banner w



// *********************  user defined values end here  *************************







// thank you, Macromedia

function MM_reloadPage(init) {  //reloads the window if NN4 resized

  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

// thank you, Macromedia



var ubound = caption.length - 1;



var cycleIndex = 0;		// what step of cycle are we on?

var loopIndex = 0;		// general looping var

var bannerIndex = 0;	// which banner are we on?

var cycleMode = 1;		// 1 = In, -1 = Out



var mouseState = 0;		// 0 = Out, 1 = Over

var descriptionRGB = new Array(descriptioncolor, descriptionmouseover);



var hexconvert = '0123456789ABCDEF';

var hexrgb = new Array('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0A', '0B', '0C', '0D', '0E', '0F', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1A', '1B', '1C', '1D', '1E', '1F', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2A', '2B', '2C', '2D', '2E', '2F', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3A', '3B', '3C', '3D', '3E', '3F', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4A', '4B', '4C', '4D', '4E', '4F', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5A', '5B', '5C', '5D', '5E', '5F', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6A', '6B', '6C', '6D', '6E', '6F', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7A', '7B', '7C', '7D', '7E', '7F', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8A', '8B', '8C', '8D', '8E', '8F', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9A', '9B', '9C', '9D', '9E', '9F', 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'DA', 'DB', 'DC', 'DD', 'DE', 'DF', 'E0', 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9', 'EA', 'EB', 'EC', 'ED', 'EE', 'EF', 'F0', 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'FA', 'FB', 'FC', 'FD', 'FE', 'FF');



var RR = 0; // init integer values for conversions

var GG = 0;

var BB = 0;

var RGB = 'FFFFFF'; // init string value for conversions



// detect brand of browser

var app_name = navigator.appName;

var app_ver = navigator.appVersion;

var isNN = false;

var isN6 = false;

var isIE = false;

var isOther = false;



if (app_name=="Microsoft Internet Explorer"){

	isIE = true;

}

if (app_name =="Netscape"){

	app_ver=parseFloat(app_ver) ;

	if (app_ver < 5){

		isNN = true;

	} else {

		isN6 = true;

	}

}

if ((!isIE) && (!isNN) && (!isN6)){

	isOther = true;

}



// convert rgb values into decimal integers

function cRGBtoDEC(hexcolor){

	// accepts a 6 digit hex rgb string, sets global vars RR, GG and BB

	var hiR = hexcolor.substring(0, 1).toUpperCase(); 

	var loR = hexcolor.substring(1, 2).toUpperCase(); 

	var hiG = hexcolor.substring(2, 3).toUpperCase(); 

	var loG = hexcolor.substring(3, 4).toUpperCase(); 

	var hiB = hexcolor.substring(4, 5).toUpperCase(); 

	var loB = hexcolor.substring(5, 6).toUpperCase(); 



	RR = (hexconvert.indexOf(hiR) * 16) + hexconvert.indexOf(loR);

	GG = (hexconvert.indexOf(hiG) * 16) + hexconvert.indexOf(loG);

	BB = (hexconvert.indexOf(hiB) * 16) + hexconvert.indexOf(loB);

}



// convert decimal integers into rgb values

function cDECtoRGB(r, g, b){

	// accepts 3 base-10 numbers (0-255), sets global var RGB, and returns RGB

	RGB = hexrgb[r] + hexrgb[g] + hexrgb[b];

	return RGB;

}



// precalculate color-shift steps



// get page color values

cRGBtoDEC(pagecolor);

var pagRR = RR;

var pagGG = GG;

var pagBB = BB;



//  get caption color values

cRGBtoDEC(captioncolor);

var capRR = RR;

var capRin = ((capRR-pagRR) / cyclesIn);

var capRout = ((capRR-pagRR) / cyclesOut);

var capGG = GG;

var capGin = ((capGG-pagGG) / cyclesIn);

var capGout = ((capGG-pagGG) / cyclesOut);

var capBB = BB;

var capBin = ((capBB-pagBB) / cyclesIn);

var capBout = ((capBB-pagBB) / cyclesOut);



// get both states of description values

var dscRR = new Array(2);

var dscGG = new Array(2);

var dscBB = new Array(2);



cRGBtoDEC(descriptioncolor);

dscRR[0] = RR;

dscGG[0] = GG;

dscBB[0] = BB;



cRGBtoDEC(descriptionmouseover);

dscRR[1] = RR;

dscGG[1] = GG;

dscBB[1] = BB;



var dscRin = new Array(((dscRR[0]-pagRR) / cyclesIn), ((dscRR[1]-pagRR) / cyclesIn));

var dscRout = new Array(((dscRR[0]-pagRR) / cyclesOut), ((dscRR[1]-pagRR) / cyclesOut));

var dscGin = new Array(((dscGG[0]-pagGG) / cyclesIn), ((dscGG[1]-pagGG) / cyclesIn));

var dscGout = new Array(((dscGG[0]-pagGG) / cyclesOut), ((dscGG[1]-pagGG) / cyclesOut));

var dscBin = new Array(((dscBB[0]-pagBB) / cyclesIn), ((dscBB[1]-pagBB) / cyclesIn));

var dscBout = new Array(((dscBB[0]-pagBB) / cyclesOut), ((dscBB[1]-pagBB) / cyclesOut));



// refresh banner content (including color-shift)

function writeList(listID, HTML){

	if (isIE || isN6){

		eval('document.getElementById("list' + listID + '").innerHTML = HTML');

	} 

	if (isNN){

		eval('document.layers["list' + listID + '"].document.open()');

		eval('document.layers["list' + listID + '"].document.write(HTML)');

		eval('document.layers["list' + listID + '"].document.close()');

	}

}



// generate banner content

function createHTMLbyID(){

	var returnHTML;



	returnHTML = '<font size="2"><strong><font color="#' + createShadeByCycleIndex('cap') + '" face="Verdana">' + caption[bannerIndex] + ':</font> </strong><font color="#' + createShadeByCycleIndex('dsc') + '" face="Verdana">' + description[bannerIndex] + '</font></font>';



	return returnHTML;

}



// set global mouseState flag

function setDescColor(){

	mouseState = 1;

	writeList(0, createHTMLbyID());

	

	return true;

}



// set global mouseState flag

function clearDescColor(){

	mouseState = 0;

	writeList(0, createHTMLbyID());

	

	return true;

}



// get rgb color based on fade in/out, caption/description/state, and step of color-shift

function createShadeByCycleIndex(whichItem){

	var shade = 'FFFFFF';



	if (cycleMode == 1)	{

		// fading in

		if (whichItem=='cap'){

			shade = hexrgb[Math.floor((capRin*cycleIndex)+.5)+pagRR] + hexrgb[Math.floor((capGin*cycleIndex)+.5)+pagGG] + hexrgb[Math.floor((capBin*cycleIndex)+.5)+pagBB];

		} else {

			shade = hexrgb[Math.floor((dscRin[mouseState]*cycleIndex)+.5)+pagRR] + hexrgb[Math.floor((dscGin[mouseState]*cycleIndex)+.5)+pagGG] + hexrgb[Math.floor((dscBin[mouseState]*cycleIndex)+.5)+pagBB];

		}



	} else {

		// fading out

		if (whichItem=='cap'){

			shade = hexrgb[Math.floor((capRout*cycleIndex)+.5)+pagRR] + hexrgb[Math.floor((capGout*cycleIndex)+.5)+pagGG] + hexrgb[Math.floor((capBout*cycleIndex)+.5)+pagBB];

		} else {

			shade = hexrgb[Math.floor((dscRout[mouseState]*cycleIndex)+.5)+pagRR] + hexrgb[Math.floor((dscGout[mouseState]*cycleIndex)+.5)+pagGG] + hexrgb[Math.floor((dscBout[mouseState]*cycleIndex)+.5)+pagBB];

		}

	}

	return shade;

}



// main loop, counts off color-shift steps, handles change of fade in/out, and banner rotation

function cycleTimer(){

	writeList(0, createHTMLbyID());

	

	// bump cycleIndex

	cycleIndex += cycleMode;



	// test limits, then delay

	if ((cycleIndex == cyclesIn) && (cycleMode == 1)){

		writeList(0, createHTMLbyID());



		cycleIndex = cyclesOut;

		cycleMode = -1;

		

		setTimeout('javascript:cycleTimer();', pauseDuring * 1000);



	} else if ((cycleIndex == 0) && (cycleMode == -1)){

		writeList(0, createHTMLbyID());



		cycleMode = 1;

		bannerIndex++;



		if (bannerIndex > ubound){

			bannerIndex = 0;

		}

		setTimeout('javascript:cycleTimer();', pauseBetween * 1000);



	} else {

		setTimeout('javascript:cycleTimer();', refreshDelay);

	}

}



function clickBanner(){

	location.href = link[bannerIndex];

}



// make the banner layer on the calling document

function initHTML(){

	var paneHTML = '<a href="javascript: clickBanner();" onmouseover="javascript: return setDescColor();" onmouseout="javascript: return clearDescColor();"><img src="/banner/pane.gif" border="0" width="' + listWidth + '" height="' + listHeight + '"></a>';



	if (isNN){

		document.layers["list0"] = new Layer(listWidth);

		document.layers["list0"].left = listLeft;

		document.layers["list0"].top = listTop;

		document.layers["list0"].height = listHeight;

		document.layers["list0"].visibility = 'show';

		document.layers["list0"].document.open();

		document.layers["list0"].document.write(' ');

		document.layers["list0"].document.close();



		document.layers["list1"] = new Layer(listWidth);

		document.layers["list1"].left = listLeft;

		document.layers["list1"].top = listTop;

		document.layers["list1"].height = listHeight;

		document.layers["list1"].visibility = 'show';

		document.layers["list1"].document.open();

		document.layers["list1"].document.write(paneHTML);

		document.layers["list1"].document.close();



	} else if (isN6 || isIE){

		var element0 = document.createElement('div');

		element0.id = 'list0';

		element0.name = 'list0';

		element0.style.position = 'absolute';

		element0.style.left = listLeft + 'px';

		element0.style.top = listTop + 'px';

		element0.style.width = listWidth + 'px';

		element0.style.height = listHeight + 'px';

		element0.style.visibility = 'visible';

		element0.style.zIndex = 1;

		document.body.appendChild(element0);

		document.getElementById("list0").innerHTML = ' ';



		var element1 = document.createElement('div');

		element1.id = 'list1';

		element1.name = 'list1';

		element1.style.position = 'absolute';

		element1.style.left = listLeft + 'px';

		element1.style.top = listTop + 'px';

		element1.style.width = listWidth + 'px';

		element1.style.height = listHeight + 'px';

		element1.style.visibility = 'visible';

		element1.style.zIndex = 100;

		document.body.appendChild(element1);

		document.getElementById("list1").innerHTML = paneHTML;



	}

	setTimeout('javascript:cycleTimer();', refreshDelay);

}



// start banner as quickly as each DOM is able

function testBody(){

	if (isIE || isN6){

		if (document.body){

			if (isIE){

				setTimeout('javascript:initHTML();', 2000);

			} else {

				initHTML();

			}

		} else {

			setTimeout('javascript:testBody();', 250);

		}

	} else{

		setTimeout('javascript:initHTML();', 5000);

	}

}



// begin

testBody();

