// Luis Torrefranca 02/2006

var xml = false;
var xsl = false;

function xslRequest() {
	clrFields();
	document.getElementById('testlog').innerHTML = new Date().getTime() + ' Starting<br />';
	if (window.ActiveXObject) {
		activeXTransform('/includes/resume.xml', '/includes/resume.xsl');
	} else if (window.XMLHttpRequest) {
		getXML('/includes/resume.xml', 'xml');
		getXSL('/includes/resume.xsl', 'xml');
	}
}

function activeXTransform(xmlFile, xslFile) {
	document.getElementById('testlog').innerHTML += new Date().getTime() + ' Requesting ' + xmlFile + '<br />';
	xml = new ActiveXObject("MSXML2.DOMDocument");
	xml.async = false;
	xml.load(xmlFile);
	document.getElementById('testlog').innerHTML += new Date().getTime() + ' Received ' + xmlFile + '<br />';
	
	document.getElementById('testlog').innerHTML += new Date().getTime() + ' Requesting ' + xslFile + '<br />';
	xsl = new ActiveXObject("MSXML2.DOMDocument");
	xsl.async = false;
	xsl.load(xslFile);
	document.getElementById('testlog').innerHTML += new Date().getTime() + ' Received ' + xslFile + '<br />';
	
	if (xml && xsl) {
		document.getElementById('testlog').innerHTML += new Date().getTime() + ' Applying Transform<br />';
		document.getElementById("xslimport").innerHTML = xml.transformNode(xsl);
		document.getElementById('testlog').innerHTML += new Date().getTime() + ' XML Transformed<br />';
		//document.getElementById('printmediv').innerHTML = '<div class="click" onclick="printIFrame(printme);">Print</div>';
	} else {
		document.getElementById('testlog').innerHTML += new Date().getTime() + ' XML Transform Failed<br />';
	}
}

function getXML(url, reqType) {
	if (!reqType) {
		reqType = "text";
	}
	var xhrRec = xhrRequest(reqType);
	xhrRec.open('GET', url, true);
	xhrRec.onreadystatechange = function() {
		document.getElementById('testlog').innerHTML += new Date().getTime() + ' Requesting ' + url + ' ' + xhrRec.readyState + '<br />';
		if (xhrRec.readyState == 4 && xhrRec.status == 200) {
			document.getElementById('testlog').innerHTML += new Date().getTime() + ' Importing ' + url + '<br />';
			xml = xhrRec.responseXML;
			if (xsl) {
				xslTransform();
			}
			xhrRec = null;
		}
	};
	xhrRec.send(null);
}
function getXSL(url, reqType) {
	if (!reqType) {
		reqType = "text";
	}
	var xhrRec = xhrRequest(reqType);
	xhrRec.open('GET', url, true);
	xhrRec.onreadystatechange = function() {
		document.getElementById('testlog').innerHTML += new Date().getTime() + ' Requesting ' + url + ' ' + xhrRec.readyState + '<br />';
		if (xhrRec.readyState == 4 && xhrRec.status == 200) {
			document.getElementById('testlog').innerHTML += new Date().getTime() + ' Importing ' + url + '<br />';
			xsl = xhrRec.responseXML;
			if (xml) {
				xslTransform();
			}
			xhrRec = null;
		}
	};
	xhrRec.send(null);
}

function xslTransform() {
	document.getElementById('testlog').innerHTML += new Date().getTime() + ' Setting up Transform Processor<br />';
	var xsltProc = new XSLTProcessor();
	if (xsltProc) {
		document.getElementById('testlog').innerHTML += new Date().getTime() + ' Applying Transform<br />';
xsltProc.importStylesheet(xsl);
		transformedXML = xsltProc.transformToFragment(xml, document);
		document.getElementById('xslimport').appendChild(transformedXML);
		document.getElementById('testlog').innerHTML += new Date().getTime() + ' Transform successful<br />';
		writeIFrame(document.getElementById('xslimport').innerHTML);
		//document.getElementById('printmediv').innerHTML = '<div class="click" onclick="printIFrame(\'printme\');">Print</div>';
	} else {
		document.getElementById('testlog').innerHTML += new Date().getTime() + 'Transform setup unsuccessful<br />';
	}
}

function writeIFrame(contents) {
	window.frames['printme'].window.document.open();
	window.frames['printme'].window.document.write('<html><body>');
	window.frames['printme'].window.document.write(contents);
	window.frames['printme'].window.document.write('</body></html');
	window.frames['printme'].window.document.close();
}

function printIFrame(printme) {
	var printpart = frames[printme];
	printpart.focus();
	printpart.print();
}

function clrFields() {
	xml = false;
	xsl = false;
	document.getElementById('xslimport').innerHTML = '';
	document.getElementById('testlog').innerHTML = '';
}