// Copyright 2005 Google Inc.
// All Rights Reserved
//
// Tests for the XSLT processor. To run the test, open the file from
// the file system. No server support is required.
//
//
// Author: Steffen Meschkat <mesch@google.com>

logging = false;
xsltdebug = false;

var g_xmldone = false;
var g_xsldone = false;

function getFiles()  {
  makeRequest(getXML);
  makeRequest2(getXSL);
}

function el(id) {
  return document.getElementById(id);
}

function test_xslt() {
  var xml = xmlParse(http_request.responseText);
  var xslt = xmlParse(xsl_request.responseText);
  var html = xsltProcess(xml, xslt);
//  el('html').value = html;
//  el('htmldisplay').innerHTML = html;
  var x = el('htmldisplay');
  x.innerHTML = html;
}

//  Below is the xmlhttprequest code

var http_request = false;
var xsl_request = false;

function makeRequest(url) {

    http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    http_request.onreadystatechange = alertContents;
    http_request.open('GET', url, true);
    http_request.send(null);
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    http_request.onreadystatechange = alertContents;
    http_request.open('GET', url, true);
    http_request.send();
    }
    if (!http_request) {
        alert('Cannot create an XML XMLHTTP instance.  It might be a good idea to upgrade your browser.');
        return false;
    }
}

function makeRequest2(url) {
    xsl_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        xsl_request = new XMLHttpRequest();
        if (xsl_request.overrideMimeType) {
            xsl_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    xsl_request.onreadystatechange = alertContents2;
    xsl_request.open('GET', url, true);
    xsl_request.send(null);
    } else if (window.ActiveXObject) { // IE
        try {
            xsl_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xsl_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    xsl_request.onreadystatechange = alertContents2;
    xsl_request.open('GET', url, true);
    xsl_request.send();
    }
    if (!xsl_request) {
        alert('Cannot create an XSL XMLHTTP instance.  It might be a good idea to upgrade your browser.');
        return false;
    }
}

function alertContents() {

    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
	g_xmldone = true;
	if (g_xsldone) {
		test_xslt();
	}
        } else {
            alert('There was a problem with the XML request.');
        }
    }
}

function alertContents2() {

    if (xsl_request.readyState == 4) {
        if (xsl_request.status == 200) {
	g_xsldone = true;
	if (g_xmldone) {
		test_xslt();
	}
        } else {
            alert('There was a problem with the XSL request.');
        }
    }
}	

