﻿var oDOMUtils = {
	oTargetLimit : document.body,
	sTarget : "a",
	mTargetFilter : function(oTarget){
		return (oTarget.nodeName.toLowerCase() != oDOMUtils.sTarget.toLowerCase())
	},
	mAddEvent : function(oElement, evType, oFunc, bUseCapture){
		//credit: Scott Andrews	
		if(oElement.addEventListener){
			oElement.addEventListener(evType, oFunc, bUseCapture);
			return true;
		}
		else if(oElement.attachEvent){
			var ret = oElement.attachEvent("on" + evType, oFunc);
			return ret;
		}
		else {
			oElement["on" + evType] = oFunc;
		}
	},
	mFindElement : function(oElement, oFunc){
		if(oFunc(oElement)) return oElement;
		for(var i = 0; i < oElement.childNodes.length; i++){
			oTmp = oDOMUtils.mFindElement(oElement.childNodes[i], oFunc);
			if(oTmp != null) return oTmp;
		}
		return null;
	},
	mFindElements : function(oElement, oFunc, aReturn){
		if(oFunc(oElement)) aReturn.push(oElement);
		for(var i = 0; i < oElement.childNodes.length; i++){
			aReturn = oDOMUtils.mFindElements(oElement.childNodes[i], oFunc, aReturn);
		}
		return aReturn;
	},
	mFindTarget : function(e){
		var target = arguments[0];
		if(window.event && window.event.srcElement)
			target = window.event.srcElement;
		else if(e && e.target)
			target = e.target;
		if(!target)
			return null;
		while(target != oDOMUtils.oTargetLimit && oDOMUtils.mTargetFilter(target)){
			target = target.parentNode;
		}
		if(oDOMUtils.mTargetFilter(target)) return null;
		return target;
	}	
};

var siteUtils = {
	init : function() 
	{
		// do init stuff
	},
  
	// Adjust left panel
	SetLeftNavHeight: function() 
	{
		if(document.getElementById("leftPanel")) 
		{
			var mainContent = document.getElementById("content");
			var leftPanel = document.getElementById("leftPanel");
//			if(mainContent.offsetHeight < 500)
//			{
//				mainContent.style.height = '500px';
//			}
			
			if(mainContent.offsetHeight > leftPanel.offsetHeight)
			{
				leftPanel.style.height = mainContent.offsetHeight - 10 + 'px';
			}
//			else
//			{
//				mainContent.style.height = leftPanel.offsetHeight - 10 + 'px';
//			}
		}
	},
  
	// Adjust right panel
	SetRightNavHeight: function() 
	{
		if(document.getElementById("rightPanel")) 
		{
			var mainContent = document.getElementById("content");
			var rightPanel = document.getElementById("rightPanel");
//			if(mainContent.offsetHeight < 500)
//			{
//				mainContent.style.height = '500px';
//			}
			
			if(mainContent.offsetHeight > rightPanel.offsetHeight)
			{
				rightPanel.style.height = mainContent.offsetHeight - 10 + 'px';
			}
//			else
//			{
//				mainContent.style.height = rightPanel.offsetHeight - 10 + 'px';
//			}
		}
	},
	
	ScrollToBottom:function(element)
	{
		var control = document.getElementById(element)
		if(control)
		{
			control.scrollTop = control.scrollHeight;
		}
	}
};

oDOMUtils.mAddEvent(window, "load", siteUtils.SetRightNavHeight);