// JavaScript Document
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

startList = function() {
	if (!document.all&&document.getElementById) return false;
	if (!document.getElementById("navigation")) return false;
	
	//if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ test for MSIE x.x;
 		//var ieversion=new Number(RegExp.$1)  capture x.x portion and store as a number

	 //if (ieversion<=6) {
		var navRoot = document.getElementById("navigation");
		var subNav = navRoot.getElementsByTagName("div");
			for (i=0; i<subNav.length; i++) {
				var node = subNav[i];
				if (node.className =="topNav") {
					node.onmouseover=function() {
						this.className+=" over";
					}
					node.onmouseout=function() {
						this.className=this.className.replace(" over", "");
					}
				}
			}
//		}
//	}
}

addLoadEvent(startList);

// siteMap toggle
function toggleMap() {
	var map = document.getElementById("gridContainer");
	if (!map) return false;
	var toggles = map.getElementsByTagName("li");
	for (var i=0; i<toggles.length; i++) {
		var targetLink = toggles[i];
		if (targetLink.className == "menuTitle collapsed") {
			//alert("match");
			targetLink.submenu = targetLink.getElementsByTagName("ul");
			targetLink.onclick = function() {
				if (this.submenu[0].className == "show") {
					this.submenu[0].className = "hide"
					//this.submenu[0].parentNode.className = "menuTitle collapsed";
					return false;
				} else {
					this.submenu[0].className = "show";	
					//this.submenu[0].parentNode.className = "menuTitle displayed";
					return false;
				}
			}
		}
	}
}
addLoadEvent(toggleMap);

// Enable home page rollovers for IE6
homeRoll = function() {	 
	if (!document.all&&document.getElementById) return false;
	if (!document.getElementById("overviewGrid")) return false;
		var grid = document.getElementById("overviewGrid");
		var boxes = grid.getElementsByTagName("td");
		for (i=0; i<boxes.length; i++) {
			node = boxes[i];			
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
				}			
		}

}

addLoadEvent(homeRoll);

// Dynamically add alternate table-row background colors. Targeting based on className attribute "standard".
function stripeTables() {
  if (!document.getElementsByTagName) return false;
   		var tables = document.getElementsByTagName("table");  
   			for (var i=0; i<tables.length; i++) { 
   			if (tables[i].className == "standard") {
				var target=tables[i];
    			var odd = false;
   				var rows = target.getElementsByTagName("tr");
    				for (var j=1; j<rows.length; j++) {
      					if (odd == true) {
        				addClass(rows[j],"odd");
        				odd = false;
      			} else {
        			odd = true;
      			}
    		}
  		}
	}
}
function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}
addLoadEvent(stripeTables);


// Dynamically highlight table-rows on rollover. Targeting based on className ============================
function highlightRows() {
  if(!document.getElementsByTagName) return false;
	var tables = document.getElementsByTagName("table"); 
     for (var i=0; i<tables.length; i++) { 
   		if (tables[i].className == "standard") {
		var target = tables[i];	
  		var rows = target.getElementsByTagName("tr");
  			for (var j=0; j<rows.length; j++) {
    			rows[j].oldClassName = rows[j].className
    			rows[j].onmouseover = function() {
      				addClass(this,"highlight");
   				}
    			rows[j].onmouseout = function() {
      				this.className = this.oldClassName
    			}
  			}
		}
	}
}
//addLoadEvent(highlightRows);


// 'You are here' effect on sideNav-subNav items ==================================================
function getUrlString(targetUrl) {
	var beginIndex = targetUrl.lastIndexOf("/")-10;
//	alert(beginIndex);
	var endIndex = targetUrl.lastIndexOf(".");
	targetUrl = targetUrl.substring(beginIndex,endIndex);
	return targetUrl;
}
function subNavHighlight() {
	if (document.getElementById("sideNav")) {
	var subNav = document.getElementById("sideNav").getElementsByTagName("ul");
	var currentpageurl = getUrlString(window.location.href);
	  for (var i=0; i<subNav.length; i++ ) {
		var link = subNav[i].getElementsByTagName("a");

			for(var j=0; j<link.length; j++ ) {			
				var url = getUrlString(link[j].getAttribute("href"));
					if (currentpageurl == url) {
						link[j].className = "highLightLink";
					}
			   }
	 	  }
  	 }
}

//addLoadEvent(subNavHighlight);



function setSizeBtns() {
if (!document.getElementById) return false;
	if (document.getElementById("textSizes")) {
		document.getElementById("textsize_down").onclick = function() {
			changeTextSize(-1);
			return false;
		}
			document.getElementById("textsize_up").onclick = function() {
			changeTextSize(1);
			return false;
		}
	}
}

addLoadEvent(setSizeBtns);


var currTextSize = 0;
function changeTextSize (updown)
{
	currTextSize = Math.max(Math.min((currTextSize + updown),1),-1);
//	alert(currTextSize);
    if (document.getElementById) {
		var boxes = document.getElementById("wrapper").getElementsByTagName("div");
	  	for (var i=0; i<boxes.length; i++ ) {	
	     	//if (boxes[i].className == "box") {
			if (boxes[i].className.indexOf("box") != -1) {
				//styleObj = boxes[i].style;
				styleObj = boxes[i];
        		switch (currTextSize) {
            		case 1: 
                		//styleObj.fontSize =  "1.0em"; break;
						addTextSize(styleObj,"largeText"); break;
            		case 0:
            			//styleObj.fontSize =  "0.75em"; break;
						addTextSize(styleObj,"mediumText"); break;
            		case -1: 
                		//styleObj.fontSize =  "0.68em"; break;
						addTextSize(styleObj,"smallText"); break;
        		}
    		}
		}
	}
}
function addTextSize(element,value) {
    newClassName = "box";
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
//	alert(newClassName);
}

// menu toggle FAQS ===========================================================================
function toggleMenuFAQ() {
	var menu = document.getElementById("localMenu");
	if (!menu) return false;
	var toggles = menu.getElementsByTagName("li");
	for (var i=0; i<toggles.length; i++) {
		var targetLink = toggles[i];
		if (targetLink.className == "questionTitle collapsed") {
			targetLink.submenu = targetLink.getElementsByTagName("ul");
			targetLink.onclick = function() {
				if (this.submenu[0].className == "show") {
					this.submenu[0].className = "hide";		
					this.submenu[0].parentNode.className = "questionTitle collapsed";
					return false;
				} else {
					toggleFAQ(this.submenu[0]);
					return false;
				}
			}
		}
	}
}
addLoadEvent(toggleMenuFAQ);

function toggleFAQ(showHit) {
	var menu = document.getElementById("localMenu");
	var toggles = menu.getElementsByTagName("ul");
		for (var i=0; i<toggles.length; i++) {
		var mytargetLink = toggles[i];
		if (mytargetLink.className == "show") {	
			mytargetLink.className = "hide";
			mytargetLink.parentNode.className = "questionTitle collapsed";
		}
		showHit.className = "show";
		showHit.parentNode.className = "questionTitle displayed";
	}
}

// menu toggle SIDENAV ===========================================================================
function toggleMenu() {
	var menu = document.getElementById("sidenavContainer");
	if (!menu) return false;
	var toggles = menu.getElementsByTagName("li");
	for (var i=0; i<toggles.length; i++) {
		var targetLink = toggles[i];
		if (targetLink.className == "menuTitle collapsed") {
			targetLink.submenu = targetLink.getElementsByTagName("ul");
			targetLink.onclick = function() {
				if (this.submenu[0].className == "show") {
					this.submenu[0].className = "hide";		
					this.submenu[0].parentNode.className = "menuTitle collapsed";
					return false;
				} else {
					toggle(this.submenu[0]);
					return false;
				}
			}
		}
	}
}
//addLoadEvent(toggleMenu);

function toggle(showHit) {
	var menu = document.getElementById("sidenavContainer");
	var toggles = menu.getElementsByTagName("ul");
		for (var i=0; i<toggles.length; i++) {
		var mytargetLink = toggles[i];
		if (mytargetLink.className == "show") {	
			mytargetLink.className = "hide";
			mytargetLink.parentNode.className = "menuTitle collapsed";
		}
		showHit.className = "show";
		showHit.parentNode.className = "menuTitle displayed";
	}
}
// tabbed panels ===================================================================

myPanels = new Array();
myPanels[0] = "panel1";
myPanels[1] = "panel2";


//alert(myPanels[0]);

function init() {
if (!document.getElementsByTagName) return false;
if (!document.getElementById("holder")) return false;	
	for (i=1; i<myPanels.length; i++) {
		document.getElementById(myPanels[i]).style.display = "none";
	}
}

addLoadEvent(init);

function showHide(target) {
	var tabs = document.getElementById("controls").getElementsByTagName("a");
	for (i=0; i<myPanels.length; i++) {
			if(myPanels[i] != target) {
			document.getElementById(myPanels[i]).style.display = "none";
			tabs[i].className = "inActive";

		} else {
			document.getElementById(myPanels[i]).style.display = "block";
			tabs[i].className = "active";
		}
	}
}


/* this function ascribes a particular string (panel name) to each button. Note the attachemnt of a unique property to each itme in "mylinks." Note use of "this" keyword as opposed to that of demo function below.*/
function prepareButtons() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("holder")) return false;
	var mylinks = document.getElementById("controls").getElementsByTagName("a");
  	for (var i=0; i< mylinks.length; i++) {
		myTarget = mylinks[i];
		myTarget.panel = "panel" + (i+1);
		myTarget.onclick = function() {
			showHide(this.panel);
			return false;
		}
	}
}
addLoadEvent(prepareButtons);

// =============================================================================================================

// scrolling thumbnails scripts
function moveElement(elementID,final_x,final_y,interval) {
  if (!document.getElementById) return false;
  if (!document.getElementById(elementID)) return false;
  var elem = document.getElementById(elementID);
  if (elem.movement) {
    clearTimeout(elem.movement);
  }
  if (!elem.style.left) {
    elem.style.left = "0px";
  }
  if (!elem.style.top) {
    elem.style.top = "0px";
  }
  var xpos = parseInt(elem.style.left);
  var ypos = parseInt(elem.style.top);
  if (xpos == final_x && ypos == final_y) {
    return true;
  }
  if (xpos < final_x) {
    xpos+=myIncrement;
  }
  if (xpos > final_x) {
    xpos-=myIncrement;
  }
  if (ypos < final_y) {
    ypos+=myIncrement;
  }
  if (ypos > final_y) {
    ypos-=myIncrement;
  }
  elem.style.left = xpos + "px";
  elem.style.top = ypos + "px";
  var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
  elem.movement = setTimeout(repeat,interval);
}
function stopElement(elementID) {
  var elem = document.getElementById(elementID);
  if (elem.movement) {
    clearTimeout(elem.movement);
  }
}
var myIncrement = 5;

/*final_xleft = 0;
final_xright = -540;*/



function prepareScrollButtons() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("controller")) return false;
  
 	 var final_ytop = 0;
	var final_ybottom = -306;
	
	var mylinks = document.getElementById("controller").getElementsByTagName("a");
  	for (var i=0; i< mylinks.length; i++) {
	var idName = mylinks[i].getAttribute("id");
	if (idName == "leftArrow") {
			mylinks[i].onmouseover = function() {
			moveElement("scrollThumbs",0,final_ytop,10);
		  }
			mylinks[i].onmouseout = function() {
			stopElement("scrollThumbs");
		  }
			mylinks[i].onclick = function() {
			return false;
		  }
		}
			else if (idName == "rightArrow") {
			mylinks[i].onmouseover = function() {
			moveElement("scrollThumbs",0,final_ybottom,10);
		  }
			mylinks[i].onmouseout = function() {
			stopElement("scrollThumbs");
		  }
			mylinks[i].onclick = function() {
			return false;
		  }
		}
	}
}

addLoadEvent(prepareScrollButtons);

function prepareScrollButtons2() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("controller2")) return false;
  
  	var final_ytop = 0;
	var final_ybottom = -240;
  
	var mylinks = document.getElementById("controller2").getElementsByTagName("a");
  	for (var i=0; i< mylinks.length; i++) {
	var idName = mylinks[i].getAttribute("id");
	if (idName == "leftArrow") {
			mylinks[i].onmouseover = function() {
			moveElement("scrollThumbs2",0,final_ytop,10);
		  }
			mylinks[i].onmouseout = function() {
			stopElement("scrollThumbs2");
		  }
			mylinks[i].onclick = function() {
			return false;
		  }
		}
			else if (idName == "rightArrow") {
			mylinks[i].onmouseover = function() {
			moveElement("scrollThumbs2",0,final_ybottom,10);
		  }
			mylinks[i].onmouseout = function() {
			stopElement("scrollThumbs2");
		  }
			mylinks[i].onclick = function() {
			return false;
		  }
		}
	}
}

addLoadEvent(prepareScrollButtons2);


// home page rollover effects ========================================================================
// home page rollover effects
geographyRolls = function() {
	if (document.getElementById && document.getElementById("mapNav")) {
		var navRoot = document.getElementById("mapNav");
		subNav = navRoot.getElementsByTagName("a");	
		for (var i = 0; i<subNav.length; i++ ) {
		targetLink = subNav[i];
		targetLink.roll = "roll_" + i;
			targetLink.onmouseover=function() {
				document.getElementById(this.roll).className="show";
			}
			targetLink.onmouseout=function() {
				document.getElementById(this.roll).className="hide";
			}
		}
	}
}

addLoadEvent(geographyRolls);

serviceRollsTest = function() {
	if (!document.getElementById && !document.getElementById("servicesNav") || document.getElementById("servicesNav") == null) return false;
		var navRoot = document.getElementById("servicesNav");
		var subNav = navRoot.getElementsByTagName("li");
		//alert(subNav.length)
		var subNavLinks = subNav[0].getElementsByTagName("a");
		if (subNavLinks.length > 1) {
			serviceRollsDev();
		} else {
			serviceRollsProd();
		}

}

addLoadEvent(serviceRollsTest);


serviceRollsDev = function() {
//	if (document.getElementById && document.getElementById("servicesNav")) {
		var navRoot = document.getElementById("servicesNav");
		var subNav = navRoot.getElementsByTagName("a");	
		var rollNum = 0;
		for (var i = 1; i<subNav.length; i+=2 ) {
		targetLink = subNav[i];
		targetLink.roll = "roll_" + rollNum;
			targetLink.onmouseover=function() {
				document.getElementById(this.roll).className="show";
				document.getElementById("default").className="hide";
			}
			targetLink.onmouseout=function() {
				document.getElementById(this.roll).className="hide";
				document.getElementById("default").className="show";
			}
			rollNum++;
		}
//	}
}

serviceRollsProd = function() {
//	if (document.getElementById && document.getElementById("servicesNav")) {
		var navRoot = document.getElementById("servicesNav");
		var subNav = navRoot.getElementsByTagName("a");	
		//var rollNum = 0;
		for (var i = 0; i<subNav.length; i++ ) {
		targetLink = subNav[i];
		targetLink.roll = "roll_" + i;
			targetLink.onmouseover=function() {
				document.getElementById(this.roll).className="show";
				document.getElementById("default").className="hide";
			}
			targetLink.onmouseout=function() {
				document.getElementById(this.roll).className="hide";
				document.getElementById("default").className="show";
			}
		}
//	}
}
//addLoadEvent(serviceRolls);


//***Carousel Script***********************************************************

function getPanel(p, h) {
      		document.getElementById("p"+h).style.display = "none";
      		document.getElementById("p"+p).style.display = "block";
    	}
	function getNext() {
		var displayedImages = getPageItems("img", "displayed")
		var hiddenImages = getPageItems("img", "hidden")
		var idMax;
		if(parseFloat(displayedImages[3].id) > parseFloat(hiddenImages[hiddenImages.length-1].id))
			{idMax=parseFloat(displayedImages[3].id);} else {idMax=parseFloat(hiddenImages[hiddenImages.length-1].id);}
		var idLast = parseFloat(displayedImages[3].id);
		var idNew = idLast + 1;
		if(idNew < idMax) {
			document.getElementById("rightArrowDisabled").style.display = "none";
			document.getElementById("rightArrow").style.display = "block";
		} else {
			document.getElementById("rightArrow").style.display = "none";	
			document.getElementById("rightArrowDisabled").style.display = "block";
		}

		if(idMax >= idNew) {
			displayedImages[0].name = "hidden";
			document.getElementById("i"+displayedImages[0].id).style.display = "none";
			document.getElementById(idNew).name= "displayed";
			document.getElementById(idLast).className = "";
			document.getElementById(idNew).className = "last";
			document.getElementById("i" + idNew).style.display = "block";
			document.getElementById("leftArrowDisabled").style.display = "none";
			document.getElementById("leftArrow").style.display = "block";
		}
	}
	function getPrevious() {
		var displayedImages = getPageItems("img", "displayed")
		var idFirst = parseFloat(displayedImages[0].id);
		var idNew = idFirst - 1;
		var idLast = parseFloat(displayedImages[3].id);
		var idNewLast = idLast - 1;
		if(idNew > 1) {
			document.getElementById("leftArrowDisabled").style.display = "none";
			document.getElementById("leftArrow").style.display = "block";
		} else {
			document.getElementById("leftArrow").style.display = "none";
			document.getElementById("leftArrowDisabled").style.display = "block";	
		}
		if(idNew >= 1) {
			displayedImages[3].name = "hidden"; 
			document.getElementById("i"+displayedImages[3].id).style.display = "none";
			document.getElementById(idNew).name= "displayed";
			document.getElementById(idLast).className = "";
			document.getElementById(idNewLast).className = "last";
			document.getElementById("i" + idNew).style.display = "block";
			document.getElementById("rightArrowDisabled").style.display = "none";
			document.getElementById("rightArrow").style.display = "block";

		}
	}
	function getImage(image){
      	    	var mainImages = getPageItems("div","imageDisplay");
	    	for (var i=0; i<mainImages.length; i++) {
		    var targetLink = mainImages[i];
		    targetLink.style.display = "none";
		}
		document.getElementById("m"+image).style.display = "block";
    	}
	function getPageItems(tag, name) {
     
     		var elem = document.getElementsByTagName(tag);
     		var arr = new Array();
     		for(i = 0,iarr = 0; i < elem.length; i++) {
       	   att = elem[i].getAttribute("name");
          	   if(att == name) {
                   arr[iarr] = elem[i];
                   iarr++;
          	   }
    		}
     		return arr;
	}
	function openLink(address, newwindow, title, width, height) {
		if(newwindow == "y"){
			var size;
			if(title == "") {title = "NewWindow";}
			if(width > 0) {size = ",width=" + width;}
			if(height > 0) {size = size + ",height=" + height;}
			window.open (address,title,"menubar=1,resizable=1,toolbar=1,scrollbars=1"+size); 

		} else {
			window.location = address;
		}
	}


//***End Carousel Script*******************************************************

//***BEGIN Printer Friendly Script*********************************************

	function printPage() {
		
		//document.language.printFriendly.value = "yes";
		//win=window.open('','PrintPage','toolbar=1,resizable=1,width=700,scrollbars=1'); 
 		//document.language.target='PrintPage';
 		//document.language.action=window.location;
		//document.language.submit();

		var OLECMDID = 7;
/* OLECMDID values:
* 6 - print
* 7 - print preview
* 1 - open window
* 4 - Save As
*/
var PROMPT = 1; // 2 DONTPROMPTUSER
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
WebBrowser1.ExecWB(OLECMDID, PROMPT);
WebBrowser1.outerHTML = "";


	}
	function getQueryVariable(variable) 
	{ 
		var query = window.location.search.substring(1); 
		var vars = query.split("&"); 
		for (var i=0;i<vars.length;i++) 
		{ 
			var pair = vars[i].split("="); 
			if (pair[0] == variable) 
			{ 
				return pair[1]; 
			} 
		} 
	} 
	function getPrintFriendly() 
	{ 
		var query = window.location.toString();
		if(query.indexOf('?') > 0) {
			query= query + "&printFriendly=yes";
		} else {
			query= query + "?printFriendly=yes";
		}
		window.open (query,"printFriendly","width=800,scrollbars=1"); 
	} 


//***END Printer Friendly Script************************************************
	function trim (s){ 
	  var l=0; var r=s.length -1; 
	  while(l < s.length && s[l] == ' ') 
	  {     l++; } 
	  while(r > l && s[r] == ' ') 
	  {     r-=1;     } 
  	return s.substring(l, r+1);
} 


