/**
 * add multiple JavaScript onload functions
 * @function
 */ 
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

addLoadEvent(handleLoadEvent);

// put any required scripts here that must run on window.onload
function handleLoadEvent()
{
	callOmniture();
}

// prevent user from selecting html text
// corrects the bug w/ the scrollbar in IE (white box displays upon text selection or scrolling)

function disabletext(e) {
	return false  
}  
  
function reEnable() {
	return true  
}  
  
//if the browser is IE4+

function stopSelection(id) {
	document.getElementById(id).onselectstart=new Function ("return false")  
	  
	//if the browser is NS6  
	if (window.sidebar){  
	document.getElementById(id).onmousedown=disabletext  
	document.getElementById(id).onclick=reEnable  
	}
}

function setGallery(galleryName, year) {
	var currSwf = $('galleryView');
	if( currSwf ) swfobject.removeSWF("galleryView");

	var swfName =  "/space/swf/" + year + "_gallery.swf";
	var initialURLString = window.location + "%23id%3D" + galleryName;
	
	var flashvars = "initialURL=" + initialURLString;
	var att = { data:swfName, width:"510", height:"368" };
    var par = { flashvars:flashvars };
    var id = "galleryView";
    var galleryObject = swfobject.createSWF(att, par, id);
	
	
	$('galleryTOC').style.display = "none";
	$('galleryView').style.display = "block";
}


// OMNITURE SUPPORT FUNCTIONS

/**
* callOmniture() sets the value for a campaign code when appropriate, and makes a standard call to the Omniture service.
* All other standard Omniture object values are set on a page-by-page basis, but this function must be called after they are
* set, in order to actually make the call to Omniture.
*
*/
function callOmniture()
{
	// look for the campaignCode ('scid') in the query string 
	// if it exists, and hasn't already been set earlier in the session, set it
	var qs = document.location.search.substring(1);
	
	var vars = qs.split("&"); 
	var campaignCode = "";
	
	// Look in the query string
	for (var i=0; i<vars.length; i++) 
	{
		var pair = vars[i].split("="); 
		if (pair[0] == 'scid') 
		{
			campaignCode = pair[1]; 
		} 
	}
	if(campaignCode == "")
	{
		// some redirects set prior query string params in a hash element, so we need to inspect that as well
		var hashElements = window.location.hash;
		hashElements = hashElements.substring( hashElements.indexOf('?')+1, hashElements.length );
		vars = hashElements.split("&"); 
		for (var j=0; j<vars.length; j++) 
		{
			pair = vars[j].split("="); 
			if (pair[0] == 'scid') 
			{
				campaignCode = pair[1]; 
			} 
		}
	}
	
	
	// check cookies to see if the campaign code was already set this session
	var presetCampaignCode = Get_Cookie('omnitureCampaignCode');
	
	if(presetCampaignCode == null && campaignCode != "")
	{
		// campaign code wasn't already set, but was passed in the query string, so we need to set it and store it as a cookie so we won't set it more than once
		
		// These are the possible parameters for Set_Cookie:
		// name, value, expires, path, domain, secure
		Set_Cookie( 'omnitureCampaignCode', campaignCode, '', '/', '', '' );
		s.campaign = campaignCode;
	} else {
		// campaign code was already set, or no code was passed, so set the omniture campaign code to an empty string
		s.campaign = "";
	}
	
	// all values are set so make the call to Omniture's server
	s.t();
}

function Set_Cookie( name, value, expires, path, domain, secure ) 
{
		// set time, it's in milliseconds
		var today = new Date();
		today.setTime( today.getTime() );
		
		/*
		if the expires variable is set, make the correct 
		expires time, the current script below will set 
		it for x number of days, to make it for hours, 
		delete * 24, for minutes, delete * 60 * 24
		*/
		if ( expires )
		{
			expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );
		var cookieString = name + "=" + value  +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
		
		document.cookie = cookieString;
}

// with this test document.cookie.indexOf( name + "=" );
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}			

// this deletes the cookie when called
function Delete_Cookie( name, path, domain ) 
{
	if ( Get_Cookie( name ) ) document.cookie = name + "=" +
		( ( path ) ? ";path=" + path : "") +
		( ( domain ) ? ";domain=" + domain : "" ) +
		";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function Check_Cookie(name) 
{
	var cookie_val = Get_Cookie(name);
	//trace(name + " Cookie: " + cookie_val);
}




