// HIP TEMPLATE LEFT NAVIGATION CODE
// Changes the class of a selected id, used for highlighting menu selections from included menus
//
function openWin(sUrl) {
window.open(sUrl);
}

function getLeftNav(megadd) {
  var navList = document.getElementById(megadd).innerHTML;

  var idx = navList.indexOf("\<div ");
  if (idx < 0) idx = navList.indexOf("\<DIV "); // for compatibility mode
 
  document.getElementById("leftNav").innerHTML = navList.substring(0,idx);
  var newNav = navList.substring(0,idx);
  // alert(idx + "-" + newNav);
}

function change(id,className) {
	var identity = document.getElementById(id);
	if (identity != null) {
	identity.className = className;
	} else {
		identity = "none";
	}
}

/* 
LEFT NAVIGATION CODE FOR HIP 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;
	 // load the LeftNav 
	 getLeftNav(mddNavSection);
	// 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 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')) {
                document.getElementById('leftNav').style.height=pageHeight+"px";
        } else if (document.getElementById('leftNav10')) {
                margins=colDimension("leftNav10");
                document.getElementById('leftNav10').style.height=(pageHeight-margins)+"px";
        }
	} // End if there's a leftnav
}

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;
}
//
// HIP 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.hiponline.org')!==-1) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('headerSearchText').value);
		if (str.length>2) {
		searchReq.open("GET", 'http://www.hiponline.org/search/searchSuggest.asp?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 HIP";
	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://www.hiponline.org/public/findresults.asp";		
		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 "contactus":
		document.siteSearch.action="http://www.hiponline.org/search/results.asp";
		document.siteSearch.method="POST";		
		document.siteSearch.search_field.value=document.siteSearch.q.value;
		return true;
		break;
	case "kb":
		document.siteSearch.action="http://www.hiponline.org/kbresults.asp";
		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;
}
//
// HIP TEMPLATE MEGA DROPDOWN JAVASCRIPT
//
var mddtimeout;
var mddstarttime;
var mddNames=new Array("about", "network", "programs", "resources", "newevents", "contactus", "donate");

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 ((370+curleft)>pageRight) {
	if (boxname!=="search") {
		curleft=pageRight-370;
	}
}
	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);
	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";
	}
	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;
}

    var pageName;
	var current;
	window.onload=function(){		
		if(pageName) {	 // alert("pageName=" + pageName )	
			idName = pageName+'-sub';			
			change(pageName,'highlight');			
			change(idName,'visible');
			if(current) {
				current = pageName+'-'+current;
				subMenu = current+'-sub';
				change(current,'current');
				change(subMenu,'current');
			}
		}				
		if(document.getElementsByTagName){ 
			matchColumns();
		}
	}
