var basicXslFile = "/banners/banners.xsl";

jQuery.noConflict();
function banners(control, xmlFile, width, height)
{
    xml = loadXMLDoc(xmlFile);
    xsl = loadXMLDoc(basicXslFile);
    transform(xml, xsl, control);

	jQuery(document).ready(function() {
		jQuery('#'+control).galleryView({
			panel_width: width,
			panel_height: height,
			transition_speed: 1500,
			transition_interval: 5000,
			nav_theme: '',
			border: '1px solid white',
			overlay_height: 0,
			pause_on_hover: true
		});
	});
	
//	var theControl = document.getElementById(control);
//	theControl.style.display = 'block';
}


function transform(xml, xsl, control)
{
    try {
        // code for IE
        if (window.ActiveXObject)
        {
            ex = xml.transformNode(xsl);
            ex = ex.replace( /&lt;(([^&]|\&[^g]|&g[^t]|&gt[^;])+)&gt;/g, "<$1>" );
            ex = ex.replace( /&amp;/g, "&" );
            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>" );
            generatedHtml = generatedHtml.replace( /&amp;/g, "&" );
            document.getElementById(control).innerHTML = generatedHtml;
        }
    } catch (e) {
    }
}

function transformToXml(xml, xsl)
{
    try {
        // code for IE
        if (window.ActiveXObject)
        {
            ex = xml.transformNode(xsl);
            return ex;
        }
        // code for Mozilla, Firefox, Opera, etc.
        else if (document.implementation && document.implementation.createDocument)
        {
            xsltProcessor = new XSLTProcessor();
            xsltProcessor.importStylesheet(xsl);
            return xsltProcessor.transformToDocument(xml, document);
        }
    } catch (e) {
    }
}

function CreateXMLHttpRequest()
{
    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;
}

function loadXMLDoc(url)
{
    var doc;
    var xmlString = '<?xml version="1.0" encoding="UTF-8"?>';
    var xhReq = 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;
}
