function showDiv(div) {
	document.getElementById(div).style.display = 'block';
}

    function preloadImage(path) {
        document.getElementById("prominent").img.setAttribute("src", path);
    }
    
////
// event propagation cancle bubble (zorgen dat alleen bovenste aangeklikte element reageert op event)
///
function noBubble(e) {
  {
    if (window.event)
        window.event.cancelBubble = true;
    else
        e.cancelBubble = true;
	}
}

// deze functie laat een bepaald submenu zien en verbergt de anderen
function showSM(sm) {
	// Menu 
	allMenu = document.getElementById('menu').getElementsByTagName('div');
	allMenuLength = allMenu.length;
   for (var i=0;i<allMenuLength;i++) {
       var classsub = allMenu[i].className;
        if (classsub == "submenuitem") {
            //alert(allMenu[i].clientHeight);
            allMenu[i].setAttribute("height", allMenu[i].clientHeight);
            allMenu[i].style.display = "none";   
        }
    }
    if (sm != "" && sm != null) {
		switch(smE) {
			case 1:
			// document.getElementById('sm' + sm).style.height = document.getElementById('sm' + sm).getAttribute("height");
			document.getElementById('sm' + sm).style.display = "block";
			document.getElementById('sm' + sm).style.position = "relative";
			break;
			case 2:
			document.getElementById('sm' + sm).style.display = "block";
			document.getElementById('sm' + sm).style.position = "absolute";
			document.getElementById('sm' + sm).style.zIndex = 9;
			document.getElementById('sm' + sm).innerHTML = "<img src=\"images/icons/floatdivclose.png\" class=\"floatdivclose\" onclick=\"this.parentNode.style.display = 'none';\" alt=\"sluiten\"/>" + document.getElementById('sm' + sm).innerHTML;
			document.getElementById('sm' + sm).style.overflow = "visible";
			break;
		}
	}
}


// Show / hide / resize class to show / hide / resize elements on te page
// Author: Evertjan Garretsen
// Year: 2009
// Usage: give an object or id as first parameter this wil show or hide
// parameter 2, min-height
// parameter 3, max-height
// Egarretsen@upcmail.nl

function submenuEffect(id,minY,maxY,effect) {
    
    ////
    // vars setten
    ///
	
    this.id = id;
    this.id = (typeof(id) == "object") ? id : document.getElementById(id); // zorgt ervoor dat this.id altijd object is   
    this.minY = minY;
    this.maxY = (maxY == null) ? this.id.getAttribute("height"): maxY;
	this.effect = effect; // effect dat moet optreden
    this.size = 50;
    this.step = 8; // pixels per stap
    elementid = this.id.id;
	var ditobject = this; // bevat nu verwijzing naar object

	switch (this.effect) {
		case 1:
			// menu schuift uit en in, bij het klikken op een link komt menu weer terug (blijft hij voor het oog staan)
			// moet een curve worden, exponentieel
			// stat moet global variabele zijn
			// kijken of id een object is of id van object
			tarheight =  (this.stat == true) ? this.minY : this.maxY;
			if (window["stat" + this.id.id] == true) {
				this.size = this.maxY;
				window.setInterval(function() {ditobject.shrink();}, 10);
			} else {
				this.size = this.minY;
				this.id.style.position = "relative";
				window.setInterval(function() {ditobject.expand();}, 10);
			}
			// reverse
			window["stat" + this.id.id] = !window["stat" + this.id.id];
		break;
		case 2:
			// submenu verschijnt ineens als laag iets rechts van knop en als floating div
			if (window["stat" + this.id.id] == true) {
				this.id.style.display = "none";
			} else {
				this.id.style.display = "block";
				this.id.style.position = "absolute";
				this.id.style.zIndex = 9;
				this.id.style.overflow = "visible";
				this.id.innerHTML = "<img src=\"images/icons/floatdivclose.png\" class=\"floatdivclose\" onclick=\"this.parentNode.style.display = 'none';\" alt=\"sluiten\"/>" + this.id.innerHTML;
			}
			// reverse
			window["stat" + this.id.id] = !window["stat" + this.id.id];
		break;
	}
}

// functie om div in te klappen
submenuEffect.prototype.shrink =  function() {
    if (this.size > this.minY) {
        if (this.size - this.step < this.minY) {
            this.size = this.minY;
        } else {
            this.size -= this.step;
        }
        this.id.style.height = this.size + "px";
        window.clearInterval();
    } 
}

// functie om div uit te klappen
submenuEffect.prototype.expand = function() {
    if (this.id.style.display == "none") this.id.style.display = "block";
    if (this.size < this.maxY) {
        if (this.size + this.step > this.maxY) {
            this.size = this.maxY
            // zorgen dat wanneer je op link klikt submenu niet invouwt
            this.id.onclick = function() {document.getElementById(elementid).parentNode.onclick = null;this.id.onclick = null;};
        } else {
            this.size += this.step;
        }
        this.id.style.height = this.size + "px";
        window.clearInterval();
    } else {
         // zorgen dat wanneer je op link klikt submenu niet invouwt
         this.id.onclick = function() {document.getElementById(elementid).parentNode.onclick = null;this.id.onclick = null;};
    }
}
// buttonimage veranderen bij het resizen van element
buttonsrc = function(buttonid, before, after) {
     if (this.stat == true) {
         document.getElementById(buttonid).src = before;
     } else {
         document.getElementById(buttonid).src = after;
     }
}

// cms bar verbergen of laten zien.
function showHide(target) {
    
    src = document.getElementById('showhide').getAttribute('src'); 
    
    if (document.getElementById(target).style.display == "block") {
        i=60;
        document.getElementById('showhide').setAttribute('src', 'cms/icons/egcms_showmenu.png');
        hidetimer = setInterval(function() {hidemenu(target)} , 10);
    
    } else {
        i = 0;
        document.getElementById('showhide').setAttribute('src', 'cms/icons/egcms_hidemenu.png');
        showtimer = setInterval(function() {showmenu(target)} , 10);
    }
}

    // functie om contactformulier te controleren.
    function checkForm(form) {
    allinput = form.getElementsByTagName("input");
    var error = false;
    var errormsg = "";
    allinputlength = allinput.length;
    for (i=0;i<allinputlength;i++) {
        if (allinput[i].type == "text") {
            if (allinput[i].value == "" && error == false) {
               error = true;
               errormsg += "Niet alle velden ingevuld. Vul alle velden in.";
            }
            if (allinput[i].name == "contname") {
                if (allinput[i].value.match(/[1-9]/)) {
                    error = true;
                    errormsg += "Geen cijfers in de naam aub";
                }
            }
			/*
                if (allinput[i].value.match(/[a-zA-Z0-9_.-]+@[a-zA-Z0-9_\.\-]+\.[a-zA-Z]{2,}/)) {
                    error = true;
                    errormsg += "Email niet correct";
                }
            }
			*/
            if (allinput[i].name == "telefoon") {
                if (allinput[i].value.match(/[0-9-]*/)) {
                    error = true;
                    errormsg += "Geen geldig telefoonnummer";
                }
            }
        }
    }
    
    if (error == true) {
        alert(errormsg);
        return false;
    }
}

function removeElement(elid) {
    document.getElementById('texteditor').style.display = 'none';
    //var element = document.getElementById(elid);
    //element.parentNode.removeChild(element);
}

function closeDiv(div) {
      document.getElementById(div).style.display = 'none'; 
}
////
// Functie die windows laat bewegen
///
function makeMovable(doel, bron, event) {
    // laatst aangeklikte window bovenaan
    setHighestZ(document.getElementById(doel));
    var e;
    
    // Ervoor zorgen dat er geen selectie plaatsvind wanneer je schermpje over elementen of tekst beweegt.
    document.onselectstart = function() { return false; } // select in IE uitzetten
    document.onmousedown = function() {return false;} // select in mozilla uit
    
   // functie om cursorpositie x te verkrijgen
   function getxpos(e) {
        if(!e) e = window.event;
       var posx = (e.pageX ? e.pageX : e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft);
        return posx;
    }
    // functie om cursorpositie x te verkrijgen
    function getypos(e) {
        if(!e) e = window.event;
        var posy = (e.pageY ? e.pageY : e.clientY + document.body.scrollTop + document.documentElement.scrollTop);var left = parseInt(document.getElementById(doel).style.left);
        return posy;
    }
    // variabelen initialiseren
    var left = parseInt(document.getElementById(doel).style.left);
    var top = parseInt(document.getElementById(doel).style.top);
    var initialXOffset =  left - getxpos(event);
    var initialYOffset =  top - getypos(event);

    // Makemovable wordt aangeroepen met onmousedown, daarom volstaat hier onmousemove
    document.onmousemove = function(event) {
        
        var newx = getxpos(event) + initialXOffset;
        var newy =  getypos(event) + initialYOffset;
        
        // waardes in testfields setten
        //document.getElementById("testfield").value = newx;
        //document.getElementById("testfield2").value = newy;
        
        // ervoor zorgen dat horizontaal alleen binnen bepaalde marges schermpje bewogen kan worden
        if (newx > 0) {
            if (screen.width -200 > newx) {
                document.getElementById(doel).style.left = newx + 'px';
            }
        } else {
             document.getElementById(doel).style.left = '0px';
        }
        
        // ervoor zorgen dat verticaal geschoven kan worden binnen marges
        if (newy > 0) {
            if (screen.height - 250 > newy) {
                document.getElementById(doel).style.top = newy + 'px';
            }
        } else {
            document.getElementById(doel).style.top = '0px';
        }
    }
    
    // Ervoor zorgen dat wanneer je muis loslaat schermpje blijft staan
    document.onmouseup = function() {
        document.onselectstart = function() { return true; } // select in IE aanzetten
        document.onmousedown = function() {return true;} // select in mozilla aan
        enableSelection(document.body);
        // event-listeners weer uitzetten
        document.onmousemove = null;
        document.onmouseup = null;
    }
    
    // weet niet of dit moet blijven
    return false;
  }

/*
Searchbox
*/

/* naam van de funtie */
function searchSite(searchString) {
    if (searchString == "") {
		if (document.getElementById("searchdiv")) {
			document.getElementById("searchdiv").parentNode.removeChild(document.getElementById("searchdiv"));
			return false;
		}
    }
    /* kijken of activeXobject aan te maken of een XMLHttpRequest */
    if (window.ActiveXObject) { // IE
        object = new ActiveXObject("Microsoft.XMLHTTP");
    } else if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        object = new XMLHttpRequest();
        object.overrideMimeType('text/xml');
        /* wanneer geen ajax ondersteuning dan bericht weergeven */
    } else 	{
		alert('Uw browser ondersteunt dit script niet.');
		return false;
    }

    object.open('GET', 'cms/ajax/searchxml.php?q=' + searchString, true);
    object.send(null);
    
    /* event listener aan het ajax-obejct koppelen. Wanneer readystate veranderd, dan functie aanroepen */
    object.onreadystatechange = function() {
    
        runFunction(object)
    }

    /*  hier de functie die aangeroepen wordt bij readystatechange */
    function runFunction(ajaxobject) {

    /* Wanneer readystate 4 zandloper verbergen en scherm opbouwen met xml gegevens */
    if (ajaxobject.readyState == 4) {
        // zandloper verbergen  //
        //document.getElementById("hourglass").style.display = "none";
        document.body.style.cursor='default';
  
        // xml uitlezen //
        var docXML = ajaxobject.responseXML;
        var pagelink = docXML.getElementsByTagName("pagelink");
        var content = docXML.getElementsByTagName("searchcontent");

        // elementen initieren //
        var searchdiv = document.createElement("div");
        searchdiv.setAttribute("class", "searchbox");
        searchdiv.setAttribute("id", "searchdiv");
        searchdiv.setAttribute("style", "left:" + centerPixel.centerObjectHor(400) + ";top:100px;");
        
        // eigenschappen van elementen setten  //
        var searchresults = pagelink.length;
        var searchcontent = "Resultaat:<br/><br/>";
        
		for (i = 0; i < searchresults; i++) {
			var sentence = content[i].firstChild.nodeValue;
			sentence = sentence.replace(/\[strong\]/gi, "<strong>");
			sentence = sentence.replace(/\[\/strong\]/gi, "</strong>");
            searchcontent += "<a href=\"" + pagelink[i].firstChild.nodeValue + ".html\">" + pagelink[i].firstChild.nodeValue + ".html</a><br/>" + sentence + "<br/><br/>";    
        }

        searchdiv.innerHTML = searchcontent;
        
        // wanneer schermpje nog niet bestaat deze aanmaken //
        if(document.getElementById("searchdiv")) {
            document.getElementById("searchdiv").parentNode.removeChild(document.getElementById("searchdiv"));
        }
		// window opbouwen //
		document.body.appendChild(searchdiv);
          
    // readystate is lager dan 4, zandloper weergeven //
    } else {
        //document.getElementById("hourglass").style.display = "block";
        //document.body.style.cursor='wait';
    }
    }
}

/*
Searchbox
*/

/* naam van de funtie */
function searchSite(searchString) {
    if (searchString === "") {
        if(document.getElementById("searchdiv")) {
            document.getElementById("searchdiv").parentNode.removeChild(document.getElementById("searchdiv"));
        }
        return false;
    }
    /* kijken of activeXobject aan te maken of een XMLHttpRequest */
    if (window.ActiveXObject) { // IE
        object = new ActiveXObject("Microsoft.XMLHTTP");
    } else if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        object = new XMLHttpRequest();
        object.overrideMimeType('text/xml');
        /* wanneer geen ajax ondersteuning dan bericht weergeven */
    } else 	{
		alert('Uw browser ondersteunt dit script niet.');
		return false;
}

object.open('GET', 'cms/ajax/searchxml.php?q=' + searchString, true);
object.send(null);

/* event listener aan het ajax-obejct koppelen. Wanneer readystate veranderd, dan functie aanroepen */
object.onreadystatechange = function() {

    runFunction(object)
}

/*  hier de functie die aangeroepen wordt bij readystatechange */
function runFunction(ajaxobject) {

    /* Wanneer readystate 4 zandloper verbergen en scherm opbouwen met xml gegevens */
    if (ajaxobject.readyState == 4) {
        
        // zandloper verbergen  //
        //document.getElementById("hourglass").style.display = "none";
        document.body.style.cursor='default';

        // xml uitlezen //
        var docXML = ajaxobject.responseXML;
        var pagelink = docXML.getElementsByTagName("pagelink");
        var contentonline = docXML.getElementsByTagName("searchcontent");
        
        // elementen initieren //
        var searchdiv = document.createElement("div");
        searchdiv.setAttribute("class", "searchbox");
        searchdiv.setAttribute("id", "searchdiv");
        searchdiv.setAttribute("style", "left:" + centerPixel.centerObjectHor(400) + ";top:100px;");
        
        // eigenschappen van elementen setten  //
        var searchresults = pagelink.length;
        
        if (searchresults > 0) {
            var searchcontent = "Resultaat:<br/><br/>";
            for (i = 0; i < searchresults; i++) {
                link = (pagelink[i].hasChildNodes() ? pagelink[i].firstChild.nodeValue : "");
                content = (contentonline[i].hasChildNodes() ? contentonline[i].firstChild.nodeValue : "");
                searchcontent += "<a href=\"" + link + ".html\">" + link + ".html</a><br/>" + content + "<br/><br/>";    
            }
			searchdiv.innerHTML = "<img src=\"images/icons/floatdivclose.png\" class=\"floatdivclose\" onclick=\"this.parentNode.parentNode.removeChild(this.parentNode);\" alt=\"sluiten\"/><div class=\"scrollmessage\">" + searchcontent + "</div>";
        } else {
            searchdiv.innerHTML = "<img src=\"images/icons/floatdivclose.png\" class=\"floatdivclose\" onclick=\"this.parentNode.parentNode.removeChild(this.parentNode);\" alt=\"sluiten\"/>Geen resultaat gevonden.";   
        }
        
       // wanneer schermpje nog niet bestaat deze aanmaken //
       if(document.getElementById("searchdiv")) {
            document.getElementById("searchdiv").parentNode.removeChild(document.getElementById("searchdiv"));
        }
            // window opbouwen //
            document.body.appendChild(searchdiv);
    // readystate is lager dan 4, zandloper weergeven //
    } else {
        //document.getElementById("hourglass").style.display = "block";
        //document.body.style.cursor='wait';
    }
    }
}

////
// Aanmelden voor nieuwsbrief
///

function mailingSubscribe() {
    
        // elementen initieren
        var mailingdiv = document.createElement("div");
        mailingdiv.setAttribute("class", "searchbox");
        mailingdiv.setAttribute("id", "mailingdiv");
        mailingdiv.setAttribute("style", "left:" + centerPixel.centerObjectHor(400) + ";top:100px;");
		mailingdiv.innerHTML = "<img src=\"images/icons/floatdivclose.png\" class=\"floatdivclose\" onclick=\"this.parentNode.parentNode.removeChild(this.parentNode);\" alt=\"sluiten\"/><h1>Aanmelden voor de nieuwsbrief</h1><form action=\"\" method=\"post\"><input type=\"hidden\" name=\"mailingsubscribe\"/><label>Aanhef</label><select name=\"mailaanhef\"><option name=\"\" value=\"f\">Mevr.</option><option value=\"m\">Dhr.</option><option value=\"c\">Firma</option></select><label>Voornaam</label><input type=\"text\" name=\"mailvoornaam\"><label>Achternaam (incl. tussenvoegsel)</label><input type=\"text\" name=\"mailachternaam\"><label>E-mailadres</label><input type=\"text\" name=\"mailemailadres\"><br/><br/><input type=\"submit\" value=\"Aanmelden\"/><br/><br/></form>";   
    
         // wanneer schermpje nog niet bestaat deze aanmaken
        if(document.getElementById("mailingdiv")) {
            document.getElementById("mailingdiv").parentNode.removeChild(document.getElementById("mailingdiv"));
        }
		// window opbouwen
		document.body.appendChild(mailingdiv);
}
