// IUPUI TEMPLATE LEFT NAVIGATION CODE
// Changes the class of a selected id, used for highlighting menu selections from included menus
//
function change(id,className) {
 var identity = document.getElementById(id);
 if (identity != null) {
 identity.className = className;
 } else {
 identity = "none";
 }
}

/* 
LEFT NAVIGATION CODE FOR IUPUI WEB TEMPLATE
How it works: just apply the CSS class of 'column' to your pages' main columns.
*/
matchColumns=function(){ 
     var divs,maxHeight,divHeight,d,navHeight,contImgs,pageHeight; 

// If there's a leftNav, proceed
if ((document.getElementById('leftNav'))||(document.getElementById('leftNav10'))) {
	
     // initialize maximum height value 
     maxHeight=0; 
     imgHeight=0;
     pageHeight=0;
     navHeight=0;
     shHeight=0;

	// Get height of #page - this is the baseline for the height of everything else
	d=document.getElementById('page');
	if(d.offsetHeight){ 
		pageHeight=d.offsetHeight; 					
        } else if(d.style.pixelHeight){ 
		pageHeight=d.style.pixelHeight;					 
        } 

	d=document.getElementById('siteHeader');
	if (d) {
		if(d.offsetHeight){ 
			shHeight=d.offsetHeight; 					
        	} else if(d.style.pixelHeight){ 
			shHeight=d.style.pixelHeight;					 
        	} 
		pageHeight=pageHeight-shHeight;
	}

	// is the nav height LARGER than page? This is buggy in IE6 so we have to check
	if (document.getElementById('leftNav')) {
		d=document.getElementById('leftNav');
	} else {
		d=document.getElementById('leftNav10');
	}
	if(d.offsetHeight){ 
		navHeight=d.offsetHeight; 					
        } else if(d.style.pixelHeight){ 
		navHeight=d.style.pixelHeight;					 
        } 
	if (navHeight>pageHeight) { pageHeight=navHeight; }

     // Does wide header image exist?
     divs=document.getElementsByTagName('img');
     for(var i=0;i<divs.length;i++){
          // For all images with class "wide"
          if(/\bwide\b/.test(divs[i].className)){
                d=divs[i];
                if(d.offsetHeight){
                     divHeight=d.offsetHeight;
                } else if(d.style.pixelHeight){
                     divHeight=d.style.pixelHeight;
                }
                // calculate maximum height
               imgHeight=Math.max(imgHeight,divHeight);
          }
     }  


     // Does wide ROTATOR image exist?
     divs=document.getElementsByTagName('embed');
     for(var i=0;i<divs.length;i++){
          // For all images with class "rotator"
          if(/\brotator\b/.test(divs[i].className)){
                d=divs[i];
                if(d.offsetHeight){
                     divHeight=d.offsetHeight;
                } else if(d.style.pixelHeight){
                     divHeight=d.style.pixelHeight;
                }
                // calculate maximum height
               imgHeight=Math.max(imgHeight,divHeight);
          }
     }    
  

     // Does wide headFlash image exist?
     divs=document.getElementsByTagName('embed');
     for(var i=0;i<divs.length;i++){
          // For all images with class "headFlash"
          if(/\bheadFlash\b/.test(divs[i].className)){
                d=divs[i];
                if(d.offsetHeight){
                     divHeight=d.offsetHeight;
                } else if(d.style.pixelHeight){
                     divHeight=d.style.pixelHeight;
                }
                // calculate maximum height
               imgHeight=Math.max(imgHeight,divHeight);
          }
     }  

	// Check for class "imageBar" which is used on some pages
     if (imgHeight==0) {
     divs=document.getElementsByTagName('div');
     for(var i=0;i<divs.length;i++){
          // for all divs with class "imgBar"
          if(/\imgBar\b/.test(divs[i].className)){
                d=divs[i];
                if(d.offsetHeight){
                     divHeight=d.offsetHeight;
                } else if(d.style.pixelHeight){
                     divHeight=d.style.pixelHeight;
                }
                // calculate maximum height
               imgHeight=Math.max(imgHeight,divHeight);
          }
     }  





	}
	
	// the height of columns should be equal to the height of #page minus any header image
	maxHeight=pageHeight-imgHeight;

     // assign maximum height value to all of container <div> elements 
     divs=document.getElementsByTagName('div'); 
     for(var i=0;i<divs.length;i++){
	  // if class attribute is "column", set the height 
          if(/\bcolumn\b/.test(divs[i].className)){ 
                divs[i].style.height=maxHeight+"px"; 
	  }
     } 

 	if (document.getElementById('leftNav')) {
  //              tHeight=pageHeight-colDimension("leftNav");
//document.title=tHeight;
                document.getElementById('leftNav').style.height=pageHeight+"px";
//                document.getElementById("leftNav").style.height=tHeight+"px";
        } else if (document.getElementById('leftNav10')) {
                margins=colDimension("leftNav10");
                document.getElementById('leftNav10').style.height=(pageHeight-margins)+"px";
        }
} // End if there's a leftnav


// RESIZE DIVS IN FOOTERMAP
if (document.getElementById('footerMap99')) {
     // Check li heights in FooterMap
     var footerMax;
     footerMax=0;
     divs=document.getElementById('footerMap').getElementsByTagName('li');
     for(var i=0;i<divs.length;i++) {
           d=divs[i];
           if(d.offsetHeight){
                divHeight=d.offsetHeight;
           } else if(d.style.pixelHeight){
                divHeight=d.style.pixelHeight;
           }
           // calculate maximum height
          footerMax=Math.max(footerMax,divHeight);
	}
     for(var i=0;i<divs.length;i++){
		if (divs[i].parentNode.id=="footerMap") { divs[i].style.height=footerMax+"px"; }
     }
} // End if there's a footermap
}

function colDimension(elmID) {
var elmHeight, elmMargin;
if(document.all) { // IE
elmHeight=document.getElementById(elmID).currentStyle.height;
//elmMargin=parseInt(document.getElementById(elmID).currentStyle.marginTop)+parseInt(document.getElementById(elmID).currentStyle.marginBottom);
elmMargin=parseInt(document.getElementById(elmID).currentStyle.paddingTop)+parseInt(document.getElementById(elmID).currentStyle.paddingBottom);
}
else { // Mozilla
elmHeight=document.defaultView.getComputedStyle(document.getElementById(elmID), '').getPropertyValue('height');
//elmMargin=parseInt(document.defaultView.getComputedStyle(document.getElementById(elmID), '').getPropertyValue('margin-top'))+parseInt(document.defaultView.getComputedStyle(document.getElementById(elmID), '').getPropertyValue('margin-bottom'));
elmMargin=parseInt(document.defaultView.getComputedStyle(document.getElementById(elmID), '').getPropertyValue('padding-top'))+parseInt(document.defaultView.getComputedStyle(document.getElementById(elmID), '').getPropertyValue('padding-bottom'));     
}
return elmMargin;
}
//
// IUPUI TEMPLATE SEARCH JAVASCRIPT
//
var mytimeout;

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} 
}

var searchReq = getXmlHttpRequestObject();

function searchSuggest() {
if (getSearchType()=="www") {
	var cur_url=location.href;
	cur_url=cur_url.toLowerCase();
	if (cur_url.search('www.iupui.edu')!==-1) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('headerSearchText').value);
		if (str.length>2) {
		searchReq.open("GET", 'http://www.iupui.edu/~iuihome/search/searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
		} else {
		hideSuggestions();
		}
	}		
} 
} else {
	hideSuggestions();
}
	resetMddHideTimer('search',10000);
}

function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest');
		ss.innerHTML = '';
		var str = searchReq.responseText;
		ss.innerHTML = str;
		if (str.length==0) { ss.style.display="none"; } else { ss.style.display="block"; }
	}
}


function resetSearch() {
	document.getElementById('headerSearchText').value="Search IUPUI";
	document.getElementById('search_suggest').style.display="none";
}

function hideSuggestions() {
	document.getElementById('search_suggest').style.display="none";
}

function searchSubmit() {

	switch(getSearchType()) {
	case "www":
		return true;
		break;
	case "people":
		var ss=document.siteSearch.q.value;
		ss=ss.replace(/^\s+|\s+$/g, '');
		if (ss.indexOf(",")>-1) {
			ss=ss.split(",");
		} else if (ss.indexOf(" ")>-1) {
			ss=ss.split(" ");
			tmp=ss[1];
			ss[1]=ss[0];
			ss[0]=tmp;
		}
		document.siteSearch.action="http://phonebook.iu.edu/findresults.cfm";		
		document.siteSearch.method="POST";	
		if (ss.constructor !== Array) {
			document.siteSearch.lastname.value=ss;
		} else if (ss.length==2) {
		document.siteSearch.lastname.value=ss[0];
		document.siteSearch.firstname.value=ss[1];
		} else {
		document.siteSearch.firstname.value="";
		}
		return true;
		break;
	case "news":
		return false;
		break;
	case "events":
		document.siteSearch.action="http://events.iupui.edu/search/results.php";
		document.siteSearch.method="POST";		
		document.siteSearch.search_field.value=document.siteSearch.q.value;
		return true;
		break;
	case "kb":
		document.siteSearch.action="http://kb.iu.edu/index.cgi";
		document.siteSearch.search.value=document.siteSearch.q.value;
		return true;
		break;
	}
}


function getSearchType() {
	var n="";
	for (var i=0; i < document.searchOptions.sType.length; i++)
	   {
	   if (document.searchOptions.sType[i].checked)
	      {
	      n= document.searchOptions.sType[i].value;
	      }
	}
	return n;
}
//
// IUPUI TEMPLATE MEGA DROPDOWN JAVASCRIPT
//
var mddtimeout;
var mddstarttime;
var mddNames=new Array("about", "admissions", "academics", "research", "international", "civic", "athletics", "events","search");

try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(e) {}

function mdd(boxname,yDist,xDist) {
	if (document.getElementById('mdd_'+boxname).style.display!=="block") {
	//hide other boxes
		hideAllMdd(boxname);
		setMddStart(boxname,yDist,xDist);
        } else {
		resetMddHideTimer(boxname,10000)
	}
}
function showMdd(boxname,yDist,xDist) {	
	//position box
	var ss=	document.getElementById('mdd_'+boxname);
	var page=document.getElementById('page');
	var curleft = curtop = 0;
	var obj=document.getElementById('nav_'+boxname);
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft-2;
			curtop += obj.offsetTop;
		}
	}
	curleft+=xDist;
	pageRight=page.offsetLeft+page.offsetWidth;
if ((175+curleft)>pageRight) {
	if (boxname!=="search") {
		curleft=pageRight-175;
	}
}
	ss.style.top=(curtop+yDist)+"px";
	ss.style.left=curleft+"px";
	ss.style.display="block"; 
//	resetMddHideTimer(boxname,5000);
}

function hideMdd(boxname) {
	hideAllMdd(boxname);
}

function resetMddHideTimer(boxname,settimer) {
	clearTimeout(mddtimeout);
	mddtimeout = setTimeout("hideAllMdd(\""+boxname+"\")", settimer)
}
function setMddStart(boxname,yDist,xDist) {
	clearTimeout(mddstarttime);
	var obj=document.getElementById('nav_'+boxname);
//	obj.style.background="url('http://www.iupui.edu/_Assets/images/template/nav_"+boxname+"_mo.jpg') no-repeat";
//	window.open("http://www.iupui.edu/_Assets/images/template/nav_"+boxname+"_mo.jpg");
	mddstarttime= setTimeout("showMdd(\""+boxname+"\","+yDist+","+xDist+")", 300)
}


function hideAllMdd(boxname) {
	boxes=mygetElementsByClassName("mdd");
	for (i=0; i<boxes.length; i++) {
			boxes[i].style.display="none";
	}

//	for (i=0; i<mddNames.length; i++) {
//		var obj=document.getElementById('nav_'+mddNames[i]);
//		obj.style.background="url('http://www.iupui.edu/_Assets/images/template/nav_"+mddNames[i]+".jpg') no-repeat";
//	}
	clearTimeout(mddtimeout);
	clearTimeout(mddstarttime);

}

function mygetElementsByClassName(needle) {
	var my_array = document.getElementsByTagName("*");
	var retvalue = new Array();
	var i;
	var j;
	for (i=0,j=0;i<my_array.length;i++) {
		var c = " " + my_array[i].className + " ";
		if (c.indexOf(" " + needle + " ") != -1) retvalue[j++] = my_array[i];
	}
	return retvalue;
}
