/* unb.lib.js - sitewide JS functions  */

/* +++++++ NON-JQUERY DEPENDENT FUNCTIONS +++++++ */
// add overall class for CSS JavaScript awareness
$('html').addClass('js');
// add ARIA landmark roles
function setRoleAttribute(id, rolevalue) {if(document.getElementById(id)) {document.getElementById(id).setAttribute("role", rolevalue);}}
function setAriaRoleElementsById() {setRoleAttribute("header", "banner");setRoleAttribute("menus", "navigation");setRoleAttribute("search", "search");setRoleAttribute("contentcolumn", "main");setRoleAttribute("leftcolumn", "complementary");setRoleAttribute("rightcolumn", "complementary");	setRoleAttribute("contentinfo", "footer");}window.onload=function(){ setAriaRoleElementsById(); }
// Top of Page add &#8593; to link
$('a.top').prepend('&#8593;&nbsp;');	
  
/* +++++++ JQUERY DEPENDENT FUNCTIONS +++++++ */
$(function() {	
// new window option two
$('A.popUp').click(function(e){open(this.href);e.preventDefault();});		
// load legend tips 
$.ajax({url: "/eresources/legend.html",cache: false,success: function(html){$("#legendDiv").append(html);}});
// toggle legend
$("a.ajax").click(function(){$("#legendDiv").toggle("slow");return false;});	
// toggle database descriptions
$("a.expand").click(function(){$(this).next('div.details').toggle("slow");return false;});
});


$(function(){
	// Set tabindex on the main and section divs so IE knows they are focusable, and so Webkit browsers will focus() them.
	$('#contentcolumn').attr('tabindex', -1);
	$('#lefttcolumn').attr('tabindex', -1);
	$('#rightcolumn').attr('tabindex', -1);

	var is_webkit = navigator.userAgent.toLowerCase().indexOf('webkit') > -1;
	var is_opera = navigator.userAgent.toLowerCase().indexOf('opera') > -1;

	// If there is a '#' in the URL (someone linking directly to a page with an anchor), highlight that section and set focus to it.
	/*if (document.location.hash) {
		var myAnchor = document.location.hash;
		$(myAnchor).css("backgroundColor","#ff3").animate({ backgroundColor: "#ffffff" }, 1150);
		$(myAnchor).focus();
	}*/
	
	// Highlight targets of in-page links when clicked. If Webkit, set focus to it.
	$("a[href^='#contentcolumn'],a[href^='#lefttcolumn'],a[href^='#rightcolumn']").click(function(event){
	//$("a[href^='#']").click(function(event){
		var clickAnchor="#"+this.href.split('#')[1];
		$(clickAnchor).css("backgroundColor","#ff3").animate({ backgroundColor: "#ffffff" }, 1150);
		if(is_webkit || is_opera) 
		{
			$(clickAnchor).focus();
		}
	});	
});

/* jQuery Color Animations */
(function(jQuery){jQuery.each(['backgroundColor','borderBottomColor','borderLeftColor','borderRightColor','borderTopColor','color','outlineColor'],function(i,attr){jQuery.fx.step[attr]=function(fx){if(fx.state==0){fx.start=getColor(fx.elem,attr);fx.end=getRGB(fx.end);}fx.elem.style[attr]="rgb("+[Math.max(Math.min(parseInt((fx.pos*(fx.end[0]-fx.start[0]))+fx.start[0]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[1]-fx.start[1]))+fx.start[1]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[2]-fx.start[2]))+fx.start[2]),255),0)].join(",")+")";}});function getRGB(color){var result;if(color&&color.constructor==Array&&color.length==3)return color;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3])];if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))return[parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55];if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))return[parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16)];if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))return[parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16)];return colors[jQuery.trim(color).toLowerCase()];}function getColor(elem,attr){var color;do{color=jQuery.curCSS(elem,attr);if(color!=''&&color!='transparent'||jQuery.nodeName(elem,"body"))break;attr="backgroundColor";}while(elem=elem.parentNode);return getRGB(color);};})(jQuery);
/* hoverIntent */
;(function($){$.fn._hover=$.fn.hover;$.fn.hover=function(fn1,fn2,fn3){if(fn3)this.bind('hoverstart',fn1);if(fn2)this.bind('hoverend',fn3?fn3:fn2);return!fn1?this.trigger('hover'):this.bind('hover',fn3?fn2:fn1);};var hover=$.event.special.hover={delay:100,speed:100,setup:function(data){data=$.extend({speed:hover.speed,delay:hover.delay,hovered:0},data||{});$.event.add(this,"mouseenter mouseleave",hoverHandler,data);},teardown:function(){$.event.remove(this,"mouseenter mouseleave",hoverHandler);}};function hoverHandler(event){var data=event.data||event;switch(event.type){case'mouseenter':data.dist2=0;data.event=event;event.type="hoverstart";if($.event.handle.call(this,event)!==false){data.elem=this;$.event.add(this,"mousemove",hoverHandler,data);data.timer=setTimeout(compare,data.delay);}break;case'mousemove':data.dist2+=Math.pow(event.pageX-data.event.pageX,2)+Math.pow(event.pageY-data.event.pageY,2);data.event=event;break;case'mouseleave':clearTimeout(data.timer);if(data.hovered){event.type="hoverend";$.event.handle.call(this,event);data.hovered--;}else $.event.remove(data.elem,"mousemove",hoverHandler);break;default:if(data.dist2<=Math.pow(data.speed*(data.delay/1e3),2)){$.event.remove(data.elem,"mousemove",hoverHandler);data.hovered++;data.event.type="hover";if($.event.handle.call(data.elem,data.event)===false)data.hovered--;}else data.timer=setTimeout(compare,data.delay);data.dist2=0;break;}function compare(){hoverHandler(data);};};})(jQuery);
/* Superfish v1.4.8 - jQuery menu widget  Copyright (c) 2008 Joel Birch Dual licensed under the MIT and GPL licenses */
;(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl()},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path)}},o.delay)},getMenu=function($menu){var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];sf.op=sf.o[menu.serial];return menu},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone())};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass)});sf.o[s]=sf.op=o;$('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){if(o.autoArrows)addArrow($('>a:first-child',this))}).not('.'+c.bcClass).hideSuperfishUl();var $a=$('a',this);$a.each(function(i){var $li=$a.eq(i).parents('li');$a.eq(i).focus(function(){over.call($li)}).blur(function(){out.call($li)})});o.onInit.call(this)}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);$(this).addClass(menuClasses.join(' '))})};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)this.toggleClass(sf.c.shadowClass+'-off')};sf.c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',arrowClass:'sf-sub-indicator',shadowClass:'sf-shadow'};sf.defaults={hoverClass:'sfHover',pathClass:'overideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show'},speed:'normal',autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call($ul);return this},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul)});return this}})})

(jQuery);
