// init slideshow
var newPosition = 0;
var oldPosition = 0;
var slideshowbreedte = 0;
var isLoaded = false;
var slideTimer;

function viewport()
{
	var e = window
	, a = 'inner';
	if ( !( 'innerWidth' in window ) )
	{
		a = 'client';
		e = document.documentElement || document.body;
	}
	return { width : e[ a+'Width' ] , height : e[ a+'Height' ] }
}

var dimensions = viewport();
var schermbreedte = dimensions.width;

$(document).ready(function(){

	// breedte herberekenen on resize
	$(window).bind("afterresize", function() {
		if (isLoaded == true)
		{
			dimensions = viewport();
			schermbreedte = dimensions.width;
			slideItems(3500,-900,'auto');
		}
	});


	if ($('.js_slideshow').length)
	{
		$('.js_slideshow').waitForImages(function() {
			
			$(this).find('img').each(function(){
				slideshowbreedte += $(this).width();
			});
			$('.js_slideshow').css('width',slideshowbreedte+'px');
			
			// op basis positie zetten
			newPosition = 0-schermbreedte/2;
			$('.js_slideshow').css({'margin-left': newPosition+'px'});
			
			// geladen
			isLoaded = true;
			
			// slideshow
			// eerste aanroep
			slideTimer = setTimeout("slideItems(3500,-900,'auto');",5000);
		});
	};

	$('.js_right').hover(
		function () { $(this).animate({'right': '-10px'}, 600, 'easeOutElastic') },
		function () { $(this).animate({'right': '-20px'}, 600, 'easeOutElastic') }
	);

	$('.js_right').click(function () {
		slideItems(1500, -900, "manual");
	});

	$('.js_left').hover(
		function () { $(this).animate({'left': '-10px'}, 600, 'easeOutElastic') },
		function () { $(this).animate({'left': '-20px'}, 600, 'easeOutElastic') }
	);

	$('.js_left').click(function () {
		slideItems(1500, 900, "manual");
	});


	// intro blokken faden
	$('.js_introslideshow').cycle({
		fx:     'fade',
		speed:  750,
		timeout: 30000,
		next:   '#next',
		prev:   '#prev',
		random: 1
	});

	// detailslideshow
	$('.js_detailslideshow').cycle({
		fx:     'fade',
		speed:  750,
		timeout: 7500,
		next:   '#next',
		prev:   '#prev'
	});


	//hover effect
	$('.js_lefthover').hover(
		function () {
			if ($(this).data('hover') != true)
			{
				$(this).data('hover',true);
				$(this).animate({'padding-left': '+=10'}, 25, 'easeInQuad');
			}
	},
		function () {
			$(this).animate({'padding-left': '-=10'}, 50, 'easeInQuad', function(){
				$(this).data('hover',false)	;
			});
		}
	);




	// taalkeuze
	$('.js_taalkeuzelink').click(function(){
		if($('.taalkeuze ul li ul').css('display')=='none') {
			$('.taalkeuze ul li ul').slideDown(200);
		} else {
			$('.taalkeuze ul li ul').css('display','none');
		}
		$(this).blur(); // IE7 focus weghalen
	});
	$(document).click(function(event) { // taalkeuze dichtklappen als er elders op de pagina geklikt wordt
		if ( !$(event.target).hasClass('js_taalkeuzelink')) {
			 $('.taalkeuze ul li ul').css('display','none');
		}
	});

	if ( $('.js_twitterfeed') )
	{
		$.ajax({
			url: "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=LimietenCoaches&count=10&include_rts=true",
			success: function(data) {
				for(var i=0;i<data.length;i++)
				{
					data[i].text = data[i].text.replace(/(http:\/\/\S+)/g, "<a target='_blank' href='$1'>$1</a>");
					$('.js_twitterfeed').append("<div>"+data[i].text+'<br /><span>'+relative_time(data[i].created_at)+"</span></div>");
				}
				$('.js_twitterfeed').cycle({
					fx:     'fade',
					speed: 500,
					timeout: 10000
				});
			},
			dataType: 'jsonp'
		});
	}

	if ( $('.js_latesttwitter') )
	{
		$.ajax({
			url: "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=LimietenCoaches&count=2&include_rts=true",
			success: function(data) {
				for(var i=0;i<data.length;i++)
				{
					data[i].text = data[i].text.replace(/(http:\/\/\S+)/g, "<a target='_blank' href='$1'>$1</a>");
					$('.js_latesttwitter').append("<div>"+data[i].text+'<br /><span>'+relative_time(data[i].created_at)+"</span></div>");
				};
			},
			dataType: 'jsonp'
		});
	}

	//submenu's
	$('.js_menu li').mouseenter(function() {
		$(this).children('.js_menuholder').fadeIn(400);
	}).mouseleave(function() {
		$(this).children('.js_menuholder').css('display','none');
	});


	// flash inladen
	// als een div aangemaakt wordt met als class "js_flash",
	// en als inhoud het absolute pad naar de flash en de variable
	// wordt deze automatisch ingeladen
	$('.js_flash').each(function(){
		slideshowvars = $(this).find('.js_flashlink').html();
		//strip HTML comment from flash vars
		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',
			allowFullScreen: 'true'
		});
	});



	// Staqndaard image colorbox
	// rel is voor als er genavigeerd moet kunnen worden
	// <a class="js_colorbox" rel="testblaat" href="/public/img/video2.jpg">klik</a>
	// <a class="js_colorbox" rel="testblaat" href="/public/img/banner.jpg">klik</a>
	$('.js_colorbox').each(function(){
		$('.js_colorbox').colorbox({
			transition:'elastic'
		});
	});

	// Html tonen in colorbox:
	// <a class="js_htmlcolorbox" rel="idvanjehtmldiv">Klik</a>

	$('.js_htmlcolorbox').each(function(){
		$('.js_htmlcolorbox').click(function(){
			var targetid = $(this).attr('rel');
			if (typeof targetid == 'undefined' || targetid == '') return ;

			$(this).colorbox({
				open: true,
				inline:true,
				transition:'none',
				href:"#" + targetid
			});
		});
	});

	// Contact form tonen in colorbox:
	// Verschil met htmlcolorbox is dat deze de pagina herlaadt als hij sluit (om form te resetten)
	// <a class="js_contactcolorbox" rel="idvanjehtmldiv">Klik</a>

	$('.js_contactcolorbox').each(function(){
		$('.js_contactcolorbox').click(function(){
			var targetid = $(this).attr('rel');
			if (typeof targetid == 'undefined' || targetid == '') return ;

			$(this).colorbox({
				open: true,
				inline:true,
				transition:'none',
				href:"#" + targetid,
				onClosed:function(){
					// pagina herladen
					if(ajaxFormChanged) {
						window.location.href = window.location.href;
					}
				}
			});
		});
	});

	// Youtube movie tonen in colorbox:
	// rel is voor als er genavigeerd moet kunnen worden
	// <a class="js_youtubecolorbox" rel="testblaat" href="http://www.youtube.com/v/[movie-id]">Klik</a>
	// <a class="js_youtubecolorbox" rel="testblaat" href="http://www.youtube.com/v/[movie-id]">Klik</a>

	$('.js_youtubecolorbox').each(function(){
		$('.js_youtubecolorbox').colorbox({
			iframe:true,
			innerWidth: 640,
			innerHeight:505,
			transition:'elastic'
		});
   });


	// Klapblokken
	if (0 < $('.js_uitklapblokken').length)
	{
		$('.js_uitklaplink').click(function ()
		{
			var obj = $(this).parents('.js_uitklapblok:first').find('.js_uitklapdetail:first');

			if (!$(this).hasClass('js_keepothers')) //andere blokken sluiten
			{
				$(this).parents('.js_uitklapblokken').find('.js_uitklapdetail').each(function(){
					if (!$(this).hasClass('js_dontclose')) //dit blok niet altijd open houden
					{
						$(this).slideUp();
						$(this).find('.js_uitklaplink').removeClass('open');
					}
				})
			}

			//overal active verwijderen
			$(this).parents('.js_uitklapblokken').find('.js_uitklaplink').removeClass('active');

			if (obj.css('display')=='none') //geklikt item openen
			{
				obj.slideDown('fast', function(){$(this).css('display', 'block');}); //callback zodat het in IE8 nog steeds werkt
				$(this).addClass('active');
				$(this).addClass('open');
			}
			else //geklikt item sluiten
			{
				obj.slideUp('fast');
				$(this).removeClass('open');
			}
		});
	}


	// laatste x pagina's opslaan
    var cLastPages = $.cookie('lastpages');
    var lastPages = new Array();
    if (cLastPages) {
        lastPages = cLastPages.split("\\");
    }
    lastPages.push(document.location);
    while(10 < lastPages.length) {
        lastPages.shift();
    }
    var joined = lastPages.join("\\");
	var date = new Date();
    date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));
    $.cookie('lastpages', joined, {path: '/', expires: date});

    $('.js_lastpagesfield').each( function() {
        $(this).attr('value',joined);
    });

	//field hints
	do_hints();

	//submit form link
	$('.js_submitform').click(function(){
		$(this).closest('form').find('.js_hint').val('').removeClass('js_hint');
		$(this).closest('form').submit();
		return false;
	})

	//AJAX FORMS automatisch
	if (typeof $().ajaxForm == 'function')
	{
		$('form.js_ajaxform').each(function(){
			$(this).append('<input type="hidden" name="ajax_post" value="oke" />');
			var form = $(this);
			$(this).ajaxForm({
				dataType: 'json',
				beforeSerialize: function(){
					form.find('.js_hint').removeClass('js_hint').val('');
				},
				beforeSubmit: function(){
					form.parent().find('.js_errormelding').remove();
				},
				success: function(response){
					if (response.success)
					{
						form.html('<p>'+response.message+'</p>');

						if ( typeof _gaq == 'object' )
							_gaq.push(['_trackPageview', location.pathname + '-bedankt']);
						else if ( typeof pageTracker == 'object' )
							pageTracker._trackPageview( location.pathname + '-bedankt' );
					}
					else if (response.message)
					{
						form.before($('<p class="foutmelding js_errormelding">'+response.message+'</p>'));
						do_hints();
					}
					form.find('.js_hint').trigger('blur');
				}
			})
		})
	}

	$('form.js_zoekform select').change(function(){
		countResults($(this).closest('form'));
	});

	var assortiment_search_timeout;
	$('form.js_zoekform input').keyup(function(){
		if ( assortiment_search_timeout ) clearTimeout(assortiment_search_timeout);
		assortiment_search_timeout = setTimeout("countResults($('form.js_zoekform'));", 300);
	});


	if ( $('form.js_zoekform').length )
	{
		countResults($('form.js_zoekform'));
	}

});

function countResults($form)
{
	var pageurl = $form.attr('action');
	do_hints();
	$form.find('.js_hint').removeClass('js_hint').val('');
	$form.ajaxSubmit({
		'url': pageurl+'?getnumbers=yeah',
		'type': 'get',
		'dataType': 'json',
		'success': function(data){
			if ( data.resultaten != undefined )
				$('.js_aantalresultaten').html(data.resultaten);

			do_hints();
		}

	});
}




function relative_time(time_value) {
	var values = time_value.split(" ");
	time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	var parsed_date = Date.parse(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	delta = delta + (relative_to.getTimezoneOffset() * 60);
	if (delta < 60) {
		return 'minder dan 1 minuut geleden';
	} else if(delta < 120) {
		return 'ongeveer 1 minuut geleden';
	} else if(delta < (60*60)) {
		return 'ongeveer ' + (parseInt(delta / 60)).toString() + ' minuten geleden';
	} else if(delta < (120*60)) {
		return 'ongeveer 1 uur geleden';
	} else if(delta < (24*60*60)) {
		return 'ongeveer ' + (parseInt(delta / 3600)).toString() + ' uur geleden';
	} else if(delta < (48*60*60)) {
		return '1 dag geleden';
	} else {
		return (parseInt(delta / 86400)).toString() + ' dagen geleden';
	}
}


// slideshow function
function slideItems(timing, offset, method)
{
	// timeout auto sliden clearen (voor als navigatie gebruikt is)
	clearTimeout(slideTimer);

	oldPosition = newPosition;
	newPosition += offset;

	if (newPosition != oldPosition)
	{
		// nieuwe positie
		maxoffset = schermbreedte/2 - slideshowbreedte;

		if (newPosition >= 0-schermbreedte/2 || (oldPosition <= maxoffset && method == "auto"))
		{
			newPosition = 0-schermbreedte/2;
		}

		if (newPosition <= maxoffset)
		{
			newPosition = maxoffset;
		}

		// sliden
		$('.js_slideshow').animate({'margin-left': newPosition+'px'}, timing, (method == "auto"?'easeOutBack':'easeInOutBack'));
	}

	// set timeout auto sliden
	slideTimer = setTimeout("slideItems(3500,-900,'auto');",10000);


}






function do_hints()
{
	$(".js_hintfield").each(function(i) {

		if ( $(this).val() == '' || $(this).val() == $(this).attr("title") )
		{
			$(this).addClass("js_hint");
			$(this).val($(this).attr("title"));
		}

        $(this).bind("focus", function(e) {
            if ($(this).val() == $(this).attr("title")) {
                $(this).val("");
				$(this).removeClass("js_hint");
            }
        });
        $(this).bind("blur", function(e) {
            if ($(this).val() == "") {
				$(this).addClass("js_hint");
				$(this).val($(this).attr("title"));
            } else {
				$(this).removeClass("js_hint");
			}
        });
    });
}
