﻿/* ===================== */
/*  THEO JEUKENS WEBSITE */
/*  VERSIE 3.0.00        */
/*  2011 KW 4            */
/* ===================== */
/*  © 2011 LuSaneT Group */
/*  www.lusanet.nl       */
/* ===================== */
/*  Standaard scripts    */
/*  includes/website.js  */
/* ===================== */
	var xmlHttpArray = new Array();
	var baseHref = document.head.getElementsByTagName("base")[0].href;
	
// SET ONLOAD FUNCTIE(S)
	window.onresize = wrapperCheckMargin;
	window.onload = function() {
						wrapperCheckMargin();
						menuItemRewriteUrl();
						rewriteUrls(document.getElementById("fuchsiabutton"));
					};
					
// =============================
//  POSITIE WRAPPER CONTROLEREN
//  VOORKOMEN DAT WRAPPER BUITEN VENSTER VALT
// =============================
	function wrapperCheckMargin() {
		// MARGIN HERSTELLEN
			document.getElementById("wrapper").style.marginTop = "-375px";
			
		// ALS HIJ BUITEN BEELD VALT, MARGIN FIXEREN
			if(document.getElementById("wrapper").offsetTop < 20) {
				document.getElementById("wrapper").style.marginTop = (-375 - document.getElementById("wrapper").offsetTop + 20)+"px";
			}
	}

// ====================================
//  HERSCHRIJF URL NAAR JAVASCRIPT URL
//  PAGINA WORDT DAN VIA AJAX GELADEN
// ====================================
	function menuItemRewriteUrl() {
		var menuDiv = document.getElementById("menu");
		var divArray = menuDiv.getElementsByTagName("li");
		var itemHref = "";
		var jsUrl = "";
		
		for(i=0;i < divArray.length;i++) {
			// URL VAN A-ELEMENT OPHALEN
				itemHref = divArray[i].getElementsByTagName("a");
				itemHref = itemHref[0];

			// ONGELDIGE TEKENS VERVANGEN
				jsUrl = itemHref.href.replace("'", "%27");
				jsUrl = jsUrl.replace('"', "%22");
				
				urlArray = jsUrl.split(baseHref);

				// ALLEEN PAGINAS MET VARIABELE AANPASSEN
				if(urlArray.length > 1)	{
					jsUrl = urlArray[1];
					
					// ONCLICK ZETTEN
						itemHref.href = "./#!"+jsUrl;
						
						// IE WIL EEN ANDERE METHODIEK
							if(getBrowserInfo()[0] == "IE") {
								itemHref.onclick = function() {
									var itemUrl = this.getElementsByTagName("a")[0].getAttribute("href");
										itemUrl = itemUrl.split('#!');
									
									window.location = './#!'+itemUrl[1];
									ajaxLoadPage('./?ajaxPage='+itemUrl[1], 'content');
									return false;
								};
							}
							else {
								itemHref.setAttribute("onclick", "window.location='./#!"+jsUrl+"';ajaxLoadPage('./?ajaxPage="+jsUrl+"', 'ajaxContent');");
							}
				}		
		}
	}
	
// ==================================
//  HERSCHRIJF URL NAAR EEN AJAX URL 
// ==================================
	function rewriteUrls(container) {	
		var aArray = container.getElementsByTagName("a");
		var itemUrl = "";
		var itemUrlAmp = "";
		
		for(i=0; i < aArray.length;i++) {
			var itemHref = aArray[i];
			itemUrl = itemHref.href.split(baseHref);
			itemUrlAmp = itemHref.href.split("?");
	
			// ALLEEN VERDER GAAN ALS &page= IN DE URL ZIT
			// EN VERDER GEEN PARAMETERS WORDEN MEEGEGEVEN		
				if(itemUrl.length > 1 && itemUrlAmp.length == 1) {	
					// SPECIALE TEKENS VERVANGEN
						itemUrl = itemUrl[1];
						itemUrl = itemUrl.replace("'", "%27");
						itemUrl = itemUrl.replace('"', "%22");
								
					// HREF AANPASSEN
						itemHref.href = "./#!"+itemUrl;
						
						// IE WIL EEN ANDERE METHODIEK
							if(getBrowserInfo()[0] == "IE") {
								itemHref.onclick = function() {
									var itemUrl = this.getAttribute("href");
										itemUrl = itemUrl.split('#!');
									
									window.location = './#!'+itemUrl[1];
									ajaxLoadPage('./?ajaxPage='+itemUrl[1], 'content');
								};
							}
							else {
								itemHref.setAttribute("onclick", "window.location='./#!"+itemUrl+"';ajaxLoadPage('./?ajaxPage="+itemUrl+"', 'ajaxContent');");
							}
				}
		}
	}
	
// ====================	
//  BROWSER DETECTEREN 
// ====================
	function getBrowserInfo() {
		if(document.layers)
			return new Array("NS", 4);
		else if(!(navigator.appVersion.indexOf("MSIE 4.")==-1))
			return new Array("IE", 4);
		else if(!(navigator.appVersion.indexOf("MSIE 5.")==-1))
			return new Array("IE", 5);
		else if(!(navigator.appVersion.indexOf("MSIE 6.")==-1))
			return new Array("IE", 6);
		else if(!(navigator.appVersion.indexOf("MSIE 7.")==-1))
			return new Array("IE", 7);
		else if(!(navigator.appVersion.indexOf("MSIE 8.")==-1))
			return new Array("IE", 8);
		else if(!(navigator.userAgent.indexOf("Firefox/1.")==-1))
			return new Array("FF", 1);
		else if(!(navigator.userAgent.indexOf("Firefox/2.")==-1))
			return new Array("FF", 2);
		else if(!(navigator.userAgent.indexOf("Firefox/3.")==-1))
			return new Array("FF", 3);
		else if(document.layers && !(navigator.userAgent.indexOf("Netscape")==-1))
			return new Array("NS", 6);
		else
			return new Array("unknown", -1);
	}

// =====================
//  AJAX INISTIALISATIE
// =====================
	var xmlHttp;
	function getXmlHttpObject() {
		var xmlHttp=null;
		try {
			// Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();
		}
		catch (e) {
	  		// Internet Explorer
	 		try {
 			   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  			}
	  		catch (e) {
     			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
 			}
		}
		
		return xmlHttp;
	}
	
// ========================
//  LOAD HTML INTO ELEMENT 
// ========================
	function ajaxLoadPage(url, elementId) {
		// NIEUW XMLHTTP OBJECT AANMAKEN
			var index = xmlHttpArray.length;
			xmlHttpArray[index] = new Array(getXmlHttpObject(), url, elementId);

		// CONTROLEREN OF AJAX WORDT ONDERSTEUNT
		if(xmlHttpArray[index][0] != null) {			
			xmlHttpArray[index][0].onreadystatechange = function() {	
				if(xmlHttpArray[index][0].readyState == 4) {
			 		// CONTROLEREN OF FEED NIET LEEG IS 		
			 			if(xmlHttpArray[index][0].responseText == null) {
							document.getElementById(xmlHttpArray[index][2]).innerHTML = "<em>De data kon niet worden geladen</em>";
			 			}
			 			else if(xmlHttpArray[index][0].responseText.indexOf("Fatal error") >= 0) {
							document.getElementById(xmlHttpArray[index][2]).innerHTML = "<em>De data kon niet worden geladen</em>" + xmlHttpArray[index][0].responseText;
			 			}
				 		else if(xmlHttpArray[index][0].responseText != "") {
							document.getElementById(xmlHttpArray[index][2]).innerHTML = xmlHttpArray[index][0].responseText;
							
							// URLS OMZETTEN NAAR AJAX URLS
							// ALS DOEL ELEMENT DE PAGINA IS
							if(elementId == "ajaxContent") {
								rewriteUrls(document.getElementById("content"));							
								ajaxParseContentJavascript(document.getElementById("content"));
							}
						}
						
					// VERWIJDER DATA
						xmlHttpArray[index] = null;
				}
			};
			
			// LAAD ICOON WEERGEVEN
			document.getElementById(elementId).innerHTML = "<div class=\"loadingBox\">De pagina wordt geladen...</div>";
			
			// REQUEST UITVOEREN
			var date = new Date();
			xmlHttpArray[index][0].open("GET", url+"&"+date.toString(), true);
		    xmlHttpArray[index][0].setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
		    xmlHttpArray[index][0].setRequestHeader('Pragma', 'no-cache');
			xmlHttpArray[index][0].send(null);
		}
	}
	
// ==============================================
//  JAVASCRIPT IN PAGINA GELADEN DMV AJAX PARSEN
// ==============================================
	function ajaxParseContentJavascript(contentElement) {
		// OA FIREFOX
			var jsTagArray = contentElement.innerHTML.split("<script language=\"javascript\" type=\"text/javascript\">");
		
		// IE PROBEREN ALS DE ANDERE SPLIT NIET GOED GING
			if(jsTagArray.length <= 1)
				var jsTagArray = contentElement.innerHTML.split("<SCRIPT language=javascript type=text/javascript>");				

		var jsEndTagArray = null;
		for(jsBlockCount=1;jsBlockCount < jsTagArray.length;jsBlockCount++) {
			// OA FIREFOX
				jsEndTagArray = jsTagArray[jsBlockCount].split("</script>");
			
			// IE PROBEREN ALS DE ANDERE SPLIT NIET GOED GING
				if(jsEndTagArray.length == 1)
					jsEndTagArray = jsTagArray[jsBlockCount].split("</SCRIPT>");					
			
			if(jsEndTagArray[0].indexOf("function pageOnload()") >= 0) {
				eval(jsEndTagArray[0]);			
				
				// DEZE FUNCTIE IS IN DE REGEL HIERBOVEN GEPARSED	
					pageOnload();
			}
		}
	}
