var prevMenu;
function getURLQueryParameters() {
	try {
		var queryStr = window.location.search;
		var nameValStr = queryStr.substr(1);
		var nameValArr = nameValStr.split('&');
		var nameValDict = {};
		var i;
		for (i = 0, j = nameValArr.length; i < j; i++) {
			var nameValPair = nameValArr[i].split('=');
			if (nameValPair.length == 2) {
				nameValDict[nameValPair[0]] = nameValPair[1];
			}
		}
		return nameValDict;
	} catch (err) {
		return {};
	}
}

function getURLQueryParameter(param) {
	if (!getURLQueryParameters()[param]) {
		return "";
	}
	return getURLQueryParameters()[param];
}

//Zebra striping

function initZebra() {
    $(".stripeMe tr").mouseover(function() {$(this).addClass("over");}).mouseout(function() {$(this).removeClass("over");});
	$(".stripeMe tr:even").addClass("alt");
}

function initZebraLi() {
    $(".stripeMe li").mouseover(function() {$(this).addClass("over");}).mouseout(function() {$(this).removeClass("over");});
 $(".stripeMe li:even").addClass("alt");
}
 
//Forms

function initForms() {
	$('.textInput').each(function() {
	    var default_value = this.value;
	    $(this).focus(function() {
	        if(this.value == default_value) {
	            this.value = '';
	        }
	    });
	    $(this).blur(function() {
	        if(this.value == '') {
	            this.value = default_value;
	        }
	    });
	});
}
 


//Article Bookmarking Code

function initBookmarks() {
	$(".bookmarks").hide().removeClass("simpleBookmarks");
	$(".articleSave > a").removeClass("invisible").addClass("clickable").click(function() {
		$(this).toggleClass("clickable");
		$(this).next(".bookmarks").toggle();
		if(!$(this).is(".clickable")) {
			$(this).attr("original", $(this).text());
			$(this).append(" (hide)");
		}
		else
			$(this).text($(this).attr("original"));
		return false;
	});
}

SWFFormFixAuto = function(){
	if(navigator.appName.toLowerCase() != "microsoft internet explorer")return true;
	var objects = document.getElementsByTagName("object");
	if(objects.length == 0) return true;
	for(i=0;i<objects.length;i++){
		// here's all the objects on the page, now lets find the flash objects
		if(objects[i].classid == "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"){
			// this is a flash movie, apply the fix
			window[objects[i].id] = objects[i];
		}
	}
	var out = '';
	return true;
}
SWFFormFix = function(swfname){
	if(navigator.appName.toLowerCase() != "microsoft internet explorer")return false;
	var testnodename = "SWFFormFixTESTER";
	document.write('<div id="'+testnodename+'" onclick="SWFFormFixCallback(this,\''+swfname+'\');return false;" style="display:none">&nbsp;</div>');
	document.getElementById(testnodename).onclick();
}
SWFFormFixCallback = function (obj,swfname){
	var path = document;
	var error = false;
	var testnode = obj;
	while(obj = obj.parentNode){
		if(obj.nodeName.toLowerCase() == "form"){
			if(obj.name != undefined && obj.name != null && obj.name.length > 0){
				path = path.forms[obj.name];
			}else{
				alert("Error: one of your forms does not have a name!");
				error = true;
			}
		}
	}
	testnode.parentNode.removeChild(testnode);
	if(error) return false;
	window[swfname]=path[swfname];
	return true;
}

//
//  post2Url = Allows us to pass data to a page when people click on normal href links using post data.
//              this enables the pages to have permalinks but still pass some dynamic information in about
//              how the web site user navigated to the page.
//
//  IN: obj = the 'this' object for the url being clicked on
//      adArea = The value to set the adarea field in the permalink form to.
//
//  USAGE: <a href="url.asp" onclick="javascript:post2Url(this,'ADAREANAME');return false;">link text</a>
//
function post2Url(obj, adArea)
{
	var url = obj.href;
	var cleanAdArea = 'UNKNOWN';

	if(adArea.length > 0)
	{
		cleanAdArea = adArea;	
	}
	
	adAreaField = document.getElementById('adarea');
	adAreaField.value = adArea;
	permalinkform = document.getElementById('permalinkForm');
	permalinkform.action = url;
	//alert(adAreaField.value);
	permalinkform.submit();
}

function postMSA2Url(obj, division, state, locationname)
{
	
	var url = obj.href;
	
	var cleanState = 'UNKNOWN';
	var cleanDivision = 'UNKNOWN';
	var cleanLocation = 'UNKNOWN';

	if(state.length > 0)
	{
		cleanState = state;
	}

	if(division.length > 0)
	{
		cleanDivision = division;	
	}

	if(locationname.length > 0)
	{
		cleanLocation = locationname;	
	}
	
	msaStateField = document.getElementById('msastate');
	msaStateField.value = state;

   
	
	msaDivisionField = document.getElementById('msadivision');
	msaDivisionField.value = division;



	msaNameField = document.getElementById('msaname');
	msaNameField.value = locationname;

//	alert(msaNameField.value);

	msalinkform = document.getElementById('msalinkForm');
	msalinkform.action = url;
	
	msalinkform.submit();
}

//
// Sets up nav menu including default effect, custom effect or one of several pre-rolled effects
// @param {Function, String} in_effect String or Function literal for in effe 
// @param {Function, String} out_effect Function literal for out effect
//
function initMenu(in_effect, out_effect, menuContainer, submenuContainer) {
	switch(in_effect) {
		//default effect is fade
		default:
		case 'fade':
			in_effect = function(elem, menu) {
				$(elem).fadeIn("fast", function() {
					menu.attr("on", "true");
				});		
				return false;		
			}
			
			out_effect = function(elem, menu) {
				$(elem).fadeOut("fast", function() {
					menu.removeAttr("disabled");
				});
			}
			break;
		case 'slide':
			in_effect = function(elem, menu) {
				$(elem).slideDown("fast", function() {
					menu.attr("on", "true");
				});		
				return false;		
			}
			
			out_effect = function(elem, menu) {
				$(elem).slideUp("fast", function() {
					menu.removeAttr("disabled");
				});
			}
			break;		
		case 'size':
			in_effect = function(elem, menu) {
				$(elem).show("fast", function() {
					menu.attr("on", "true");
				});		
				return false;		
			}
			
			out_effect = function(elem, menu) {
				$(elem).hide("fast", function() {
					menu.removeAttr("disabled");
				});
			}
			break;
		
	}

	//setup hovers to use effects (only on nav items containing submenus)
	$(menuContainer + " > ul > li:has(" + submenuContainer + ")").hover(
		function(){
			//kill timer if on
			if(typeof timer != "undefined")
				clearTimeout(timer);

			//hide other menus first, immediately
			var menu = $(this);
			
			menu.siblings().children(submenuContainer).hide();

			//if not currently active, hide this one as well before showing
			if(!menu.attr("on"))
				menu.children(submenuContainer).hide();
				
			//prevent accidental retriggering of fadein, conflict between fades						
			if(menu.attr("disabled"))
				return;

			//menu-revealing code here
			menu.children(submenuContainer).each(function() {
				return in_effect(this, menu);
			});
		},				
		function(){
			var menu = $(this);
			//set timer to wait in case user accidentally moused out
			if(menu.attr("on")) {
				timer = setTimeout(function(){hideMenu(menu)}, 20);
			}
			else
				return true;
		}
	);
		
	function hideMenu(menu) {
		//hide this menu
		if(menu.attr("on"))
			menu.removeAttr("on").attr("disabled", "true").children(submenuContainer).each(function() {
				out_effect(this, menu);
			});						
		return false;
	}
}

//
// Writes current date as Day, Month Year
//
function getDate()
{

	var mydate=new Date()
    var year=mydate.getYear()
    
    if (year < 1000)
        year+=1900
    
    var day=mydate.getDay()
    var month=mydate.getMonth()
    var daym=mydate.getDate()
    
    if (daym<10)
        daym="0"+daym
        
    var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday",
                            "Friday","Saturday")
    var montharray=new Array("January","February","March","April","May","June",
                            "July","August","September","October","November","December")
    
    document.write(dayarray[day]+", "+montharray[month]+" "+daym+", "+year)
    
}
/*
function initIndustryCenter(in_effect, out_effect, menuContainer, submenuContainer) {
	switch(in_effect) {
		//default effect is fade
		default:
		case 'fade':
			in_effect = function(elem, menu) {
				$(elem).fadeIn("fast", function() {
					menu.attr("on", "true");
				});		
				return false;		
			}
			
			out_effect = function(elem, menu) {
				$(elem).fadeOut("fast", function() {
					menu.removeAttr("disabled");
				});
			}
			break;
		case 'slide':
			in_effect = function(elem, menu) {
				$(elem).slideDown("fast", function() {
					menu.attr("on", "true");
				});		
				return false;		
			}
			
			out_effect = function(elem, menu) {
				$(elem).slideUp("fast", function() {
					menu.removeAttr("disabled");
				});
			}
			break;		
		case 'size':
			in_effect = function(elem, menu) {
				//alert(elem);alert(menu);
				$(elem).show("fast", function() {
					menu.attr("on", "true");
				});		
				return false;		
			}
			
			out_effect = function(elem, menu) {
				$(elem).hide("fast", function() {
					menu.removeAttr("disabled");
				});
			}
			break;
		
	}

	//setup hovers to use effects (only on nav items containing submenus)
	//$("mouseOut").hover(
	$(menuContainer).hover(
		function(){
			//alert();
			//kill timer if on
			if(typeof timer != "undefined")
				clearTimeout(timer);

			//hide other menus first, immediately
			var menu = $(this);

			
			//alert(menu.siblings().children(submenuContainer).hide());
			menu.siblings().children(submenuContainer).hide();

			//if not currently active, hide this one as well before showing
			if(!menu.attr("on"))
			{
			 	if(prevMenu != null)
			   {
					prevMenu.siblings().children(submenuContainer).hide();
					prevMenu.children(submenuContainer).hide();
			   }		  

				menu.children(submenuContainer).hide();
			}			
						prevMenu = $(this);
			//prevent accidental retriggering of fadein, conflict between fades						
			if(menu.attr("disabled"))
				return;

			//menu-revealing code here
			menu.children(submenuContainer).each(function() {
				return in_effect(this, menu);
			});
			
		},				
		function(){
			var menu = $(this);
			//set timer to wait in case user accidentally moused out
			//alert(menu.attr("on"));
			if(menu.attr("on")) {
				timer = setTimeout(function(){hideMenu(menu)}, 20);
			}
			else
			{
			   return true;
			}
		}
	);
	*/
	
(function($) {
	$.fn.hoverIntent = function(f,g) {
		var cfg = {
			sensitivity: 7,
			interval: 1000,
			timeout: 1000
		};
		cfg = $.extend(cfg, g ? { over: f, out: g } : f );

		var cX, cY, pX, pY;

		var track = function(ev) {
			cX = ev.pageX;
			cY = ev.pageY;
		};

		var compare = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
				$(ob).unbind("mousemove",track);
				ob.hoverIntent_s = 1;
				return cfg.over.apply(ob,[ev]);
			} else {
				pX = cX; pY = cY;
				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
			}
		};

		var delay = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			ob.hoverIntent_s = 0;
			return cfg.out.apply(ob,[ev]);
		};

		var handleHover = function(e) {
			var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
			while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
			if ( p == this ) { return false; }

			var ev = jQuery.extend({},e);
			var ob = this;

			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }

			if (e.type == "mouseover") {
				pX = ev.pageX; pY = ev.pageY;
				$(ob).bind("mousemove",track);
				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
			} else {
				$(ob).unbind("mousemove",track);
				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
			}
		};

		return this.mouseover(handleHover).mouseout(handleHover);
	};
})(jQuery);

function initIndustryCenter(in_effect, out_effect, menuContainer, submenuContainer) {
	var menuContainerAsId = menuContainer.substr(1,menuContainer.length);
	$(menuContainer).each(function(i){
		$(this).attr("id", menuContainerAsId +(i+1));
		$("#"+menuContainerAsId+(i+1)).hoverIntent({
			sensitivity: 2, 
			interval: 500, 
			over: showPopup, 
			timeout: 350, 
			out: hidePopup
		});
	});

	function showPopup(){  
		var dd = $(this).attr("id");
		$("#"+dd + " > div").show();
	}
	function hidePopup(){ 			
		var dd = $(this).attr("id");
		$("#"+dd + " > div").hide();
	}
	
}

function leftNavControls()
{
	var loc = window.location;
	var baseURL = loc.protocol + "//" + loc.hostname + loc.pathname;
	//alert(loc.pathname);
}
