﻿/***** Functie die de itemLijstContainer doet verdwijnen en verschijnen aan de hand van mouseovers over de lijst en de titel van de lijst *****/
(function($)
{
	$.fn.kruisFader = function(plaatsvervanger, teTonenObject, beginzichtbaarheid, triggers, eVorigeKnop, eVolgendeKnop, passieveTriggers)
	{
		return this.each(function()
		{
			var lijst = jQuery(this);
			jQuery('#wikkel').append('<div id="itemLijstAchtergrond" class="itemLijstAchtergrond">&nbsp;</div>');
			jQuery('#itemLijstAchtergrond').css('opacity', 0.8);

			lijst.data('zichtbaar', beginzichtbaarheid);
			lijst.data('fadend', false);	// bij initialisatie mag hij niet al aan faden zijn
			lijst.data('vertraging', 500);
			lijst.data('vertragingTimer', null);

			if (passieveTriggers == null)
			{
				passieveTriggers = new Array();
			}

			passieveTriggers.push(eVorigeKnop);
			passieveTriggers.push(eVolgendeKnop);
			passieveTriggers.push(teTonenObject);

			var kruisFaderObj = jQuery(this);
			jQuery(triggers).each( function()
			{
				jQuery(this).mouseover( function()
				{
					// voorkomt dat kruisFaderObj verborgen wordt als hover van het ene naar een ander betrokken element gaat :
					if (kruisFaderObj.data('vertragingTimer')) { clearTimeout(kruisFaderObj.data('vertragingTimer')); }

					// fade niet opnieuw starten als reeds zichtbaar is
					if (kruisFaderObj.data('zichtbaar') || kruisFaderObj.data('fadend'))
					{
						return;
					}
					else
					{
						kruisFaderObj.data('fadend', true);
						teTonenObject.css('display','block');
						kruisFaderObj.animate
						(
							{"opacity" : beginzichtbaarheid}, 
							'fast',
							'',
							function() { kruisFaderObj.data('zichtbaar', true); kruisFaderObj.data('fadend', false); plaatsvervanger.fadeTo('fast', 0); }
						);
						eVorigeKnop.fadeTo('fast', 1);
						eVolgendeKnop.fadeTo('fast', 1);
						jQuery('#itemLijstAchtergrond').fadeTo('fast', 0.8);
						//plaatsvervanger.fadeTo('fast', 0);
					}
				}).mouseout( function()
					{
						// reset timer als-ie opnieuw opgeroepen wordt, ter voorkoming van dubbele fades
						if (kruisFaderObj.data('vertragingTimer')) { clearTimeout(kruisFaderObj.data('vertragingTimer')); }

						// timer bewaren zodat we hem kunnen resetten indien nodig, en tegelijk getimede actie programmeren :
						kruisFaderObj.data
						(
							'vertragingTimer', 
							setTimeout( function()
							{
								kruisFaderObj.data('vertragingTimer', null);
								kruisFaderObj.animate
								(
									{'opacity' : 0},
									'fast',
									'',
									function() { kruisFaderObj.data('zichtbaar',false); teTonenObject.css('display','none'); plaatsvervanger.fadeTo('fast', 1); }
								);
								eVorigeKnop.fadeTo('fast', 0);
								eVolgendeKnop.fadeTo('fast', 0);
								jQuery('#itemLijstAchtergrond').fadeTo('fast', 0);
								//plaatsvervanger.fadeTo('fast', 1);
							}, kruisFaderObj.data('vertraging'))
						);
					});
			});

			// voorkomen dat teTonenObject verdwijnt als je erboven zit
			jQuery(passieveTriggers).each( function()
			{

				jQuery(this).mouseover( function()
				{
					// reset timer als-ie opnieuw opgeroepen wordt, ter voorkoming van dubbele fades
					if (kruisFaderObj.data('vertragingTimer')) { clearTimeout(kruisFaderObj.data('vertragingTimer')); }
				}).mouseout( function()
					{
						// reset timer als-ie opnieuw opgeroepen wordt, ter voorkoming van dubbele fades
						if (kruisFaderObj.data('vertragingTimer')) { clearTimeout(kruisFaderObj.data('vertragingTimer')); }
	
						// timer bewaren zodat we hem kunnen resetten indien nodig, en tegelijk getimede actie programmeren :
						kruisFaderObj.data
						(
							'vertragingTimer', 
							setTimeout( function()
							{
								kruisFaderObj.data('vertragingTimer', null);
								kruisFaderObj.animate
								(
									{'opacity' : 0},
									'fast',
									'',
									function() { kruisFaderObj.data('zichtbaar',false); teTonenObject.css('display','none'); plaatsvervanger.fadeTo('fast', 1); }
								);
								eVorigeKnop.fadeTo('fast', 0);
								eVolgendeKnop.fadeTo('fast', 0);
								jQuery('#itemLijstAchtergrond').fadeTo('fast', 0);
								//plaatsvervanger.fadeTo('fast', 1);
							}, kruisFaderObj.data('vertraging'))
						);
					}); //end teTonenObject.mouseover/out()
			});
		});
	}
})(jQuery);


/***** Functie die het infoVenster laat verdwijnen en verschijnen *****/
(function($)
{
	$.fn.infoVenster = function(zichtbaarCss, verborgenCss, beginzichtbaarheid, zichtbaarHtml, verborgenHtml, schakelknop)
	{
		return this.each(function()
		{
			var infoVenster = jQuery(this);
			infoVenster.data('zichtbaar', beginzichtbaarheid);
			infoVenster.data('bewegend', false);	// bij initialisatie kan hij niet al aan bewegen zijn
			infoVenster.data('zichtbaarCss', zichtbaarCss);
			infoVenster.data('verborgenCss', verborgenCss);
			infoVenster.data('zichtbaarHtml', zichtbaarHtml);
			infoVenster.data('verborgenHtml', verborgenHtml);

			schakelknop.click( function()
			{
				if (!infoVenster.data('bewegend'))
				{
					if (infoVenster.data('zichtbaar'))	// verbergen
					{
						infoVenster.animate(infoVenster.data('verborgenCss'), 500, '', function() { infoVenster.data('zichtbaar', false); schakelknop.html(infoVenster.data('verborgenHtml')); });
						createCookie('toonInfoVenster', 'nee', 0);
					}
					else								// tonen
					{
						infoVenster.css(verborgenCss);
						infoVenster.css('display', 'block');
						createCookie('toonInfoVenster', 'ja', 0);
						infoVenster.animate(infoVenster.data('zichtbaarCss'), 500, '', function() { infoVenster.data('zichtbaar', true); schakelknop.html(infoVenster.data('zichtbaarHtml')); });
					}
				}
			});
			
			infoVenster.autoShow = function()
			{
				alert('hoi');
			}

			if (!beginzichtbaarheid)
			{
				jQuery(this).css('display', 'none');
				schakelknop.html(infoVenster.data('verborgenHtml'));
			}
		});
	}
})(jQuery);




	
/***** Functie die de itemLijst verschuif-functies geeft *****/
/*
	Vereisten :
	- bevat precies 1 ul of ol
	- heeft zelf een gedefinieerde width en de li's hebben ook een gedefinieerde width
*/
(function($)
{
	$.fn.verschuif_functies = function(eVorigeKnop, eVolgendeKnop, iActieveItem)
	{
		return this.each(function()
		{
			var lijstContainer = jQuery(this);

			lijstContainer.data('iAantItems', jQuery('li', jQuery(this)).length);
			if (lijstContainer.data('iAantItems') > 0)
			{
				lijstContainer.data('iEigenBreedte', jQuery(this).width());
				lijstContainer.data('iItemsPerBlok', Math.floor(lijstContainer.data('iEigenBreedte') / jQuery('li:first', jQuery(this)).width()));
				lijstContainer.data('iActieveItem', iActieveItem);
				lijstContainer.data('iActieveBlok', Math.floor( iActieveItem / lijstContainer.data('iItemsPerBlok') ) );
				lijstContainer.data('aBlokken', new Array());
				for (var i=0; i<Math.ceil( lijstContainer.data('iAantItems') / lijstContainer.data('iItemsPerBlok') ); i++)
				{
					lijstContainer.data('aBlokken').push( Math.min(lijstContainer.data('iItemsPerBlok') , (lijstContainer.data('iAantItems') - i*lijstContainer.data('iItemsPerBlok'))) );
				}
				lijstContainer.data('bBewegend', false);
				lijstContainer.data('eLijst', jQuery('li:first', jQuery(this)).parent() );	// kan ul of ol zijn
			}

			if (lijstContainer.data('iAantItems') > 8)
			{
				eVorigeKnop.click( function()
				{
					if (!lijstContainer.data('bBewegend') && lijstContainer.data('iActieveBlok') != 0)
					{
						lijstContainer.data('bBewegend', true);
						lijstContainer.data('eLijst').animate(	{'marginLeft': 0-((lijstContainer.data('iActieveBlok')-1)*lijstContainer.data('iEigenBreedte'))+'px'}, 
																function() 
																{
																	lijstContainer.data('bBewegend', false);
																	lijstContainer.data('iActieveBlok', lijstContainer.data('iActieveBlok')-1);
																}
															);
					}
				});
				eVolgendeKnop.click( function()
				{
					if (!lijstContainer.data('bBewegend') && lijstContainer.data('iActieveBlok') != (lijstContainer.data('aBlokken').length - 1))
					{
						lijstContainer.data('bBewegend', true);
						lijstContainer.data('eLijst').animate(	{'marginLeft': -(lijstContainer.data('iActieveBlok')+1)*lijstContainer.data('iEigenBreedte')+'px'}, 
																function()
																{
																	lijstContainer.data('bBewegend', false);
																	lijstContainer.data('iActieveBlok', lijstContainer.data('iActieveBlok')+1);
																}
															);
					}
				});
			}
			else
			{
				eVorigeKnop.removeClass('vorigeItemBlok').addClass('inactiefItemBladerBlok');
				eVolgendeKnop.removeClass('volgendItemBlok').addClass('inactiefItemBladerBlok');
				/* goochelen met classes om die achtergrond op gewoon 'wit-semitransparant' te zetten; CSS-files hiertoe aanpassen */
			}

			// initiële instelling (tonen actieve item : soms moet blok verplaatst worden)
			if (lijstContainer.data('iActieveBlok') > 0)
			{
				lijstContainer.data('eLijst').css('marginLeft', -lijstContainer.data('iActieveBlok')*lijstContainer.data('iEigenBreedte')+'px');
			}
		});
	}
})(jQuery);



/******* Cookies (met dank aan quirksmode.org) ******/
function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}
