/*
* initialize every page (on #10054, soon to roll out on all sites)
*/
var hdr_default_value = 'Enter a zip or state';

function init()
{
	preselectCookiedProgram(readCookie('cookie_program'));
	var loc = readCookie('cookie_location');
	if($('hdr_location'))
		$('hdr_location').value = loc.length != 0 ? loc : hdr_default_value;
		
	if($('left_nav_location'))
		$('left_nav_location').value = loc.length != 0 ? loc : hdr_default_value;
}

function hdr_prep_submit()
{
	if ($('hdr_location').value == hdr_default_value)
		$('hdr_location').value = '';
	return true;
}

function left_nav_prep_submit()
{
	if ($('left_nav_location').value == hdr_default_value)
		$('left_nav_location').value = '';
	return true;
}

/*
* open a framed URL in a new window
*/
function goTo(url)
{
	var parentWin = open('/go.php?url=' + url,'goto');
	parentWin.focus();
	//required to not bubble the event for the onClick
	return false;
}

function preselectCookiedProgram(itemToSelect)
{
	if(!document.globalsearch)
		return;
		
	if($('left_nav_program'))
		$('left_nav_program').value = itemToSelect;
		
	// Get a reference to the drop-down
	var programList = document.globalsearch.program;

	// Loop through all the items
	for (var iLoop = 0; iLoop< programList.options.length; iLoop++)
	{
		if (programList.options[iLoop].value.toLowerCase() == itemToSelect.toLowerCase())
		{
			// Item is found. Set its selected property, and exit the loop
			programList.options[iLoop].selected = true;
			break;
		}
	}

}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0)
		{
			return unescape(c.substring(nameEQ.length,c.length)).replace(/[+]/g,' ');
		}
	}
	return '';
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}


function hdrLocationFocus(obj)
{
	if (obj.value==hdr_default_value)
	{
		obj.value='';
	}
	obj.style.color='black';
}

function open_subscribe_window(elem,source)
{
	url = '/subscriber/' + escape($F(elem)) + '/' + escape(source);
	subscribewin = window.open(url,'_email_subscribe','height=385,width=465'); 
	$(elem).value='Email Address';
	$(elem).style.color = '#999';
	subscribewin.focus();
}

function toggleDisplay(id)
{
	var el = document.getElementById(id);
	if(el.style.display == 'none')
		el.style.display = 'block';	
	else
		el.style.display = 'none';
		
}

function addStyleClass(element,className)
{
	if(!element.className.match(className))
	{
		element.className = element.className + " " + className;
	}
}

function removeStyleClass(element,className)
{
	
	if(element.className.match(className))
	{
		element.className = element.className.replace(className,"");
		//element.className = element.className.replace(/^ ?(.+) ?$/,"\1");
	}
}


/**
 * Takes an element and makes it's visibility controlled by a button area.
 * 
 * @param dropBox element to be controlled
 * @param x button origin
 * @param y button origin
 * @param w button width
 * @param h button height
 * @param dropHeight the height to be set for the dropBox element (width is set to be the same as the button)
 */
function makeDropBox(dropBox,x,y,w,h,dropHeight)
{
	var dropButton;
	
	if(!dropBox)
		return false;
	
	dropButton = document.createElement("div");

	with(dropButton.style)
	{
		position = 'absolute';
		left = x+'px';
		top = y+'px';
		width = w+'px';
		height = h+'px';
		cursor = "pointer";
	}
	
	var paddingPixels = 3;
	
	with(dropBox.style)
	{
		position = 'absolute';
		display = 'none';
		left = x+'px';
		top  = (y + h)+'px';
		width  = (w - (paddingPixels * 2))+'px';
		height = (dropHeight - (paddingPixels * 2))+'px';
		padding = paddingPixels+'px';
		overflowY  = 'scroll'; 
		
	}
	dropBox.className = "dropBox";
	
	dropButton.onmousedown = function()
	{
		dropBox.toggle();
	}
	
	dropBox.parentNode.appendChild(dropButton);
}