function addEvent(obj, evType, fn){
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}

function getDiagrams() {
	loadXMLDoc.instances=new Array();
	var lists = document.getElementsByTagName("ol");
	var myLists = [];
	for(var i=0;i<lists.length;i++){
		if(lists.item(i).getAttribute("name") == "diagramList"){
			myLists.push(lists.item(i));
		}
	}
	for(i=0;i<myLists.length;i++) {
		var a = myLists[i].id;
		var b = ".xml";
	    var obj1=new loadXMLDoc(a+b, a);
	}
}

function populateList(xmlDoc, elementId) {
	var txt=""
	x=xmlDoc.responseXML.documentElement.getElementsByTagName("tip");
	for (i=0;i<x.length;i++){
		txt+="<li>";
		xx=x[i].getElementsByTagName("header");
		{
			try{
				txt+="<strong>" + xx[0].firstChild.nodeValue + "</strong><br />";
			}
			catch (er){
				txt+="";
			}
		}
		xx=x[i].getElementsByTagName("subhead");
		{
			try{
				txt+=xx[0].firstChild.nodeValue+"<br />";
			}	
			catch (er){
				txt+="";
			}
		}
		xx=x[i].getElementsByTagName("desc");
		{
			try{
				txt+=xx[0].firstChild.nodeValue;
			}	
			catch (er){
				txt+="";
			}
		}
		txt+="</li>";
	}
	document.getElementById(elementId).innerHTML=txt;;
}

function loadXMLDoc(surl, container) {
    this.id=loadXMLDoc.instances.length;
    loadXMLDoc.instances[this.id]=this;
    // code for Mozilla, etc.
    if (window.XMLHttpRequest) {
        //alert("mozilla");
        this.engine=new XMLHttpRequest();
		if (this.engine) {
            var obj=this;
        	this.engine.onreadystatechange=function() {
                // if xmlhttp shows "loaded"
                if (obj.engine.readyState==4) {
                   	// if "OK"
                   	if (obj.engine.status==200) {
						var doc=obj.engine;
						populateList(doc, container);
                   	} else {
                       	alert("Problem retrieving XML data:" + obj.engine.statusText);
                   	}
                }
            }
        	this.engine.open("GET",surl,true)
        	this.engine.send(null);
		}
    } else if (window.ActiveXObject) {
        //code for IE
        this.engine=new ActiveXObject("Microsoft.XMLHTTP");
        if (this.engine) {
            var obj=this;
            this.engine.onreadystatechange=function() {
                // if xmlhttp shows "loaded"
                if (obj.engine.readyState==4) {
                    // if "OK"
                    if (obj.engine.status==200) {
						var doc=obj.engine;
						populateList(doc, container);
                    } else {
                        alert("Problem retrieving XML data:" + obj.engine.statusText);
                    }
                }
            }
        	this.engine.open("GET",surl,true);
        	this.engine.send();
        }
    }
}

addEvent(window, 'load', getDiagrams);