// JavaScript Document

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}

function highlightPage() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("sub-nav")) return false;
  var nav = document.getElementById("sub-nav");
  var links = nav.getElementsByTagName("a");
  for (var i=0; i<links.length; i++) {
    var linkurl = links[i].getAttribute("href");
    var currenturl = window.location.href;
    if (currenturl.indexOf(linkurl) != -1) {
      links[i].className = "current";
    }
  }
}

function highlightSection() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("sub-nav")) return false;
  var nav = document.getElementById("sub-nav");
  traceNavList(nav, 2, window.location.href);
}

/*
	Recursively trace the nav list one level at a time and assigning
	a class called current# where # is incremented by 1 every level it
	goes down.
	Parameters:		obj 			- ul object
					lvl				- current hierarchy level (integer
					curUrl			- current url
*/
function traceNavList(obj, lvl, curUrl)
{
	var links = obj.childNodes;
	for(i=0; i < links.length; i++)
	{
		if(links[i].nodeName == "LI")
		{
			var linkurl = getClassName(links[i]);
			if(curUrl.indexOf("/"+linkurl + "/") != -1)
			{
				links[i].className = "current" + lvl;
				var childlist = links[i].getElementsByTagName("ul");
				if( childlist.length > 1) traceNavList(childlist[0], lvl+1, curUrl);
			}//if			
		}//if		
	}//for
	
}//traceNavList

function highlightMain()
{
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  var nav = document.getElementById("mainnav");	
  var links = nav.getElementsByTagName("li");
  var curUrl = window.location.href;
  for(i=0; i < links.length; i++)
  {
	  var linkurl = getClassName(links[i]);
	  if( curUrl.indexOf("/"+linkurl+"/") != -1)
	  {
		  links[i].className = "mCurrent";
	  }//if
	  
  }//for
	
}//highlightMain

function highlightMain2()
{
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  var nav = document.getElementById("mainnav2");	
  var links = nav.getElementsByTagName("li");
  var curUrl = window.location.href;
  for(i=0; i < links.length; i++)
  {
	  var linkurl = getClassName(links[i]);
	  if( curUrl.indexOf("/"+linkurl+"/") != -1)
	  {
		  links[i].className += " m2Current";
	  }//if
	  
  }//for
	
}//highlightMain

function highlightAudience()
{
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("audience-nav-list")) return false;
  var nav = document.getElementById("audience-nav-list");	
  var links = nav.getElementsByTagName("li");
  var curUrl = window.location.href;
  for(i=0; i < links.length; i++)
  {
	  var linkurl = getClassName(links[i]);
	  if( curUrl.indexOf("/"+linkurl+".html") != -1)
	  {
		  links[i].className = "audCurrent";
	  }//if
	  
  }//for
	
}//highlightMain


// return numerical version of IE
function getInternetExplorerVersion() {
     var rv = -1; // Return value assumes failure.
     if (navigator.appName == 'Microsoft Internet Explorer') {
         var ua = navigator.userAgent;
         var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
         if (re.exec(ua) != null)
             rv = parseFloat(RegExp.$1);
     }
     return rv;
}

//return the class of an element
function getClassName(obj)
{
		 if ((navigator.userAgent.indexOf("MSIE")>=0) && 
(getInternetExplorerVersion()<=7))
		 {
		 		 var linkurl = obj.getAttribute("className");
		 		 if(linkurl == "") { linkurl = "null"; }
		 } else {
		 		 var linkurl = obj.getAttribute("class");
		 }
		 
		 return linkurl;
		 
}//getClassName


function swapimg(imgobj, filename)
{
	var slashindex = imgobj.src.lastIndexOf("/");
	var imgurl = imgobj.src.substring(0, slashindex+1) + filename;
	imgobj.src = imgurl;
}//fswapimg

addLoadEvent(highlightMain);
addLoadEvent(highlightMain2);
addLoadEvent(highlightAudience);
addLoadEvent(highlightPage);
addLoadEvent(highlightSection);

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

// pop-up window for directory detailed page
function popup(mylink, windowname)
{
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string')
   href=mylink;
else
   href=mylink.href;
window.open(href, windowname, 'width=800,height=700,scrollbars=yes');
return false;
}

// pop-up window for directory detailed page
function popup2(mylink, windowname, width, height)
{
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string')
   href=mylink;
else
   href=mylink.href;
window.open(href, windowname, 'width=' + width + ',height=' + height);
return false;
}

// open a link from directory page in new browser window
function targetopener(mylink, closeme, closeonly)
{
if (! (window.focus && window.opener))return true;
window.opener.focus();
if (! closeonly)window.opener.location.href=mylink.href;
if (closeme)window.close();
return false;
}

//create month jump links (y: year)
function createMonthButtons(y)
{
    var monthNames = new Array("", "Jan", "Feb", "Mar", "Apr", "May", 
"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
    var monthNamesFull = new Array("", "January", "February", "March", 
"April", "May", "June", "July", "August", "September", "October", 
"November", "December");
    var curMonth = (new Date()).getMonth()+1;
    var curYear = (new Date()).getFullYear();
    document.write("<ul>");
    for(i=1; i <= 12; i++)
    {
        if( ((curMonth >= i) && (y == curYear)) || (y < curYear))
        {
            document.write("<li><a href=\"#" + monthNamesFull[i] + "\">" 
+ monthNames[i] + "</a></li>");
        }
        else
        {
            document.write("<li><span class=\"nonlink\">" + 
monthNames[i] + "</span></li>");
        }
   
    }//for
    document.write("</ul>");
}//createMonthButtons


/* Search */

function checkQuery() {
   var queryFld = document.keyword.query;
   if (queryFld.value == "") {
     alert ("Please enter a term to search");
     queryFld.focus();
     return(false);
     }
   return(true);
   }

function checkName() {
   var nameFld = document.ccso.NAME;
   if (nameFld.value == "") {
     alert ("Please enter a name");
     nameFld.focus();
     return(false);
     }
   return(true);
   }

function convertString( temp ) {
   var newString = "";
   var i=0;
   for( i=0; i < temp.length; i++ ) {
     if( temp.charAt(i) != " " ) {
       newString += temp.charAt(i);
       }
     else {
       newString += "+";
       }
     }
   return newString;
   }

function startSearch() {
		
		//vcu via Google
		
		if( document.keyword.searchnav[0].checked ) {
		   if( checkQuery() ) {
			 var header = "http://search.vcu.edu/search?proxystylesheet=default_frontend";
			 var options = "&access=p";
			 var searchVal = "q=" + convertString(document.keyword.query.value);
			 eval( "location = " + "\"" + header + searchVal + options + "\"");
		     }
		   }
		
		//people
		
		if( document.keyword.searchnav[1].checked ) {
		   if( checkQuery() ) {
			 var header = "http://phonebook.vcu.edu?";
			 options = "TYPE=All";
			 searchVal = "&NAME=" + convertString(document.keyword.query.value);
			 eval( "location = " + "\"" + header + options + searchVal + "\"" );
			 }
		   }
		   
		  //Medschool via Google
		
		if( document.keyword.searchnav[2].checked ) {
		   if( checkQuery() ) {
			 var header = "http://search.vcu.edu/search?";
			 var options = "&access=p&site=somweb&proxystylesheet=default_frontend";
			 var searchVal = "q=" + convertString(document.keyword.query.value);
			 eval( "location = " + "\"" + header + searchVal + options + "\"");
		     }
		   } 
   
}

//searchSearch

function cleartextbox() {
   if (document.keyword.query.value == "Search") {
     document.keyword.query.value = "";
     }
   }


