var FLBBauto=0;
if (!console || !console.log) {
    var console = {};
    console.log = function(){
    }
}

var toggleEmbedButton=0;
window.addEvent('domready', function(){

   	setPolaroidInplace();
    new Megadropdown();
	// ajax preferred store
    //karw.showMyLocation();
    if (karw.Tabs) {
    	karw.Tabs.Control();
    }

    //slide boxes
    if (document.getElementById("insluiten-textarea")) {
    	if(document.getElement(".info-box-sub")){
	    	var button = document.getElement(".info-box-sub").getElement(".htp-embed");
	    	button.addEvent('click', function(e){
	    		if(toggleEmbedButton==0){
		    		toggleEmbedButton=1;
		        	document.getElement(".info-box-sub").set('styles',{'height':'445px'})
		        	document.getElement("#insluiten-textarea").set('styles',{'visibility':'visible','display':'block'})
	    		}
	    		else {
		    		toggleEmbedButton=0;
	    	    	document.getElement(".info-box-sub").set('styles',{'height':'365px'})
		        	document.getElement("#insluiten-textarea").set('styles',{'visibility':'hidden','display':'none'})
	    		}
	    		return false;
	    	});
	    }
    	else if(document.getElement(".info-box")){
	    	var button = document.getElement(".info-box").getElement(".htp-embed");
	    	button.addEvent('click', function(e){
	    		if(toggleEmbedButton==0){
		    		toggleEmbedButton=1;
		        	document.getElement("#insluiten-textarea").set('styles',{'visibility':'visible','display':'block'})
	    		}
	    		else {
		    		toggleEmbedButton=0;
		        	document.getElement("#insluiten-textarea").set('styles',{'visibility':'hidden','display':'none'})
	    		}
	    		return false;
	    	});
    	}
    }    
    //slide boxes
    if (document.getElementById("info-section")) {
    	var _open = -1;
        var items = $$('#info-section .title');
        var slide = $$('#info-section .slide');
        slide.each(function(el, i){
            slide[i].setStyles({
                "display": "block"
            });
            slide[i].setStyles({
                "margin-bottom": -slide[i].getHeight()
            });
            if (slide[i].className.indexOf("active") != -1) {
                slide[i].setStyles({
                    "margin-bottom": 0
                });
                _open = i;
            }
        });
        items.each(function(el, i){
            items[i].addEvent('mouseover', function(){
                if(_open != i){//skip concurrent onmouseover's for same item.
	            	if (slide[i].getStyle("margin-bottom").toInt() != 0 ) {
	                    if(_open > -1) {
	                    	slide[_open].tween("margin-bottom", -slide[_open].getHeight());
	                    }
	                    slide[i].tween("margin-bottom", 0);
	                    _open = i;
	                }
	                else {
	                    slide[i].tween("margin-bottom", -slide[i].getHeight());
	                }
	            }
            });
        });
    }
    //set li height bouwmarkt search
    var maxHeight = 0;
    var container = $$(".hor-search-results")[0];
   	if(container != null) {
	    var pointers = container.getElements(".onclickpointer");
	   	pointers.each(function(el){
	    	if(el.getSize().y > maxHeight){
	    		maxHeight = el.getSize().y;
	    	}
	    })
	    if(maxHeight > 0) {
	       	pointers.each(function(el){
	       		el.setStyle("height", maxHeight);
	        })
	    }
   	}
   	
   	var content = $$('#content')[0];
   	if(content) {
   		content.getElements('.inform-box').each(function(el){
   			try {
   			var span = el.getElement('span');
   			var div = el.getElement('.text-bar');
   			var size = div.getSize();
   			if((size.y - 36) > 0){
   				span.setStyles({
   					"margin-bottom": (size.y - 36) + "px"
   				});
   			}
   			}
   			catch(e){}
   		});
   	}
});
var count23 =0;
var resizeShadow= function(shadow){
    shadow.setStyle('height', document.body.scrollHeight + 'px');
	shadow.setStyle('width', document.body.scrollWidth + 'px');
	if(count23>10){
		window.removeEvent('resize', test)
	}
	count23++;
}
function openPopUp(params){
    var popup = $('karwFLP');
    if (!popup) {
        var shadow = $('karwFLPshadow');
        if (!shadow) {
			
			var shieldTag = "iframe";
			if($chk(params['noshield']) && (params['noshield'] == true || params['noshield'] == 'true')) {
				shieldTag = "div";
			}
	
            shadow = new Element(shieldTag, {
                'id': 'karwFLPshadow',
                'name': 'karwFLPshadow'
            });
            $(document.body).grab(shadow);
			
			if(shieldTag == 'iframe') {
	            window.frames["karwFLPshadow"].document.open();
	            window.frames["karwFLPshadow"].document.write("<html><body style='background-color:\"#000\"'></body></html>");
	            window.frames["karwFLPshadow"].document.close();
			}
			var useragent = navigator.userAgent;
			if(useragent.indexOf('iPhone')>-1 || useragent.indexOf('iPad')>-1 || useragent.indexOf('iPod')>-1){	
				window.addEvent('resize', resizeShadow(shadow));
			}
			else {
				window.addEvent('resize', function(){
	                shadow.setStyle('height', document.body.scrollHeight + 'px');
					shadow.setStyle('width', document.body.scrollWidth + 'px');
	            });
				window.fireEvent('resize');
			}
        }
        
        
        popup = new Element('div', {
            'id': 'karwFLP',
            'html': '<div class="popup-holder"><div class="title"><a class="close" href="#">sluiten</a><h3></h3></div><div class="popup-content"></div></div>'
        });
        popup.getElement('a.close').onclick = function(){
            popup.hide()
            return false;
        }
        /*
        window.addEvent('resize', function(event){

        	var hViewport = (window.innerHeight || document.documentElement.clientHeight) -40;
			//alert(hViewport );
        	popup.getElement('.popup-holder').setStyle('width', document.body.scrollWidth + 'px');
        	popup.getElement('.popup-holder').setStyle('height', hViewport + 'px');
        	popup.getElement('iframe').setStyle('width', document.body.scrollWidth + 'px');
        	popup.getElement('iframe').setStyle('height', hViewport + 'px');
        	popup.centerV({
                animate: false
            });
        });
        */
        
        popup.setContent = function(strTitle, content){
            popup.getElement(".title h3").set("text", strTitle);
            popup.getElement(".popup-content").empty().grab(content);
            popup.setStyles({
                width: popup.getElement(".popup-content").getSize().x
            })
        }
        popup.show = function(){
            popup.setStyles({
                display: 'block'
            });
            shadow.setStyles({
                display: 'block',
                opacity: 0
            });
            shadow.fade(0.6);
        }
        popup.hide = function(){
            popup.setStyle('display', 'none');
            shadow.setStyle('display', 'none');
        }
		
		
        popup.centerV = function(params){
            var hPopup = params.animate ? params.futureH : popup.getSize().y;
            var hViewport = window.innerHeight || document.documentElement.clientHeight;
            var scrollTopViewport = $(document.body).getScroll().y;
            var newTop = Math.round(scrollTopViewport + Math.max(0, 0.5 * (hViewport - hPopup)));
            if (params.animate) {
                popup.tween("top", newTop);
            }
            else {
                popup.setStyle("top", newTop)
            }
        }
        popup.centerH = function(){
            popup.setStyles({
                marginLeft: parseInt(-0.5 * popup.getElement(".popup-content").getSize().x, 10)
            })
        }
        $(document.body).grab(popup);
        
        new Drag(popup, {
            handle: popup.getElement(".title"),
            modifiers: {
                'x': 'margin-left',
                'y': 'top'
            }
        });
        
    }
    
    switch (params.contenttype) {
        case "iframe":
        	var resetHeightWidth = 0;
        	if(params.stepimage){ 
        		var image = new Asset.image($('stepimage').src);
        		
        		params.frameheight = image.height + 50;
        		params.framewidth = image.width + 50;
        		params.frameurl =  $('stepimage').src;
        	}
        	if(params.stepimage2){ 
        		var image = new Asset.image($(params.stepimage2).src);
        		
        		params.frameheight = image.height + 50;
        		params.framewidth = image.width + 50;
        		params.frameurl =  $(params.stepimage2).src;
        		resetHeightWidth = 1;
        	}
            var iframe = new IFrame({
                //src: Browser.Engine.webkit?params.frameurl:"javascript:document.open();document.write(\"<html><body style='margin:0px;text-align:center'><image src='" + karw.loadImg.src + "'/></body></html>\");document.close();document.location.href='" + params.frameurl + "'",
                src: params.frameurl,
            	frameborder: "false",
                scrolling: (params.frameheight && resetHeightWidth == 0) ? "yes" : "no",
                styles: {
                    height: (params.frameheight ? params.frameheight : 20) + "px",
                    width: (params.framewidth ? params.framewidth : 600) + "px",
                    border: '0px solid #fff',
                    overflow: params.frameheight ? "auto" : "hidden"
                },
                events: {
                    load: function(){
                        if ((!params.frameheight && !iframe.containerHeightInitialized) || resetHeightWidth == 1) {
							var innerBody = Browser.Engine.gecko ? $(iframe.contentDocument.body) : $(iframe.contentWindow.document.body);
                            var hContent = 700;//innerBody.getFirst().getSize().x;
                            try{
                            	//alert(innerBody.innerHTML);
                            	//alert('f');
                            	hContent = innerBody.getElementsByTagName('div')[0].clientHeight;
                            	//alert('f'+innerBody.getElementsByTagName('div')[0].clientHeight);
                            }
                            catch(err){}
                            var wContent = 900;//innerBody.getFirst().getSize().x;
                            try{
                            	wContent = innerBody.getElementsByTagName('div')[0].clientWidth;                            	
                            }
                            catch(err){}
							// Adjust width if needed
							if(!params.framewidth && resetHeightWidth == 0){//innerBody.getFirst() && !params.framewidth && innerBody.getFirst().getStyle('width') != 'auto' && !innerBody.getFirst().getStyle('width').contains('%')) {
								
								//var wContent = innerBody.getFirst().getSize();
								//var ieSize = window.ie ? (innerBody.getFirst().getStyle('padding-left').toInt() + innerBody.getFirst().getStyle('padding-right').toInt()) : 0;
								// var allSize = innerBody.getFirst().getStyle('margin-left').toInt() + innerBody.getFirst().getStyle('margin-right').toInt();
								// // console.log(innerBody.getFirst().getStyle('margin-left').toInt());
								// allSize += innerBody.getStyle('margin-left').toInt() + innerBody.getStyle('margin-right').toInt();
								// 
								// allSize += innerBody.getStyle('padding-left').toInt() + innerBody.getStyle('padding-right').toInt();
								// alert(allSize);
								// wContent.x +=  allSize;
								// wContent.x += ieSize;
								
								// alert(wContent.x)
								
								iframe.setStyle('width', wContent);
								popup.setStyle('width', wContent);
							    popup.centerH({animate: true});
							}
							else if(resetHeightWidth == 1){// && innerBody.getFirst()){
								//var wContent = innerBody.getFirst().getSize();
								iframe.setStyle('width', wContent+20);
								popup.setStyle('width', wContent+20);
							    popup.centerH({animate: true});
							}
							//console.log(hContent);
							iframe.tween('height', hContent);
							
                            popup.centerV({
                                animate: true,
                                futureH: (hContent + 50)
                            });
                        }
                    }
                }
            
            });
            var content = iframe;
            break;
    }
    popup.show();
    popup.setContent(params.popuptitle, content)
    popup.centerH();
    popup.centerV({
        animate: false
    });
    return false;
}

function ieHover(){
    var nav = document.getElementById("table-b");
    if (nav) {
        var nodes = nav.getElementsByTagName("tr");
        for (var i = 0; i < nodes.length; i++) {
            nodes[i].onmouseover = function(){
                this.className += " hover";
            }
            nodes[i].onmouseout = function(){
                this.className = this.className.replace(" hover", "");
            }
        }
    }
    $$('.vscroll-slider').each(function(_el){
        _el.onmouseover = function(){
            _el.addClass('hover');
        }
        _el.onmouseout = function(){
            _el.removeClass('hover');
        }
    });
}

function initDrop(){
    /*--- compte-freelance popup js ---*/
    var _hold = $$('.productplacement .sub-block')[0];
    if (_hold) {
        var _btn = _hold.getElement('.drop');
        var _box = _hold.getElement('.holder .slide-block');
        if (_btn && _box) {
            var _f = false;
            _box.moo = new Fx.Tween(_box, {
                duration: 400,
                link: 'cancel',
                'onComplete': function(){
                    if (!_f) 
                        _box.getParent().setStyle('height', '0');
                }
            });
            _btn.onclick = function(){
                if (_f) {
                    var _h = _box.offsetHeight;
                    _hold.removeClass('active');
                    _box.moo.start('margin-top', -_h);
                    _f = false;
                }
                else {
                    var _h = _box.offsetHeight;
                    _hold.addClass('active');
                    _box.setStyle('margin-top', -_h);
                    _box.getParent().setStyle('height', 'auto');
                    _box.moo.start('margin-top', 0);
                    _f = true;
                }
                return false;
            }
        }
    }
}

if (window.addEventListener) {
    window.addEventListener("load", initDrop, false);
}
else 
    if (window.attachEvent && !window.opera) {
        window.attachEvent("onload", initDrop);
        window.attachEvent("onload", ieHover);
    }


karw.Tabs = {}
karw.Tabs.vars = {
    selectedTab: null,
    selectedContent: null
}

karw.Tabs.Control = function(){
    var tabAreas = $$('.tab-section');
    
    for (i = 0; i < tabAreas.length; i++) {
        var singleTabArea = tabAreas[i];
        
        var tabs = singleTabArea.getElements('ul.tabset a.tab');
        for (i = 1; i <= tabs.length; i++) {
            var tabItem = tabs[i - 1];
            if (i == 1) {
                karw.Tabs.vars.selectedTab = tabItem;
                karw.Tabs.vars.selectedTab.getParent().addClass("active");
                karw.Tabs.vars.selectedContent = $('tab-' + i);
                karw.Tabs.vars.selectedContent.addClass("display");
            }
            tabItem.addEvent('click', karw.Tabs.ShowTabContent.bindWithEvent(window, [tabItem, i]));
            
        }
    }
}
karw.Tabs.ShowTabContent = function(e, tabItem, counter){
    var tabContentPanel = $('tab-' + counter);
    
    
    karw.Tabs.vars.selectedTab.getParent().removeClass("active");
    tabItem.getParent().addClass("active");
    karw.Tabs.vars.selectedTab = tabItem;
    
    karw.Tabs.vars.selectedContent.removeClass("display");
    tabContentPanel.addClass("display");
    karw.Tabs.vars.selectedContent = tabContentPanel;
}

karw.setMyLocation = function(params, checkbox){
    new Request.JSON({
        url: karw.context + '/store/set_preferred_store',
        noCache:true,
        method: 'get',
        data: params,
        async: false,
        onSuccess: function(jsonResponse){
    		karw.updateMyLocation(jsonResponse);
	    },
        onFailure: function(){
            checkbox.checked = !params.status;
            alert("Het aan- of uitzetten van 'mijn Karwei' is niet gelukt.");
            
        }
    }).send();
}

karw.updateMyLocation = function (jsonResponse){
	if (jsonResponse.store) {
		var storename = jsonResponse.store.name.substring(0, 20); 	    		
		$$('#preferredstore span').set('html', storename);
		$$('#active_tab_highlight_preferredstore').set('text', storename);	    
		$$('#active_tab_highlight_preferredstore_img').set('src', '/static/images/tab-bouwmarktinfo-zonder.png');
		$('preferredstore').set('href', karw.context+jsonResponse.store.url);
        // Sitecatalyst store
        trackPreferredStore(jsonResponse.store.name);
	}
	if (jsonResponse.store) {
		$('nopreferredstore').addClass('hidden');
		$('preferredstore').removeClass('hidden');
	} else {
		$('preferredstore').addClass('hidden');
		$('nopreferredstore').removeClass('hidden');

		$$('#active_tab_highlight_preferredstore').set('text', '');	    
		$$('#active_tab_highlight_preferredstore_img').set('src', '/static/images/tab-bouwmarktinfo.png');
		
		// Sitecatalyst no store
        trackPreferredStore('Geen Winkel');
	}
}


karw.setMyLocationUpdate = function (jsonResponse) {
	if (jsonResponse.store) {
		var storename = jsonResponse.store.name.substring(0, 20); 	    		
		$$('#preferredstore span').set('html', storename);
		$$('#active_tab_highlight_preferredstore').set('text', storename);	    
		$$('#active_tab_highlight_preferredstore_img').set('src', '/static/images/tab-bouwmarktinfo-zonder.png');
		$('preferredstore').set('href', karw.context+jsonResponse.store.url);
        // Sitecatalyst store
        trackPreferredStore(jsonResponse.store.name);
	}
	if (jsonResponse.store) {
		$('nopreferredstore').addClass('hidden');
		$('preferredstore').removeClass('hidden');
	} else {
		$('preferredstore').addClass('hidden');
		$('nopreferredstore').removeClass('hidden');

		$$('#active_tab_highlight_preferredstore').set('text', '');	    
		$$('#active_tab_highlight_preferredstore_img').set('src', '/static/images/tab-bouwmarktinfo.png');
		
		// Sitecatalyst no store
        trackPreferredStore('Geen Winkel');
	}	
}

karw.showMyLocation = function(){
	if ($('preferredstore')) {
	    new Request.JSON({
	        url: karw.context + '/store/get_preferred_store?random='+Math.random(),
	        noCache:true,
	        method: 'get',
	        onSuccess: function(jsonResponse){
		    	if (jsonResponse.store) {
		    		$$('#preferredstore span').set('html', jsonResponse.store.name.substring(0, 20));
		    		$('preferredstore').set('href', karw.context+jsonResponse.store.url);
		    	}
		    	if (jsonResponse.store) {
		    		$('nopreferredstore').addClass('hidden');
		    		$('preferredstore').removeClass('hidden');
		    	} else {
		    		$('preferredstore').addClass('hidden');
		    		$('nopreferredstore').removeClass('hidden');
		    	}
		    },
	        onFailure: function(){     
	        }
	    }).send();
	}
}

karw.printLists = function(id){
	var noshow = $$(".info-bar")[0];
	noshow.addClass("dontprint");
	window.print();
}
karw.printAll = function(){
	var noshow = $$(".info-bar")[0];
	noshow.removeClass("dontprint");
	window.print();
}
karw.printCoupon = function(id){
	var noshow = $$(".visual-text")[0];
	noshow = noshow.getElement('p');
	noshow.addClass("dontprint");
	window.print();
}

karw.toggleHelp = function(element){
	var parent = $(element).getParent();
	var messageBox = $(parent).getElement('div.explain_text');
	var errorBox = parent.getElement('div.error_text');
	if(!messageBox.bolVisible){
		if(errorBox) {errorBox.setStyle("display","none")};
		messageBox.fade(0,1);
		messageBox.bolVisible = true;
	}
	else{
		if(errorBox) {errorBox.setStyle("display","block")};
		messageBox.fade(1,0);
		messageBox.bolVisible = false;
	}
}

karw.submitForm = function(el){
	var form = $(el).getParent("form");
	form.getElementById("event").set('value',el.id);
	
	if($chk(form.get('onsubmit'))) {
		karw.postAquimaForm(form, true);
	} else {
		form.submit();
	}

	return false;
}

karw.buttonFocus = function(button){
	button.className = button.className + ' buttonfocused'
}

karw.buttonBlur = function(button){
	button.className = button.className.replace(/buttonfocused/g,"");
}

karw.aquimapost = function(field){
	// field.form.parentNode.style.display='none';
	// document.getElementById('aquimaloading').style.display ='block';
	// field.form.submit();
	karw.postAquimaForm(field.form, false);
}
karw.postAquimaForm = function(target_form, moveToTop) {	
	target_form = $(target_form);
	var action = target_form.action;

	var newAction = '';
	if($chk(action) && action !== null && action !== '') {
		newAction = action+"&view=Fragment";
	} else {
		newAction = "?view=Fragment";
	}
	target_form.set('send', {url: newAction, method: 'post', onComplete:karw.postAquimaFormCompleteHandler.bindWithEvent(window, [moveToTop])});
	target_form.send();
	
	// Disable form
	var f_elements = target_form.elements;
	for(var i=0;i<f_elements.length;i++) {
		var f_elm = $(f_elements[i]);
		f_elements[i].set('disabled', 'true');		
	}
	return false;
}
karw.postAquimaFormCompleteHandler = function(newPageXML, moveToTop) {
	var tmpEl = new Element('div');
	tmpEl.set('html', newPageXML);
	tmpEl.getFirst().replaces($(document.body).getElement('.aquimapage'));
	
	if(moveToTop !== false) {
		var top = $('aquimatop');
		var coord = top.getCoordinates(document.body);
		window.scrollTo(coord.left,coord.top);
	}
}
karw.goRoute = function(storeURL){
	var address = $('route').value;
	if(address == ""){
		alert("vul wat in");
	}else{
		location.href=storeURL+"?addr="+address+"#routeplanner";
	}
}
karw.focusTextBox = function(inputElement){
	inputElement.focus();
	if(inputElement.value=='postcode of plaats'){
		inputElement.value='';
	}
}


var Megadropdown = new Class({
	
    implements: [Options,Event],
    
    showDelay: 1,
    hideDelay: 1,
    
    navigationTimeoutId: undefined,			    
    dropDownTimeoutId: undefined,			    
    
    initialize: function () {			        
        var navigation = $('navigation');
        var header = $('header');			        
        
		this.bindNavigationEvents(header, navigation);
		this.bindMegadropdownEvents(header, navigation);       
    },

    bindMegadropdownEvents: function (header, navigation) {			    
		navigation.getElements('li').each(function(navigationListElement){
			if (navigationListElement.getElement('.megadropdown')) {
				// if we are a megadropdown, add event
				this.bindDropDownEvents(header, navigationListElement);
			} else {
				// if we are the home or an element without dropdown, add exit events 
				this.bindNonDropDownEvents(header, navigationListElement);
			}
		}.bind(this));        
    },
    
    bindNavigationEvents: function (header, navigation) {			    		
		navigation.addEvents({
			mouseleave : function() {this.pushDownNavigation(header);}.bind(this)					
		});				        
    },
			    
    bindDropDownEvents: function (header, navigationListElement) {
    	navigationListElement.addEvents({
			mouseenter : function() {this.pushUpNavigation(header); this.showDropDown(navigationListElement);}.bind(this),
			mouseleave : function() {this.hideDropDown(navigationListElement);}.bind(this)															
		});				
        
    },

    bindNonDropDownEvents: function (header, navigationListElement) {
    	navigationListElement.addEvents({
			mouseenter : function() {this.pushDownNavigation(header);}.bind(this)
		});				
    },    
    
  	pushUpNavigation: function (header) {    	
    	if ( ! this.canDropDown()){
    		// if we can not drop down, set timer to enable this.
    		this.setNavigationTimeout(this.addPushNavigation.bind(this, [header]), this.showDelay);
    	}
    },
    
    pushDownNavigation: function (header) {
    	// clear any waiting show event
    	this.clearDropDownTimeout();    	
    	this.clearNavigationTimeout();
    	
    	// set timer for hide push 
    	this.setNavigationTimeout(this.removePushNavigation.bind(this, [header]), this.hideDelay);
    },    
    
    showDropDown: function (navigationListElement) {
    	if (this.canDropDown()){
    		// if we can drop down show now
    		this.addHover(navigationListElement);	 				    	
    	} else {
    		// if we cant drop down now, clear any currently waiting show's and set a new show.
    	 	this.clearDropDownTimeout(); 
    	 	this.setDropDownTimeout(this.addHover.bind(this, [navigationListElement]), this.showDelay);
    	}
    },

	hideDropDown: function (navigationListElement) {
  		this.clearNavigationTimeout();
  		// hide a with a slight delay to stop blinking
  		setTimeout(this.removeHover.bind(this, [navigationListElement]), this.hideDelay);		
	},			    			    

	addPushNavigation: function (header) {
		header.addClass('push-navigation');						  				
	},		
	
	removePushNavigation: function (header) {
		header.removeClass('push-navigation');					  				
	},		
		
	addHover: function (navigationListElement) {
		navigationListElement.addClass('hover');						  				
	},		
	
	removeHover: function (navigationListElement) {
		navigationListElement.removeClass('hover');					  				
	},	
	
    canDropDown: function () {		
    	return ($('header').hasClass('push-navigation'));				    
    },

	setNavigationTimeout: function (func, delay) {		
    	this.navigationTimeoutId = setTimeout(func, delay);	
    },    

    setDropDownTimeout: function (func, delay) {		
    	this.dropDownTimeoutId = setTimeout(func, delay);	
    },    
    
	clearNavigationTimeout: function () {
    	// clear if timout exists
    	if ($chk(this.navigationTimeoutId)){
    		clearTimeout(this.navigationTimeoutId);
    		this.navigationTimeoutId = undefined;
		}	    
    },
    	
    clearDropDownTimeout: function () {
    	// clear if timout exists
	 	if ($chk(this.dropDownTimeoutId)){
			clearTimeout(this.dropDownTimeoutId);
			this.dropDownTimeoutId = undefined;
		}
    }
	
});


var lightboxMap = {};

window.addEvent('domready', function(){	
	$$('.lightboxcontent').each(function(element){	
		var lightboxid = element.get('id');
		lightboxid = lightboxid.substring(0, lightboxid.length - 7);
		
		if (!lightboxMap[lightboxid]){	 
			lightboxMap[lightboxid] = new LightBox(lightboxid);
		}
		
		$(lightboxid).fireEvent('lightboxInit');
	});	
});

var LightBox = new Class({
	
	Implements: Events,
	
	content: undefined,
	height: 400,
	width: 400,
	minBorder: 50,
	identity: undefined, 
	external: false,
	closeFunction: function(){			
		this.close();
		return false;
	},
	
    initialize: function (identity) {		
		this.content = this.initContent(identity);
		this.height = parseInt(this.content.get('height')) || this.height;
		this.width = parseInt(this.content.get('width')) || this.width;
		this.identity = identity;
		this.bindOpen(identity);
    },

    initContent: function (identity) {    	
    	this.external = $(identity+'lightboxexternal');    	    	
    	return $(identity+"content" ).dispose();	    	
    },
    
    bindOpen: function (identity) {
    	$(identity+'open').addEvent('click', function(){
			this.open();
			return false;
		}.bind(this));
    },

    open: function () {    	
    	if ( !$('lightboxHolder') && !$('lightboxShield') ){    		
    		$(document.body).grab(this.createShield()); 	
    		$(document.body).grab(this.createHolder()); 
    	} else {
    		this.close();
    		this.open();
    	}
    },	    
    
    close: function () {	    	
    	this.removeHolder();
    	this.removeShield();	    		    	
    },	    
    
    resizeHolder: function (width, height) {
    	this.width = width;
    	this.height = height;
    	this.sizeHolder($('lightboxHolder'));
    },

    sizeHolder: function (lightboxDiv) {
    	
    	var documentDimentions = { 'x':  $('main').clientWidth , 'y': $('main').clientHeight};
    	var preferredDimentions = {'x': this.width, 'y': this.height };

    	var dimentions = this.calculateLightboxDimentions(documentDimentions, preferredDimentions);
    	var location = this.calculateLightboxLocation(documentDimentions, dimentions);
    	
    	lightboxDiv.setStyles({
    		'height': dimentions.y,
    		'width': dimentions.x,
    		'top': location.y,
    		'left': location.x 
		});

    	if (this.external){
    		this.external.setStyles({
        		'height': dimentions.y,
        		'width': dimentions.x        		 
    		});
    		
    	}    	
    	
    },    
    
    createHolder: function () {
    	
		var lightboxDiv = new Element('div', {
            'id': 'lightboxHolder'		            
        });

		this.sizeHolder(lightboxDiv);

		lightboxDiv.grab(this.content);
		lightboxDiv.grab(this.createCloseAnchor());


		return lightboxDiv;
    },
    
    calculateLightboxDimentions: function (documentDimentions, preferredDimentions) {
    	
    	var availible = {};    	
    	availible.x = Math.max(documentDimentions.x - (2 * this.minBorder), 0);    	
    	availible.y = Math.max(documentDimentions.y - (2 * this.minBorder), 0);
    	
    	var result = {};
    	result.x = (preferredDimentions.x < availible.x) ? preferredDimentions.x : availible.x ; 
    	result.y = (preferredDimentions.y < availible.y) ? preferredDimentions.y : availible.y ; 
    	
    	return result;
    },
    
    calculateLightboxLocation: function (documentDimentions, dimentions) {
    	
    	var windowDimentions = $(document.body).getSize();
    	var windowOffset = $(document.body).getScroll(); 
    	var windowScrollSize = $(document.body).getScrollSize(); 
    	
    	var border = {};
   		border.x = (dimentions.x < documentDimentions.x) ? (documentDimentions.x - dimentions.x) / 2 : 0 ;
   		border.y = (dimentions.y < documentDimentions.y) ? (documentDimentions.y - dimentions.y) / 2 : 0 ;
   		
   		var result = {};
   		result.x = border.x;

   		// offset within the window
   		if ( (2 * this.minBorder) + dimentions.y < windowDimentions.y ) {
   			// box with borders fits inside window
   			result.y = (windowDimentions.y - dimentions.y) / 2;   			
   		} else {
   			result.y = Math.min( border.y, this.minBorder );
   		}
   		
   		// offset of the window   		
   		var scrollRoom = Math.max((windowScrollSize.y - windowDimentions.y) , 0);
   		result.y = result.y + Math.min(scrollRoom, windowOffset.y);
   		
    	return result;
    },
    
    createCloseAnchor: function () {
		var closeAnchor = new Element('a', {			
			'id' : this.identity+'close' ,			
           	'href' : '#',
           	'class' : 'lightbox-close-link',
           	'text': '\u00a0\u00a0\u00a0\u00a0'
        });
		closeAnchor.addEvent('click', this.closeFunction.bind(this));		
		return closeAnchor;
    },    

    createShield: function () {
		if (!$('lightboxShield')){

			var lightboxShield = new Element('div', {
	            'id': 'lightboxShield',
	            'text': '\u00a0' 
	        });
			
			var dimentions = $(document.body).getScrollSize();			
			lightboxShield.setStyles({
				'width': dimentions.x, 
				'height': dimentions.y	
			});
			
			return lightboxShield;								    	
		}		
    },
        
    removeHolder: function () {
		if ($('lightboxHolder')){
			$('lightboxHolder').dispose();
		}
    },
    
    removeShield: function () {
		if ($('lightboxShield')){
			$('lightboxShield').dispose();
		}
    }	    
    
});		

function setPolaroidInplace(){
	var polaroid = document.getElement(".polaroid-image");
	if(polaroid){
		polaroid.setStyle('display','block');
		var change = false;
//		var height=(document.getElement('.visual-text h1').getSize().y+document.getElement('.visual-text p').getSize().y+18);
		var height=(document.getElement('.visual').getSize().y-53);
//		alert(height)
		if(height<73){
			document.getElement('#dummy_spacer_div').setStyle('height', height);
			change = true;
		}
		else{
			document.getElement('#dummy_div').setStyle('height', (height-73));
			change = true;
		}
		if(document.getElement('.visual-text h1').getSize().y>30){
			document.getElement('#dummy_div').setStyle('height', (height-73+10));
			change = true;
		}
		if(change){
			setResetMenu();
		}
	}
}

function setResetMenu(){
	var holder = $$(".accordion-holder");
	if(holder){
		var height = $$(".visual-text").getHeight()-30;//deduct 10px for top margin
		holder.setStyle('margin-top', '-'+ height +'px');
		holder.setStyle('min-height', height + 'px');
		holder.removeClass('hidden');
	}
}


// Link Building Pro ver 1.0
// Copyright Latent Motion, at seox.org
function init(){

// Options:
var useMetaKeyword = false; // Otherwise, page title
var minLength = 40; // Min selection chars
var useMetaAuthor = false; // Otherwise use domain
var addLinks = true; // Otherwise, just cite at end
var skip = new Array("home","link","click here"); // Don't link these (lowercase!)
	
function D(b,a,c){if(b.addEventListener)b.addEventListener(a,c,false);else b.attachEvent&&b.attachEvent("on"+a,c)}function o(b,a){if(typeof b=="undefined"||b==null||!RegExp)return false;a=new RegExp("(^|\\s)"+a+"(\\s|$)");if(typeof b=="string")return a.test(b);else if(typeof b=="object"&&b.className)return a.test(b.className);return false}function E(b,a){var c=false,j;for(j=b.parentNode;j!=undefined;){if(b.parentNode==e.body)break;else if(b.parentNode==a){c=true;break}j=j.parentNode}return c}
function F(b){return b.replace(/^\s*/,"")}function G(b){return b.replace(/\s*$/,"")}function H(b){return G(F(b))}var I=new Array("home","link","click here"),e=document,x=window,t=e.getElementsByTagName("body")[0],p=e.getElementsByName("author"),i=e.getElementsByName("keywords"),q=x.location.toString(),u=e.title.toString(),d;if(!Array.indexOf)Array.prototype.indexOf=function(b,a){var c=-1;for(a=a|0;a<this.length||a==-1;a++)if(this[a]==b)c=a;return c};if(i.length>0&&useMetaKeyword){i=e.getElementsByName("keywords")[0].getAttribute("content").split(",");
u=Math.floor(Math.random()*i.length);i=i[u].replace(/^\s*|\s*$/,"")}else i=u;p=(p.length>0&&useMetaAuthor)?p[0].getAttribute("content"):e.domain;var y="<p id='credit'><br/>Lees meer op de pagina '<a href='"+q+"'>"+i.replace(/\s\|\sKARWEI/,'')+"</a>'. Wat je ook bedenkt. Geen punt bij <a href='http://"+e.domain+"' />KARWEI</a><br/>Of klik op deze link: <a href='"+q+"'>"+q+"</a></p>";if(/MSIE/g.test(navigator.userAgent))var v="msie";else if(/Safari/g.test(navigator.userAgent))v="safChrome";q=e.createElement("span");q.setAttribute("id","sasText");t.appendChild(q);d=e.getElementById("sasText");posType=document.all&&!window.opera&&!window.XMLHttpRequest?
"absolute":"fixed";d.style.position=posType;d.style.top="0px";d.style.left="-9999px";D(t,"copy",function(){d.innerHTML=y;if(v=="msie"){for(var b=e.selection.createRange(),a=b.parentElement();a.nodeName!="BODY"&&!o(a,"lbExclude");)a=a.parentNode;if(o(a,"lbExclude"))return true;a=e.body.createTextRange();a.moveToElementText(d);var c=b.duplicate();c=c.htmlText;if(c.length>minLength){d.id="tempSasText";d.innerHTML=c+y;(c=e.getElementById("sasText"))&&c.parentNode.removeChild(c);d.id="sasText";a.select()}}else{b=
x.getSelection();for(a=b.anchorNode;a.nodeName!="BODY"&&!o(a,"lbExclude");)a=a.parentNode;if(o(a,"lbExclude"))return false;if(b==""&&v=="safChrome"){d.innerHTML=t.innerHTML;a=document.createRange();b.removeAllRanges();a.selectNodeContents(d);b.addRange(a)}else if(b.toString().length>minLength){var j=e.getElementById("credit");a=b.getRangeAt(0);c=a.cloneContents();d.id="tempSasText";d.insertBefore(c,j);(c=e.getElementById("sasText"))&&c.parentNode.removeChild(c);d.id="sasText";b.removeAllRanges();a.selectNode(d);
b.addRange(a)}}var w=[];a=d.getElementsByTagName("a");for(b=0;b<a.length;b++)w.push(a[b].href);if(addLinks){a=e.getElementsByTagName("a");for(b=0;b<a.length;b++){var r=a[b].href;if(w.indexOf(r)==-1)if(E(a[b],d)==false){var f=H(a[b].innerHTML).toLowerCase();if(skip.indexOf(f)==-1)if((new RegExp(e.domain,"g")).test(r)){var z=[];function n(g,k,l){for(var A=g.childNodes.length;A-- >0;){var h=g.childNodes[A];if(h.nodeType===1)h.tagName.toLowerCase()!=="a"&&n(h,k,l);else if(h.nodeType===3)for(var m=h.data.length;1;){m=
h.data.lastIndexOf(k,m);if(m===-1||z.indexOf(k.toLowerCase())!==-1)break;var B=/\w/;if(h.nodeValue.charAt(m-1).match(B)||h.nodeValue.charAt(m+f.length).match(B))break;l.call(window,h,m)}}}function s(g,k){g.splitText(k+f.length);var l=e.createElement("a");l.href=r;l.appendChild(g.splitText(k));g.parentNode.insertBefore(l,g.nextSibling);z.push(f.toLowerCase());w.push(r)}n(d,f,s);f=f.charAt(0).toUpperCase()+f.slice(1);n(d,f,s);f=f.toUpperCase();n(d,f,s);f=f.replace(/\w\S*/g,function(g){return g.charAt(0).toUpperCase()+
g.substr(1).toLowerCase()});n(d,f,s)}}}}})}window.onload=init;
