function GSX()
{
	this.Font = "";
	this.FontSize = "";
	this.UpperCase = false;
	this.Color = "ffffff";
	this.BgColor = "333232";
	this.Elements = new Array();
	
	this.Replace = function()
	{
		// get method http/https
		var sGsxUrl = "http://gsx.fuse8.net";
		if(document.location.href.substring(0,5) == "https")
		    sGsxUrl = "https://gsx.fuse8.net";

		// loop through elements
		for (var i=0; i<this.Elements.length; i++) 
		{
			// get variables
			var sUrl = sGsxUrl;
			var pElement = this.Elements[i];
			var sText = encodeURI(pElement.innerHTML);

			// see if we should convert to uppercase
			if(this.UpperCase)
			    	sText = sText.toUpperCase();
		    	
			// fix problems with the encodeURI
			// adds the "%0D%0A" characters which cause a linebreak
			sText = sText.replace(new RegExp(/%0D%0A/g), "%20");
			sText = sText.replace(new RegExp(/%09/g), "");
			sText = sText.replace(new RegExp(/%0A/g), "");
			sText = sText.replace("&amp;" , "+%26+");
			
			// sniff the element's width and set wrapping on the generated image 
			nWidth = pElement.offsetWidth + 200;
			
			// build url for gsx 
			sUrl += "/image.gif?w=" + nWidth + "&h=500";
			sUrl += "&size=" + this.FontSize;
			sUrl += "&color=" + this.Color;
			sUrl += "&bgcolor=" + this.BgColor;
			sUrl += "&font=" + this.Font;
			sUrl += "&text=" + sText;
			sUrl += "&cache=true&autoresize=true&wrap=true";

			// replace with the &lt;img&gt; tag
			pElement.style.display = 'none';		
			pElement.innerHTML = '<img src="' + sUrl + '">';
			pElement.style.textIndent = '0px';
			pElement.style.display = '';
		}
	}
}

// perform image  replacement 
function GSXReplacement(){
	var gsx = new GSX();
	gsx.FontSize = 16; 
	gsx.Font = "AVENLM__.ttf"; 
	gsx.Color = "ffffff"; 
	gsx.BgColor = "333232";
	gsx.UpperCase = true; 

	// replace h1 header
	if(document.getElementById("content").getElementsByTagName("h1"))
	{
		gsx.Elements = document.getElementById("content").getElementsByTagName("h1");
		gsx.Replace();
	}
	// replace h2 header
	if(document.getElementById("content").getElementsByTagName("h2"))
	{
		gsx.Elements = document.getElementById("content").getElementsByTagName("h2");
		gsx.Replace();
	}
	
	gsx.BgColor = "070304";
	
	// replace telephone number
	if(document.getElementById("header").getElementsByTagName("span"))
	{
		gsx.Elements = document.getElementById("header").getElementsByTagName("span");
		gsx.Replace();
	}

}

window.onload = function(){
	GSXReplacement();
}

