/**
 * Show JavaScript erors
 */
function showErrors(msg, url, line) {
	var txt = msg + "\n" + "line: " + line + "\n" + "file: " + url;
	window.alert(txt);
}

/**
 * Create XMLHttpRequest based on the type of the browser
 */
function createXmlHttpRequest() {
	var xmlHttp = null;
			
	if (window.XMLHttpRequest) 
		// On Mozilla or safari
		xmlHttp = new XMLHttpRequest();
	else if (window.ActiveXObject) {
		// On windows, there are different versions of ActiveX control.
		// We start from the newest version until the oldest version - Microsoft.XMLHttp
		var versions = ["MSXML2.XMLHttp.5.0",
						"MSXML2.XMLHttp.4.0",
						"MSXML2.XMLHttp.3.0",
						"MSXML2.XMLHttp",
						"Microsoft.XMLHttp"];
				
		for (var i=0; i<versions.length; i++) {
			try {
				xmlHttp = new ActiveXObject(versions[i]);
						
				// We have created an XMLHttpRequest, break here
				break;
			} catch(e) {
				// We just keep xmlHttp null whenever an error happens
			}		
		}
	}
			
	return xmlHttp;
}

/**
 * Show the content of sliderContent.xml file formatted with sliderStyle.xsl
 * @return the formated HTML
 */
function getSliderFragment() {
	// Create an XMLHttpRequest object for "sliderStyle.xsl"
	var xslHttp = createXmlHttpRequest();

	if (!xslHttp) {
		alert("Your browser does not support Ajax!");
		return;
	}

	// Request "sliderStyle.xsl"
	xslHttp.open("get", "Pages/slider/sliderStyle.xsl", false);
	xslHttp.send(null);
	
	// Save the style sheet
	var xslDoc = xslHttp.responseXML;

	// Create the XMLHttpRequest object for "sliderContent.xml"
	var xmlHttp = createXmlHttpRequest();

	// Make sure the XMLHttpRequest object is created
	if (!xmlHttp) {
		alert("Your browser does not support Ajax!");
		return;
	}
			
	// Request "sliderContent.xml"
	xmlHttp.open("get", "Pages/slider/sliderContent.xml", false);
	xmlHttp.send(null);
	
	// Save the style sheet
	var xmlDoc = xmlHttp.responseXML;
	
	// Display the doc
	var fragment = display(xmlDoc, xslDoc);

	return fragment;
}

/**
 * Show sliderContent.xml with sliderStyle.xsl
 */
function display(xmlDoc, xslDoc) {
	// For IE
	if (window.ActiveXObject)
		fragment = xmlDoc.transformNode(xslDoc);
	// For FF
	else {
		// Create an XSLT processor
		var xsltProcessor = new XSLTProcessor();
	
		// Import the style sheet
		xsltProcessor.importStylesheet(xslDoc);
	
		// Transform the XML document into a DOM tree
		var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
	}
	return fragment;
}
