var sXML;
var aDubbel = new Array();
var iIndex = 0;
var sVorigePlaats = ""

window.onload = function() {
	ImportAdressen();
	Init();
	document.getElementById("startHelp").onclick(); /* mdb: startHelp tonen bij start (juiste positie) */
}

function ImportAdressen() {
	oRequest = false;
	sURL = "kantoren.xml";
	//Mozilla
	if(window.XMLHttpRequest) {
		try {oRequest = new window.XMLHttpRequest()}
		catch(e) {oRequest = false}
	}
	// IE
	else if(window.ActiveXObject) {
		try {oRequest = new ActiveXObject("Msxml2.XMLHTTP")}
		catch(e) {
			try {oRequest = new ActiveXObject("Microsoft.XMLHTTP")}
			catch(e) {oRequest = false}
		}
	} else {oRequest = false};

	if(oRequest) {
		oRequest.onreadystatechange = CheckLoaded;
		oRequest.open("GET",sURL,true);
		oRequest.setRequestHeader("Content-Type","text/xml; charset=utf-8");
		oRequest.send(null);
	} else {
		// Geen AJAX-ondersteuning
	}
}

function CheckLoaded() {
	if(oRequest.readyState == 4) {
		if(oRequest.status == 200) {
			sXML = oRequest.responseXML;
			if(sXML) {
				GenerateKantorenMenu(sXML);
				GenerateDouaneMenu(sXML);
			}
		}
	}
}

function GenerateKantorenMenu(sNodes) {
	sSelect = "<p><select name=\"inpKantoor\" id=\"inpKantoor\" onchange=\"ShowAdres(this.value,'kantoor')\" onkeyup=\"ShowAdres(this.value,'kantoor')\">\n";
	sSelect += "<option value=\"\">Selecteer de gemeente...</option>\n";
	iNodesCount = sNodes.getElementsByTagName("kantoor").length;
	for(i=0; i<iNodesCount; i++) {
		sGemeente = sNodes.getElementsByTagName("kantoor")[i].getElementsByTagName("gemeente")[0].childNodes[0].nodeValue;
		sSelect += "<option value=\"" + i + "\">";
		sSelect += sGemeente;
		sSelect += "</option>\n";
	}
	sSelect += "</select></p>\n";
	document.getElementById("divSelectK").innerHTML = sSelect;
}

function GenerateDouaneMenu(sNodes) {
	sSelect = "<p><select name=\"inpDouane\" id=\"inpDouane\" onchange=\"ShowAdres(this.value,'douane')\" onkeyup=\"ShowAdres(this.value,'douane')\">\n";
	sSelect += "<option value=\"\">Selecteer de plaats...</option>\n";
	iNodesCount = sNodes.getElementsByTagName("douane").length;
	for(i=0; i<iNodesCount; i++) {
		sPlaats = sNodes.getElementsByTagName("douane")[i].getElementsByTagName("plaats")[0].childNodes[0].nodeValue;
		if(sPlaats == sVorigePlaats) {
			// Dubbele plaatsnamen filteren + opslaan in array
			aDubbel[iIndex++] = sPlaats;
		} else {
			sSelect += "<option value=\"" + i + "\">";
			sSelect += sPlaats;
			sSelect += "</option>\n";
			sVorigePlaats = sPlaats;
		}
	}
	sSelect += "</select></p>\n";
	document.getElementById("divSelectD").innerHTML = sSelect;
}

function ShowAdres(iIndex,sType) {
	sNode = sXML.getElementsByTagName(sType)[iIndex];
	sAdres = "";
	sPlaats = "";
	sVorigePlaats = "";

	if(iIndex !="") {
		if(sType == "kantoor") {
			sAdres += "<h2>Gegevens belastingkantoor gemeente " + sNode.getElementsByTagName("gemeente")[0].childNodes[0].nodeValue;
			sAdres += " (Belastingregio " + sNode.getElementsByTagName("organisatie")[0].childNodes[0].nodeValue + ")</h2>";
			document.getElementById("inpDouane").selectedIndex = 0;
		} else if(sType == "douane") {
			// Zorgen dat while-loop minimaal 1x wordt doorlopen
			sPlaats = sNode.getElementsByTagName("plaats")[0].childNodes[0].nodeValue;
			sVorigePlaats = sPlaats;
			sAdres += "<h2>Gegevens douanekantoor plaats " + sPlaats + "</h2>";
			//sAdres += " (Douaneregio " + sNode.getElementsByTagName("organisatie")[0].childNodes[0].nodeValue + ")</h2>";
			document.getElementById("inpKantoor").selectedIndex = 0;
		}

		while(sPlaats == sVorigePlaats) {
			var sKantoorNaam = sNode.getElementsByTagName("suborg")[0].getElementsByTagName("naam")[0].childNodes[0].nodeValue;
			sAdres += "<br /><h2>" + sKantoorNaam + "</h2>";
			sAdres += "<h2>Bezoekadres</h2>";
			sAdres += "<p>" + sNode.getElementsByTagName("bzkadres")[0].childNodes[0].nodeValue;
			sAdres += "<br />" + sNode.getElementsByTagName("bzkpostcode")[0].childNodes[0].nodeValue;
			sAdres += " " + sNode.getElementsByTagName("bzkwoonplaats")[0].childNodes[0].nodeValue + "</p>";
			if(sType == "kantoor") {
				sAdres += "<h2>Openingstijden kantoren</h2>";
				sAdres += "<p>De balies van de belastingkantoren zijn open op werkdagen van 08:00 tot 17:00 uur.</p>";
			}
			try{var tmpAdres = sNode.getElementsByTagName("suborg")[0].getElementsByTagName("postadres")[0].childNodes[0].nodeValue;} catch(e) {	var tmpAdres="";}						
			if (tmpAdres != "") {
				sAdres += "<h2>Postadres</h2>";
				sAdres += "<p>" + tmpAdres
				sAdres += "<br />" + sNode.getElementsByTagName("suborg")[0].getElementsByTagName("postcode")[0].childNodes[0].nodeValue;
				sAdres += " " + sNode.getElementsByTagName("suborg")[0].getElementsByTagName("woonplaats")[0].childNodes[0].nodeValue + "</p>";
			}

			if(sType == "douane") {
				iNodesCount = sNode.getElementsByTagName("werklocatie").length;
				if (iNodesCount > 0){		
					sAdres += "<h2>Werklocaties</h2><ul>";	
					for(var i=0; i < iNodesCount; i++) {
						try{var tmpNaam = sNode.getElementsByTagName("werklocatie")[i].getElementsByTagName("wlnaam")[0].childNodes[0].nodeValue + ", ";} catch(e) {	var tmpNaam="";}			
						var tmpAdres = sNode.getElementsByTagName("werklocatie")[i].getElementsByTagName("wladres")[0].childNodes[0].nodeValue + ", ";				
						var tmpPostcode = sNode.getElementsByTagName("werklocatie")[i].getElementsByTagName("wlpostcode")[0].childNodes[0].nodeValue + ", ";				
						var tmpPlaats = sNode.getElementsByTagName("werklocatie")[i].getElementsByTagName("wlwoonplaats")[0].childNodes[0].nodeValue;				
						sAdres += "<li>" + tmpNaam	+ tmpAdres + tmpPostcode + tmpPlaats + "</li>";
					}
					sAdres += "</ul>";	
				}
			}
			
			sAdres += "<h2>Contact</h2>";			
			if(sType == "kantoor") {
				sAdres += "<p>BelastingTelefoon";
				sAdres += "<br />Telefoon: 0800 - 0543";
				sAdres += "<br />Bereikbaar van maandag tot en met donderdag van 08:00 - 20:00 en vrijdag van 08:00 - 17:00.</p>";
			} else if(sType == "douane") {				
				if (sKantoorNaam.indexOf("Douanemuseum") === -1) {
					sAdres += "<p>BelastingTelefoon Douane";
					sAdres += "<br />Telefoon: 0800 - 0143";
					sAdres += "<br />Telefoon vanuit het buitenland: +31 45 574 30 31";
					sAdres += "<br />Bereikbaar van maandag tot en met donderdag van 08:00 - 20:00 en vrijdag van 08:00 - 17:00.";
				} else {
					sAdres += "<p>Telefoon: (010) 440 02 00";				
				}
				if (sNode.getElementsByTagName("fax")[0].childNodes[0].nodeValue != "-") {
					sAdres += "<br />Fax: " + sNode.getElementsByTagName("fax")[0].childNodes[0].nodeValue;
				}
				sAdres += "</p>"
			}
			try {
				// Als volgende plaats hetzelfde is >> blijf in while-loop
				sNode = sXML.getElementsByTagName(sType)[++iIndex];
				sPlaats = sNode.getElementsByTagName("plaats")[0].childNodes[0].nodeValue;
			} catch(e) {
				// Error: out of index?
				sPlaats = "geen";	// while-loop verlaten
			}
		}
		document.getElementById("divResult").innerHTML = "<div id=\"divUitkomst\" class=\"clUitkomst\">" + sAdres + "</div>";
		toonDivs("fsUitvoer","","","","","","");
		toonDivs("divResultaat","","","","","","");
		toonDivs("divResult","","","","","","");
	} else {
		toonDivs("","divResult","fsUitvoer","","","","");
	}
}

function ConvertToObject(elem) {
	if(typeof(elem) != "object") {
		return document.getElementById(elem);
	} else {
		return elem;
	}
}

function ToonParents(sDiv,bTonen){
	// Als parent bestaat: (on)zichtbaar maken (recursief)
	sTonen = (bTonen) ? 'block' : 'none';
	objDiv = ConvertToObject(sDiv);
	if(objDiv.style) {
		objDiv.style.display = sTonen;
		ToonParents(objDiv.parentNode,bTonen);
	}
}

