
//\\----- script by Jeroen Aarts, september 2004 -----//\\

var flagNoMouseOut;
var xmlDoc;
var req;
var SwitchWrite; //global var to switch between writing of content, banner and menulist on page based on xml docs
var BannerMoveRight = true;
var Lang = getCookie("lang")? getCookie("lang") : "EN"; //if cookies are not enabled default language is English
var LookupMenu ;



  var cursorPos = 0;
  var str;

var elBanner ;	
  var str ;
  
  function InitMain() {
		elBanner = document.getElementById("BannerContents") ;
		str = elBanner.innerHTML;
		MoveBanner() ;
	//DoMenuList();
	//DoBanner();
  }

  function LoadXml(xmlFile) {

	if(window.ActiveXObject)
	{	//MS IE
		try {   //MSXML2
			req = new ActiveXObject("MSXML2.XMLHTTP");				
		}
		catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");			
			}
			catch(e) {	
				document.write("Uw browser ondersteunt niet alle functies op deze webpagina");
				return false;
			}
		} // end catch	
		req.onreadystatechange = Fire;	
		req.open("GET", "files/" + xmlFile, true);
		req.send();
	} 
	else if(window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest();
		if(req) {
			req.onreadystatechange = Fire;
			req.open("GET", "files/" + xmlFile, true);
			req.send(null);
		} 
		else {
			document.write("Er trad een fout op tijdens de verwerking van deze pagina. Probeer later opnieuw");
			return false;
		}
	} // end else if
	else
	{
		document.write("Uw browser ondersteunt niet alle functies op deze webpagina");
		return false;		
	} // end else

  } // end loadXML

  function Fire() {

	if(req.readyState == 4) 
	{
		xmlDoc = req.responseXML;

		if(SwitchWrite=="Contents") {SetContents();} 
		else if(SwitchWrite=="Banner") {SetBanner();}
	    else if(SwitchWrite=="MenuList") {SetMenuList();}
		else if(SwitchWrite=="SelfLink") {SetSelfLink();}
	} 			    
  }

  function DoMenu(srcDoc) { 		
	SwitchWrite = "Contents" ; //var zetten om SetContents() uit te voeren
	LoadXml(srcDoc);  //id's van menu moeten overeenkomen met namen van xml bestanden		
  }  	

  function DoBanner() { 
	SwitchWrite = "Banner"; //switch zetten om SetBanner() uit te voeren
	LoadXml("Banner.xml");
  }

  function DoMenuList() { 

	SwitchWrite = "MenuList";//switch zetten om SetMenuList() uit te voeren
	LoadXml("MenuList.xml");
  }

  function DoSelfLink(MenuName) { 
	LookupMenu = MenuName ;		
	SwitchWrite = "SelfLink" //var zetten om SetSelfLink() uit te voeren
	LoadXml("MenuList.xml");  		
  }  	

  function LangPref(l) { 
	setCookie("lang",l);
	window.location="main.htm";
  }

  function SetBanner() { 

	var srcElDocEl = xmlDoc.documentElement; 
	var ElBanner = document.getElementById("BannerContents");
	//ElBanner.style.whiteSpace = "nowrap";
	//alert(ElBanner.childNodes.length) ;
	if(!ElBanner.childNodes.length) parseDoc(srcElDocEl, ElBanner);	
	//alert(document.getElementById("BannerContents").innerHTML);
	str = document.getElementById("BannerContents").innerHTML ;
	MoveBanner();
  }

  function SetMenuList() { 

	var insertNode; 
	var tdElNode, aElNode, txtNode, bElNode;
	var i, j ;
	var srcElDocEl = xmlDoc.documentElement;
	var FirstMen;

	var MenuGroups = xmlDoc.getElementsByTagName("Menugroup");	

     //CREATE AND WRITE LANGUAGE MENU FIRST
	insertNode = document.getElementById("LangMenContents"); //point to insert language menu options
	if(insertNode) {

	 i = MenuGroups[0].childNodes.length //number of child elements AND text nodes

	 for(j=0;j<i;j++) {
	  if(MenuGroups[0].childNodes[j].nodeType == 1) { //filter for element nodes
	    tdElNode = document.createElement("td");
	    tdElNode.setAttribute("width","30px");
	    aElNode = document.createElement("a");	    

	    aElNode.setAttribute("href", "javascript:LangPref('" + MenuGroups[0].childNodes[j].getAttribute('lang') + "')")
	    txtNode = document.createTextNode(MenuGroups[0].childNodes[j].getAttribute("lang"));

	    if(MenuGroups[0].childNodes[j].getAttribute('lang') == Lang) {
		bElNode = document.createElement("b");
	        bElNode.appendChild(txtNode);	        
	  	tdElNode.appendChild(bElNode);
	    }
	    else {
		aElNode.appendChild(txtNode);
		tdElNode.appendChild(aElNode);
	    }
	    insertNode.appendChild(tdElNode);
	  } 
	 } //end for
	}

       //CREATE AND WRITE MAIN MENU
	insertNode = document.getElementById("MainMenu"); //element in resultdoc where MenuGroups should be inserted

	for(i=0;i < MenuGroups.length;i++) {
	  j = 0;
	  while((MenuGroups[i].childNodes[j].nodeType != 1) ||
 (MenuGroups[i].childNodes[j].getAttribute("lang") != Lang)) j++;

	  txtNode= document.createTextNode(MenuGroups[i].childNodes[j].firstChild.nodeValue)

	  tdElNode = document.createElement("td") //assumes MenuGroups will be written in td element of a table
	  aElNode = document.createElement("a")	 
		//	   aElNode.setAttribute("class", "Straight") THIS METHOD FAILS IN IE
	  aElNode.className = "menu" //workaround for setAtribute method in prev line - works with className attr as defined in DOM Level 1 Sepecification

	  aElNode.setAttribute("href", "javascript: DoMenu('" + MenuGroups[i].childNodes[j].getAttribute("src") + "')")
	  if(!FirstMen) FirstMen = MenuGroups[i].childNodes[j].getAttribute("src");
	  tdElNode.setAttribute("width","140px");
	  tdElNode.setAttribute("class","HandCursor");

	  aElNode.appendChild(txtNode);
	  tdElNode.appendChild(aElNode); 
	  insertNode.appendChild(tdElNode)
        }
	DoMenu(FirstMen);
  }

  function SetContents() {
	var elMenu = document.getElementById("MainContents")
	var srcElDocEl = xmlDoc.documentElement;

	if(srcElDocEl.xml) {	 
		 elMenu.innerHTML = srcElDocEl.xml; //enkel IE ondersteunt xml-property
	}
	else {
		while(elMenu.childNodes[0]) {
			//eerst bestaande inhoud verwijderen
			 elMenu.removeChild(elMenu.childNodes[0]);
		}
		parseDoc(srcElDocEl, document.getElementById("MainContents"));			
	}
	DoBanner();
  }

  function SetSelfLink() { 
	var Menus = xmlDoc.getElementsByTagName("Menu") ;
	var i ;
	for(i = 0 ; i < Menus.length ; i++) {
		if(Menus[i].firstChild.nodeValue == LookupMenu ) {
			DoMenu(Menus[i].getAttribute('src')) ;
			break ;;
		}
	} // end for
}

  function parseDoc(srcElTarget, insertNode) {
	   //'srcElTarget' is element in source tree en 'insertNode' is node in huidige webpagina		
	var txtNode;
	var elNode;

	for(var i = 0; srcElTarget.childNodes[i]; i++) {
		if(srcElTarget.childNodes[i].nodeType == 3) {
			// parse tekstnode
			txtNode = document.createTextNode(srcElTarget.childNodes[i].nodeValue);
			insertNode.appendChild(txtNode);
		} 
		else if(srcElTarget.childNodes[i].nodeType == 1) {
			// parse elementnode door element toe te voegen en dan recursief parseDoc
			elNode = document.createElement(srcElTarget.childNodes[i].nodeName);

			// voeg attributes toe
			for(var j=0; srcElTarget.childNodes[i].attributes[j];j++) {
				elNode.setAttribute(srcElTarget.childNodes[i].attributes[j].name, srcElTarget.childNodes[i].attributes[j].value)
			}

			insertNode.appendChild(elNode);			
			parseDoc(srcElTarget.childNodes[i], elNode); //recursieve functie, invoegen gebeurt steeds                                									//onder niveau van element-node		
		}
	} // end for

	
  } // end parseDoc()  

  function BannerReact() {
	window.open("PR.htm", "NewWindow", "width=500, height=450, top=100, left= 200, menubar=no, status=no, resizable=no");
  }

  
  function MoveBanner() { 	
	//alert('hi') ;
	
	//alert(str.substring(0, cursorPos));
	elBanner.style.display = "block" ;
	elBanner.innerHTML = str.substring(0, cursorPos);
	cursorPos++;	
	if(elBanner.innerHTML.length == str.length) window.clearTimeout();
	else window.setTimeout('MoveBanner()', 50);
  } 

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}   

function ShowHideText(oImage, oNode)
{
   if(oNode.style.display == "none") {
	oNode.style.display = "block";
	//oNode.style.color = "#3674A7" ;
	//oImage.src = "../_static/img/minus.png"
	}
     else {
	oNode.style.display = "none" ;
	//oImage.src = "../_static/img/plus.png";
	}
}

