(function(w){var E=w(window),u,g,F=-1,o,x,D,v,y,L,s,n=!window.XMLHttpRequest,e=window.opera&&(document.compatMode=="CSS1Compat")&&(w.browser.version>=9.3),m=document.documentElement,l={},t=new Image(),J=new Image(),H,a,h,q,I,d,G,c,A,K;w(function(){w("body").append(w([H=w('<div id="lbOverlay" />')[0],a=w('<div id="lbCenter" />')[0],G=w('<div id="lbBottomContainer" />')[0]]).css("display","none"));h=w('<div id="lbImage" />').appendTo(a).append(q=w('<div style="position: relative;" />').append([I=w('<a id="lbPrevLink" href="#" />').click(B)[0],d=w('<a id="lbNextLink" href="#" />').click(f)[0]])[0])[0];c=w('<div id="lbBottom" />').appendTo(G).append([w('<a id="lbCloseLink" href="#" />').add(H).click(C)[0],A=w('<div id="lbCaption" />')[0],K=w('<div id="lbNumber" />')[0],w('<div style="clear: both;" />')[0]])[0]});w.slimbox=function(O,N,M){u=w.extend({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeEasing:"swing",initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},M);if(typeof O=="string"){O=[[O,N]];N=0}y=E.scrollTop()+((e?m.clientHeight:E.height())/2);L=u.initialWidth;s=u.initialHeight;w(a).css({top:Math.max(0,y-(s/2)),width:L,height:s,marginLeft:-L/2}).show();v=n||(H.currentStyle&&(H.currentStyle.position!="fixed"));if(v){H.style.position="absolute"}w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);z();k(1);g=O;u.loop=u.loop&&(g.length>1);return b(N)};w.fn.slimbox=function(M,P,O){P=P||function(Q){return[Q.href,Q.title]};O=O||function(){return true};var N=this;return N.unbind("click").click(function(){var S=this,U=0,T,Q=0,R;T=w.grep(N,function(W,V){return O.call(S,W,V)});for(R=T.length;Q<R;++Q){if(T[Q]==S){U=Q}T[Q]=P(T[Q],Q)}return w.slimbox(T,U,M)})};function z(){var N=E.scrollLeft(),M=e?m.clientWidth:E.width();w([a,G]).css("left",N+(M/2));if(v){w(H).css({left:N,top:E.scrollTop(),width:M,height:E.height()})}}function k(M){w("object").add(n?"select":"embed").each(function(O,P){if(M){w.data(P,"slimbox",P.style.visibility)}P.style.visibility=M?"hidden":w.data(P,"slimbox")});var N=M?"bind":"unbind";E[N]("scroll resize",z);w(document)[N]("keydown",p)}function p(O){var N=O.keyCode,M=w.inArray;return(M(N,u.closeKeys)>=0)?C():(M(N,u.nextKeys)>=0)?f():(M(N,u.previousKeys)>=0)?B():false}function B(){return b(x)}function f(){return b(D)}function b(M){if(M>=0){F=M;o=g[F][0];x=(F||(u.loop?g.length:0))-1;D=((F+1)%g.length)||(u.loop?0:-1);r();a.className="lbLoading";l=new Image();l.onload=j;l.src=o}return false}function j(){a.className="";w(h).css({backgroundImage:"url("+o+")",visibility:"hidden",display:""});w(q).width(l.width);w([q,I,d]).height(l.height);w(A).html(g[F][1]||"");w(K).html((((g.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,g.length));if(x>=0){t.src=g[x][0]}if(D>=0){J.src=g[D][0]}L=h.offsetWidth;s=h.offsetHeight;var M=Math.max(0,y-(s/2));if(a.offsetHeight!=s){w(a).animate({height:s,top:M},u.resizeDuration,u.resizeEasing)}if(a.offsetWidth!=L){w(a).animate({width:L,marginLeft:-L/2},u.resizeDuration,u.resizeEasing)}w(a).queue(function(){w(G).css({width:L,top:M+s,marginLeft:-L/2,visibility:"hidden",display:""});w(h).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,i)})}function i(){if(x>=0){w(I).show()}if(D>=0){w(d).show()}w(c).css("marginTop",-c.offsetHeight).animate({marginTop:0},u.captionAnimationDuration);G.style.visibility=""}function r(){l.onload=null;l.src=t.src=J.src=o;w([a,h,c]).stop(true);w([I,d,h,G]).hide()}function C(){if(F>=0){r();F=x=D=-1;w(a).hide();w(H).stop().fadeOut(u.overlayFadeDuration,k)}return false}})(jQuery);


$.fn.resizeMenu = function() {
	
	var aTags = new Array();
	var aTagsTotaal = 0;
	var lengteMenu = $(this).width();
	
	$(this).children().find("a").each(function(){
		aTagsTotaal += $(this).width();
		aTags.push($(this));
	});
	
	var margin = Math.floor((lengteMenu - aTagsTotaal ) / (aTags.length - 1));

	$.each(aTags, function(i, val){
		if(i < (aTags.length - 1)){
			$(this).css({'marginRight': margin + 'px'});
		}
	});
}

$.fn.resizeMenuButtons = function() {
 
 var aTags = new Array();
 var aTagsTotaal = 0;
 var lengteMenu = $(this).width();
 
 $(this).children().find("a").each(function(){
  aTagsTotaal += $(this).width();
  aTags.push($(this));
 });
 
 var margin = Math.floor((lengteMenu - aTagsTotaal ) / (aTags.length * 2));
 
 $.each(aTags, function(i, val){
  if(i < (aTags.length)){
   $(this).css({'paddingRight': margin + 'px'});
   $(this).css({'paddingLeft': margin + 'px'});
  }
 });
}


$.fn.veranderPrijs = function(opties){
	var defaults = {
		search: ' 0,-*',
		changetext: 'Op aanvraag'
	}
	opties = $.extend(defaults, opties); 
	
	$(this).each(function(){
    if($(this).text().indexOf(opties.search)>-1) {
        $(this).text(opties.changetext);
    }
});
}
$.fn.veranderKmstand = function(opties){
	var defaults = {
		gelijkaan: 0,
		changetext: 'Op aanvraag'
	}
	opties = $.extend(defaults, opties); 
	
	$(this).each(function(){
	var km = parseInt($(this).text());
	if(km==opties.gelijkaan) {
		$(this).text(opties.changetext);
	} 
});
}
$.fn.slideshow = function(obj)
{
	if(obj == undefined){var obj = {}}
	var self = $(this);
	var t = (obj.time == undefined) ? 1500 : obj.time;
	var d = (obj.delay == undefined) ? 1500 : obj.delay;
	slide(self.children(":first"));
	function slide(e){
                if (e.is(':visible')){
		e.fadeOut(t);
		e = (e.next().length == 0) ? self.children(":first") : e.next();
                }
		e.fadeIn(t, function(){
			var el = $(this);
			setTimeout(function(){
				slide(el);
			}, d);
		});
   }
}
var toolTipStyleTag = false;

/*
* Tooltip generates a tooltip as soon as
* the user hovers over $(this).
*
* @param string str (html die in de tooltip geplaatst wordt)
* @param object options (duration, easing)
* @return void
*/
$.fn.toolTip = function(str, options)
{
	/*
	* On initialization place a link to the 
	* css file in the document head
	*/
	if (toolTipStyleTag === false)
	{
		/*
		// Absolute path (webserver use)
		var linkPath = location.protocol 
					   + '//' 
					   + location.hostname 
					   + '/js/tooltip/css/tooltip.css';	
		*/
		
		// Relative path (locale use)
		var linkPath = 'http://sites.autodealers.nl/css/tooltip.css';
		
		/*
		* Check if the link with href ending in linkPath
		* already exits in the document, if not prepend it
		*/
		if (0 == $('link[href$="' + linkPath + '"]').length)
		{
			var linkTag  = $('<link>');
			linkTag.attr('type', 'text/css');
			linkTag.attr('rel', 'stylesheet');
			linkTag.attr('href', linkPath);
			$('head').prepend(linkTag);
		}
		
		/*
		* Set toolTipStyleTag flag to true to
		* indicate the style link has been placed
		*/
		toolTipStyleTag = true;
	}
	
	
	/*
	* Calculates the size above and left from
	* the viewport
	*
	* @return array x|y
	*/
	function getPageScroll() {
		var xScroll, yScroll;
		
		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		} 
		
		else if (document.documentElement && document.documentElement.scrollTop) {
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		} 
		
		else if (document.body) {// all other Explorers
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;
		}
		
		return new Array(xScroll,yScroll)
	}

	/*
	* Start the tooltip
	*/
	return $(this).mouseenter(function(e){
		
		var self 	= $(this);
		var tooltip = $('<div>');
		var wrap 	= $('<div>');
		var holder	= $('<div>');
		var middle	= $('<div>');
		
		var pageScroll = getPageScroll(); // Get scroll size
		
		// Default options
		var settings = {
			duration: 1000,
			easing: 500,
			position: 'TOP', // Tooltip at the top of self
			arrowPosition: 'CENTER',// Results in default
			spacing: 0, // Extra spacing to be applyed to tooltip
			identifier: null, // Class to be added to the tooltip to apply custom style
			snap: false // Tooltip is relative to mouse
		};
		
		// User options
		$.extend(settings, options);
		
		// Remove all opend tooltips
		$('.ad-tooltip-wrap').fadeOut(settings.easing).remove();
		
		// Construct tooltip-header
		var middleHeader = tooltip.clone()
								  .addClass('ad-tooltip-middle-wrap');
								  
		var header = tooltip.clone()
							.addClass('ad-tooltip-header')
							.append(
								tooltip.clone()
									   .addClass('ad-tooltip-left'),
								middleHeader,
								tooltip.clone()
									   .addClass('ad-tooltip-right')
							);
		
		// Construct tooltip-footer
		var middleFooter = tooltip.clone()
							      .addClass('ad-tooltip-middle-wrap');
								  
		var footer = tooltip.clone()
							.addClass('ad-tooltip-footer')
							.append(
								tooltip.clone()
									   .addClass('ad-tooltip-left'),
	   						    middleFooter,
								tooltip.clone()
									   .addClass('ad-tooltip-right')
							);
		
		// Construct tooltip
		var left   = tooltip.clone()
						    .addClass('ad-tooltip-left');
		var right  = tooltip.clone()
						    .addClass('ad-tooltip-right');
		var center = tooltip.clone()
						    .addClass('ad-tooltip-center')
							.append(
								tooltip.clone()
									   .addClass('ad-tooltip-content')
									   .html(str)
							);
							
		tooltip.addClass('ad-tooltip').append(left)
									  .append(center)
									  .append(right); 
									  
		wrap.addClass('ad-tooltip-wrap')
		    .css({
			    position: 'absolute'
			})
			.append(
				header, tooltip, footer
			);
			
		/*
		* If an custom identifier was set append 
		* the user supplied class to the wrap
		*/
		if (null != settings.identifier){
			wrap.addClass(settings.identifier);
		}
		
		// Add tooltip to document
		$('body:first').append(wrap);
		
		// Set header and footer width (fix for ie7)
		header.width(
			wrap.width()
		);
		
		footer.width(
			wrap.width()
		);
		
		/*
		* Construct tooltip middle-bottom, the arrow will be included
		* only if the tooltip will appear above $(this)
		*/
		var middleLeftElement  = middle.clone()
									   .addClass('ad-tooltip-middle-left');
		var middleArrowElement = middle.clone()
									   .addClass('ad-tooltip-middle-arrow');
		var middleRightElement = middle.clone()
									   .addClass('ad-tooltip-middle-right');
		
		var middleArrow = middle.clone()
								.append(
									middleLeftElement,
									middleArrowElement,
									middleRightElement
								);
							
		var middlePlain = middle.clone()
								.addClass('ad-tooltip-middle-plain');
		
		/*
		* Check if y position fits in the screen
		* if the tooltip does not fit change position
		*/
		if ('TOP' == settings.position){
			// Force tooltip to bottom
			if (wrap.height() > (self.offset().top - pageScroll[1])){
				settings.position = 'BOTTOM';
			}
		}
		
		if ('BOTTOM' == settings.position){
			// Force tooltip to bottom
			if (wrap.height() > ($(window).height() - ((self.offset().top - pageScroll[1]) + self.height()))){
				settings.position = 'TOP';
			}
		}
		
		/*
		* Check if x position fits in the screen
		* if the tooltip does not fit change position
		*/
		if ('LEFT' == settings.position){
			// Force tooltip to right
			if (wrap.width() > (self.offset().left - pageScroll[0])){
				settings.position = 'RIGHT';
			}
		}
		
		if ('RIGHT' == settings.position){
			// Force tooltip to left
			if (wrap.width() > ($(window).width() - ((self.offset().left - pageScroll[0]) + self.width()))){
				settings.position = 'LEFT';
			}
		}
		
		/*
		* Build the sides of the tooltip according
		* to where the arrow should be
		*/
		switch(settings.position)
		{
			case 'TOP':
				// Arrow down
				middleHeader.append(middlePlain.clone());
				middleFooter.append(middleArrow);
				left.append(middlePlain.clone());
				right.append(middlePlain.clone());
				break;
			case 'BOTTOM':
				// Arrow up
				middleHeader.append(middleArrow);
				middleFooter.append(middlePlain.clone());
				left.append(middlePlain.clone());
				right.append(middlePlain.clone());
				break;
			case 'LEFT':
				// Arrow Left
				middleHeader.append(middlePlain.clone());
				middleFooter.append(middlePlain.clone());
				left.append(middlePlain.clone());
				right.append(middleArrow);
				break;
			case 'RIGHT':
				// Arrow Right
				middleHeader.append(middlePlain.clone());
				middleFooter.append(middlePlain.clone());
				left.append(middleArrow);
				right.append(middlePlain.clone());
				break;
		}
		
		
		// Estatic fix
		if (center.height() < middleArrowElement.height() && 
		('LEFT' == settings.position ||
		'RIGHT' == settings.position)){
			center.height(middleArrowElement.height());
		}
		
		// Set left and right height
		left.height(
			tooltip.height()
		);
		
		right.height(
			tooltip.height()
		);
		
		/* 
		* position the arrow 
		* 
		* The position of the arrow can be set
		* with the user options, default is BOTTOM-CENTER
		*/
		if ('TOP' == settings.position || 'BOTTOM' == settings.position){
			
			/*
			* Check if the tooltip fits x
			* if not change arrow position
			*/
			if ('LEFT' == settings.arrowPosition){
				// Forse arrow to the right (tooltip to the left)
				if (wrap.width() > ($(window).width() - e.clientX)){
					settings.arrowPosition = 'RIGHT';
				}
			}
			
			if ('RIGHT' == settings.arrowPosition){
				// Forse arrow to the left (tooltip to the right)
				if (wrap.width() > e.clientX){
					settings.arrowPosition = 'LEFT';
				}
			}
		
			// Horizontal arrow positioning
			var middleWidth = middleHeader.width();
			var arrowWidth  = middleArrowElement.width();
			var leftWidth   = 0;
			var rightWidth  = 0;
			
			switch (settings.arrowPosition)
			{
				case 'LEFT':
					rightWidth = middleWidth - arrowWidth;
					break;
				case 'RIGHT':
					leftWidth = middleWidth - arrowWidth;
					break;
				default:
					// center bottom or top
					leftWidth = (middleWidth - arrowWidth) / 2;
					rightWidth = (middleWidth - arrowWidth) / 2;
			}

			middleLeftElement.width(leftWidth);
			middleRightElement.width(rightWidth);
			middleArrowElement.css({
				'left': leftWidth
			});
		}
		
		else if ('LEFT' == settings.position || 'RIGHT' == settings.position){
		
			/*
			* Check if the tooltip fits x
			* if not change arrow position
			*/
			if ('TOP' == settings.arrowPosition){
				// Forse arrow to bottom (tooltip to the top)
				if (wrap.height() > ($(window).height() - e.clientY)){
					settings.arrowPosition = 'BOTTOM';
				}
			}
			
			if ('BOTTOM' == settings.arrowPosition){
				// Forse arrow to the top (tooltip to the bottom)
				if (wrap.height() > e.clientY){
					settings.arrowPosition = 'TOP';
				}
			}
		
			// Vertical arrow positioning
			var middleHeight = left.height();
			var arrowHeight  = middleArrowElement.height();
			var leftHeight   = 0;
			var rightHeight  = 0;
			
			switch (settings.arrowPosition)
			{
				case 'TOP':
					rightHeight = middleHeight - arrowHeight;
					break;
				case 'BOTTOM':
					leftHeight = middleHeight - arrowHeight;
					break;
				default:
					// center bottom or top
					leftHeight = (middleHeight - arrowHeight) / 2;
					rightHeight = (middleHeight - arrowHeight) / 2;
			}
			
			middleLeftElement.height(leftHeight);
			middleRightElement.height(rightHeight);
			
			if (leftHeight < 0){
				leftHeight = 0;
			}
			
			middleArrowElement.css({
				'top': leftHeight
			});
		}
		
		// Determin position in document
		var tooltipY = wrap.outerHeight();
		var tooltipX = wrap.outerWidth();
		var middleArrowElementWidth = middleArrowElement.width();
		
		// Calculate default vertical position for tooltip
		if (false === settings.snap){
			// Default center of tooltip verticaly
			var top  = parseInt(e.pageY) - ( tooltipY / 2)
		} else {
			// Calculate vertical middle of self
			var top = (parseInt(self.offset().top) + (self.outerHeight() / 2)) - (tooltipY / 2);
		}
		
		// Calculate default horizontal position for tooltip
		if (false === settings.snap){
			// Default center of tooltip horizontaly
			var left = parseInt(e.pageX) - ( tooltipX / 2);
		} else {
			// Calculate horizontal middle of self
			var left = (parseInt(self.offset().left) + (self.outerWidth() / 2)) - (tooltipX / 2);
		}
		
		if ('TOP' == settings.position || 'BOTTOM' == settings.position){
		
			/*
			* If the tooltip will appear on the left or right side
			* of the element $(this), position the tooltip relative to the 
			* arrow horizontaly but not verticaly
			*/
			if ('LEFT' == settings.arrowPosition){
				left += ((tooltipX /2) - middleArrowElementWidth);
			}
			
			else if ('RIGHT' == settings.arrowPosition){
				left -= ((tooltipX /2) - middleArrowElementWidth);
			}
		}
		
		else if ('LEFT' == settings.position ||	'RIGHT' == settings.position){
		
			/*
			* If the tooltip will appear on the left or right side
			* of the element $(this), position the tooltip relative to the
			* arrow verticaly but not horizontaly
			*/
			if ('TOP' == settings.arrowPosition){
				addTop = (leftHeight > 0) ? leftHeight : rightHeight;
				top += (addTop / 2);
			}
			
			else if ('BOTTOM' == settings.arrowPosition){
				addTop = (leftHeight > 0) ? leftHeight : rightHeight;
				top -= (addTop / 2);
			}
		}
		
		// Apply positioning
		if ('TOP' == settings.position){
		
			// Place tooltip at top of element
			var top = parseInt(self.offset().top) - parseInt(tooltipY);
			wrap.addClass('ad-tooltip-position-top');
			
			// Apply extra spacing
			top -= settings.spacing;
		} 
		
		else if ('BOTTOM' == settings.position){
		
			// Place tooltip at bottom of element
			var top = (parseInt(self.offset().top) + parseInt(self.outerHeight()));
			wrap.addClass('ad-tooltip-position-bottom');
			
			// Apply extra spacing
			top += settings.spacing;
		}
		
		else if ('LEFT' == settings.position){
			// Place tooltip at left of the element
			var left = (parseInt(self.offset().left) - parseInt(tooltipX));
			wrap.addClass('ad-tooltip-position-left');
			
			// Apply extra spacing
			left -= (settings.spacing);
		}
		
		else if ('RIGHT' == settings.position){
			// Place tooltip at right of the element
			var left = (parseInt(self.offset().left) + parseInt(self.outerWidth()));
			wrap.addClass('ad-tooltip-position-right');
			
			// Apply extra spacing
			left += (settings.spacing);
		}
		
		wrap.css({
			top: top,
			left: left
		});
		
		self.mouseleave(function(){
			// Fadeout tooltip after duration
			t = setTimeout(function() {
				wrap.fadeOut(settings.easing);
			}, (settings.duration + settings.easing));
		});
		
		// Fadeout tooltip on document click
		$(document).bind('click', function(event){
			var el = '.ad-tooltip-wrap';
			if($(event.target).is(':not('+ el +')') && $(event.target).parents(el).length == 0){
				clearTimeout(t);
				wrap.fadeOut(settings.easing);
			}
		});
		
		// Fadeout tooltip on window resize
		$(window).resize(function(){
			wrap.hide(0);
		});
		
		// Clear fadeout action on tooltip hover
		wrap.hover(
			function() {
				clearTimeout(t);
		}, function() {
			wrap.fadeOut(settings.easing);
		});
			
		// Animate tooltip
		wrap.fadeTo(settings.easing, 0.9);
		
	});
}




