/**********
 * browser tests
 **************************/
var agt=navigator.userAgent.toLowerCase();
var is_ie=(agt.indexOf("msie")!=-1);
var is_ie5_5=(is_ie && agt.indexOf("5.5")!=-1);
var is_nav = (!is_ie && agt.indexOf('mozilla')!=-1);

/**********
 * Changes the css style and events for buttons
 **************************/
//button class name constants
var OUTER = "Outer";
var MIDDLE = "Middle";
var INNER = "Inner";
var STYLEREF = "stylename";
function btnOn(id){
	var linkRef = document.getElementById(id);
	if (linkRef){
		var sClass = linkRef.getAttribute(STYLEREF); 
		changeBtnClass(id,sClass+"On");
		linkRef.onfocus = function(){ changeBtnClass(id,sClass+"Over");} ;
		linkRef.onblur = function(){ changeBtnClass(id,sClass+"On");} ;
		linkRef.onmouseover = function(){ changeBtnClass(id,sClass+"Over");};
		linkRef.onmousedown = function(){//need to also clear onfocus and blur on mousedown for mozilla/firefox conflicts
			if (!is_ie){
				document.getElementById(id).onfocus=null;
				document.getElementById(id).onblur=null;
			}
			changeBtnClass(id,sClass+"Down");
		};
		linkRef.onmouseup = function(){ 
			changeBtnClass(id,sClass+"On") 
		};
		linkRef.onmouseout = function(){ //need to also reset onfocus and blur on mousedown for mozilla/firefox conflicts
			changeBtnClass(id,sClass+"On");
			if (!is_ie){
				document.getElementById(id).onfocus = function(){changeBtnClass(id,sClass+"Over");};
				document.getElementById(id).onblur= function(){changeBtnClass(id,sClass+"On");};	
			}
		};
		linkRef.onclick = linkRef.inlineonclick; 
	}
 };
 
 function btnOff(id) {
	var linkRef = document.getElementById(id);
	if (linkRef){
		var sClass = linkRef.getAttribute(STYLEREF); 
		changeBtnClass(id,sClass+"Off");
		linkRef.onfocus = null;
		linkRef.onblur = null;
		linkRef.onclick = function(){return false;};
		linkRef.onmouseover = null;
		linkRef.onmousedown = null ;
		linkRef.onmouseup = null;
		linkRef.onmouseout = null;	
	}
 };
 
function changeBtnClass(id,state){
	var btn = document.getElementById(id + OUTER);
	if (btn){
		 btn.className = "btn" + state + OUTER;
		 var middleBtn = document.getElementById(id+MIDDLE);
		 if (middleBtn) middleBtn.className = "btn" + state + MIDDLE;
		 var innerBtn = document.getElementById(id+INNER);
		 if (innerBtn) innerBtn.className = "btn" + state + INNER;
		 innerBtn.style.padding="0";
	}
};

function btnInit(id,priority,on,setwidth,setheight,iconPre,iconPost,smallsize,mini,bigsize,stylename){
	var linkRef = document.getElementById(id); //get a tag link
	var iconImg = "";//for icons
	if (iconPre || iconPost) {
		iconImg = document.createElement("img");
		iconImg.src = (iconPre) ? iconPre: iconPost;
		iconImg.border = "0";
		iconImg.hspace = "4";
		iconImg.style.paddingTop = "2px"
		//iconImg.width = 10;
		//iconImg.height = 10;
	}
	
	if (linkRef){
		var txt = linkRef.firstChild.nodeValue; //get text in link
		var oswidth = linkRef.offsetWidth; //buttons may need to be same width for design, if so, pass width size
		var padding = (smallsize) ?  16 : 21; //add extra width padding
		padding = (mini) ? 0 : padding;
		var width = (setwidth) ? setwidth : oswidth + padding; //get width of link, and add padding
		var height = (setheight) ? setheight : false; //get width of link, and add padding
		linkRef.firstChild.nodeValue = " "; //erase text link
		linkRef.className = "btnLink"; 
		linkRef.style.width = width; //reset link width
		if(height) linkRef.style.height = height;

		if (iconPre || iconPost) {
			width += 11; //size of icon image + buffer
		}
		
		//writing out this structure <a href="#"><div><div></div><div></div></div></a>
		//triple divs for additional borders
		var outerDiv = document.createElement("div"); 
		outerDiv.id = id + OUTER;
		outerDiv.style.width = width + "px";
		if(height) outerDiv.style.height = height + "px";
		
		var middleDiv = document.createElement("div"); 
		middleDiv.id = id + MIDDLE;
		middleDiv.style.width = (width - 2) + "px";
		if(height) middleDiv.style.height = (width - 2) + "px";
		
		var innerDiv = document.createElement("div");
		innerDiv.id = id + INNER;
		innerDiv.style.width = (width - 4) + "px";
		if(height) innerDiv.style.height = (width - 4) + "px";
		if (smallsize) {innerDiv.style.fontSize = "11px";innerDiv.style.lineHeight = "13px";}
		if (bigsize) {innerDiv.style.fontSize = "11px";innerDiv.style.lineHeight = "18px";} //headers with selects or inputs
		if(mini){innerDiv.style.fontSize = "9px"; innerDiv.style.lineHeight = "9px";}
		
		outerDiv.appendChild(middleDiv);
		middleDiv.appendChild(innerDiv);
		if (iconPre) {
			innerDiv.appendChild(iconImg);
		}
		innerDiv.appendChild(document.createTextNode(txt));
		if (iconPost) {
			innerDiv.appendChild(iconImg);
		}		
		linkRef.appendChild(outerDiv);
		var setstyle = (stylename) ? stylename : (priority) ? "Priority" : "";		
		linkRef.setAttribute(STYLEREF,setstyle);
		
		//hold on to inline onclick on the original link
		if (linkRef.inlineset!=true) {
			linkRef.inlineonclick = linkRef.onclick; 
			linkRef.inlineset = true;
		}
		on ? btnOn(id) : btnOff(id); //set button states
	}
	return linkRef;
};

/**********
 * findPosX findPosY used for more.js and other various scripts
 **************************/

function findPosX(obj,frameref){
	var pageRef = (frameref) ? frameref : document;
	myobj=pageRef.getElementById(obj)
	var posleft = 0;
	if (myobj.offsetParent){
		while (myobj.offsetParent){
			posleft += myobj.offsetLeft
			myobj = myobj.offsetParent;
		}
	}
	else if (myobj.x) posleft += myobj.x;
	return posleft;
}

function findPosY(obj,frameref){
	var pageRef = (frameref) ? frameref : document;
	myobj=pageRef.getElementById(obj)
	var postop = 0;
	if (myobj.offsetParent){
		while (myobj.offsetParent){
			postop += myobj.offsetTop
			myobj = myobj.offsetParent;
		}
	}
	else if (myobj.y) postop += myobj.y;
	return postop;
}