var banners = new function()
{

    this.basicXslFile = "/banners/banners.xsl";

    this.loadBanners = function (control, xmlFile, width, height)
    {
        xml = this.loadXMLDoc(xmlFile);
        xsl = this.loadXMLDoc(this.basicXslFile);
        this.transform(xml, xsl, control);

        jQuery.noConflict();
	    jQuery(document).ready(function() {
		    jQuery('#'+control).galleryView({
			    panel_width: width,
			    panel_height: height,
			    transition_speed: 1500,
			    transition_interval: 5000,
			    nav_theme: '',
			    border: '1px solid #CCC',
			    pause_on_hover: true,
			    overlay_height: 0
		    });
		    
	        var theControl = document.getElementById(control);
	        theControl.style.display = 'block';
	    });
    };

    this.transform = function (xml, xsl, control)
    {
        try {
            // code for IE
            if (window.ActiveXObject)
            {
                ex = xml.transformNode(xsl);
                document.getElementById(control).innerHTML = ex;
            }
            // code for Mozilla, Firefox, Opera, etc.
            else if (document.implementation && document.implementation.createDocument)
            {
                xsltProcessor = new XSLTProcessor();
                xsltProcessor.importStylesheet(xsl);
                resultDocument = xsltProcessor.transformToFragment(xml, document);
                document.getElementById(control).appendChild(resultDocument);
                
                var generatedHtml = document.getElementById(control).innerHTML;            
                generatedHtml = generatedHtml.replace( /&lt;(([^&]|\&[^g]|&g[^t]|&gt[^;])+)&gt;/g, "<$1>" );
                document.getElementById(control).innerHTML = generatedHtml;
            }
        } catch (e) {
        }
    }

    this.CreateXMLHttpRequest = function ()
    {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
        } catch (e) {
            //alert("Permission UniversalBrowserRead denied.");
        }
        
        var xmlhttp=null;
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = null;
            }
        }
        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
            try {
		        xmlhttp = new XMLHttpRequest();
	        } catch (e) {
		        xmlhttp=null;
	        }
        }
        if (!xmlhttp && window.createRequest) {
	        try {
		        xmlhttp = window.createRequest();
	        } catch (e) {
		        xmlhttp=null;
	        }
        }
        return xmlhttp;
    }

    this.loadXMLDoc = function (url)
    {
        var doc;
        var xmlString = '<?xml version="1.0" encoding="UTF-8"?>';
        var xhReq = this.CreateXMLHttpRequest();
        
        try {
            if (xhReq != null)
            {
                xhReq.open("GET", url, false);
                xhReq.send(null);
                xmlString = xhReq.responseText;
            }
        } catch (e) {
        }
        
        // Mozilla and Netscape browsers
        if (document.implementation.createDocument) {
            var parser = new DOMParser()
            doc = parser.parseFromString(xmlString, "text/xml")
        // MSIE
        } else if (window.ActiveXObject) {
            doc = new ActiveXObject("Microsoft.XMLDOM")
            doc.async = "false"
            doc.loadXML(xmlString)
        }

        return doc;
    }

}
