function getXmlHttp()
{
	try
	{
		// Firefox, Opera 8.0+, Safari
		return new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			return new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				return false;
			}
		}
	}
}

var GOZNET_ADS_DIV;

function displayGoznetAds(displayDiv, maxAds, exclusions)
{
	GOZNET_ADS_DIV = displayDiv;
	if (!maxAds) maxAds = 5;
	var xmlHttp = getXmlHttp();
	xmlHttp.onreadystatechange = function()
	{
		if (xmlHttp.readyState == 4)
		{
			var adverts = xmlHttp.responseXML;
			var doc = adverts.documentElement;
			adverts = doc.getElementsByTagName("advert");
			var html = 	'<p><strong><span style="color:#BF0000">goz</span>net ads</strong></p>';
			for (i = 0; i < adverts.length; i++)
			{
				var url = sanitise(adverts[i].getAttribute("url"));
				var title = sanitise(adverts[i].getAttribute("title"));
				var description = sanitise(adverts[i].getAttribute("description"));
				html += '<div style="margin-top: 25px; margin-bottom: 25px; font-family: Arial, Helvetica;" >';
				html += '<a style="font-weight: bold" href="http://' + url + '/ " target="_blank" onclick="clickTrack(\'' + url + '\')">' + title + '</a>';
				html += '<br />' + description;
				html += '<br /><span style="font-size: 80%; color: #BF0000;">' + url + '</span></div>';
			}
			document.getElementById(GOZNET_ADS_DIV).innerHTML = html;
		}
	}
	xmlHttp.open("GET", "/goznet_ads/ads_xml_redirect.php?max=" + maxAds + "&exclude=" + exclusions, true);
	xmlHttp.send(null);
}

function clickTrack(url)
{
	var xmlHttp = getXmlHttp();
	xmlHttp.open("GET", "/goznet_ads/ad_click_redirect.php?url=" + url);
	xmlHttp.send(null);
}


function sanitise(text)
{
	return htmlEntities(text);
}

function htmlEntities(str)
{
	// based on a script by Dieter Raber <dieter@dieterraber.net>
	// http://www.dieterraber.net/includes/ghf8/Javascript/stringFunctions.js
	
	var chars = new Array ('&','à','á','â','ã','ä','å','æ','ç','è','é',
							'ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô',
							'õ','ö','ø','ù','ú','û','ü','ý','þ','ÿ','À',
							'Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë',
							'Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö',
							'Ø','Ù','Ú','Û','Ü','Ý','Þ','€','\"','ß','<',
							'>','¢','£','¤','¥','¦','§','¨','©','ª','«',
							'¬','­','®','¯','°','±','²','³','´','µ','¶',
							'·','¸','¹','º','»','¼','½','¾');

	var entities = new Array ('amp','agrave','aacute','acirc','atilde','auml','aring',
								'aelig','ccedil','egrave','eacute','ecirc','euml','igrave',
								'iacute','icirc','iuml','eth','ntilde','ograve','oacute',
								'ocirc','otilde','ouml','oslash','ugrave','uacute','ucirc',
								'uuml','yacute','thorn','yuml','Agrave','Aacute','Acirc',
								'Atilde','Auml','Aring','AElig','Ccedil','Egrave','Eacute',
								'Ecirc','Euml','Igrave','Iacute','Icirc','Iuml','ETH','Ntilde',
								'Ograve','Oacute','Ocirc','Otilde','Ouml','Oslash','Ugrave',
								'Uacute','Ucirc','Uuml','Yacute','THORN','euro','quot','szlig',
								'lt','gt','cent','pound','curren','yen','brvbar','sect','uml',
								'copy','ordf','laquo','not','shy','reg','macr','deg','plusmn',
								'sup2','sup3','acute','micro','para','middot','cedil','sup1',
								'ordm','raquo','frac14','frac12','frac34');

	newString = str;
	if (newString)
	{
		for (var i = 0; i < chars.length; i++)
		{
			myRegExp = new RegExp(chars[i],'g');
			newString = newString.replace (myRegExp, '&' + entities[i] + ';');
		}
	}
	return newString;
}
