// JavaScript Document

//********XML DEFINED VARIABLES*************//

//path to xml config file relative to THIS file
var xmlConfigPath = "/linkhover_IT/linkTipConfig.xml";

var config = parseConfig();

//check page exceptions
var run = config[5];

//path to hover image
var hoverImage = config[0];

//Height and Width of image sprite
var imageHeight = config[1]; 
var imageWidth = config[2];

//section and link excludes
var sections = config[3];
var links = config[4];


//********END XML DEFINED VARIABLES*************//

var calcHeight = (imageHeight / 2);


if(run){
	document.write('<style type="text/css">body a{position:relative}a span.linktooltip{height:' + calcHeight + 'px; width:' + imageWidth + 'px; background:url(' + hoverImage + ') top left no-repeat; display:none; position:absolute; top:-' + calcHeight + 'px; left:5px;z-index:9999999999 !important}a:hover span.linktooltip{display:block}a:hover span.linktooltip:hover{display:none}#supnavmenu{z-index:99999999}</style><!--[if IE 7]><style type="text/css">#header{position:static}</style><![endif]-->');
}

	function getLinks(){

		var lnk;
		for (var i=0; i<document.links.length; i++) {
			lnk = document.links[i];
			var linkMatch = 0;
			
			if(sectionMatch(sections, lnk.href)){ //TEST FOR SECTION EXCLUDES
				linkMatch++;
			}
			
			if(include(links, lnk.href)){	//TEST FOR INDIVIDUAL EXCLUDES
				linkMatch++;
			}
			
			if(linkMatch == 0){	//TEST FOR BROAD MATCHES
			
			if(lnk.href.indexOf("citrix.com") >= 0){
					if(getOffsetTop(lnk) <= calcHeight){
						lnk.innerHTML = "<span class=\"linktooltip\" style=\"top: 15px; background-position:0px -" + calcHeight + "px\"></span>" + lnk.innerHTML;
					}else{
						if(lnk.innerHTML.indexOf("<img") >= 0){
							var img = lnk.getElementsByTagName("img");
							var margin = calcHeight + img[0].offsetHeight;
							lnk.innerHTML = "<span class=\"linktooltip img\" style=\"top: -" + margin + "px;\"></span>" + lnk.innerHTML;
						}else{
							lnk.innerHTML = "<span class=\"linktooltip\"></span>" + lnk.innerHTML;
						}
					}
			}
			}
			
		}	
	}
	
	
	function parseConfig(){


		if (window.XMLHttpRequest)
		  {// code for IE7+, Firefox, Chrome, Opera, Safari
		  xmlhttp=new XMLHttpRequest();
		  }
		else
		  {// code for IE6, IE5
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		xmlhttp.open("GET", xmlConfigPath ,false);
		xmlhttp.send();
		xmlDoc=xmlhttp.responseXML;

		var image = xmlDoc.getElementsByTagName("image")[0].childNodes[0].nodeValue;

		var imageHeight = xmlDoc.getElementsByTagName("imageHeight")[0].childNodes[0].nodeValue;
		var imageWidth = xmlDoc.getElementsByTagName("imageWidth")[0].childNodes[0].nodeValue;

		
		var sections = xmlDoc.getElementsByTagName("base");
		var sectionArray = new Array();	
			for (i=0; i<sections.length; i++)
			{
				sectionArray[i] = sections[i].childNodes[0].nodeValue;
			}
			
		var links = xmlDoc.getElementsByTagName("link");
		var linkArray = new Array();	
			for (i=0; i<links.length; i++)
			{
				linkArray[i] = links[i].childNodes[0].nodeValue;
			}
			
		var pages = xmlDoc.getElementsByTagName("page");
		var pageArray = new Array();	
		var run = true;
			for (i=0; i<pages.length; i++)
			{
				if(filterPageUrl(document.URL) == filterPageUrl(pages[i].childNodes[0].nodeValue)){
						run = false;
				}
			}

		var returnVals = new Array(image, imageHeight, imageWidth, sectionArray, linkArray, run);
		
		return returnVals;
	}
	
	function include(arr, obj) {
		for(var i=0; i<arr.length; i++) {
			if (arr[i] == obj) return true;
		}
	}
	
	function sectionMatch(arr, obj) {
		for(var i=0; i<arr.length; i++) {
			if (obj.indexOf(arr[i]) >= 0) return true;
		}
	}
	
	function getOffsetTop(obj) {
		offsetTop = obj.offsetTop;
		var parentEl = obj.offsetParent;
		
		while (parentEl!=null){
		offsetTop = offsetTop +parentEl.offsetTop;
		parentEl = parentEl.offsetParent;
		}
		return(offsetTop);
	}
	
	function filterPageUrl(url){
		url = url.replace("http://", "");
		url = url.replace("www.", "");
		
		return url;
		
	}

	
	
