/// <reference path="mootools.js" /> 

window.addEvent('domready', function () {
    //swfobject.embedSWF("/popma/images/popma.swf", "header", "800", "113", "8.0.0", false, {}, {}, {});

    markExternalLinks();
});


var objimages = [];
var activeimg = 0;

var switchcounter = 0;

var routedisplayed = false;
var vergrotinggezien = false;
var satellitephoto = false;
function preload() {
    var list = $("photobar").getElements("a");
    for (i = 0; i < list.length; i++) {
        /*var photobig = new Element('img');
        photobig.src = list[i].href + "&breedte=571";
        photobig.setStyle('width', '0');
        photobig.setStyle('height', '0');
        photobig.setStyle('position', 'absolute');
        photobig.setStyle('left', '0');
        photobig.setStyle('top', '0');

        $(list[i]).appendChild(photobig);*/
    }

    initRoutePlanner();
}

function initObjectPage() {
    initObjectMapViews();
    objimages = new Array();

    var list = $("photobar").getElements("a");
    for (i = 0; i < list.length; i++) {
        if (list[i].href + "&breedte=571" == $('photo').src) {
            activeimg = i;
        }
        objimages.push([list[i].href, list[i].title]);

        var photosmall = new Element('img');
        photosmall.src = "/images/transparant.png";
        photosmall.setStyle('width', '105px');
        photosmall.setStyle('height', '70px');
        photosmall.setStyle('position', 'absolute');
        photosmall.setStyle('left', '0');
        photosmall.setStyle('top', '0');
        photosmall.className = "smalloverlay";

        $(list[i]).appendChild(photosmall);
        $(list[i].parentNode).setStyle('display', 'block');
        $(list[i].parentNode).setStyle('position', 'relative');

    }

    var photoobjectbg = $('objectphoto');

    photoobjectbg.setStyle('position', 'relative');
    var photolarge = new Element('img');
    photolarge.src = "/images/transparant.png";
    photolarge.setStyle('width', '570px');
    photolarge.setStyle('height', '382px');
    photolarge.setStyle('position', 'absolute');
    photolarge.setStyle('left', '0');
    photolarge.setStyle('top', '0');

    $('photo').setStyle('position', 'absolute');
    $('photo').setStyle('left', '0');
    $('photo').setStyle('top', '0');
    $('photo').parentNode.appendChild(photolarge);

    $("photobar").getElements("a").addEvent('click', function (myEvent) {
        myEvent.stop();
        $('objectphotolink').href = myEvent.target.parentNode.href;
        $('photo').src = myEvent.target.parentNode.href + '&breedte=571';

        for (i = 0; i < list.length; i++) {
            if (list[i].href + "&breedte=571" == $('photo').src) {
                activeimg = i;
            }
        }

        photoView();
    });

    $('objectphotolink').addEvent('click', function (myEvent) {
        myEvent.stop();
        Slimbox.open(objimages, activeimg, {
            loop: true, 			// Allows to navigate between first and last images
            overlayOpacity: 0.8, 		// 1 is opaque, 0 is completely transparent (change the color in the CSS file)
            resizeDuration: 300, 		// Duration of each of the box resize animations (in milliseconds)
            resizeTransition: false, 	// Default transition in mootools
            initialWidth: 570, 		// Initial width of the box (in pixels)
            initialHeight: 382, 		// Initial height of the box (in pixels)
            animateCaption: true,
            showCounter: true, 		// If true, a counter will only be shown if there is more than 1 image to display
            counterText: "Foto {x} van {y}"
        });
        if (!vergrotinggezien) {
            vergrotinggezien = true;
            teller('vergroting');
        }
    });


    $('routebeschrijvinglink').addEvent('click', function (myEvent) {
        myEvent.stop();
        routeView();
        if (!routedisplayed) {
            vergrotinggezien = true;
            teller('route');
        }
    });

    $('luchtfotolink').addEvent('click', function (myEvent) {
        myEvent.stop();
        satelliteView();

        if (!satellitephoto) {
            satellitephoto = true;
            teller('luchtfoto');
        }
    });
    if ($('filmlink2') != null) {
        $('filmlink2').addEvent('click', function (myEvent) {
            myEvent.stop();
            formView('film');
        });
    }
    if ($('filmlink') != null) {
        $('filmlink').addEvent('click', function (myEvent) {
            myEvent.stop();
            formView('film');
        });
    }

    reactatobjectfrmObject = $('reactatobjectfrm');
    mail2friendfrmObject = $('mail2friendfrm');
    reactatobjectfrmObject.setStyle('display', 'none');
    mail2friendfrmObject.setStyle('display', 'none');
    reactatobjectfrmObject.parentNode.removeChild(reactatobjectfrmObject);
    mail2friendfrmObject.parentNode.removeChild(mail2friendfrmObject);

    $('objectforms').appendChild(reactatobjectfrmObject);
    $('objectforms').appendChild(mail2friendfrmObject);

    if ($('film') != null) {
        $('film').inject($('objectforms'));
    }

    initReactAtObjectValidator.delay(150, this);
    initSend2FriendValidator.delay(150, this);


    $('objectforms').appendChild(reactatobjectfrmObject);
    $('objectforms').appendChild(mail2friendfrmObject);

    initReactAtObjectValidator.delay(150, this);
    initSend2FriendValidator.delay(150, this);

    fixObjectHeight();
    $('mail2friendlink').addEvent('click', function (myEvent) {
        myEvent.stop();
        formView('mail2friend');
    });

    $('reactatobjectlink').addEvent('click', function (myEvent) {
        myEvent.stop();
        formView('reactatobject');
    });


    initSliders();


    fixObjectHeight.delay(100, this);
    preload.delay(100, this);


    if (window.location.hash == "#film") {
        formView('film');
    }
}

function markExternalLinks() {
    $$('a').each(function (item, key) {
        if (item.getAttribute("rel") == "pdf" && item.getAttribute("href")) {
            item.target = "_blank";
        }
        if (item.getAttribute("rel") == "external" && item.getAttribute("href")) {
            item.target = "_blank";
        }
    });
}

var photoview = null;
var routeview = null;
var routetextview = null;
var routeform = null;
var satelliteview = null;
var formview = null;

function photoView() {
    routeview.start({ 'opacity': 0, 'position': 'absolute' });
    formview.start({ 'opacity': 0, 'position': 'absolute' });
    photoview.start({ 'opacity': 1, 'position': 'absolute' });

    if (routetextview != null) {
        routetextview.start({ 'height': 0 });
    }
    if (routeform != null) {
        routeform.start({ 'height': 0 });
    }

    if (window.getScroll().y > $('objectphoto').getPosition().y) {
        var myFx = new Fx.Scroll(window, { duration: 250, wait: false }).toElement('objectphoto');
    }


}

function routeView() {
    if (map.getCurrentMapType() != G_NORMAL_MAP) {
        routeview.start({ 'opacity': [0, 0], 'position': 'absolute' });
        map.setMapType(G_NORMAL_MAP);
        map.setZoom(15);
    }
    photoview.start({ 'opacity': 0, 'position': 'absolute' });
    routeview.start({ 'opacity': 1, 'position': 'absolute' });
    formview.start({ 'opacity': 0, 'position': 'absolute' });
    $('routeform').setStyle("visibility", "visible");
    routeform.start({ 'height': "20pt" });
    if (window.getScroll().y > $('objectphoto').getPosition().y) {
        var myFx = new Fx.Scroll(window, { duration: 250, wait: false }).toElement('objectphoto');
    }
}

function satelliteView() {
    if (map.getCurrentMapType() != G_SATELLITE_MAP) {
        routeview.start({ 'opacity': [0, 0], 'position': 'absolute' });
        map.setMapType(G_SATELLITE_MAP);
        map.setZoom(17);
    }
    routeview.options.duration = 500;
    photoview.start({ 'opacity': 0, 'position': 'absolute' });
    formview.start({ 'opacity': 0, 'position': 'absolute' });
    routeview.start({ 'opacity': 1, 'position': 'absolute' });

    $('routeform').setStyle("visibility", "visible");
    routeform.start({ 'height': "20pt" });
    if (window.getScroll().y > $('objectphoto').getPosition().y) {
        var myFx = new Fx.Scroll(window, { duration: 250, wait: false }).toElement('objectphoto');
    }
}

function teller(soort) {
    if (objectid > 0) {
        var myRequest = new Request({ method: 'get', url: '/ajaxteller.asp' });
        myRequest.send('objectid=' + objectid + '&teller=' + soort + '&async=true');
    }
}

// objectforms

if (typeof console === "undefined") {
    console = { log: function () { } };
}

var activeobjectfrm = null;

var reactatobjectfrmObject = null;
var mail2friendfrmObject = null;
var filmObject = null;

function formView(frm) {
    console.log(frm);
    var f = $('objectforms');
    if (activeobjectfrm != frm) {
        formview.start({ 'opacity': 0, 'position': 'absolute' });


        activeobjectfrm = frm;
        formView.delay(250, this, frm);
        return;
    }



    if (frm == "mail2friend") {
        //if ($('reactatobjectfrm')) {
        //    reactatobjectfrmObject = $('reactatobjectfrm');
        $('reactatobjectfrm').setStyle('display', 'none');
        $('mail2friendfrm').setStyle('display', 'block');
        if ($('film') != null) {
            $('film').setStyle('display', 'none');
        }
        //}
        //f.innerHTML = '';
        //f.appendChild(mail2friendfrmObject);
    } else if (frm == "reactatobject") {
        console.log("HUH?");
        $('mail2friendfrm').setStyle('display', 'none');

        $('reactatobjectfrm').setStyle('display', 'block');
        if ($('film') != null) {
            $('film').setStyle('display', 'none');
        }
        //if ($('mail2friendfrm')) {
        //    mail2friendfrmObject = $('mail2friendfrm');
        //}
        //f.innerHTML = '';
        //f.appendChild(reactatobjectfrmObject);

        //if ($('reactatobjectfrm')) {
        //    reactatobjectfrmObject = $('reactatobjectfrm');
        //$('reactatobjectfrm').setStyle('display', 'none');
        //$('mail2friendfrm').setStyle('display', 'block');
        //}
        //f.innerHTML = '';
        //f.appendChild(mail2friendfrmObject);
    } else {
        // film
        $('mail2friendfrm').setStyle('display', 'none');
        $('reactatobjectfrm').setStyle('display', 'none');


        if ($('film') != null) {
            $('film').setStyle('display', 'block');
        }
    }

    //$('mail2friendfrm').setStyle('display', 'none');

    //$('reactatobjectfrm').setStyle('display', 'block');
    //if ($('mail2friendfrm')) {
    //    mail2friendfrmObject = $('mail2friendfrm');
    //}
    //f.innerHTML = '';
    //f.appendChild(reactatobjectfrmObject);


    routeview.start({ 'opacity': 0, 'position': 'absolute' });
    photoview.start({ 'opacity': 0, 'position': 'absolute' });
    formview.start({ 'opacity': 1, 'position': 'absolute' });
    if (routetextview != null) {
        routetextview.start({ 'height': 0 });
    }
    if (routeform != null) {
        routeform.start({ 'height': 0 });
    }

    if (window.getScroll().y > $('objectphoto').getPosition().y) {
        var myFx = new Fx.Scroll(window, { duration: 250, wait: false }).toElement('objectphoto');
    }
}

function initSliders() {
    photoview = new Fx.Morph('objectphoto', { transition: Fx.Transitions.linear, link: 'chain' });
    routeview = new Fx.Morph('objectmap', { transition: Fx.Transitions.linear, link: 'chain' });
    formview = new Fx.Morph('objectforms', { transition: Fx.Transitions.linear, link: 'chain', duration: 250 });
    routeview.start({ 'opacity': [0, 0], 'position': ['absolute', 'absolute'] });
    photoview.start({ 'opacity': [1, 1], 'position': ['absolute', 'absolute'] });
    formview.start({ 'opacity': [0, 0], 'position': ['absolute', 'absolute'] });
}

function initRoutePlanner() {
    routeform = new Fx.Morph('routeform', { transition: Fx.Transitions.linear });
    routeform.start({ 'height': [0, 0] });
    $('routebeschrijvingform').addEvent('submit', function (myEvent) { myEvent.stop(); toonroutebeschrijving($('routebeschrijvingfrom').value) });
    $('routebeschrijvingformsubmit').addEvent('click', function (myEvent) { myEvent.stop(); toonroutebeschrijving($('routebeschrijvingfrom').value) });
}

function initContactRoutePlanner() {
    $('routeplannerfrm2').addEvent('submit', function (e) {
        e.stop();
        toonroutebeschrijving($('saddr').value, $('daddr').value);
    });
}

function initAdvancedRoutePlanner() {
    $("routetext").setStyle("position", "relative");
    routetextview = new Fx.Morph('route', { transition: Fx.Transitions.linear });
    routetextview.start({ 'height': [0, 0] });
}

function initObjectMapViews() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("objectmap"));
        geocoder = new GClientGeocoder();

        //map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        map.setMapType(G_SATELLITE_MAP);

        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

        if (longitude != '' && latitude != '') {
            var point = new google.maps.LatLng(longitude, latitude);
            displayPoint(point);
        } else {
            if (geocoder) {
                geocoder.getLatLng(
			  objectaddress,
			  function (point) {
			      if (!point) {
			          //alert(objectaddress + " niet gevonden");
			      } else {
			          displayPoint(point);
			      }
			  }
			);
            }
        }
    }
}

function displayPoint(point) {
    map.setCenter(point, 17);
    var marker = new GMarker(point);
    map.addOverlay(marker);
    marker.openInfoWindowHtml('<p><strong>' + objectaddress + '</strong></p>');
}

var directions = null;
function toonroutebeschrijving(from, to) {
    if (to == null && objectaddress != null && objectaddress != "") {
        to = objectaddress;
    }
    if (from.indexOf(",") < 0) {
        from += ",nl";
    }
    if (directions == null) {
        directions = new GDirections(map, $('routetext'));
        GEvent.addListener(directions, "load", onGDirectionsLoad);
        GEvent.addListener(directions, "error", handleErrors);
        GEvent.addListener(directions, "addoverlay", onGDirectionsOverlay);
    }

    $('routetext').innerHTML = '';

    directions.clear();

    var dire = "from: " + from + " to: " + to;
    directions.load(dire);

    return false;
}

function onGDirectionsLoad() {

}

function onGDirectionsOverlay() {
    map.setMapType(G_NORMAL_MAP);
    fixObjectHeight();
    if (routetextview != null) {
        routetextview.start({ 'height': $("routetext").getStyle("height") });
    }
}

function handleErrors() {
    if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
        displayError("Vertrek of aankomstadres niet gevonden. Mogelijk is het adres nog niet bekend bij Google of is het adres onjuist.\nError code: " + directions.getStatus().code);
    else if (directions.getStatus().code == G_GEO_SERVER_ERROR)
        displayError("Tijdens het ophalen van de lokatiegegevens is iets fout gegaan.\n Error code: " + directions.getStatus().code);

    else if (directions.getStatus().code == G_GEO_MISSING_QUERY)
        displayError("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + directions.getStatus().code);


    else if (directions.getStatus().code == G_GEO_BAD_KEY)
        displayError("Google Maps key verkeerd. \n Error code: " + directions.getStatus().code);

    else if (directions.getStatus().code == G_GEO_BAD_REQUEST)
        displayError("Fout gevonden in de route, kan de route niet weergeven.\n Error code: " + directions.getStatus().code);

    else displayError("Een onbekende fout is opgetreden.");

    routetextview.start({ 'height': $("routetext").getStyle("height") });
}

function displayError(e) {
    $('routetext').innerHTML = "<p>" + e + "</p>";
}

var selectors = null;
var pag = 1;
var os = "";
var s = "";
var o = "";

var useAjax = false;

var css = null;

function initBOG() {
    selectors = new ObjectSelector($$(".objectcriteria"));
    os = "BOG";
    $('zoekbedrijfspanden').addEvent('click', function (e) {
        e.stop();
        document.location = selectors.initSearch("/objecten.asp?");
    });
}

var ObjectSelector = new Class({
    initialize: function (objects) {
        this.selectors = new Array();
        this.objects = objects;
        this.page = 1;
        objects.each(function (item, key) {
            this.selectors[item.id] = new ObjectCriterium(item, this);
        }, this);

    }
});
ObjectSelector.implement({
    initSearch: function (url) {
        var str = "";

        this.objects.each(function (item, key) {
            if (str != "") {
                str += "&";
            }
            str += this.selectors[item.id].getValue();
        }, this);


        str += "&pag=" + pag + "&os=" + os + "&s=" + s + "&o=" + o;

        if ($('zoekstraatinput') != null) {
            str += "&q=" + $('zoekstraatinput').value;
        }

        return url + str;
    },
    initAjaxSearch: function () {
        overlay.tween('opacity', 0.5);
        url = this.initSearch("/ajaxobjecten.asp?");
        if (useOpacity) {
            searchobjects.start({ 'opacity': 0.7 });
        }

        $$('.tool-tip').each(function (el) { el.set('tween', { duration: 'short' }); el.tween('opacity', 0); });
        tips.detach('.tooltip');

        var myHTMLRequest = new Request.HTML({ url: url,
            onSuccess: function (html) {
                $('searchresults').empty();
                $('searchresults').adopt(html);
                if (useOpacity) {
                    searchobjects.start({ 'opacity': [0.7, 1] });
                }
                overlay.tween('opacity', 0);
                initObjecten();
            }
        }).send();

        url = this.initSearch("/ajaxobjectselectors.asp?");
        var myHTMLRequest = new Request.HTML({ url: url,
            onSuccess: function (html) {


                $('selectors').empty();
                $('selectors').adopt(html);
                //searchobjects.start({ 'opacity': [0.7, 1] });
                initObjecten();
            }
        }).send();
    }
});

var ObjectCriterium = new Class({
    initialize: function (object, parent) {
        this.parent = parent;
        this.object = object;
        this.criteria = new Array();
        this.object.getElements('a').each(function (link, k) {
            link.criteriaobj = this;
            this.criteria[link.rel] = link;
            link.removeEvents('click');
            link.addEvent('click', function (myEvent) {
                myEvent.stop();
                this.blur();
                if (this.rel == "null") {
                    if (!this.hasClass("selected")) {
                        this.criteriaobj.object.getElements('a').each(function (el, pos) {
                            if (el.rel != "null") {
                                el.removeClass("selected");
                            }
                        });
                        this.addClass("selected");

                    }
                } else {
                    if (this.hasClass("selected")) {
                        this.removeClass("selected");
                        if (this.criteriaobj.object.getElements('a.selected').length == 0 && this.criteriaobj.criteria["null"] != null) {
                            this.criteriaobj.criteria["null"].addClass("selected");
                        }
                    } else {

                        var links = this.criteriaobj.object.getElements('a');

                        var relElems = [];
                        for (var i = 0; i < links.length; i++) {
                            if (links[i].get('rel') != null && links[i].rel.indexOf("null") >= 0) {

                                relElems[relElems.length] = (links[i]);
                            }
                        }
                        if (relElems.length > 0) {
                            var n = relElems[0];
                            if (n != null) {
                                if (n.hasClass("selected")) {
                                    n.removeClass("selected");
                                }
                            }
                        }
                        this.addClass("selected");
                    }
                }
                if (useAjax) {
                    this.criteriaobj.parent.initAjaxSearch();
                }


            }, link);
        }, this);
    }
});
ObjectCriterium.implement({
    getValue: function () {
        var str = "";

        this.object.getElements('a.selected').each(function (el, pos) {
            if (el.rel != "null") {
                if (str != "") {
                    str += '|';
                }
                str += el.rel;
            }
        });
        return this.object.id + "=" + str.replace(/(noindex)/gi, "").replace(/\s/gi, "");
    }
});

var searchobjects = null;
var runningeffects = Array();

var overlay = null;

function resetOverlay() {
    if (overlay != null) {
        $$('.tool-tip').each(function (el) { el.parentNode.removeChild(el) });
        overlay.setStyle('height', Math.max($("page").getSize().y, window.getSize().y) + "px");
        overlay.setStyle('top', 0);
    }
}

function initObjecten() {
    selectors = new ObjectSelector($$(".objectcriteria"));

    searchobjects = new Fx.Morph('searchresults', { transition: Fx.Transitions.sineInOut, link: 'chain', duration: 'short' });
    ajaxFooter();
    $$('.tooltip').each(function (el) {
        if ($(el).getProperty('title') != null) {
            var title = $(el).getProperty('title').split('::');
            if (title.length == 1) {
                el.store('tip:title', title[0]);
                el.store('tip:text', '');
            } else {
                el.store('tip:title', title[0].trim());
                el.store('tip:text', "- " + title[1].trim().replace(" en ", "<br/>- ").replace(/,/g, "<br/>- "));
            }
        }
    });
    if (!$("myoverlay")) {
        overlay = new Element('div', { 'id': 'myoverlay', 'styles': { 'position': 'absolute', 'left': 0, 'top,': 0, 'background': '#000000', 'opacity': 0.0, 'width': '100%', 'height': '400px'} });
        overlay.set('tween', { duration: 500 });
        var overlayimg = new Element('img', { 'src': '/slimbox/css/loading.gif', 'styles': { 'position': 'relative', 'top': '200px', 'left': '50%', 'margin-left': '-16px', 'background': '#fff', 'border': 'solid 5px #fff '} });
        overlay.appendChild(overlayimg);
        document.body.appendChild(overlay);
    }
    resetOverlay();
    window.addEvent('resize', function (ev) { resetOverlay(); });
    //window.addEvent('scroll', function(ev) { resetOverlay(); });

    // add tips
    tips = new Tips($$('.tooltip'), {
        className: 'tool-tip',
        showDelay: 100,
        hideDelay: 400,
        onShow: function (tip) {
            if (advanced) {
                tip.fade('in');
            } else {
                tip.setStyle('visibility', 'visible');
            }
        },
        onHide: function (tip) {
            if (advanced) {
                tip.fade('out');
            } else {
                tip.setStyle('visibility', 'hidden');
            }
        }
    });


    css = new CSS();

    $$(".searchresultlist .movielink").each(function (el) {
        el.addEvent('click', function (ev) {
            var linkobj = ev.target;
            c = 10;
            while (linkobj.href == null & --c > 0) {
                linkobj = linkobj.parentNode;
            }
            document.location = linkobj.href;
            ev.stop();
        });
    });

    $$(".searchresultlist table").each(function (el) { /*  td, .searchresultlist table th */

        el.addEvent('mouseenter', function (ev) {
            var objparent = ev.target;
            var cnt = 10;
            while (objparent.tagName != "TABLE" && --cnt > 0) {
                objparent = objparent.parentNode;
            }
            if (objparent.tagName == "TABLE") {
                var n = $(objparent.parentNode);
                if (Browser.Engine.trident && Browser.Engine.version == 4) {
                    n.addClass("hover");
                } else {
                    /*$(objparent.parentNode).addClass("hover");*/
                    n.set('tween', { duration: 50 });
                    n.tween('background-color', '#ffeeee');
                    //n.addClass("hover");
                }
                removeFaders(n.className.match(/row[0-9]*/));
            }
        });
        el.addEvent('mouseleave', function (ev) {
            var objparent = ev.target;
            var cnt = 10;
            while (objparent.tagName != "TABLE" && --cnt > 0) {
                objparent = objparent.parentNode;
            }

            if (objparent.tagName == "TABLE") {
                var n = $(objparent.parentNode);
                if (Browser.Engine.trident && Browser.Engine.version == 4) {
                    n.removeClass("hover");
                } else {
                    /*$(objparent.parentNode).addClass("hover");*/
                    n.set('tween', { duration: 500 });

                    if (n.hasClass("even")) {
                        n.tween('background-color', '#ededed');
                    } else {
                        n.tween('background-color', '#ffffff');
                    }
                }
                removeFaders(n.className.match(/row[0-9]*/));
            }
            return;

        });
        el.addEvent('click', function (ev) {
            var objparent = ev.target;
            var cnt = 10;
            while (objparent.tagName != "TABLE" && --cnt > 0) {
                objparent = objparent.parentNode;
            }
            var l = $$(".searchresultlist ." + objparent.parentNode.parentNode.className.match(/row[0-9]*/) + " .imgcol a");

            document.location = l[0].href;
            ev.preventDefault();
        });
    });



    fixHeight.delay(100);
    fixHeight.delay(2000);

    resetOverlay();
    initPlaatsen.delay(100);
}

function initPlaatsen() {
    if (!Browser.Engine.trident || Browser.Engine.version > 5) {
        var dowork = $('pl').getChildren().length > 7;
    } else {
        var dowork = aantalplaatsen > 8;
    }

    if (dowork) {
        var wr = $('plwrap');
        var pls = $('plsizer');
        var pla = $('pla');
        pla.setStyle('display', 'block');
        pla.setStyle('padding-left', 5);
        pla.removeEvents();
        pla.addEvent('click', function (e) {
            e.preventDefault();
            if ($(e.target).get('text') == 'Uitklappen') {
                e.target.set('html', '<strong>Inklappen</strong>');
                var x = $('plsizer');
                x.tween('height', x.getElement('ul').getSize().y);

            } else {
                $(e.target).set('html', '<strong>Uitklappen</strong>');

                var x = $('plsizer');
                x.tween('height', 92);
            }
        });
        pls.setStyle("overflow", "hidden");

        pls.setStyle("height", 92);
    } else {
        $('pla').setStyle('display', 'none');
    }
}

function removeFaders(current) {
    $$(".hover").each(function (el) {
        var n = el;
        if (!n.hasClass(current)) {
            if (n.hasClass("even")) {
                n.tween('background-color', '#ededed');
            } else {
                n.tween('background-color', '#ffffff');
            }
        }
    });
}

function removeOldFaders() {
    runningeffects.each(function (item, classname) {
        runningeffects[classname] = null;
        this.newbg = '#ffeeee';
        this.item = item;
        $$('.row' + classname).each(function (el) {
            if (!this.item) {
                this.newbg = el.className.match(/oneven/) ? '#ffffff' : '#ededed';
            }
            if (advanced) {
                el.tween('background-color', this.newbg);
            } else {
                el.setStyle('background-color', this.newbg);
            }

        }, this);


    });

}

var effects = Array();


var tips = null;

var useOpacity = false;
var advanced = false;

function initAdvancedObjecten() {
    useOpacity = true;
    advanced = true;
}

function ajaxFooter() {
    var n = $('actionsfooter2');
    if (n != null) {
        n.getElements('a').removeEvents('click');
        n.getElements('a').addEvent('click', function (e) {
            e.stop();
            pag = this.rel;
            url = "/ajaxobjecten.asp?";
            url = selectors.initSearch(url);
            if (useOpacity) {
                searchobjects.start({ 'opacity': 0.7 });
            }
            var myHTMLRequest = new Request.HTML({ url: url,
                onSuccess: function (html) {
                    $('searchresults').empty();
                    $('searchresults').adopt(html);
                    fixHeight.delay(100);
                    if (useOpacity) {
                        searchobjects.start({ 'opacity': [0.7, 1] });
                    }
                }
            }).send();
        });
    }
}

function fixHeight() {
    if (Browser.Engine.trident && Browser.Engine.version == 4) {
        $('selectors').setStyle('height', $('searchresults').getSize().y + "px");
    } else {
        $('selectors').setStyle('min-height', $('searchresults').getSize().y + "px");
    }
}

function fixObjectHeight() {
    if ($('objecttext')) {
        $('objecttext').setStyle("min-height", $('objectinfo').getStyle('height'));
        var ot = $('objecttext');
        var oth = ot.getStyle('height').toInt();
        var odh = $('objectdetails').getStyle('height').toInt()
        if (oth < odh) {
            ot.setStyle('height', odh + "px");
        } else {
            ot.setStyle('height', 'auto');
        }
    }
    if ($('contactrouteform')) {
        var ot = $('route');
        var oth = ot.getStyle('height').toInt();
        var odh = $('item4').getStyle('height').toInt()
        if (odh < oth) {
            $('item4').setStyle('height', oth);
            $('item5').setStyle('height', oth);
            $('item6').setStyle('height', oth);
        }
    }
}

function ValidateTelefoon() {
    var frm = document.forms["reactatobjectfrm"];
    if (frm.Telefoonprive + frm.Telefoonwerk + Telefoonmobiel == "") {
        alert("Vul een telefoonnummer in bij Telefoon prive, telefoon werk of telefoon mobiel.");
        return false;
    }
    return true;
}

function initReactAtObjectValidator() {
    var frmvalidator = new Validator("reactatobjectfrm");
    frmvalidator.addValidation("Naam", "req", "Naam is een verplicht veld");
    frmvalidator.addValidation("Voorletters", "req", "Voorletters is een verplicht veld");
    frmvalidator.addValidation("Adres", "req", "Adres is een verplicht veld");
    frmvalidator.addValidation("Postcode", "req", "Postcode is een verplicht veld");
    frmvalidator.addValidation("Plaats", "req", "Plaats is een verplicht veld");
    frmvalidator.addValidation("Email", "req", "E-mailadres is een verplicht veld");
    frmvalidator.setAddnlValidationFunction("ValidateTelefoon");
    frmvalidator.EnableMsgsTogether();
}

function initSend2FriendValidator() {
    var frmvalidator = new Validator("mail2friendfrm");
    frmvalidator.addValidation("NaamAfzender", "req", "Naam van de afzender is een verplicht veld");
    frmvalidator.addValidation("EmailAfzender", "req", "E-mailadres van de afzender is een verplicht veld");
    frmvalidator.addValidation("NaamFriend", "req", "Naam van vriend is een verplicht veld");
    frmvalidator.addValidation("EmailFriend", "req", "E-mailadres van vriend is een verplicht veld");
    frmvalidator.EnableMsgsTogether();
}


var CSS = new Class({

    local:
	{
	    self: 'CSS',
	    limited: ['dpi', 'border-radius'],
	    _rule: ''
	},

    options:
	{
	    rules: {}
	},

    xhtml:
	{
	    _style: null
	},

    initialize: function (options) {
        this.local = $merge(this.local, this.options, options, this.xhtml);
    },

    destroy: function () {
        if (this.local._style) this.local._style.destroy();
    },

    refresh: function () {
        var text = '';
        Hash.each(this.local.rules, function (rule, selector) {
            this.local._rule = '';
            Hash.each(rule, this._glue, this);
            text += (this.local._rule == '' ? '' : selector + '\n{\n' + this.local._rule + '}\n');
        }, this);

        this.destroy();
        this.local._style = new Element('style').set('type', 'text/css').inject(document.head);

        switch (Browser.Engine.name) {
            case 'trident':
                this.local._style.styleSheet.cssText = text;
                break;

            default:
                this.local._style.set('text', text);
                break;
        }

        return this;
    },

    _glue: function (value, property) {
        if (this[Browser.Engine.name + '_' + property]) {
            var pair;
            if (pair = this[Browser.Engine.name + '_' + property](value, property)) {
                this.local._rule += '\t' + pair[0] + ':' + pair[1] + ';\n';
            }
        }
        else if (!this.local.limited.contains(property)) {
            this.local._rule += '\t' + property + ':' + value + ';\n';
        }
    },

    add_prop: function (selector, property, value) {
        var rules = {}; rules[selector] = {}; rules[selector][property] = value;
        return this.add_rules(rules);
    },

    add_rule: function (selector, properties) {
        var rules = {}; rules[selector] = properties;
        return this.add_rules(rules);
    },

    add_rules: function (rules) {
        this.local.rules = $merge(this.local.rules, rules);
        return this;
    },

    remove_prop: function (selector, property) {
        delete this.local.rules[selector][property];
        return this;
    },

    remove_rule: function (selector) {
        delete this.local.rules[selector];
        return this;
    },

    remove_rules: function (selectors) {
        if (selectors) {
            selectors.each(this.remove_rule, this);
        }
        else {
            this.local.rules = {};
        }
        return this;
    },

    check_rule: function (selector) {
        return $defined(this.local.rules[selector]);
    }

});

CSS.implement({

    // ### TRIDENT ###

    'trident_opacity': function (value, property) {
        return ['filter', 'alpha(opacity=' + (value * 100) + ')'];
    },

    'trident_dpi': function (value, property) {
        if ($defined(window.screen.deviceXDPI)) {
            return ['font-size', ((96 / window.screen.deviceXDPI) * value).round() + '%'];
        }
        else {
            return ['font-size', value + '%'];
        }
    },

    // ### GECKO ###

    'gecko_border-radius': function (value, property) {
        return ['-moz-' + property, value];
    },

    // ### WEBKIT ###

    'webkit_border-radius': function (value, property) {
        return ['-webkit-' + property, value];
    }

    // ### PRESTO ###

});
