
var lastOpenHref;
var lastOpenMenu;
var closemenuTimer;

function closeMenu()
{
	var l = lastOpenMenu;
	lastOpenMenu = null;
	lastOpenHref = null;
	l.slideUp('fast');
}

$(document).ready(function(){
	$('#contactsmall input[name=bedrijfsnaam]').blur(function(){
		if($(this).val() == '')
		{
			$(this).val('bedrijfsnaam');
		}
	})
		
    // zoekveld leegmaken en eventueel tekst herstellen
	
	$('.zoeken input[name=zoekveld]').focus(function(){
		if($(this).val() == 'zoeken')
		{
			$(this).val('');
		}  
	})
	
	$('.zoeken input[name=zoekveld]').blur(function(){
		if($(this).val() == '')
		{
			$(this).val('zoeken');
		}  
	})
	
	$('#contactsmall input[name=bedrijfsnaam]').blur(function(){
		if($(this).val() == '')
		{
			$(this).val('bedrijfsnaam');
		}
	})
	
	
	$('#contactsmall input[name=bedrijfsnaam]').focus(function(){
		if($(this).val() == 'bedrijfsnaam')
		{
			$(this).val('');
		}  
	})
	
	$('#contactsmall input[name=contactpersoon]').blur(function(){
		if($(this).val() == '')
		{
			$(this).val('contactpersoon');
		}
	})
		
    // zoekveld leegmaken en eventueel tekst herstellen
	$('#contactsmall input[name=contactpersoon]').focus(function(){
		if($(this).val() == 'contactpersoon')
		{
			$(this).val('');
		}  
	})
	
	$('#contactsmall input[name=email]').blur(function(){
		if($(this).val() == '')
		{
			$(this).val('e-mail');
		}
	})
		
    // zoekveld leegmaken en eventueel tekst herstellen
	$('#contactsmall input[name=email]').focus(function(){
		if($(this).val() == 'e-mail')
		{
			$(this).val('');
		}  
	})
	
	$('#contactsmall textarea').focus(function(){
		if($(this).val() == 'vraag / opmerking')
		{
			$(this).val('');
		}  											   
	})
	
	$('#contactsmall textarea').blur(function(){
		if($(this).val() == '')
		{
			$(this).val('vraag / opmerking');
		}  											   
	})
	
	if ($('#paginanummer').html())
	{
		paginanummer = $('#paginanummer').val;
	}


	// dropdownmenu
	$("#menu > li").mouseenter(function(){
		
		var mouseMenu = $(this).closest('li').find('ul');
		var a = $(this).find('a');
		
		if (a.attr('href') == lastOpenHref )
		{
			clearTimeout(closemenuTimer);
		}
		else
		{
			if ( closemenuTimer )
			{
				clearTimeout(closemenuTimer);
			}
			
			$('#menu > li > ul').hide();
			lastOpenHref = a.attr('href');
			lastOpenMenu = mouseMenu;
			
			mouseMenu.slideDown('fast');
		}
		subBreedte = 0;
		a.parent().find('li').each(function(){
			padding = parseInt($(this).css('padding-left').replace('px',''));
			padding += parseInt($(this).css('padding-right').replace('px',''));
			subBreedte += $(this).width();
			subBreedte += padding;
		});
		subBreedte += 1; // Bugfix van eerste item (past net niet allemaal er in).
		$(this).parent().find('ul').css('width',subBreedte+'px');
	});
	
	$("#menu > li").mouseleave(function(){
		closemenuTimer = setTimeout("closeMenu();",300);
	});
	
	
	
	$('.contactverzendlink').click(function(){
		$('#contactform').submit();
		return false;
	});
	
	$('.zoekpijl').click(function(){
		$('#searchform').submit();
		return false;
	});

	$('.noroute').click(function(){
		return false;
	});

	$('.dienstenfooter > li:last > span').hide();
		
		
	// flash inladen
	// als een div aangemaakt wordt met als class "flash",
	// en als inhoud het absolute pad naar de flash en de variable
	// wordt deze automatisch ingeladen
	$('.flash').each(function(){
		slideshowvars = $(this).find('.flashlink').html();
		slideshowvars = slideshowvars.replace(/^<!--/, "");
		slideshowvars = slideshowvars.replace(/-->$/, "");
		slideshowheight = $(this).css('height');
		slideshowwidth = $(this).css('width');
		$(this).html("");
		$(this).flash({
	    	src: slideshowvars,
	    	width: slideshowwidth,
	    	height: slideshowheight,
			wmode: 'transparent'
		});
	});

	// png fix
    $(document).pngFix(); 
	
	//## colorbox ##
	if (typeof $().colorbox == 'function')
	{
		/**
		 *	-- Gebruik --
		 *	Geef een anchor de class .colorbox en de href de locatie van de afbeelding
		 *	Voor een slideshow:
		 *	Geef meerdere anchor's met .colorbox dezelfde rel="" waarde
		 *	Voorbeeld slideshow:
		 *	<a class="colorbox" rel="testblaat" href="/public/img/video2.jpg">klik</a>
		 *	<a class="colorbox" rel="testblaat" href="/public/img/banner.jpg">klik</a>
		 */
		//set
		$('.colorbox').colorbox({
			transition:'elastic'
		});

		/**
		* Html tonen in colorbox:
		* <a class="htmlcolorbox" rel="idvanjehtmldiv">Klik</a>
		*/
		$('.htmlcolorbox').click(function(){
			var targetid = $(this).attr('rel');
			if (typeof targetid == 'undefined' || targetid == '') return ;

			$(this).colorbox({
				open: true,
				inline:true,
				transition:'none',
				href:"#" + targetid
			});
		});

		/**
		* Youtube movie tonen in colorbox:
		 *	Voor een slideshow:
		 *	Geef meerdere anchor's met .colorbox dezelfde rel="" waarde
		 *	Voorbeeld slideshow:
		* <a class="youtubecolorbox" rel="testblaat" href="http://www.youtube.com/v/[movie-id]">Klik</a>
		*/
		$('.youtubecolorbox').colorbox({
			iframe:true,
			innerWidth: 640,
			innerHeight:505,
			transition:'elastic'
		});
		
		
		$('.js_iframecolorbox').colorbox({
			iframe:true,
			innerWidth: 640,
			innerHeight:505,
			transition:'elastic'
		});
	}

	//## Klapblokken ##

	// teksten in/uitklappen
	$('.uitklaplink').click(function () {
		var obj = $(this).parents('.uitklapblok').find('.uitklapdetail');

		var scrollto = $(this).closest('.uitklapblok');
		
		$(this).parents('.uitklapblokken').find('.uitklapdetail').slideUp('fast');
		$(this).parents('.uitklapblokken').find('.uitklapblok').removeClass('active');
		$(this).parents('.uitklapblokken').find('.uitklaplink').removeClass('activearrow');
		$(this).removeClass('activearrow');

		if (obj.css('display')=='none')
		{
			obj.slideDown('fast',function(){
				$.scrollTo( scrollto, {duration:500}  );
			});
			$(this).addClass('activearrow');
			$(this).parents('.uitklapblok').addClass('active');
		}
		
		
		
	});
	
	$('.besteltraject').find('.uitklapdetail:first').slideDown('slow');
	
    // Standaard klik op volgende stap
    $('.volgendestap').click(function()	{
        $(this).parents('.uitklapblok:first').next().find('.uitklaplink').trigger('click');
    });
	
	
	//cookies opslaan bij verlaten van pagina
	$(window).unload(function(){
		$('.uitklapblokken').each(function(){
			if ($(this).hasClass('enablecookie'))
			{
				$(this).find('.uitklaplink').each(function()
				{
					var id = $(this).attr('id');
					if (id != undefined && id)
					{
						if ($(this).hasClass('open'))
							$.cookie(id, 1);
						else
							$.cookie(id, 0);
					}
				});
			}
		});
	});
	//cookies uitlezen
	$('.uitklapblokken').each(function(){
		if ($(this).hasClass('enablecookie'))
		{
			$(this).find('.uitklaplink').each(function()
			{
				var id = $(this).attr('id');
				if (id != undefined && id)
				{
					if ($.cookie(id) == 1) //was uitgeklapt
					{
						if (!$(this).hasClass('open'))
							$(this).trigger('click'); //uitklappen
					}
				}
			});
		}
	});

	// links in "_blank" i.p.v. via HTML i.v.m. valid XHTML
	$('.blankwindow').attr('target','_blank');

	//field hints
	$(".hintfield").each(function(i) {
        var beginStyle = $(this).attr("style");
		$(this).addClass("hint");
		$(this).val($(this).attr("title"));

        $(this).bind("focus", function(e) {
            if ($(this).val() == $(this).attr("title")) {
                $(this).val("");
				$(this).removeClass("hint");
            }
        });
        $(this).bind("blur", function(e) {
            if ($(this).val() == "") {
				$(this).addClass("hint");
				$(this).val($(this).attr("title"));
            } else {
				$(this).css("border-color", "");
				$(this).removeClass("hint");
			}
        });
    });

	//submit form link
	$('.submitform').click(function(){
		$(this).parents('form:first').submit();
		return false;
	})
	

	//AJAX FORMS automatisch
	if (typeof $().ajaxForm == 'function')
	{
		$('form.ajaxform').each(function(){
			var form = $(this);
			$(this).ajaxForm({
				dataType: 'json',
				beforeSerialize: function(){
					form.find('.hint').val('');
				},
				beforeSubmit: function(){
					form.parent().find('.errormelding').remove();

					//vereiste velden
					form.find('.required').each(function(){
						if ($(this).val().replace(' ', '') == '' || $(this).hasClass('hint')) //leeg of bevat nog de hint
						{
							return false;
							$(this).addClass('formerror');
						}
						else
							$(this).removeClass('formerror');
					});
					form.find('.required.email').each(function(){
						var regex = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
						if (!regex.test($(this).val()))
						{
							return false;
							$(this).addClass('formerror');
						}
					});
				},
				success: function(response){
					if (response.success)
					{
						form.html('<p>'+response.melding+'</p>');
					}
					else if (response.melding){
						form.before($('<p class="errormelding">'+response.melding+'</p>'));
					}
					else if (response.errors){
						form.before($('<p class="errormelding">'+response.errors+'</p>'));
					}
					form.find('.hint').trigger('blur');
				}
			})
		})
	}

	$('.forumlink').click(function(){
		window.open('/forum','forum','width=900,height=600,resizable=yes,scrollbars=yes,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes')
		return false;
	});
	$('.chatlink').click(function(){
		window.open('/chat','chat','width=600,height=425,resizable=no,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no')
		return false;
	});
	
	
});

/**
 * slide an element up without causing blinking flash content
 */
function slideUp(object, speed, slideTime)
{
    if (parseInt(speed) == NaN) return false;
    if (object.jquery == undefined) object = $(object);
	if (object.height() <= 0) return true;
    object.css('overflow', 'hidden');
    var ppf = (object.height() / speed * 20);
    var orgh = object.height();
    var timeout = setInterval(function(){
        object.height(object.height() - ppf);
        if (object.height() <= 0){
            object.hide();
            object.height(orgh);
            clearInterval(timeout);
        }
    }, 10);
    return true;
}

/**
 * slide an element down without causing blinking flash content
 */
function slideDown(object, speed)
{
    if (parseInt(speed) == NaN) return false;
    if (object.jquery == undefined) object = $(object);
    object.css('overflow', 'hidden');
    var ppf = (object.height() / speed * 20);
    var orgh = object.height();
    object.height(0);
    object.show();
    var timeout = setInterval(function(){
        object.height(object.height() + ppf);
        if (object.height() >= orgh){
            object.height(orgh);
            clearInterval(timeout);
        }
    }, 10);
    return true;
}
