/// © 2007 PROART www.proart.at

function newRequest(file){
	var xmlDoc;
   try {
      if (window.XMLHttpRequest) {
		/// NETSCAPE MOZILLA
		//return new ActiveXObject("Microsoft.XMLDOM");
        //new ActiveXObject("MSXML2.XMLHTTP");
		//alert("XMLHttpRequest");
		xmlDoc= new XMLHttpRequest();
		xmlDoc.open("GET", file, false);
     	xmlDoc.send("");
     	xml=xmlDoc.responseXML;
	 	return [xml,"mozilla"];
	} else {
		// alert("WINDOWS IE");
		// alert("MSXML2.XMLHTTP");
		//xmlDoc=new ActiveXObject("MSXML2.XMLHTTP");
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.preserveWhiteSpace=true;
		xmlDoc.load(file);
		return [xmlDoc,"windows"];
		 
      }
   } catch (e) {
	  alert("xml fehler");
      return false;
   }
}
function showCSS(val){
	//alert("showCSS="+val);
	document.write("<style type='text/css'>"+val+"</style>");
	//return;
}
function output(str){
	//document.write("<br>"+str);
}
function loadXML(file) {
	//alert("loadXML called! "+file);
	var req;
	if (req = newRequest(file)) {
		var xml=req[0];
		//alert("req[1]="+req[1]);
   		if(req[1]=="windows"){
			if(xml.getElementsByTagName("ITEM")[0].getAttribute('VISIBLE')=="true"){
				showCSS(xml.getElementsByTagName("ITEM")[0].childNodes[0].nodeValue);
			}
		} else {
			var temp;
			for(var nod in xml.childNodes[0].attributes){
				//output("nod="+nod+" val="+xml.childNodes[0].attributes[nod]);
				 temp+=nod;
	 		}
			//alert("temp="+temp);
		}
	}
	
	//xml=req.responseText;
	 ///
	 //alert(xml.childNodes[0].nodeName);
	 //alert(xml.childNodes[0].childNodes.length);
	 //
	
	 //alert(xml.childNodes[0].childNodes.length);
     //var fullname = xml.getElementsByTagName("css");	 
		for(n=0;n<xml.childNodes[0].childNodes.length;n++){
	 		var node=xml.childNodes[0].childNodes[n];
			//alert(node.nodeName);
	 		if(node.nodeName.toLowerCase()=="item"){
				
				//alert(node.nodeName+" found!");
				output("ITEM found in "+n);
				output("direct access for attributes: "+node.attributes);
				for(a=0;a<node.attributes.length;a++){
					output(node.attributes[a].nodeName);
					if(node.attributes[a].nodeName.toLowerCase()=="visible" && node.attributes[a].nodeValue=="true"){
						output("node ist visible");
						output("node.firstchild="+node.childNodes[0].nodeValue);
						for(var nod in node){
							output("node="+nod+" val="+node[nod]);
						}
						showCSS(node.childNodes[0].nodeValue);
					}
				}
			}
	 		output("attributes.length="+node.attributes.length);
			for(var att in xml.childNodes[0].childNodes[n].attributes){
				attrlist = node.attributes;
				output("attrlist="+attrlist);
				if(attrlist!=null){
					for (j=0;j<attrlist.length;j++){
						output("j="+j);
						//indent( reclevel + 2 );
						attrnode = attrlist(j);
						output("<b>" + attrnode.nodeName + "</b>&nbsp;<i>" + nodeType(attrnode.nodeType) +"</i>&nbsp;" + attrnode.nodeValue + "<br>");
					}
				}
			}
	 	}
	
}
function nodeType(type){
	switch (type){
		case 1:
			return "ELEMENT";
			break;
		case 2:
			return "ATTRIBUTE";
			break;
		case 3:
			return "TEXT";
			break;
		case 4:
			return "CDATA";
			break;
		case 5:
			return "REFERENCE";
			break;
		case 6:
			return "ENTITY";
			break;
		case 7:
			return "INSTRUCTION";
			break;
		case 8:
			return "COMMENT";
			break;
		case 9:
			return "DOCUMENT";
			break;
		case 10:
			return "TYPE";
			break;
		case 11:
			return "FRAGMENT";
			break;
		case 12:
			return "NOTATION";
			break;
	}
}
