window.addEvents({
'domready': function() {
     
    hideLeesMeerTekstDiv();
        textResize();
        gotoShowroomDetail();
        setBoxHeight('overview');
        setBoxHeight('sitemap');
		initVisualBox();
        setPriceWidth();
        setInputHovers();
        initF1HeaderSearch();		
        initF13Zoekresultaten();
        initProductMoreInfo();	
       	addIconTooltips();
        initTabs($$('div.selectie_historie ul.tabs li'), $$('div.selectie_historie div.tabcontent'));
        initTabs($$('div.productinfo ul.tabs li'), $$('div.productinfo div.tabcontent'));
       	initA3BedrijfSwitch();
        initA3TerugbellenSwitch();
        detectRatingTab();
        addFormTooltips();
		if (document.getElement('.f5_visual .visual_bg')) {
	 		if (document.getElement('.f5_visual .visual_bg').getChildren().length > 1) document.getElement('.f5_visual .pushbox_nav').setStyle('display', 'block');
		}
   },
    'load': function() {
        initF11RateProduct();
        initShowroomMap();
        initProductDetailVisuals();
        initShowroomSlideshow();
        if ($('content_0_Formulier_UpdateProgress1')) positionAjaxOverlay();
    }
});

/*
* initF1HeaderSearch
* Adds interactivity to the search field in the header.
* 
* @author Barend van der Hout (barend[AT]efocus.nl)
*/
function initF1HeaderSearch() {
    if (!$('header_searchbox')) return;

    var elHeaderSearchBox = $('header_searchbox');
    var elHeaderSearchText = elHeaderSearchBox.getElement('.header_search_text');
    var elHeaderSearchBtn = elHeaderSearchBox.getElement('.submit');
    var strHeaderSearchTextDefault = elHeaderSearchText.getProperty('value');

    Element.Events.keyup_enter = {
        base: 'keyup',
        condition: function(event) {
            return (event.key == 'enter');
        }
    };

    elHeaderSearchText.addEvents({
        'focus': function() {
            if (elHeaderSearchText.getProperty('value') == strHeaderSearchTextDefault) elHeaderSearchText.setProperty('value', '');
        },
        'blur': function() {
            if (elHeaderSearchText.getProperty('value') == '') elHeaderSearchText.setProperty('value', strHeaderSearchTextDefault);
        },
        'keyup_enter': function() {
            elHeaderSearchBtn.fireEvent('click');
        }
    });

    elHeaderSearchBtn.addEvent('click', function() {
        // Search action goes here...
        //alert('Search button clicked (or enter pressed)');
        window.location = this.href + "?q=" + elHeaderSearchText.getProperty('value');
        return false;
    });
}

/*
* initF11RateProduct
* Rates a product on a scale of 10.
* 
* @author Rou-hun Fan (lowen[AT]efocus.nl)
* @author Ralph Meeuws (ralph.meeuws{AT}efocus.nl)
*/
function initF11RateProduct() { 
	if (!$(document.getElement('div.rate_this'))) return;

	var elRateInput = document.getElement('input.rateinput');
	var elRateThis = document.getElement('div.rate_this');
	var arrRatingStars = elRateThis.getElements('span');
	var arrRatings = ['rate_this1of10', 'rate_this2of10', 'rate_this3of10', 'rate_this4of10', 'rate_this5of10', 'rate_this6of10', 'rate_this7of10', 'rate_this8of10', 'rate_this9of10', 'rate_this10of10'];
	var currentClass;
	var currentRating;

	arrRatingStars.each(function(elRatingStar, n) {
		elRatingStar.addEvents({
			'mouseover': function() {
				elRateThis.removeClass(arrRatings[currentRating]);
				elRateThis.removeClass(currentClass);
				elRateThis.addClass(arrRatings[n]);
				currentClass = arrRatings[n];
			},
			'mouseout': function() {
				elRateThis.removeClass(currentClass);
				elRateThis.addClass(arrRatings[currentRating]);
			},
			'click': function() {
				elRateInput.set('value', n + 1);
				currentRating = n;
			}
		})
	})
}

/*
* initF13Zoekresultaten
* Adds interactivity to the search field in the search page.
* 
* @author Barend van der Hout (barend[AT]efocus.nl)
*/
function initF13Zoekresultaten() {
    if (!$('searchbox')) return;

    var elHeaderSearchBox = $('searchbox');
    var elHeaderSearchText = elHeaderSearchBox.getElement('.search_text');
    var elHeaderSearchBtn = elHeaderSearchBox.getElement('.submit');
    var strHeaderSearchTextDefault = elHeaderSearchText.getProperty('value');

    Element.Events.keyup_enter = {
        base: 'keyup',
        condition: function(event) {
            return (event.key == 'enter');
        }
    };

    elHeaderSearchText.addEvents({
        'focus': function() {
            if (elHeaderSearchText.getProperty('value') == strHeaderSearchTextDefault) elHeaderSearchText.setProperty('value', '');
        },
        'blur': function() {
            if (elHeaderSearchText.getProperty('value') == '') elHeaderSearchText.setProperty('value', strHeaderSearchTextDefault);
        },
        'keyup_enter': function() {
            elHeaderSearchBtn.fireEvent('click');
        }
    });

    elHeaderSearchBtn.addEvent('click', function() {
        // Search action goes here...
        //alert('Search button clicked (or enter pressed)');
        window.location = this.href + "?q=" + elHeaderSearchText.getProperty('value');
        return false;
    });
}

/**
* function initProductMoreInfo
*
* shows or hides more productinfo
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function initProductMoreInfo() {

    var productIntros = $$('ul.productoverview li p.productintro a.readmore');
    if (productIntros.length == 0) return false;

    productIntros.each(function(productIntro) {

        var productIntroMore = productIntro.getParent().getParent().getElement('p.productintromore');
        var newH = productIntroMore.getScrollSize().y;
        productIntroMore.setStyle('height', '0px');

        if (productIntroMore) {
            productIntro.thismore = productIntroMore;
            productIntro.h = newH;
            productIntro.addEvent('click', function() {
                if (this.thismore.getStyle('height').toInt() > 0) {
                    this.thismore.tween('height', 0);
                } else {
                    this.thismore.tween('height', this.h);
                }
            });
        }

    });
    
}

/**
* function addIconTooltips
*
* shows tooltips from producticons
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function addIconTooltips() {

   var iconTips = new Tips($$('.icontooltip'), {
       className: 'tooltip'
   });
    
}


/**
* function textResize
*
* resizes text
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function textResize() {

    var textSizeLinks = $$('a.textsize');
    if (textSizeLinks.length != 3) return false;

    var textSizeSmallRatio = 1;
    var textSizeMediumRatio = 1.25;
    var textSizeLargeRatio = 1.5;
    
    var thisBody = $(document.body);
    var baseFontSize = 16;

    var currentTextSizeLink = textSizeLinks[0];
    var newFontSize;
    	
    // cookie?
    if (Cookie.read('prominent_textsize')) {
        
        var readCookie = Cookie.read('prominent_textsize').split("&");
        thisBody.setStyle('font-size', Number(readCookie[0]));
        textSizeLinks[readCookie[1]].addClass('textsize_selected');
        currentTextSizeLink = textSizeLinks[readCookie[1]];
                
    } else {

        currentTextSizeLink.addClass('textsize_selected');
        thisBody.setStyle('font-size', baseFontSize);
        
    }

    textSizeLinks.each(function(textSizeLink, i) {

        textSizeLink.nr = i;

        // set start value
        textSizeLink.addEvent('click', function() {


            currentTextSizeLink.removeClass('textsize_selected');
            currentTextSizeLink = this;
            this.addClass('textsize_selected');

            if (this.hasClass('textsize_small')) {
                newFontSize = (textSizeSmallRatio * baseFontSize);
                _gaq.push(['_trackPageview', '/lettertype_klein']);
            } else if (this.hasClass('textsize_medium')) {
                newFontSize = (textSizeMediumRatio * baseFontSize);
                _gaq.push(['_trackPageview', '/lettertype_middel']);
            } else if (this.hasClass('textsize_large')) {
                newFontSize = (textSizeLargeRatio * baseFontSize);
                _gaq.push(['_trackPageview', '/lettertype_groot']);
            }

            thisBody.setStyle('font-size', newFontSize);

            var cookieInfo = newFontSize + "&" + currentTextSizeLink.nr;
            var thisCookie = Cookie.write('prominent_textsize', cookieInfo);

        });
    });
    
}

/**
* function gotoShowroomDetail
*
* open detailpage indicated in value of showroom select
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function gotoShowroomDetail() {

    var showroomSelect = $$('select.allshowrooms')[0];
    if (!showroomSelect) return false;

    showroomSelect.addEvent('change', function() {
        if (this.value) {
            window.location = this.value;
        }
    });

}

/**
* function setBoxHeight
*
* set same height for boxes in same row
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @param string list list to set height to
* @return void
*/

function setBoxHeight(list) {
    
    var boxLists = ($$('ul.' + list));

    if (boxLists.length == 0) return false;

    for (var i = 0; i < boxLists.length; i++) {

        var prevH = 0;
        var thisRow = new Array();
        var nr = 0;
        var boxItems = boxLists[i].getElements('li');

        for (var j = 0; j < boxItems.length; j++) {

            if (boxItems[j].getParent('ul').hasClass(list)) {

                if (nr % 3 == 0) {
                    prevH = 0;
                    thisRow = new Array();
                }

                thisRow.push(boxItems[j]);

                var thisH = boxItems[j].getScrollSize().y;
                
                if (thisH > prevH) {
                    prevH = thisH;
                    thisRow.each(function(el) {
                        el.setStyle('height', (prevH / 12) + 'em');
                    });
                } else {
                    boxItems[j].setStyle('height', (prevH / 12) + 'em');
                }
                
                nr++;

            }

        }
    }
}

/**
* function setPriceWidth
*
* set stripepricewidth
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @param string list list to set height to
* @return void
*/

function setPriceWidth() {

    if ($$('span.orgprice').length == 0) return false;

    for (var i = 0; i < $$('span.orgprice').length; i++) {
        var thisPrice = $$('span.orgprice')[i];
        var thisStripe = thisPrice.getElement('img');
        if (thisStripe && thisPrice) {
            thisStripe.setStyle('width', thisPrice.getScrollSize().x);
        }
    }
        
}


/**
 * function initVisualBox
 *
 * inits visualbox and sets on site, hides second and third visuals
 *
 * @author Mirjam <mirjam[at]efocus.nl>
 * @return void
 */

var currentVisual = 0;
var visualImages = new Array();
var slideShowTimer;

function initVisualBox() {
	
	if (!$('visual1') && !$('visual2') && !$('visual3') && !$('visual4') && !$('visual5')) return;

	if($('visual1')) visualImages.push($('visual1'));
	if($('visual2')) visualImages.push($('visual2'));
	if($('visual3')) visualImages.push($('visual3'));
	if($('visual4')) visualImages.push($('visual4'));
	if($('visual5')) visualImages.push($('visual5'));

	var rouleren = typeof globalF5automatischRouleren != 'undefined' && globalF5automatischRouleren == '1';
	if (rouleren) {
	    
	    $$('div.visual_bg').setStyle('background', globalF5fadeOutKleurcode);
	    
	}
	
	
	var visuals = [];
	visualImages.each(function(item, index) {
		visuals.push(index + 1);
	});
	
	visuals.each(function(visualnumber) {

	    //if (!rouleren) {
	        $('link' + visualnumber).addEvent('click', function(event) {

	            // disable click on active item
	            if ($('link' + visualnumber).hasClass('active')) {
	                event.stop();
	                event.preventDefault();
	            }

	            setVisualBox(visualnumber);

	        });
	    //}
	});
	
	// set first visual active
	setVisualBox();

}

/**
* function fadeVisual
*
* auto fade visualbox
*
* @author Mirjam <mirjam[at]efocus.nl>
* @return void
*/

function fadeVisual() {
        
    $clear(slideShowTimer);

    var fadeChain = new Fx.Tween(visualImages[currentVisual], { property: 'opacity' });
    fadeChain.start(1, 0).chain(
        function() {

            $('link' + (currentVisual + 1)).removeClass('active');
            visualImages[currentVisual].removeClass('active');

            if (currentVisual + 1 < visualImages.length) {
                currentVisual++;
            } else {
                currentVisual = 0;
            }

            visualImages[currentVisual].addClass('active');
            visualImages[currentVisual].setStyle('opacity', '0');
            $('link' + (currentVisual + 1)).addClass('active');
            
            visualImages[currentVisual].tween('opacity', '1');
            slideShowTimer = fadeVisual.periodical((globalF5rouleertijd * 1000));

        }

    );  
   
}


/**
 * function setVisualBox
 *
 * handles clicks on visualbox navigation
 *
 * @author Rocco Janse <rocco[at]efocus.nl>
 * @param integer visual visualnumber to activate
 * @return void
 */

function setVisualBox(visual) {

    $clear(slideShowTimer);
    
    if (!$('visual1') && !$('visual2') && !$('visual3') && !$('visual4') && !$('visual5')) return;
    if ($defined(visual)) {
        var visuals = [];
		visualImages.each(function(item, index) {
			visuals.push(index + 1);
		});
        if (visuals.contains(visual)) {
            visuals.each(function(visualnumber) {
                
                if (visual == visualnumber) {
                    $('visual' + visualnumber).addClass('active');
                    $('visual' + visualnumber).setStyle('opacity', '100');
                    $('link' + visualnumber).addClass('active');
                } else {
                    $('visual' + visualnumber).removeClass('active');
                    $('link' + visualnumber).removeClass('active');
                }
            });
        };

        currentVisual = (visual - 1);
        
    } else {
        $('visual1').addClass('active');
        $('link1').addClass('active');

        currentVisual = 0;
    }
	
	var rouleren = typeof globalF5automatischRouleren != 'undefined' && globalF5automatischRouleren == '1';
	if (rouleren) {
		slideShowTimer = fadeVisual.periodical((globalF5rouleertijd * 1000));
	}
}


/**
 * initTabs()
 *
 * enables tab functionality
 *
 * @param tablinks array Array of DOM elements that function as tab labels
 * @param tabcontents array Array of DOM elements that function as tab contents
 *
 * @author Klaas Dieleman <klaas{AT}efocus.nl>
 * @return void
 */
 
function initTabs(tablinks, tabcontents) {
    
	if(tablinks.length != tabcontents.length || tablinks.length < 2 || tabcontents.length < 2) return false;
	
	tablinks[0].addClass('left');
	tabcontents.addClass('inactive');
	tabcontents[0].removeClass('inactive');
	tablinks[0].addClass('active');
	
	tablinks.each(function(tablink, index) {
		tablink.getElement('a').set('href', 'javascript: void(0)');
		tablink.addEvent('click', function() {
			tablink.getElement('a').blur();
			tablinks.removeClass('active');
			tablink.addClass('active');
			tabcontents.addClass('inactive');
			tabcontents[index].removeClass('inactive');
		});
    });
	
}


/**
* detectRatingTab()
*
* Activates the rating tab when string is detected in the URI.
*
* @author Ralph Meeuws <ralph.meeuws{AT}efocus.nl>
* @return void
*/

function detectRatingTab() {
	if ($$('div.productinfo ul.tabs li').length == 0) return false;

	var strPageLocation = new URI(location.href);
	if (strPageLocation.get('fragment') == 'beoordelingen') $$('div.productinfo ul.tabs li')[1].fireEvent('click');
}


/**
* initShowroomMap()
*
* initializes googlemaps for showroomfinder
*
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function initShowroomMap() {

    var showRoomDiv = $('showroommap');
    if (!showRoomDiv) return false;
    
    if (GBrowserIsCompatible()) {

        // init
        var gmap = new GMap2(showRoomDiv);

        var w = document.getElementById('countrySelect').selectedIndex;
        // de value van de countrySelect bevat altijd de sitecore key van het huidige land, dus 'nederland', 'duitsland', 'belgie' of 'spanje'
        var country = document.getElementById('countrySelect').options[w].value;
        
        var divOverlay = document.createElement("div");
        divOverlay.className = 'showroommap_img';

        // disable dragging and remove overlay(s)
        gmap.disableDragging();
        gmap.clearOverlays();
        
        // Regional Settings
        if (country == 'nederland') {
            // set center
            gmap.setCenter(new GLatLng(52.14023120108506, 5.3173828125), 7); //NL
            // Afbeelding
            divOverlay.innerHTML = "<img src='/siteimg/showroom_map_NL.png' alt='' />";
        }

        if (country == 'spanje') {
            // set center
            gmap.setCenter(new GLatLng(36.5, -3.757324), 5); //SPAIN
            // Afbeelding
            divOverlay.innerHTML = "<img src='/siteimg/showroom_map_ES.png' alt='' />";
        }

        if (country == 'duitsland') {
            // set center
            gmap.setCenter(new GLatLng(51.303145259199056, 10.48095703125), 6); //DU
            // Afbeelding
            divOverlay.innerHTML = "<img src='/siteimg/showroom_map_DU.png' alt='' />";
        }

        if (country == 'belgie') {
            // set center
            gmap.setCenter(new GLatLng(49.735004,4.361771), 7); //BE
            // Afbeelding
            $('showroommap').setStyle('height', 330);
            divOverlay.innerHTML = "<img src='/siteimg/showroom_map_BE2.png' alt='' ;/>";
        }
        
        if ($$('div.showroommap_img')) {
            $$('div.showroommap_img').dispose();
        }
        
        gmap.getPane(G_MAP_MAP_PANE).appendChild(divOverlay);

        showRoomDiv.setStyle('visibility', 'visible');

        // Create marker icon
        var customIcon = new GIcon();
        customIcon.image = "/siteimg/showroom_marker.png";
        customIcon.iconAnchor = new GPoint(6, 6);
        customIcon.iconSize = new GSize(13, 13);
        markerOptions = { icon: customIcon }
        
        // add markers
        for (var i = 0; i < markers.length; i++) {

            var markerLatLong = markers[i][2].split(",");
            var markerLink = markers[i][1];
            var markerActief = markers[i][3] == "true";

            markerOptions.title = markers[i][0];
            
            var point = new GLatLng(parseFloat(markerLatLong[0]), parseFloat(markerLatLong[1]));
            var marker = new GMarker(point, markerOptions);
            
            var activeMarker = new Element('span');
            activeMarker.addClass('activeMarker');

            if (markerActief) {
                activeMarker.set('html', '<img src="/siteimg/showroom_maker_active.png" alt="' + markers[i][0] + '" title="' + markers[i][0] + '"/>');
            } else {
                activeMarker.set('html', '<a href="' + markerLink + '"><img src="/siteimg/showroom_marker.png" alt="' + markers[i][0] + '" title="' + markers[i][0] + '"/></a>');
            }
             
             activeMarker.inject(showRoomDiv);
                
             var latlongToPix = gmap.fromLatLngToDivPixel(new GLatLng(parseFloat(markerLatLong[0]), parseFloat(markerLatLong[1])));
             activeMarker.style.left = (latlongToPix.x - 6) + "px";
             activeMarker.style.top = (latlongToPix.y - 6) + "px";
                        
        }
        
    }
       
    
}

/**
* function AutoPostbackWithClientValidate
*
* does autopostback but checks .net clientside validation
*
* @author Barend van der Hout <barend[at]efocus.nl>
* @param string eventTarget name of controls which fires (serverside)
* @param string eventArgument empty
* @return bool success
*/
function AutoPostbackWithClientValidate(eventTarget, eventArgument) {
    if (typeof (Page_ClientValidate) == 'function') {
        Page_ClientValidate();
        if (Page_IsValid)
            __doPostBack(eventTarget, eventArgument);
        return Page_IsValid;
    }
    else {
        __doPostBack(eventTarget, eventArgument);
        return true;
    }
}

/**
* function A3PostcodeCheck
*
* does addresslookup if valid input
*
* @author Barend van der Hout <barend[at]efocus.nl>
* @param event e current event
* @param string eventTarget name of controls which fires (serverside)
* @param string eventArgument empty
* @param string pcveld id of postcode-field
* @param string pcval id of postcode-validator-field
* @param string hnveld id of huisnummer-field
* @param string hnval id of huisnummer-validator-field
* @return bool success
*/
function A3PostcodeCheck(eventTarget, eventArgument, pcveld, pcval, hnveld, hnval) {
    var pcGeldig = $(pcveld).value != '' && $(pcval).isvalid && $(hnveld).value != '' && $(hnval).isvalid;

    if (pcGeldig) {
        $$('span.postcodecheck').addClass('show');
        __doPostBack(eventTarget, 'AjaxPostcodeCheck');
        __doPostBack(eventTarget, 'AjaxPostcodeCheck');
    }
    return true;
}

/**
* function A3GeboortedatumChange
*
* constructs hidden geboortedatumveld: geboortedatum = geboortedag-geboortemaand-geboortejaar
* fires validation
*
* @author Barend van der Hout <barend[at]efocus.nl>
* @param event e current event
* @param string veldDag id of geboortedag-field
* @param string veldMaand id of geboortemaand-field
* @param string veldJaar id of geboortejaar-field
* @param string veldTotaal id of hidden geboortedatum-field
* @param string val id of geboortedatum-validator-field
* @return void
*/
function A3GeboortedatumChange(e, veldDag, veldMaand, veldJaar, veldTotaal, rfVal, reVal, cvVal) {
    var event = event || e;
    var veldtotaaloud = $(veldTotaal).value;
    if ($(veldDag).value != '' && $(veldMaand).value != '' && $(veldJaar).value != '') {
        $(veldTotaal).value = $(veldDag).value + '-' + $(veldMaand).value + '-' + $(veldJaar).value;
    }
    else {
        $(veldTotaal).value = '';
    }
    // validators worden niet automatisch getriggerd als je via code update
    if ($(veldTotaal).value != veldtotaaloud) {
        ValidatorValidate($(rfVal));
        ValidatorValidate($(reVal));
        ValidatorValidate($(cvVal));
    }
}

/**
* function initA3BedrijfSwitch
*
* enables/disables Bedrijfsnaam-field on clicking Bedrijfsnaamcheckbox
* enables/disables validation
*
* @author Barend van der Hout <barend[at]efocus.nl>
* @requires global tbBedrijfsnaamID rfValidatorBedrijfsnaamID
* @return void
*/
function initA3BedrijfSwitch() {
    if ($$('.radioBedrijf').length > 0) {
        $$('.radioBedrijf')[0].getElements('input[type=radio]').each(function(element) {
            element.addEvents({
                'click': function() {
                    var isBedrijf = this.value == 'Bedrijf';
                    $(rfValidatorBedrijfsnaamID).enabled = isBedrijf;
                    $(tbBedrijfsnaamID).disabled = !isBedrijf;
                    if (isBedrijf) {
                        $(tbBedrijfsnaamID).removeClass('disabled');
                    } else {
                        $(tbBedrijfsnaamID).addClass('disabled');
                        ValidatorValidate($(rfValidatorBedrijfsnaamID));
                    }
                    ValidatorValidate($(cvBedrijfsnaamValidID));
                }
            });
        });
    }
}

/**
* function initA3TerugbellenSwitch
*
* enables/disables voorkeur-field on clicking Bedrijfsnaamcheckbox
*
* @author Barend van der Hout <barend[at]efocus.nl>/Mark Martis <mark.martis[at]efocus.nl>
* @return void
*/
function initA3TerugbellenSwitch() {
    if ($$('.radioTerugbellen').length > 0) {
        $$('.radioTerugbellen')[0].getElements('input[type=radio]').each(function(element) {
            element.addEvents({
                'click': function() {
                    var isAnders = this.value == 'Anders';
                    $(rfValidatorTerugbellenID).enabled = isAnders;
                    $(ddlTerugbellenVoorkeurID).disabled = !isAnders;
                    if (isAnders) {
                    } else {
                        ValidatorValidate($(rfValidatorTerugbellenID));
                    }
                    ValidatorValidate($(cvTerugbellenValidID));
                }
            });
        });
    }
}

/**
* function setInputHovers
*
* handles hover state of inputs crossbrowser
*
* @author Rocco Janse <rocco[at]efocus.nl>
* @return void
*/

function setInputHovers() {
    var inputs = $(document.body).getElements('input[type=text]');
    var textareas = $(document.body).getElements('textarea');
    if (inputs.length < 1 && textareas.length < 1) return;
    var formelements = inputs.combine(textareas);

    formelements.each(function(element) {
        element.addEvents({
            'focus': function() {
                element.addClass('focus');
            },
            'blur': function() {
                element.removeClass('focus');
            }
        });
    });

}


/**
* function initProductDetailVisuals
*
* Shows larger visuals of the product.
*
* @author Ralph Meeuws <ralph.meeuws{AT}efocus.nl>
* @return void
*/

function initProductDetailVisuals() {
    if (!$(document.body).getElement('.productdetail_enlargement_list') || !$(document.body).getElement('.thumbs_list')) return false;

    var elProductDetail = $(document).getElement('.productdetail');
    var arrProductDetailEnlargementListItems = elProductDetail.getElements('.productdetail_enlargement_list li');
    var arrProductDetailEnlargementLinks = elProductDetail.getElements('.productdetail_enlargement_links li');
    var arrProductDetailThumbLinks = elProductDetail.getElements('.thumbs_list a');
    var intProductDetailVisualActive = 0;

    arrProductDetailThumbLinks.each(function(elProductDetailThumbLink, intIndex) {
        elProductDetailThumbLink.addEvents({
            'click': function(event) {
                event.stop();
                this.blur();
                enlargeVisual(intIndex);
                intProductDetailVisualActive = intIndex;
            }
        });
    });

    enlargeVisual = function(intIndex) {
        arrProductDetailEnlargementListItems.removeClass('active');
        arrProductDetailEnlargementLinks.removeClass('active');
        arrProductDetailEnlargementListItems[intIndex].addClass('active');
        arrProductDetailEnlargementLinks[intIndex].addClass('active');
    }
}



/**
* function initShowroomSlideshow
*
* Loads the slideshow for the showroom.
*
* @author Ralph Meeuws <ralph.meeuws{AT}efocus.nl>
* @return void
*/

function initShowroomSlideshow() {
	if (!$(document.body).getElement('.showroom_slideshow')) return false;
	
	var elShowroomSlideshow = $(document.body).getElement('.showroom_slideshow');
	
	var objSlideShow = new EfxNavSlideShow({
		arrSlides: elShowroomSlideshow.getElement('.showroom_slides').getElements('li'),
		elNav: elShowroomSlideshow.getElement('.showroom_nav'),
		strLabelPrev: 'Vorige',
		strLabelNext: 'Volgende',
		strLabelPlay: 'Afspelen',
		strLabelPause: 'Pauzeren',
		intInterval: 4000
	});
}

/**
* eFocus FX Base SlideShow class for MooTools 1.2.1
* Reusable slideshow class.
*
* @author Ralph Meeuws (ralph.meeuws[AT]efocus.nl)
* @param arrSlides, intStartSlide, blnLoop, intInterval, blnAutoPlay, blnPlaying
* @param strOutEffectProperty, intOutEffectStartValue, intOutEffectEndValue, intOutEffectDuration
* @param strInEffectProperty, intInEffectStartValue, intInEffectEndValue, intInEffectDuration
* @return EfxBaseSlideShow
* @version 1.0
*/
var EfxBaseSlideShow = new Class({
    Implements: [Options, Events, Chain],
    options: {
        arrSlides: [],
        intStartSlide: 0,
        blnLoop: true,
        intInterval: 2500,
        blnAutoPlay: true,
        blnPlaying: false,

        strOutEffectProperty: 'opacity',
        intOutEffectStartValue: 1,
        intOutEffectEndValue: 0,
        intOutEffectDuration: 'long',

        strInEffectProperty: 'opacity',
        intInEffectStartValue: 0,
        intInEffectEndValue: 1,
        intInEffectDuration: 'long'
    },
    initialize: function(options) {
        var that = this;
        this.setOptions(options);
        this.addSlides(this.options.arrSlides);
        this.options.arrSlides.each(function(slide) {
            slide.setStyle('visibility', 'hidden');
        });
        this.showSlide(this.options.intStartSlide);
        if (this.options.blnAutoPlay == true && this.options.blnPlaying == false) {
            this.playSlideShow();
        }
        this.intSlideCount = 0;
    },
    arrSlideCollection: [],
    addSlides: function(arrSlides) {
        arrSlides.each(function(slide) {
            this.arrSlideCollection.include(slide);
        }, this);
    },
    addSlide: function(slide) {
        this.addSlides($splat(slide));
    },
    cycleForwards: function() {
        if ($chk(this.intCurrentSlideNumber) && this.intCurrentSlideNumber < this.arrSlideCollection.length - 1) {
            this.showSlide(this.intCurrentSlideNumber + 1);
        } else if ((this.intCurrentSlideNumber) && this.options.blnLoop) {
            this.showSlide(0);
        } else if (!defined(this.intCurrentSlideNumber)) {
            this.showSlide(this.options.intStartSlide);
        }
    },
    cycleBackwards: function() {
        if (this.intCurrentSlideNumber > 0) {
            this.showSlide(this.intCurrentSlideNumber - 1);
        } else if (this.options.blnLoop) {
            this.showSlide(this.arrSlideCollection.length - 1);
        }
    },
    showSlide: function(intSlideNumberToShow) {
        if (this.arrSlideCollection[intSlideNumberToShow]) {
            var that = this;
            if (this.arrSlideCollection[this.intCurrentSlideNumber]) {
                var intPreviousSlideNumber = this.intCurrentSlideNumber;
                if (that.options.strOutEffectProperty != that.options.strInEffectProperty) {
                    this.arrSlideCollection[intSlideNumberToShow].setStyle(that.options.strOutEffectProperty, that.options.intOutEffectStartValue);
                }
                this.arrSlideCollection[this.intCurrentSlideNumber].get('tween', { property: that.options.strOutEffectProperty, duration: that.options.intOutEffectDuration }).start(that.options.intOutEffectStartValue, that.options.intOutEffectEndValue).chain(function() {
                    that.arrSlideCollection[intPreviousSlideNumber].setStyle(that.options.strInEffectProperty, that.options.intInEffectStartValue);
                });
            }
            this.arrSlideCollection[intSlideNumberToShow].get('tween', { property: that.options.strInEffectProperty, duration: that.options.intInEffectDuration }).start(that.options.intInEffectStartValue, that.options.intInEffectEndValue);
            this.intCurrentSlideNumber = intSlideNumberToShow;
        }
        this.fireEvent('slideShown', this);
    },
    runSlideShow: function() {
        var that = this;

        if (that.intCurrentSlideNumber != this.intSlideCount) {
            this.intSlideCount = that.intCurrentSlideNumber;
        }
        this.intSlideCount++;
        if (this.intSlideCount >= that.arrSlideCollection.length) {
            this.intSlideCount = 0;
        }
        this.showSlide(this.intSlideCount);
    },
    playSlideShow: function() {
        this.options.blnPlaying = true;
        this.slideShowTimer = this.runSlideShow.periodical(this.options.intInterval, this);
    },
    resetTimer: function() {
        if ($chk(this.slideShowTimer)) {
            this.slideShowTimer = $clear(this.slideShowTimer);
            this.playSlideShow();
        }
    },
    name: 'EfxBaseSlideShow'
});


/**
* eFocus FX Nav SlideShow class for MooTools 1.2.1
* Customized slideshow class with navigation for controlling the slideshow.
*
* @author Ralph Meeuws (ralph.meeuws[AT]efocus.nl)
* @param elNav, strLabelPrev, strLabelNext, strLabelFirst, strLabelLast, strLabelPlay, strLabelPause
* @return EfxNavSlideShow
* @version 1.0
* 
* Initializing like this:
* 	var objSlideShow = new EfxNavSlideShow({
* 		arrSlides: $('my_slideshow').getElements('.slide'),
* 		elNav: $('my_slideshow').getElement('.slideshow_nav'),
* 		intInterval: 4000
* 	});
*/
var EfxNavSlideShow = new Class({
    Extends: EfxBaseSlideShow,
    options: {
        elNav: $('slideshow_nav'),
        strLabelPrev: 'Previous',
        strLabelNext: 'Next',
        strLabelFirst: 'First',
        strLabelLast: 'Last',
        strLabelPlay: 'Play',
        strLabelPause: 'Pause'
    },
    initialize: function(options) {
        this.parent(options);
        if ($defined(this.options.elNav)) {
            this.arrNavLinkNumbers = [];
            this.populateNav();
            this.arrNavListItems = this.options.elNav.getElements('li');
            this.intNavLinksNotNumbers = 0;
            this.arrNavLinks = this.options.elNav.getElements('a');
            this.initNav();
            if (this.arrNavLinkNumbers.length != 0) {
                this.activateNavLink(this.arrNavLinkNumbers[this.options.intStartSlide]);
            }
            this.addEvent('slideShown', function() {
                if (this.arrNavLinkNumbers.length != 0) {
                    this.activateNavLink(this.arrNavLinkNumbers[this.intCurrentSlideNumber]);
                }
            });
        }
    },
    populateNav: function() {
        var that = this;
        var elNavListItemNumber = null;
        this.options.elNav.getElements('li').each(function(elNavListItem, n) {
            switch (elNavListItem.getElement('a').className) {
                case 'prev': break;
                case 'next': break;
                case 'first': break;
                case 'last': break;
                case 'play': break;
                case 'pause': break;
                default: elNavListItemNumber = elNavListItem;
            };
        });

        if ($chk(elNavListItemNumber)) {
            this.arrSlideCollection.each(function(elSlide, n) {
                elNavListItemNumberNew = elNavListItemNumber.clone();
                elNavListItemNumberNew.getElement('a').innerHTML = n + 1;
                elNavListItemNumberNew.getElement('a').setProperty('title', n + 1);
                elNavListItemNumberNew.injectBefore(elNavListItemNumber);
                that.arrNavLinkNumbers.include(elNavListItemNumberNew.getElement('a'));
            });
            elNavListItemNumber.dispose();
        }
    },
    initNav: function() {
        var that = this;
        this.arrNavLinks.each(function(elNavLink, n) {
            switch (elNavLink.className) {
                case 'pause':
                    if (that.options.blnPlaying != true) {
                        var strNavLinkLabel = that.options.strLabelPlay;
                    } else {
                        var strNavLinkLabel = that.options.strLabelPause;
                    }
                    elNavLink.innerHTML = strNavLinkLabel;
                    elNavLink.setProperty('title', strNavLinkLabel);
                    elNavLink.toggleClass('play');
                    elNavLink.toggleClass('pause');

                    elNavLink.addEvent('click', function(event) {
                        event.stop();
                        if ($chk(that.slideShowTimer)) {
                            var strNavLinkLabel = that.options.strLabelPlay;
                            that.slideShowTimer = $clear(that.slideShowTimer);
                        } else {
                            var strNavLinkLabel = that.options.strLabelPause;
                            that.playSlideShow();
                        }
                        elNavLink.innerHTML = strNavLinkLabel;
                        elNavLink.setProperty('title', strNavLinkLabel);
                        elNavLink.toggleClass('play');
                        elNavLink.toggleClass('pause');
                    });
                    that.intNavLinksNotNumbers++;
                    break;
                case 'play':
                    if (that.options.blnPlaying != true) {
                        var strNavLinkLabel = that.options.strLabelPlay;
                    } else {
                        var strNavLinkLabel = that.options.strLabelPause;
                    }
                    elNavLink.innerHTML = strNavLinkLabel;
                    elNavLink.setProperty('title', strNavLinkLabel);
                    elNavLink.toggleClass('play');
                    elNavLink.toggleClass('pause');

                    elNavLink.addEvent('click', function(event) {
                        event.stop();
                        if ($chk(that.slideShowTimer)) {
                            var strNavLinkLabel = that.options.strLabelPlay;
                            that.slideShowTimer = $clear(that.slideShowTimer);
                        } else {
                            var strNavLinkLabel = that.options.strLabelPause;
                            that.playSlideShow();
                        }
                        elNavLink.innerHTML = strNavLinkLabel;
                        elNavLink.setProperty('title', strNavLinkLabel);
                        elNavLink.toggleClass('play');
                        elNavLink.toggleClass('pause');
                    });
                    that.intNavLinksNotNumbers++;
                    break;
                case 'first':
                    if (!elNavLink.innerHTML) elNavLink.innerHTML = that.options.strLabelFirst;
                    if (!elNavLink.getProperty('title')) elNavLink.setProperty('title', that.options.strLabelFirst);
                    elNavLink.addEvent('click', function(event) {
                        event.stop();
                        that.intSlideCount = 0;
                        that.showSlide(that.intSlideCount);
                        that.resetTimer();
                    });
                    that.intNavLinksNotNumbers++;
                    break;
                case 'prev':
                    if (!elNavLink.innerHTML) elNavLink.innerHTML = that.options.strLabelPrev;
                    if (!elNavLink.getProperty('title')) elNavLink.setProperty('title', that.options.strLabelPrev);
                    elNavLink.addEvent('click', function(event) {
                        event.stop();
                        that.cycleBackwards();
                        that.resetTimer();
                    });
                    that.intNavLinksNotNumbers++;
                    break;
                case 'next':
                    if (!elNavLink.innerHTML) elNavLink.innerHTML = that.options.strLabelNext;
                    if (!elNavLink.getProperty('title')) elNavLink.setProperty('title', that.options.strLabelNext);
                    elNavLink.addEvent('click', function(event) {
                        event.stop();
                        that.cycleForwards();
                        that.resetTimer();
                    });
                    that.intNavLinksNotNumbers++;
                    break;
                case 'last':
                    if (!elNavLink.innerHTML) elNavLink.innerHTML = that.options.strLabelLast;
                    if (!elNavLink.getProperty('title')) elNavLink.setProperty('title', that.options.strLabelLast);
                    elNavLink.addEvent('click', function(event) {
                        event.stop();
                        that.intSlideCount = that.arrSlideCollection.length - 1;
                        that.showSlide(that.intSlideCount);
                        that.resetTimer();
                    });
                    that.intNavLinksNotNumbers++;
                    break;
                default:
                    var intNavLinksOffset = that.intNavLinksNotNumbers;
                    elNavLink.addEvent('click', function(event) {
                        event.stop();
                        that.intSlideCount = n - intNavLinksOffset;
                        that.showSlide(that.intSlideCount);
                        that.resetTimer();
                        that.activateNavLink(elNavLink);
                    });
            };
        });
    },
    activateNavLink: function(elNavLink) {
        this.arrNavListItems.each(function(elNavListItem) {
            elNavListItem.removeClass('active');
        });
        elNavLink.getParent().addClass('active');
    },
    name: 'EfxNavSlideShow'
});

function hideLeesMeerTekstDiv() {
    if (document.getElementById && (element = document.getElementById('tekstblok'))) {
        if (document.getElementById("tekstblok").style.display == 'block') {

            document.getElementById("tekstblok").style.display = 'none';
        }
    }
}

function toggleDiv() {
    if(document.getElementById("tekstblok").style.display == 'none'){
      document.getElementById("tekstblok").style.display = 'block';
    }else{
      document.getElementById("tekstblok").style.display = 'none';
    }
  }

/**
 * function addFormTooltips
 *
 * shows tooltips from producticons
 *
 * @author Klaas Dieleman <klaas{AT}efocus.nl>
 * @return void
 */
function addFormTooltips() {

	formTips = new Tips($$('div.formrule a.info, div.formrule a.icon_invalid'), {
		className: 'formtip'
	});
	    
}

/**
 * clones tooltip from validator to corresponding formfield
 *
 * @param string ID of input
 * @param string ID of validator (span)
 * @author Klaas Dieleman <klaas{AT}efocus.nl>
 * @return void
 */
function attachErrorTip(strInputID, strValidatorID) {
	$(strInputID).cloneEvents($(strValidatorID).getElement('a.icon_invalid'));
}

/**
 * detaches tooltip from formfield
 *
 * @param string ID of input
 * @author Klaas Dieleman <klaas{AT}efocus.nl>
 * @return void
 */
function detachErrorTip(strInputID) {

    $(strInputID).removeEvents();
    formTips.hide();
}

/**
 * moves ajax-overlay div to bottom of body in DOM
 * so it's on top in de z-index stack
 *
 * @author Klaas Dieleman <klaas{AT}efocus.nl>
 * @return void
 */
function positionAjaxOverlay() {
	$('content_0_Formulier_UpdateProgress1').inject($(document.body), 'bottom');
}

/**
* Gebruik deze alleen na client side validation
*/
function disableSubmit() {
    $$('a.formsubmit').addClass('disabled');
    $$('span.submitprogress').addClass('show');

    window.evtCancelClick = function () {
        return false;
    };
    $$('a.formsubmit, a.formsubmit *').addEvent('click', window.evtCancelClick);
}

/**
* Deze moet dan alleen van pas zijn met AJAX (b.v.b. een timeout of foutmedling).
*/
function enableSubmit() {
    $$('a.formsubmit').removeClass('disabled');
    $$('span.submitprogress').removeClass('show');

    if (window.evtCancelClick) {
        $$('a.formsubmit, a.formsubmit *').removeEvent('click', window.evtCancelClick);
    }
}

function ValidateAndSubmit(validationGroup, eventTarget, eventArgument) {
    if (typeof (validationGroup) == undefined || validationGroup == null) {
        validationGroup = '';
    }
    Page_ClientValidate(validationGroup);
    if (!Page_IsValid) {
        if (typeof (A3CorrigeerValidVinkjes) == 'function') {
            A3CorrigeerValidVinkjes();
            alert($(hfValidatieMeldingClientID).value);
        }
        return false;
    }
    disableSubmit();
    __doPostBack(eventTarget, eventArgument);
}
