// JavaScript Document

	// BOF SckrFish Menu (writePrimaryNavigation();)
	sfHover = function() {
		var sfEls = document.getElementById("tabs").getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
	if (window.attachEvent) window.attachEvent("onload", sfHover);
	
	// BOF Clamshell Menu (writeSecondaryNavigation();)
	function toggleClamShellMenu(objectID) {
		var object = document.getElementById(objectID);
		// JERRY - Added try to capture object not defined error
		try {
			if (object.style.display == 'block') {
				object.style.display='none';
			} else {
				object.style.display='block';
			}
		} catch (err) { }
		return;
	}
	
	// BOF MM JavaScripts
	function MM_preloadImages() { //v3.0
	  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}
	
	function MM_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	
	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	
	function MM_swapImage() { //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}
	
	//v1.0
	//Copyright 2006 Adobe Systems, Inc. All rights reserved.
	function AC_AddExtension(src, ext)
	{
	  if (src.indexOf('?') != -1)
		return src.replace(/\?/, ext+'?'); 
	  else
		return src + ext;
	}
	
	function AC_Generateobj(objAttrs, params, embedAttrs) 
	{ 
	  var str = '<object ';
	  for (var i in objAttrs)
		str += i + '="' + objAttrs[i] + '" ';
	  str += '>';
	  for (var i in params)
		str += '<param name="' + i + '" value="' + params[i] + '" /> ';
	  str += '<embed ';
	  for (var i in embedAttrs)
		str += i + '="' + embedAttrs[i] + '" ';
	  str += ' ></embed></object>';
	
	  document.write(str);
	}
	
	function AC_FL_RunContent(){
	  var ret = 
		AC_GetArgs
		(  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
		 , "application/x-shockwave-flash"
		);
	  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	}
	
	function AC_SW_RunContent(){
	  var ret = 
		AC_GetArgs
		(  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
		 , null
		);
	  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	}
	
	function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
	  var ret = new Object();
	  ret.embedAttrs = new Object();
	  ret.params = new Object();
	  ret.objAttrs = new Object();
	  for (var i=0; i < args.length; i=i+2){
		var currArg = args[i].toLowerCase();    
	
		switch (currArg){	
		  case "classid":
			break;
		  case "pluginspage":
			ret.embedAttrs[args[i]] = args[i+1];
			break;
		  case "src":
		  case "movie":	
			args[i+1] = AC_AddExtension(args[i+1], ext);
			ret.embedAttrs["src"] = args[i+1];
			ret.params[srcParamName] = args[i+1];
			break;
		  case "onafterupdate":
		  case "onbeforeupdate":
		  case "onblur":
		  case "oncellchange":
		  case "onclick":
		  case "ondblClick":
		  case "ondrag":
		  case "ondragend":
		  case "ondragenter":
		  case "ondragleave":
		  case "ondragover":
		  case "ondrop":
		  case "onfinish":
		  case "onfocus":
		  case "onhelp":
		  case "onmousedown":
		  case "onmouseup":
		  case "onmouseover":
		  case "onmousemove":
		  case "onmouseout":
		  case "onkeypress":
		  case "onkeydown":
		  case "onkeyup":
		  case "onload":
		  case "onlosecapture":
		  case "onpropertychange":
		  case "onreadystatechange":
		  case "onrowsdelete":
		  case "onrowenter":
		  case "onrowexit":
		  case "onrowsinserted":
		  case "onstart":
		  case "onscroll":
		  case "onbeforeeditfocus":
		  case "onactivate":
		  case "onbeforedeactivate":
		  case "ondeactivate":
		  case "type":
		  case "codebase":
			ret.objAttrs[args[i]] = args[i+1];
			break;
		  case "width":
		  case "height":
		  case "align":
		  case "vspace": 
		  case "hspace":
		  case "class":
		  case "title":
		  case "accesskey":
		  case "name":
		  case "id":
		  case "tabindex":
			ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
			break;
		  default:
			ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
		}
	  }
	  ret.objAttrs["classid"] = classid;
	  if (mimeType) ret.embedAttrs["type"] = mimeType;
	  return ret;
	}

	// bof - find the x or y position of an object
	function findPosX(obj) {
		obj=document.getElementById(obj);
		curleft = 0;
		if (obj.offsetParent) {
			while (1) {
				curleft+=obj.offsetLeft;
				if (!obj.offsetParent) {
					break;
				}
				obj=obj.offsetParent;
			}
		} else if (obj.x) {
			curleft+=obj.x;
		}
		return curleft;
	}
	
	function findPosY(obj) {
		obj=document.getElementById(obj);
		curtop = 0;
		if (obj.offsetParent) {
			while (1) {
				curtop+=obj.offsetTop;
				if (!obj.offsetParent) {
					break;
				}
				obj=obj.offsetParent;
			}
		} else if (obj.y) {
			curtop+=obj.y;
		}
		return curtop;
	}
	
	// bof collapsible column - atlas specific
	var timerlen = 3;
	var slideAniLen = 450;
	
	var timerID = new Array();
	var startTime = new Array();
	var obj = new Array();
	var endHeight = new Array();
	var moving = new Array();
	var dir = new Array();
	var endWidth = new Array();
	
	function slidedown(objname){
		if(moving[objname])
			return;
		if(document.getElementById(objname).style.display != "none")
			return; // cannot slide down something that is already visible
		moving[objname] = true;
		dir[objname] = "down";
		startslide(objname, "down");
	}
	
	function slideup(objname){
		if(moving[objname])
			return;
		if(document.getElementById(objname).style.display == "none")
			return; // cannot slide up something that is already hidden
		moving[objname] = true;
		dir[objname] = "up";
		startslide(objname, "up");
	}
	
	function slideleft(objname){
		if(moving[objname])
			return;
		if(document.getElementById(objname).style.display != "none")
			return; // cannot slide down something that is already visible
		moving[objname] = true;
		dir[objname] = "left";
		startslide(objname, "left");
	}
	
	function slideright(objname){
		if(moving[objname])
			return;
		if(document.getElementById(objname).style.display == "none")
			return; // cannot slide up something that is already hidden
		moving[objname] = true;
		dir[objname] = "right";
		startslide(objname, "right");
	}
	
	function startslide(objname, direction){
		obj[objname] = document.getElementById(objname);
		if(direction == "up" || direction == "down")
		{
			endHeight[objname] = parseInt(obj[objname].style.height);
			startTime[objname] = (new Date()).getTime();
			if(dir[objname] == "down"){
				obj[objname].style.height = "1px";
			}
			obj[objname].style.display = "block";
			// timerID[objname] = setInterval('slidetick(" + objname + ",'vert');',timerlen);
			timerID[objname] = setInterval('slidetick(\'' + objname + '\',"vert");', timerlen);
		}
		else
		{
			endWidth[objname] = parseInt(obj[objname].style.width);
			startTime[objname] = (new Date()).getTime();
			if(dir[objname] == "left"){
				obj[objname].style.width = "1px";
			}
			obj[objname].style.display = "block";
			// timerID[objname] = setInterval('slidetick(" + objname + ",'horiz');',timerlen);
			timerID[objname] = setInterval('slidetick(\'' + objname + '\',"horiz");', timerlen);
		}
	}
	
	function slidetick(objname, direction){
		var elapsed = (new Date()).getTime() - startTime[objname];
		if(direction == "vert")
		{
			if (elapsed > slideAniLen)
				endSlide(objname);
			else {
				var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
				if(dir[objname] == "up")
					d = endHeight[objname] - d;
					obj[objname].style.height = d + "px";
				}
			}
			else
			{
				if (elapsed > slideAniLen)
					endSlide2(objname);
				else {
					var d =Math.round(elapsed / slideAniLen * endWidth[objname]);
				if(dir[objname] == "right")
					d = endWidth[objname] - d;
					obj[objname].style.width = d + "px";
			}
		}
		return;
	}
	
	function endSlide(objname){
		clearInterval(timerID[objname]);
		if(dir[objname] == "up")
			obj[objname].style.display = "none";
			obj[objname].style.height = endHeight[objname] + "px";
			delete(moving[objname]);
			delete(timerID[objname]);
			delete(startTime[objname]);
			delete(endHeight[objname]);
			delete(obj[objname]);
			delete(dir[objname]);
			delete(endWidth[objname]);
			return;
	}
	
	function endSlide2(objname){
		clearInterval(timerID[objname]);
		if(dir[objname] == "right")
			obj[objname].style.display = "none";
			obj[objname].style.width = endWidth[objname] + "px";
			delete(moving[objname]);
			delete(timerID[objname]);
			delete(startTime[objname]);
			delete(endWidth[objname]);
			delete(obj[objname]);
			delete(dir[objname]);
			delete(endHeight[objname]);
			
			detectBrowser();
			if (moz) {
				redrawFix(); // for mozilla
			}
			
			return;
	}
	
	function toggleSlide(objname){
		if(document.getElementById(objname).style.display == "none"){
			// div is hidden, so let's slide down
			slidedown(objname);
		}else{
			// div is not hidden, so slide up
			slideup(objname);
		}
	}
	
	function toggleSlide2(objname){
		if(document.getElementById(objname).style.display == "none"){
			// div is hidden, so let's slide down
			slideleft(objname);
		}else{
			// div is not hidden, so slide up
			slideright(objname);
		}
	}
	
	// Move a div object
	function moveObject(obj, mvLeft, mvTop) {
		document.getElementById(obj).style.position = "absolute";
		document.getElementById(obj).style.left = mvLeft;
		document.getElementById(obj).style.top = mvTop;
		return true;
	}
	
	// Get the screen width
	function getScreenWidth() {
		var x;
		if (self.innerHeight) // all except Explorer
		{
			x = self.innerWidth;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
		{
			x = document.documentElement.clientWidth;
		}
		else if (document.body) // other Explorers
		{
			x = document.body.clientWidth;
		}
		return x;
	}
	
	// Get the screen width
	function getScreenHeight() {
		var y;
		if (self.innerHeight) // all except Explorer
		{
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
		{
			y = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			y = document.body.clientHeight;
		}
		return y;
	}
	
	// mozilla redraw fix
	function redrawFix() {
		window.resizeBy(-1,-1);
		window.resizeBy(1,1);
	}
	
	// simple browser detection
	var d, dom, ie, ie4, ie5x, moz, mac, win, lin, old, ie5mac, ie5xwin, op;
	function detectBrowser() {
		d = document;
		n = navigator;
		na = n.appVersion;
		nua = n.userAgent;
		win = ( na.indexOf( 'Win' ) != -1 );
		mac = ( na.indexOf( 'Mac' ) != -1 );
		lin = ( nua.indexOf( 'Linux' ) != -1 );
		
		if ( !d.layers ){
			dom = ( d.getElementById );
			op = ( nua.indexOf( 'Opera' ) != -1 );
			konq = ( nua.indexOf( 'Konqueror' ) != -1 );
			saf = ( nua.indexOf( 'Safari' ) != -1 );
			moz = ( nua.indexOf( 'Gecko' ) != -1 && !saf && !konq);
			ie = ( d.all && !op );
			ie4 = ( ie && !dom );
		
			/*
			ie5x tests only for functionality. ( dom||ie5x ) would be default settings. 
			Opera will register true in this test if set to identify as IE 5
			*/
		
			ie5x = ( d.all && dom );
			ie5mac = ( mac && ie5x );
			ie5xwin = ( win && ie5x );
		}
	}