function getStyle(el,styleProp)
{
	var x = el;
	if (x.currentStyle)
	{
		var iePropWords = styleProp.split("-");
		var ieProp = "";
		for(var i = 0; i < iePropWords.length; i++)
		{
			if(i > 0)
				ieProp += iePropWords[i].substring(0, 1).toUpperCase() + iePropWords[i].substring(1);
			else
				ieProp += iePropWords[i];
	
		}
		
		var y = x.currentStyle[ieProp];		
	}
	else if (document.defaultView && document.defaultView.getComputedStyle)
	{
		var y = document.defaultView.getComputedStyle(x,null);
		if(y)
			return y.getPropertyValue(styleProp);
		else return null;
	}
	return y;
}

var hexDigits = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');

function fixColor(color)
{
	if(!color) return null;
		if(color.substring(0, 3) == "rgb")
		{
			//convert to hex color
			//var colorRegEx = /rgb\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/g;
			//var colorBits = colorRegEx.exec(color);
			color = color.replace(/(rgb|\(|\)|\s)/g, "");
			colorBits = color.split(/,/);
			//if(colorBits == null)
			//	alert(color);
			var red = parseInt(colorBits[0]);
			red = hexDigits[parseInt(red / 16)] + hexDigits[red % 16];
			
			var green = parseInt(colorBits[1]);
			green = hexDigits[parseInt(green / 16)] + hexDigits[green % 16];

			var blue = parseInt(colorBits[2]);
			blue = hexDigits[parseInt(blue / 16)] + hexDigits[blue % 16];
			
			color = red + green + blue;
		}
		else if(color.substring(0,1) == "#")
		{
			color = color.substring(1);
		}
		
		return color;

}

function fixPNG(el)
{
	var height = el.height;
	var width = el.width;
	el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + el.src + "')";
	el.src = el.src.replace(/TypographicReplacement\.util\.php/, 'TypographicReplacement-ReserveSize.util.php');
}

function fixPNGEvent()
{
	window.event.srcElement.onload = null;
	//alert(window.event.srcElement.height);
	//var div = document.createElement("div");
	fixPNG(window.event.srcElement);

}

var lastColor = null;
var lastSize = null;

function replaceElement(node)
{
	//if attribute or CDATA or processing instruction or comment
	if(node.nodeType == 2 || node.nodeType == 4 || node.nodeType == 7 || node.nodeType == 8 || (node.className && node.className.match(/(\s|^)no-replace($|\s)/)))
		return;

	if(node.nodeType == 3)
	{
		if(!node.nodeValue.match(/[^\s]/))
			return;
		
		var el = node.parentNode;
		//must disable this check for pop out nav
		//if(getStyle(el, "display") == "none" || !el.offsetWidth || el.offsetWidth == 0)
		//	return;
		var color = fixColor(getStyle(el, "color"));
		if(!color && !lastColor)
			return;
		if(!color)
			color = lastColor;
		lastColor = color;
		bgColorNode = el;
		//var bgColor = fixColor(getStyle(bgColorNode, "background-color"));
		var bgColor = "transparent";
		
		var size = 22;

			size = parseInt(getStyle(el, "font-size"));
		if(!size && lastSize)
			size = lastSize;
		if(!size)
		{
			
			return;
		}
		lastSize = size;
		//size += 2;
				 
		//alert(size);
		

		var offsetNode = el;
		while(offsetNode && getStyle(offsetNode, "display") == "inline")
		{
			//alert("inline");
			offsetNode = offsetNode.parentNode;
		}

		var qs = "t=" + escape(node.nodeValue.replace(/(^[\s]*|[\s]*$)/g, "")) + "&s=" + size + "&c=" + color + "&b=" + bgColor + "&tn=" + el.tagName.toLowerCase();
		if(offsetNode)
			qs += "&aw=" + offsetNode.offsetWidth;
		if(getStyle(el, "text-transform") != "none")
		{
			qs += "&tx=" + getStyle(el, "text-transform");
		}
		if(el.className && el.className != "")
			qs += "&className=" + escape(el.className);
		var newimg = document.createElement("img");
		newimg.src = "/util/TypographicReplacement.util.php?" + qs
		newimg.alt = node.nodeValue;

		if(node.nodeValue.match(/[gjpqy]/))
		{
			newimg.style.verticalAlign = "bottom";
		}
		else
		{
			newimg.style.verticalAlign = "bottom";
			//newimg.style.marginBottom = "0.2em";
		}

		/*if(document.body.filters)
		{
			var div = document.createElement("div");
			var newimgObj = new Image();
			newimgObj.src = newimg.src;
			var el = el;
			newimgObj.onload = function()
			{
				alert(newimgObj.width);
				div.style.width = newimgObj.width;
				div.style.height = newimgObj.height;
				el.removeChild(el.childNodes[0]);
				el.appendChild(div);
				div.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + newimgObj.src + "')";
				//div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src= newimgObj.src;
				
			}
			continue;
		}*/




		el.replaceChild(newimg, node);
		/*if(el.childNodes.length == 0)
			el.appendChild(newimg);
		else
			el.insertBefore(newimg, el.childNodes[0])*/

		if(newimg.filters && typeof document.body.style.maxHeight == "undefined")
		{
			if(newimg.readyState == "loaded" || newimg.readyState == "complete" || newimg.readyState == "interactive")
				fixPNG(newimg);
			else
			{
				newimg.onload = fixPNGEvent;
				//alert(newimg.readyState);
				
			}
		}
	}
	else
	{
		if(node.nodeType != 1)
			alert(node.nodeType);
		for(var child = 0; child < node.childNodes.length; child++)
			replaceElement(node.childNodes[child]);
	}
}

function replaceElements(coll)
{
	//alert(coll.length);
	for(var i = 0; i < coll.length; i++)
	{
		
		replaceElement(coll[i]);


	}
}

function replaceHeadings()
{
	
	var headings2 = document.getElementsByTagName("h2");
	var headings3 = document.getElementsByTagName("h3");
	var headings4 = document.getElementsByTagName("h4");
	var headings5 = document.getElementsByTagName("h5");
	var headings6 = document.getElementsByTagName("h6");
	
	var nav = document.getElementById("nav").getElementsByTagName("a");
	
//	replaceElements(nav);
//	replaceElements(document.getElementById("Footer").getElementsByTagName("*"));
//	replaceElements(headings2);
//	replaceElements(headings3);
//	replaceElements(headings4);
//	replaceElements(headings5);
//	replaceElements(headings6);


	
}

if(window.addEventListener)
{
	window.addEventListener("load", replaceHeadings, false);

}
else if(window.attachEvent)
	window.attachEvent("onload", replaceHeadings);


		
	//we are going to execute this inside the body of the page
	//so that all the images don't have to load before IFR occurs
	
		
		
		
		
		
