var bannersReq;
var bannerElementID1, bannerElementID2, bannerElementID3, bannerElementID4;
var bannerDelimiterID1, bannerDelimiterID2;


function processBannersRequest ()
{
	if (bannersReq.readyState == 4)
	{
		if (bannersReq.status == 200)
		{
			if (document.getElementById (bannerElementID1) != null)
			{
                var bannerElements =
                    bannersReq.responseXML.getElementsByTagName ("banner1");

				if (typeof (bannerElements) != 'undefined' &&
				    bannerElements.length >= 1 &&
				    bannerElements[0].childNodes.length > 0)
				{
					document.getElementById (bannerElementID1).innerHTML =
					    bannerElements[0].childNodes[0].nodeValue;
				}
				bannerElements = null;
			}

			if (document.getElementById (bannerElementID2) != null)
			{
                var bannerElements =
                    bannersReq.responseXML.getElementsByTagName ("banner2");

				if (typeof (bannerElements) != 'undefined' &&
				    bannerElements.length >= 1 &&
				    bannerElements[0].childNodes.length > 0)
				{
					document.getElementById (bannerElementID2).innerHTML =
					    bannerElements[0].childNodes[0].nodeValue;
				}
				bannerElements = null;
			}

			if (document.getElementById (bannerElementID3) != null)
			{
                var bannerElements =
                    bannersReq.responseXML.getElementsByTagName ("banner3");

				if (typeof (bannerElements) != 'undefined' &&
				    bannerElements.length >= 1 &&
				    bannerElements[0].childNodes.length > 0)
				{
					document.getElementById (bannerElementID3).innerHTML =
					    bannerElements[0].childNodes[0].nodeValue;
				}
				bannerElements = null;
			}

			if (document.getElementById (bannerElementID4) != null)
			{
                var bannerElements =
                    bannersReq.responseXML.getElementsByTagName ("banner4");

				if (typeof (bannerElements) != 'undefined' &&
				    bannerElements.length >= 1 &&
				    bannerElements[0].childNodes.length > 0)
				{
					document.getElementById (bannerElementID4).innerHTML =
					    bannerElements[0].childNodes[0].nodeValue;
				}
				bannerElements = null;
			}

			//  Banner delimiters

			if (document.getElementById (bannerDelimiterID1) != null)
			{
                var delimiterElements =
                    bannersReq.responseXML.getElementsByTagName ("delimiter1");

				if (typeof (delimiterElements) != 'undefined' &&
                    delimiterElements.length >= 1 &&
				    delimiterElements[0].childNodes.length > 0)
				{
					document.getElementById(bannerDelimiterID1).innerHTML =
					    delimiterElements[0].childNodes[0].nodeValue;
				}
				delimiterElements = null;
			}

			if (document.getElementById (bannerDelimiterID2) != null)
			{
                var delimiterElements =
                    bannersReq.responseXML.getElementsByTagName ("delimiter2");

				if (typeof (delimiterElements) != 'undefined' &&
                    delimiterElements.length >= 1 &&
				    delimiterElements[0].childNodes.length > 0)
				{
					document.getElementById(bannerDelimiterID2).innerHTML =
					    delimiterElements[0].childNodes[0].nodeValue;
				}
				delimiterElements = null;
			}
		}
	}
}

function getBanners
            (
                banElementID1,
                banElementID2,
                banElementID3,
                banElementID4,
                banDelimiterID1,
                banDelimiterID2,
                bannerUrl
            )
{
	bannerElementID1 = banElementID1;
	bannerElementID2 = banElementID2;
	bannerElementID3 = banElementID3;
	bannerElementID4 = banElementID4;
	bannerDelimiterID1 = banDelimiterID1;
	bannerDelimiterID2 = banDelimiterID2;

	//  If (implicitly) IE browser
	if (window.ActiveXObject)
	{
        //  Try to create a version 6 instance
        try
        {
            bannersReq = new ActiveXObject ("Msxml2.XMLHTTP.6.0");
        }
        catch (exc)
        {
            //  NOTE:  Version 5 for 'Ms Office' only; don't use

            //  Try to create a version 4 instance; deprecated
            try
            {
                bannersReq = new ActiveXObject ("Msxml2.XMLHTTP.4.0");
            }
            catch (exc)
            {
                //  Versions 4 & 6 might not be installed
            }
        }
    }

    //  If a XML-HTTP object instance has not yet been created
    if (bannersReq == null || typeof (bannersReq) == 'undefined')
    {
	    //  Favour access via the intrinsic object rather than
	    //  the COM mechanism (for IE v7), before resorting to
	    //  the version independant Prog-ID's

        //  If non-IE browser or IE v7
	    if (window.XMLHttpRequest)
	    {
		    bannersReq = new XMLHttpRequest ();
	    }
        else
        {
            //  Try to create a version 3 SP 5 instance, or below
            try
            {
                bannersReq = new ActiveXObject ("Msxml2.XMLHTTP");
            }
            catch (exc)
            {
                try
                {
                    bannersReq = new ActiveXObject ("Microsoft.XMLHTTP");
                }
                catch (exc)
                {
                    //  Handle error below
                }
            }
        }
	}

	if (bannersReq == null || typeof (bannersReq) == 'undefined')
	{
		window.alert
		    ("Error:  Could not obtain an instance of the standard XML-HTTP component; banners can't be displayed");

		return -2;
	}

	bannersReq.onreadystatechange = processBannersRequest;
	bannersReq.open ("GET", bannerUrl, true);
	bannersReq.send (null);

    return 0;
}

