function adjHeight() {
  var objLnav = document.getElementById("leftNav");
	var objMidCont = document.getElementById("midContent");
	
	if (((objLnav) && (objMidCont))  && (objLnav.offsetHeight > objMidCont.offsetHeight)) {
	  objMidCont.style.height = objLnav.offsetHeight;
	}/**/
}

function ajaxLoader(url, id, postData) {
	if (document.getElementById) {
		var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
	}
	if (x) {
		x.onreadystatechange = function() {
			if (x.readyState == 4 && x.status == 200) {
				if (id) {
					el = document.getElementById(id);
					el.innerHTML = x.responseText;
					fixUnderflow();
				} else {
					return x.responseText;
				}
			} else if (x.readyState == 4 && x.status != 200) {
				if (id) {
					el = document.getElementById(id);
					el.innerHTML = "ERROR: " + x.status;
					fixUnderflow();
				} else {
					alert("ERROR: " + x.status);
				}
			}
		}
		if (postData) {
			x.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		} else {
			x.open("GET", url, true);
		}
		x.setRequestHeader("Cache-Control", "no-cache");
		x.setRequestHeader("Pragma", "no-cache");
		postData = (postData) ? postData:null;
		x.send(postData);
	}
}

function deacFontBtns() {
	fontSmall.deactivate();
	fontMed.deactivate();
	fontLarge.deactivate();
}

function fontInit() {
	fontSmall = new fontButton("Sm", 10);
	fontMed = new fontButton("Md", 12);
	fontLarge = new fontButton("Lg", 15);
	pageFontSize = getCookie("umFontSize");
	switch(pageFontSize) {
		case "sm":
		  fontSmall.activate();
			break;
		case "md":
		  fontMed.activate();
			break;
		case "lg":
		  fontLarge.activate();
			break;
		default:
		  fontSmall.activate();
      break;
	}
  document.getElementById("fontSizer").style.display = "";
}

function fontButton(strSize, intFontSize) {
	var imgFolder = location.protocol + "//umanitoba.ca/images/";
	this.ref = document.getElementById("imgTxt" + strSize);
	//alert(this.ref.classname);
	this.inactive = new Image();
	this.inactive.src = imgFolder + "a_" + strSize.toLowerCase() + ".gif";
	this.active = new Image();
	this.active.src = imgFolder + "a_" + strSize.toLowerCase() + "_selected.gif";
	this.activated = false;
	this.activate = function() {
		deacFontBtns();
		this.ref.src = this.active.src;
		//this.ref.classname = "fontBtnActive";
		this.activated = true;
		document.body.style.fontSize = intFontSize + "px";
		if ((document.getElementById("midText")) && (thisIsHome)) {
		  document.getElementById("midText").style.height = 150 * (intFontSize + (intFontSize - 10) / 2) / 10 + "px";
	  } else if (!thisIsHome) {
			adjHeight();
		}
		var now = new Date();
	  now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
	  setCookie("umFontSize", strSize.toLowerCase(), now, "/");
		this.ref.style.cursor = "default";
		if ((document.getElementById("studentMsgSyn")) && (document.getElementById("goingOnSyn"))) {
			if (intFontSize > 14) {
				document.getElementById("goingOnSyn").style.display = "none";
				//document.getElementById("studentMsgSyn").style.display = "none";
			} else {
				document.getElementById("goingOnSyn").style.display = "block";
				//document.getElementById("studentMsgSyn").style.display = "block";
			}
		}
		if (thisIsHome) {
			newsHeight();
		} else {
			fixUnderflow();
		}
	}
	this.deactivate = function() {
		this.ref.src = this.inactive.src;
		//this.ref.classname = "fontBtnInactive";
		this.activated = false;
		this.ref.style.cursor = "pointer";
	}
	this.toggle = function() {
		if (this.activated) {
			this.activate();
		} else {
			this.deactivate();
		}
	}
}


function fixUnderflow() { 
  //self.onerror = function() { return true; }
  /**************************************
	This function adjusts the height of page elements so as to prevent background colours from spilling 
	under other floating page elements.
	Objects and methods used in this function are defined in setPageObjects()
	**************************************/
	if (typeof(objMidStuff) != "undefined") {
		if (objMidStuff.ref) {
			objMidContent.ref.style.height = "auto";
			if (objMidStuff.getHeight() < getLeftColHeight()) {
				/* If midStuff is shorter than the left column increase it's height, but subtract the height of the 
					footer bar containing the breadcrumbing */
				objMidContent.ref.style.height = (getLeftColHeight() - objFooter.getHeight()) + "px";
			} else {
				//objMidContent.ref.style.height = "auto";
			}
			if (objPageLinks.ref) {
				/* If pageLinks exists on this page... */
				objPageLinks.ref.style.height = "auto";
				/* Reset the height of the element to default in case text resizing is happening.  This prevents the 
					pageLinks element from being stuck at the max size */
				if (objIntro.getHeight() + objPageLinks.getHeight() < objRightBar.getHeight()) {
					/* If intro height + pageLinks height < the right bar, increase the height of pageLinks */
					objPageLinks.ref.style.height = (objRightBar.getHeight() - objIntro.getHeight()) + "px";
				}
			}
		}
	}
}

function getActiveStyleSheet() {
var i, a;
 for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
  if(a.getAttribute("rel").indexOf("style") != -1
  && a.getAttribute("id")
  && !a.disabled) return a.getAttribute("id");
  }
  return null;
}

function getLeftColHeight() {
	return objContent.getHeight() - objAddress.getHeight() - objOrangeFooter.getHeight();
}

function moveMenu() {
	if (getActiveStyleSheet() != "ssPrint") {
		var adjBy = (is_ie4up) ? 0:2;
		adjBy = (is_fx) ? 1:adjBy;
		document.getElementById("reposMe").style.top = (document.getElementById("nav").offsetTop + adjBy) + "px";
		document.getElementById("reposMe").style.left = "1px";
		if ((is_safari) || (is_fx)) {
			document.getElementById("nav").style.height = "23px";
		} else {
			document.getElementById("nav").style.height = "26px";
		}
		document.getElementById("reposMe").style.top = xPageY("nav") + 2;
		document.getElementById("reposMe").style.left = "1px";
		/*if ((is_nav6up) && (!is_nav7up)) {
			document.getElementById("reposMe").style.visibility = "hidden";
			document.getElementById("reposMe").style.display = "none";
		} else {*/
			document.getElementById("reposMe").style.visibility = "visible";
			document.getElementById("reposMe").style.display = "";
		//}
	}
}

function newsHeight() {
  objSA = document.getElementById("publicAffairs");
  objNews = document.getElementById("news");
  objSP = document.getElementById("studentProfiles");
  var newHeight = objSP.offsetHeight + 10;
  if (newHeight > baseNewsHeight) {
    objNews.style.height = newHeight + "px";
  } else {
    objNews.style.height = baseNewsHeight + "px";
  }
}

function pageObject(strId) {
	this.ref = (document.getElementById(strId)) ? document.getElementById(strId):null;
	this.getHeight = function() {
		try { 
			return this.ref.offsetHeight;
		} catch(e) {
			return 0;
		}
  }
}

function popupImg(sPicURL, ht, wdth) {
	ht = (!isNaN(ht)) ? ht:200;
	wdth = (!isNaN(wdth)) ? ht:200;
  window.open( "http://umanitoba.ca/include/popupimg.htm?"+sPicURL, "", "resizable=1,HEIGHT=" + ht + ",WIDTH=" + wdth);
}

function rotateBanner() {
	if (!intBannerCount) {
		intBannerCount = Math.round((Math.random()*(arBnrImgs.length-1))+1);
	}
	intBannerCount = ((intBannerCount) && (intBannerCount <= arBnrImgs.length)) ? intBannerCount:1;
	var intThisImgIdx = intBannerCount - 1;
	document.images["splashImg"].src = arBnrImgs[intThisImgIdx].src;
	intBannerCount++;
	//setTimeout("rotateBanner()", 15000);
}

function setLogoPos() {
	if (document.getElementById) {
		//intLeftColHeight = getLeftColHeight();
		//alert(intLeftMnuHeight);
		var intBtmPcntg = Math.round((getLeftColHeight() - 100) * 100 / getLeftColHeight());
		objContent.ref.style.backgroundPosition = " 1% " + intBtmPcntg + "%";
	}
}

function setPageObjects() {
	objContent = new pageObject("content");
  objAddress = new pageObject("address");
  objOrangeFooter = new pageObject("orangeFooter");
	objFooter = new pageObject("footer");
	objMidContent = new pageObject("midContent");
	objMidStuff = new pageObject("midStuff");
	objIntro = new pageObject("intro");
	objPageLinks = new pageObject("pageLinks");
	objRightBar = new pageObject("rightBar");
}

function showHide(strId, boolShow, boolVisibility) {
	if (document.getElementById) {
		var el = document.getElementById(strId);
		if (boolVisibility) {
			el.style.visibility = (boolShow) ? "visible":"hidden";
		} else {
	    el.style.display = (boolShow) ? "":"none";
		}
	}
}

function toggleVis(strId, objClicked) {
	if (document.getElementById) {
	  var objEl = document.getElementById(strId);
		objEl.style.display = (objEl.style.display == "none") ? "":"none";
		if (objClicked) {
			objClicked.innerHTML = (objEl.style.display == "none") ? "+":"-";
		}
		if (objClicked && ((is_moz)||(is_fb)||(is_fx))) {
			objClicked.style.marginRight = "3px";
		}
	}
}

function xPageX(e) {
   if (!(e=xGetElementById(e))) return 0;
   var x = 0;
   while (e) {
     if (xDef(e.offsetLeft)) x += e.offsetLeft;
     e = xDef(e.offsetParent) ? e.offsetParent : null;
   }
   return x;
}

function xPageY(e) {
   if (!(e=xGetElementById(e))) return 0;
   var y = 0;
   while (e) {
     if (xDef(e.offsetTop)) y += e.offsetTop;
     e = xDef(e.offsetParent) ? e.offsetParent : null;
   }
   return y;
} 

function xGetElementById(e) {
  if(typeof(e)!='string') return e;
  if(document.getElementById) {
    e = document.getElementById(e);
  } else if(document.all) {
    e = document.all[e];
  } else {
    e = null;
  }
  return e;
}

function xDef()
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}

var thisIsHome = false;
var logoSet = false;
var intBannerCount = 0;
