// globale variable og konstantet
var strHTML = '';
var strBem  = 'Kan kun anvendes i browser der understøtter XML/XSL f.eks.:<br>Microsoft Internet Explorer version 5.0 eller nyere';
var objHTMLNewline = /<br>/g;	// regular Expresion HTML ('<br>') 
var objCrLf = /\\n/g;			// regular Expresion Newline
var objTab = /\t/g;				// regular Expresion Tab

function ErrorHandler(err, type) {		// rutine til fejlhåndtering
var strBesked = '';
	if (ErrorHandler.arguments.length == 2) {
		switch (type) {
		case 'xmlfejl':
			strBesked += 'Fejl i XML\n\n' + strBem.replace(objHTMLNewline,'\n');
			break;
		case 'xslfejl':
			strBesked += 'Fejl i XSL - Kan ikke transformere XML/XSL\n\n' + strBem.replace(objHTMLNewline,'\n');
			break;
		default : 
			strBesked += 'IKKE DEFINERET FEJL';
		}		
	}
	else {	strBesked += 'FEJL:\n\n' + err.description;	}
	alert(strBesked);
}


// *** loader XML/XSL fra fil

function LoadXML(styleNo) {				// loader xml-dokumentet
	try {
		xmldoc= new ActiveXObject("Microsoft.XMLDOM");
		xmldoc.async = false;
		xmldoc.load('data.xml');
	}
	catch (err) {	ErrorHandler(err, 'xmlfejl');	}	// vis fejl
}

function LoadXSL1() {					// loader xsl-dokumentet - style 1
	try {
		StyleXml1 = new ActiveXObject("Microsoft.XMLDOM");
		StyleXml1.async = false;
		StyleXml1.load('clientxmlxsl1.xsl');
	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}

function LoadXSL2() {					// loader xsl-dokumentet - style 2
	try {
		StyleXml2 = new ActiveXObject("Microsoft.XMLDOM");
		StyleXml2.async = false;
		StyleXml2.load('clientxmlxsl2.xsl');
	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}

// ***


// *** loader rettet XML/XSL fra TEXTAREA

function LoadXMLTextArea() {							//loader xml fra TextArea
	try {	xmldoc.loadXML(document.getElementById("xmlfil").innerText);	}
	catch (err) {	ErrorHandler(err, 'xmlfejl');	}	// vis fejl
}

function LoadXSL1TextArea() {							//loader xsl fra TextArea
	try {	StyleXml1.loadXML(document.getElementById("xmlfil").innerText);	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}
function LoadXSL2TextArea() {							//loader xsl fra TextArea
	try {	StyleXml2.loadXML(document.getElementById("xmlfil").innerText);	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}

// ***


// *** 	viser xml-dokumenter i textarea, og sætter knapper til at loade/reloade xml/xsl

function ShowXML() {					// viser xml-dokumenter i textarea
var subMenu  = '<div><table width="100%"><tr><td class="menupunkt" width="50%" onclick="LoadXML();ShowXML();">Genindlæs XML-Dokument</td><td class="menupunkt" width="50%" onclick="LoadXMLTextArea();">Indlæs rettet XML-Dokument</td></tr></table></div>';
var xml = xmldoc.xml;					// ret tab til spacer
	try {
		document.getElementById("resultat").innerHTML = '<div class="header">XML Dokument</div><textarea cols="70" id="xmlfil" rows="20"></textarea>' + subMenu;
		document.getElementById("xmlfil").innerText = xml.replace(objTab,'    ');
	}
	catch (err) {	ErrorHandler(err, 'xmlfejl');	}	// vis fejl
}

function ShowXSL1() {					// viser xsl-style 1 i textarea
var subMenu = '<div><table width="100%"><tr><td class="menupunkt" width="50%" onclick="LoadXSL1();ShowXSL1();">Genindlæs XSL-Style 1</td><td class="menupunkt" width="50%" onclick="LoadXSL1TextArea();">Indlæs rettet XSL-Style 1</td></tr></table></div>';
var xml = StyleXml1.xml;
	try {
		document.getElementById("resultat").innerHTML = '<div class="header">XSL-Style 1</div><textarea cols="70" id="xmlfil" rows="20"></textarea>' + subMenu;
		document.getElementById("xmlfil").innerText = xml.replace(objTab,'    ');
	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}

function ShowXSL2() {					// viser xsl-style 2 i textarea
var subMenu = '<div><table width="100%"><tr><td class="menupunkt" width="50%" onclick="LoadXSL2();ShowXSL2();">Genindlæs XSL-Style 2</td><td class="menupunkt" width="50%" onclick="LoadXSL2TextArea();">Indlæs rettet XSL-Style 2</td></tr></table></div>';
var xml = StyleXml2.xml;
	try {
		document.getElementById("resultat").innerHTML = '<div class="header">XSL-Style 2</div><textarea cols="70" id="xmlfil" rows="20"></textarea>' + subMenu;
		document.getElementById("xmlfil").innerText = xml.replace(objTab,'    ');
	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}

// ***


// *** transformerer XML med XSL og viser resultatet som HTML

function Tranform1() {					// transformer XML med XSL - style 1
	strHTML = '';
	try {
		strHTML = xmldoc.transformNode(StyleXml1);
		document.getElementById("resultat").innerHTML = strHTML;
	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}

function Tranform2() {					// transformer XML med XSL - style 2
	strHTML = '';
	try {
		strHTML = xmldoc.transformNode(StyleXml2);
		document.getElementById("resultat").innerHTML = strHTML;
	}
	catch (err) {	ErrorHandler(err, 'xslfejl');	}	// vis fejl
}

// ***
