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;
}
}

// 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 resizableElement(id,minY,maxY) {
    
    ////
    // vars setten
    ///
    this.id = id;
    this.id = (typeof(id) == "object") ? id : document.getElementById(id); // zorgt ervoor dat this.is altijd object is   
    this.setstatus();
    this.minY = minY;
    this.maxY = (typeof(maxY) == "undefined") ? this.id.getAttribute("height"): maxY;
    this.effect = 1; // effect dat moet optreden
    this.size = 50;
    this.step = 8; // pixels per stap
    elementid = this.id.id;
    
    // 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;
    var ditobject = this; // bevat nu verwijzing naar object
    if (window["stat" + this.id.id] == true) {
        this.size = this.maxY;
        window.setInterval(function() {ditobject.shrink();}, 10);
        // reverse
        window["stat" + this.id.id] = !window["stat" + this.id.id];
    } else {
        this.size = this.minY;
        window.setInterval(function() {ditobject.expand();}, 10);
        // reverse
        window["stat" + this.id.id] = !window["stat" + this.id.id];
    }
    // stat true > hide stat false > show
}

// functie om div in te klappen
resizableElement.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
resizableElement.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;};
    }
}

resizableElement.prototype.setstatus = function() {
    if (window["stat" + this.id.id] == "undefined") {
        
        if(this.id.style.display == "none" || this.id.id == "cmsmenu") {
            this.id.style.display == "block";
            window["stat" + this.id.id] = true;
            // zorgen dat wanneer je op link klikt submenu niet invouwt
        }
        else {
            window["stat" + this.id.id] = false;
        }
    }
}

// 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].name == "contemail") {
                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]{1}[0-9]{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 === "") {
        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("content_online");
        
        // 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++) {
            searchcontent += "<a href=\"" + pagelink[i].firstChild.nodeValue + ".html\">" + pagelink[i].firstChild.nodeValue + ".html</a><br/>" + contentonline[i].firstChild.nodeValue + "<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';
    }
}
}
