	// constants
	var columnClass = 'colSet';

	function init()
	{
		document.body.onresize = equalColHeight;// set in equalColumnHeight.js

		//if(section != "default" )
		//{
			// styles for about page
			var oContentBox = getObjByID('contentBox');
			if(oContentBox != null){
				var border = RUZEE.ShadedBorder.create({ corner:16, border:2 });
				border.render(oContentBox);
			}

			// styles for products page
			var oProducts = getObjByID('products');
			if(oProducts != null)
			{
				var border = RUZEE.ShadedBorder.create({ corner:16, border:2 });
				border.render(oProducts);
			
				border = RUZEE.ShadedBorder.create({ corner:10, border:1 });
				var ndes = getNodes_filterByTagClass(oProducts,new Array('DIV'),'prodimage sb');
				border.render(ndes);
			}
	
			// styles for about page's profile
			var oProfile = getObjByID('profile');
			if(oProfile != null){
				var border = RUZEE.ShadedBorder.create({ corner:16, border:2 });
				border.render(oProfile);
			}

			var oShoutout = getObjByID('shoutout_blank1');
			if(oShoutout != null) showShoutoutTxt();// inline in strict_home_movie form

			// styles for about page's profile
			/*
			var oCol = getObjByID('col_2_blank');
			if(oCol != null){
				var border = RUZEE.ShadedBorder.create({ corner:16, border:2 });
				border.render(oCol);
			}
			*/




		//}
	}

	// grab tag/class-specific child nodes. Returns array of matching nodes.
	// clsName is optional
	function getNodes_filterByTagClass(oPNode,tgNames, clsName)
	{
		if(oPNode == null || !oPNode.getElementsByTagName) return new Array();
		var ndes = new Array();
		for(var j=0; j < tgNames.length; j++)
		{
			var all = oPNode.getElementsByTagName(tgNames[j]);
			for(var i=0;i<all.length;i++)
			{
				if(all[i].nodeName.toLowerCase() == tgNames[j].toLowerCase() )
				{
					if(clsName != null){
						if(all[i].className.toLowerCase() == clsName.toLowerCase())  ndes[ndes.length] = all[i];
					}else ndes[ndes.length] = all[i];
				}
			}
		}
		return ndes;
	}

	// show menus for editing individual articles
	function toggleEditToolbar()
	{
		var oTglMenus = getObjByID('toggleEditArticleMenus');
		var menus = getNodesFromObj_filterByTagClass(document.body,new Array('div'), 'editArticleMenu');
		var displ = (oTglMenus.innerHTML.toLowerCase().indexOf('hide') > -1)?'none':'block';

		for(var i=0;i < menus.length; i++){ 
			if(!menus[i].id || menus[i].id == '') menus[i].id = 'editArticleMenu_tmp' + i;
			getStyleObj(menus[i].id).display = displ;// getStyleObj() is in util.js
		}

		if(displ == 'none'){
			oTglMenus.innerHTML = 'Edit Page';
			oTglMenus.className = '';
		}else{
			oTglMenus.innerHTML = 'Hide Edit Page';
			oTglMenus.className = 'emph';
		}
	}
	

/*************************************
Column Resizing
*************************************/

var minColH = 350;

// resizes the columns
function equalColHeight(animate, colSetClassName)
{
	if(animate == null) animate = 0;
	if(colSetClassName == null) colSetClassName = columnClass;

	if(document.getElementById)
	{
		var newArgs = new Array();
		var newArgsStr = '';
		var colSets = getColSetsFromDoc(colSetClassName);// grabs columns based on class name + tag name (a 'div' in this case)

		for(var i=0; i<colSets.length;i++)
		{
			var cols = getColNodes(colSets[i], 'DIV');
			resizeCols(cols,minColH);
		}// i
	}// getElementById
}

function resizeCols(cols,min){
	var maxH = 0;
	for(var i=0;i<cols.length;i++){
		var colH = getColHeight(cols[i]);
		if(colH > maxH) maxH = colH;
	}
	if(maxH < min) maxH = min;

	if(maxH != 0){
		for(var j=0; j<cols.length; j++) cols[j].style.height = maxH + 'px';
	}

}

// trys to grab the displayed height of an element
// tested with IE6, ffox and konq. Height is wrong on ie5.5
function getColHeight(oElem)
{
	var paddingBtm = getStyle(oElem.id,'paddingBottom');// getStyle() in util.js
	if(paddingBtm.indexOf('px') > -1) paddingBtm = paddingBtm.substring(0,(paddingBtm.length - 2));
	else if(isInteger(paddingBtm) == false) paddingBtm = 0;

	var paddingTp = (isIE)?getStyle(oElem.id,'paddingTop'):getStyle(oElem.id,'padding-top');
	if(paddingTp.indexOf('px') > -1) paddingTp = paddingTp.substring(0,(paddingTp.length - 2));
	else if(paddingTp == '') paddingTp = 0;

	var borderBtm = (isIE)?getStyle(oElem.id,'borderBottomWidth'):getStyle(oElem.id,'border-bottom-width');
	if(borderBtm.indexOf('px') > -1) borderBtm = borderBtm.substring(0,(borderBtm.length - 2));
	else if(isInteger(borderBtm) == false ) borderBtm = 0;

	var borderTp = (isIE)?getStyle(oElem.id,'borderTopWidth'):getStyle(oElem.id,'border-top-width');
	if(borderTp.indexOf('px') > -1) borderTp = borderTp.substring(0,(borderTp.length - 2));
	else if(isInteger(borderTp) == false ) borderTp = 0;

	return (oElem.offsetHeight - paddingBtm) - paddingTp - borderBtm - borderTp;

}



// returns an associative array of arrays. The assosiative array has labels of 'set_0,set_1,etc.'. Each label points to an array of divs. 
// The idea is that related div columns are grouped together.
function getColSetsFromDoc(colSetClassName)
{
	var allDivs = (document.getElementsByTagName)?(document.getElementsByTagName('DIV')):(document.all);
	var colSets = new Array();
	for(var i=0;i<allDivs.length;i++){

		// set blank ids
		if(allDivs[i].parentNode && allDivs[i].parentNode.className && allDivs[i].parentNode.className.indexOf(colSetClassName) > -1 ){ 
			if(allDivs[i].id == '') allDivs[i].id = 'colID_' + i;
		}
		if(allDivs[i].className && allDivs[i].className.indexOf(colSetClassName) > -1 ){ 
			colSets[colSets.length] = allDivs[i];
		}

	}// i
	return colSets;
}


// only grab text nodes or   nodes that are of a specific type (like <p> and text nodes)
function getColNodes(oPNode, ndeTypeName){
	var nds = new Array();
	if(oPNode == null) return null;
	for(var i=0;i<oPNode.childNodes.length;i++){
		var nd = oPNode.childNodes[i];
		if(isThisNodeType(nd,ndeTypeName) && nd.className && (nd.className.indexOf('col_') > -1) ) nds[nds.length] = nd;
	}
	return nds;
}

function isThisNodeType(oNde, ndeTypeName){
	if(oNde.nodeName){
		if(oNde.nodeName.toLowerCase() == ndeTypeName.toLowerCase()) return true;
		return false;
	}else return false;
}

/***************************************
END Column Resizing
***************************************/
