
function gObj(me) {
	if (document.getElementById) {
		return document.getElementById(me);
	}
}

function gImg(me) {
	if (document.images) {
		return document.images[me];
	}
}

// switching nav images (main menu only, as permanently 'on' links are no longer links)

function swImg(im, io) {
	gImg(im).src = "images/nav/"+im+"_"+io+".gif";
}

// declaring some globals 

t = false;

y_num = 0;

// moving down on page after link

function getWai() {
	var wai = 0;
	if (window.pageYOffset > 0) {
		wai = window.pageYOffset;
	} else if (document.body.scrollTop > 0) {
		wai = document.body.scrollTop;
	} else if (document.documentElement.scrollTop > 0) {
		wai = document.documentElement.scrollTop;
	}
	return wai;
}

function scrollToWai() {
	if (y_num > 0) {
		window.scrollTo(0,y_num);
	}
}

// scrolling link for maps

function getMap(wh) {
	ypos = getWai();
	window.location.href = "offices.php?map="+wh+"&wai="+ypos;
}


// setting main div and footer to window height

function getWindowHeight() {
	var windowHeight = 0;
	windowHeight = (typeof(window.innerHeight) == 'number') ? window.innerHeight : ((document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.clientHeight);
	return windowHeight;
}

function setContent() {
	var windowHeight = getWindowHeight();
	var txtdv = gObj('text_div');
	var marg = 575;
	if (windowHeight > txtdv.offsetHeight + marg) {
		txtdv.style.height = windowHeight - marg + "px";
	}
}


// The following more/less news link thing works because all the elements inside the news div
// (p and h3) have the same line-height and padding-bottom.  Also, padding is 1/2 of line height.

// THIS FEATURE DISABLED, BUT THE FUNCTIONS REMAIN HERE FOR NOW

function deepCss(who, css) {  // cross-browser style sniffer (cool)
    var val = '', str = '';
    if (!who || who.style == undefined) return '';
    if (/\-/.test(css)) {
		str = css.replace(/\-[a-z]/g, function(w) {
			return w.charAt(1).toUpperCase() + w.substring(2);
		})
    }
    val = who.style[str];
    if (!val) {
		if (who.currentStyle) {
			val = who.currentStyle[str];
		} else {
			var dv = document.defaultView || window;
			if (dv && dv.getComputedStyle) {
				val = dv.getComputedStyle(who,'').getPropertyValue(css);
            }
        }
    }
    return (val) ? val : '';
}

lines = 5;  // editable -- how many lines of text to show in compressed paragraph (including the header)

function showHide(dv) {
	var nDiv = gObj(dv);
	var lObj = gObj(dv+"_link");
	var mObj = gObj(dv+"_more");
	var p = nDiv.getElementsByTagName("p").item(0);
	var lineHt = deepCss(p,"line-height");
	var linePdg = deepCss(p,"padding-bottom");
	var ht = parseInt(lineHt.replace("px",""));
	var pd = parseInt(linePdg.replace("px",""));
	if (lObj.innerHTML == "more...") { 
		nDiv.style.height = "auto";
		nDiv.style.overflow = "visible";
		lObj.innerHTML = "&lt; less";
		mObj.style.marginTop = -pd + "px";
	} else {
		nDiv.style.height = (lines * ht) + "px"; 
		nDiv.style.overflow = "hidden";
		lObj.innerHTML = "more...";
		mObj.style.marginTop = "0";
	}
	setContent();
}	

function isMore(dv) {
	var nDiv = gObj(dv);
	var p = nDiv.getElementsByTagName("p").item(0);
	var lineHt = deepCss(p,"line-height");
	var ht = parseInt(lineHt.replace("px",""));
	if (nDiv.scrollHeight > nDiv.offsetHeight + ht) {
		return true;
	}
	return false;
}

function doNewsLinks() {
	var i;
	for (i = 0; i < document.getElementsByTagName("div").length; i++) {
		var divClass = document.getElementsByTagName("div").item(i).className;
		if (divClass == "news_div") {
			var nDiv = document.getElementsByTagName("div").item(i);
			var p = nDiv.getElementsByTagName("p").item(0);
			var lineHt = deepCss(p,"line-height");
			// var linePdg = deepCss(p,"padding-bottom");
			var ht = parseInt(lineHt.replace("px",""));
			// var pd = parseInt(linePdg.replace("px",""));
			var divId = nDiv.id;
			var moreId = divId + "_more";
			var morePara = gObj(moreId);
			var currStr = morePara.innerHTML;
			var linkStr = '<a href="javascript:showHide(\''+divId+'\');" id="'+divId+'_link">more...</a> &nbsp; &nbsp; ';
			if (isMore(divId)) {
				var paraArr = new Array();
				var j;
				for (j=0; j < nDiv.getElementsByTagName("p").length; j++) {
					var para = nDiv.getElementsByTagName("p").item(j);
					if (para.offsetTop < nDiv.offsetHeight + nDiv.offsetTop) {
						paraArr.push(para);
					}
				}
				var visibleParas = paraArr.length;
				if (visibleParas % 2 == 0) {
					nDiv.style.height = ((lines + 1) * ht) + "px";
				} else {
					nDiv.style.height = (lines * ht) + "px";
				}
				if (currStr.indexOf("javascript:showHide") == -1) {
					morePara.innerHTML = linkStr + currStr;
				}
			} else {
				if (currStr.indexOf(linkStr) > -1) {
					morePara.innerHTML = currStr.replace(linkStr,"");
				}
			}
		}
	}
}

// get window changes to set content (see above)

window.onload = function() {
	setContent();
}

window.onresize = function() {
	setContent();
}

window.onscroll = function() {
	setContent();
}
