/**********
 * Changes the css style and events for buttons
 **************************/
//button class name constants
var OUTER = "Outer";
var MIDDLE = "Middle";
var INNER = "Inner";
var PRIORITY = "Priority";
function btnOn(id){
	var linkRef = document.getElementById(id);
	if (linkRef){
		var pClass = (linkRef.getAttribute("priority")=="true") ? PRIORITY : ""; //if priority, change class
		changeBtnClass(id,pClass+"On");
		linkRef.onfocus = function(){ changeBtnClass(id,pClass+"Over") } ;
		linkRef.onblur = function(){ changeBtnClass(id,pClass+"On") } ;
		linkRef.onmouseover = function(){ changeBtnClass(id,pClass+"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,pClass+"Down");
		} ;
		linkRef.onmouseup = function(){ 
			changeBtnClass(id,pClass+"On") 
		};
		linkRef.onmouseout = function(){ //need to also reset onfocus and blur on mousedown for mozilla/firefox conflicts
			changeBtnClass(id,pClass+"On");
			if (!is_ie){
				document.getElementById(id).onfocus = function(){changeBtnClass(id,pClass+"Over")};
				document.getElementById(id).onblur= function(){changeBtnClass(id,pClass+"On")};	
			}
		} ;
		linkRef.onclick = linkRef.inlineonclick; 
	}
 }
 
 function btnOff(id) {
	var linkRef = document.getElementById(id);
	if (linkRef){
		var pClass = (linkRef.getAttribute("priority")=="true") ? PRIORITY : ""; //if priority, change class
		changeBtnClass(id,pClass+"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;
	}
}

var agt=navigator.userAgent.toLowerCase();
var is_ie=(agt.indexOf("msie")!=-1);

function btnInit(id,priority,on,setWidth,setHeight){
	var linkRef = document.getElementById(id); //get a tag link
	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 =  21; //add extra width padding
		var width = (setWidth) ? setWidth : oswidth + padding; //get width of link, and add padding

		linkRef.firstChild.nodeValue = " "; //erase text link
		linkRef.className = "btnLink"; 
		linkRef.style.width = width;
		if(setHeight) linkRef.style.height = setHeight;
		//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;
		if(setHeight) outerDiv.style.height = setHeight + "px";
		
		var middleDiv = document.createElement("div"); 
		middleDiv.id = id + MIDDLE;
		middleDiv.style.width = (width-2)+"px";
		if(setHeight) middleDiv.style.height = (setHeight - 2) + "px";
		
		var innerDiv = document.createElement("div");
		innerDiv.id = id + INNER;
		innerDiv.style.width = (width-4)+"px";
		if(setHeight) innerDiv.style.height = (setHeight - 4) + "px";
		if(setWidth){
			innerDiv.style.paddingLeft = "0";
			innerDiv.style.paddingRight = "0";
		}
		if(setHeight){
			innerDiv.style.paddingTop = "0";
			innerDiv.style.paddingBottom = "0";
		}
		
		outerDiv.appendChild(middleDiv);
		middleDiv.appendChild(innerDiv);
		innerDiv.appendChild(document.createTextNode(txt));
		
		linkRef.appendChild(outerDiv);
						
		if (priority) { //priority setting
			var newAttr = document.createAttribute("priority");
			newAttr.nodeValue="true";
			linkRef.setAttributeNode(newAttr);
		}
		
		//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;
}
