function writeHpFlash(flashVars){
	document.write( '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" class="hpFlash"><param name="movie" value="/jfkl/images/homepage/HomepageIntro.swf" /><param name="FlashVars" value="'+flashVars+'" /><param name="bgcolor" value="#C3CCD6" /><param name="quality" value="high" /><embed src="/jfkl/images/homepage/HomepageIntro.swf" flashvars="'+flashVars+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" class="hpFlash" bgcolor="#C3CCD6"><\/embed><\/object>' );
}
function RollOvers() {}

RollOvers.prototype.preloaded = false; // whether or not this has been preloaded
RollOvers.prototype.createNormalState = true; // whether or not to automatically create a "normal" state
RollOvers.prototype.rollovers = new Object(); // storage for all rollover images

RollOvers.prototype.createImage = function( uri ) {
	var img = new Image();
	img.src = uri;
	return img;
}

RollOvers.prototype.swapImage = function( id, newState ) {
	if( document.images && this.preloaded && this.rollovers[id] ) {
		if( newState == null && this.defaultStates[id] ) newState = this.defaultStates[id];
		if( newState == null ) return true;

		if( this.rollovers[id][newState] ) {
			// use getElementByID instead of document.images[id] to allow for <input type="image" />
			var ele = document.getElementById(id);
			if( ele && ele.src )
				ele.src = this.rollovers[id][newState].src;
				//alert(ele.src);
		}
	}
	return true;
}

RollOvers.prototype.addRollover = function( ids, states, urlPrefix, urlSuffix, stateDelimiter, createNormalState ) {
	if( typeof ids == "string" ) ids = [ids];
	if( typeof states == "string" ) states = [states];

	if( createNormalState != true && createNormalState != false ) createNormalState = this.createNormalState;

	for( var i=0; i<ids.length; i++ ) {
		this.rollovers[ids[i]] = new Object();

		if( createNormalState ) this.rollovers[ids[i]].normal = this.createImage( urlPrefix + ids[i] + urlSuffix );

		for( var j=0; j<states.length; j++ ) {
			this.rollovers[ids[i]][states[j]] = this.createImage( urlPrefix + ids[i] + stateDelimiter + states[j] + urlSuffix );
		}
	}
}


RollOvers.prototype.addGenericRollover = function( genericId, states, urlPrefix, urlSuffix, stateDelimiter, createNormalState ) {
	if( typeof states == "string" ) states = [states];

	if( createNormalState != true && createNormalState != false ) createNormalState = this.createNormalState;

	this.rollovers[genericId] = new Object();

	if( this.createNormalState ) this.rollovers[genericId].normal = this.createImage( urlPrefix + urlSuffix );

	for( var j=0; j<states.length; j++ ) {
		this.rollovers[genericId][states[j]] = this.createImage( urlPrefix + stateDelimiter + states[j] + urlSuffix );
	}
}


RollOvers.prototype.swapGenericImage = function( id, genericId, newState ) {
	if( document.images && this.preloaded && this.rollovers[genericId] ) {
		if( newState == null && this.defaultStates[genericId] ) newState = this.defaultStates[genericId];
		if( newState == null ) return true;

		if( this.rollovers[genericId][newState] ) {
			var ele = document.getElementById(id);
			if( ele && ele.src )
				ele.src = this.rollovers[genericId][newState].src;
		}
	}
	return true;
}

RollOvers.prototype.defaultStates = new Object();
RollOvers.prototype.setDefaultState = function( id, state ) {
	if( id == null || id == "" ) return;
	
	if( typeof id == "string" ) id = [id];

	for( var i=0; i<id.length; i++ ) {
		if( state == null || state == "" ) delete this.defaultStates[id[i]];
		else this.defaultStates[id[i]] = state;
	}
}

/*** INSTANCE items ***/

var ro = new RollOvers();

ro.preload = function() {
	if( !document.images ) return false;

	this.addRollover( // main nav rollovers
		["Header_home","Header_historical_resources","Header_jfk_library_and_museum","Header_education_and_public_programs"],
		["on","off"],"/jfkl/images/nav/primary/",".gif","-",false);

	this.addRollover( // footer rollovers
		["Footer_visit_us","Footer_search","Footer_faq","Footer_site_map","Footer_white_house_diary","Footer_timeline","Footer_asset_tree","Footer_virtual_museum_tour"],
		["over"],"/jfkl/images/nav/bottom/",".gif","-");

	this.addGenericRollover( // photo enlarge link
		"photo_enlarge",
		["over"],"/jfkl/images/global/photo_enlarge",".gif","-",true);

	this.addRollover( // submit button
		"submit",
		["over"],"/jfkl/images/buttons/",".gif","-",true);

	return this.preloaded = true;
}

ro.preloadArchives = function() {
	if( !document.images ) return false;

	this.addRollover( // tab rollovers
		["all_holdings","index_of_detailed_finding_aids"],
		["over","on","off"],"/jfkl/images/archives/tabs/",".gif","-",false);

	this.addGenericRollover( // archives box rollovers
		"reference_desk",
		["over","on","off"],"/jfkl/images/archives/reference_desk",".gif","-",false);

	this.addGenericRollover( // archives box rollovers
		"research_policies",
		["over","on","off"],"/jfkl/images/archives/research_policies",".gif","-",false);

	this.addGenericRollover( // archives box rollovers
		"research_grants",
		["over","on","off"],"/jfkl/images/archives/research_grants",".gif","-",false);

	this.addRollover( // archives box rollovers
		["reference_desk","research_policies","research_grants"],
		["over","on","off"],"/jfkl/images/archives/",".gif","-",false);

	this.addRollover( // archives box rollovers
		["reference_desk_wide","research_policies_wide","research_grants_wide"],
		["over","on","off"],"/jfkl/images/archives/",".gif","-",false);

	this.addRollover( // archives box rollovers
		["begin_search_button"],
		["over"],"/jfkl/images/archives/",".gif","-",true);
	
	return this.preload();
}

ro.preloadExhibits = function() {
	if( !document.images ) return false;

	this.addRollover( // tabbed rollovers
		["TabbedNav1_museum_exhibits","TabbedNav1_past_exhibits","TabbedNav1_traveling_exhibits","TabbedNav1_upcoming_exhibits"],
		["over","on","off"],"/jfkl/images/nav/tabbed/",".gif","-",false);
	
	return this.preload();
}


ro.preloadNewsletters = function() {
	if( !document.images ) return false;

	this.addRollover( // rollovers for new frontiers
		["head_current_issue","head_archived_issues"],
		["active"],"/jfkl/images/newsletters/newfrontiers/",".gif","-",true);
	
	this.addRollover( // rollovers for foundaton
		["head_current_issue","head_archived_issues"],
		["active"],"/jfkl/images/newsletters/foundation/",".gif","-",true);
	
	return this.preload();
}

ro.preloadForums = function() {
	if( !document.images ) return false;

	this.addRollover( // tabbed rollovers
		["upcoming_forums","past_forums","about_forums"],
		["over","on","off"],"/jfkl/images/nav/tabbed/",".gif","-",false);

	this.addGenericRollover(
		"register",
		["over"],"/jfkl/images/buttons/register",".gif","-",true);

	
	return this.preload();
}


ro.preloadSearch = function() {
	if( !document.images ) return false;

	this.addRollover( // tabbed rollovers
		["advanced_search","extended_search"],
		["over","on","off"],"/jfkl/images/nav/tabbed/",".gif","-",false);
	
	this.addGenericRollover(
		"search",
		["over"],"/jfkl/images/buttons/search",".gif","-",true);

	return this.preload();
}

