/**
* Bestandnaam:		scripts.js
* Laatst gewijzigd:	05-03-2009
*
* In dit bestand komen de javascripts te staan die nodig zijn voor deze site.
**/

// ==========
// = EVENTS =
// ==========

// Kijkt of de DOM is geladen en voert dan addObservers() uit.
document.observe('dom:loaded', addObservers);
	
// addObservers()
function addObservers(){
	// Events voor de validatie van het Formulier
	if($('contactFormulier')){
		$('contactFormulier').observe('submit',fullValidationCheck);
		$('Naam').observe('keyup',checkNaam);
		$('Naam').observe('blur',checkNaam);		
		$('Email').observe('keyup',checkEmail);
		$('Email').observe('blur',checkEmail);		
		$('Bericht').observe('keyup',checkBericht);
		$('Bericht').observe('blur',checkBericht);
	}
	
	if($('slideshow') && $('slideshowFront')){
		runSlideshow();			
	}
}

// ===================
// = END OF - EVENTS =
// ===================


// =============
// = FUNCTIONS =
// =============

checkEmail = function () {
	var RegularExpression  = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if($F('Email').search(RegularExpression)==-1){
		$('emailLabel').addClassName('invoerfout');
		return false;
	}else{
		$('emailLabel').removeClassName('invoerfout');
		return true;
	}
}

checkNaam = function () {
	var RegularExpression  = /^([a-zA-Z0-9_\.\-\+\s])+$/;
	if($F('Naam').search(RegularExpression)==-1){
		$('naamLabel').addClassName('invoerfout');
		return false;
	}else{
		$('naamLabel').removeClassName('invoerfout');
		return true;
	}
}

checkBericht = function () {
	var RegularExpression  = /^([a-zA-Z0-9_\.\-\+\s])+$/;
	if($F('Bericht').search(RegularExpression)==-1){
		$('berichtLabel').addClassName('invoerfout');
		return false;
	}else{
		$('berichtLabel').removeClassName('invoerfout');
		return true;
	}
}

fullValidationCheck = function () {
	var check = 0;
	if (!checkNaam()){ check++; }
	if (!checkEmail()){ check++; }
	if (!checkBericht()){ check++; }
	// Final Check
	if(check==0){
		return true;
	}else{
		return false;
	}		
}

/**
*** Slideshow script
*
* Afhankelijk van Prototype en Scripaucious
* Laatste wijziging: 21-07-2009
**/

// Welke plaatjes gaan we gebruiken
var Pic = new Array(); // (niet veranderen)

// ==================
// == INSTELLINGEN ==
// ==================

var slideShowSpeed = 5.0; 		// Afspeelsnelheid in seconden
var crossFadeDuration = 2.0;	// Lengte van de crossfade in seconden

// Toevoegen kan door zoals hieronder staat aangegeven door te nummeren.
//  Pic[0] = 'url(relatieve/url/naar/plaatje.jpg)';
	Pic[0] = 'url(images/slideshow/slide_01.jpg)';
	Pic[1] = 'url(images/slideshow/slide_02.jpg)';
	Pic[2] = 'url(images/slideshow/slide_03.jpg)';
	Pic[3] = 'url(images/slideshow/slide_04.jpg)';
	Pic[4] = 'url(images/slideshow/slide_05.jpg)';
	Pic[5] = 'url(images/slideshow/slide_06.jpg)';
	Pic[6] = 'url(images/slideshow/slide_07.jpg)';
	Pic[7] = 'url(images/slideshow/slide_08.jpg)';
	Pic[8] = 'url(images/slideshow/slide_09.jpg)';
	Pic[9] = 'url(images/slideshow/slide_10.jpg)';
	Pic[10] = 'url(images/slideshow/slide_11.jpg)';

// =====================================================
// == EINDE - INSTELLINGEN | HIERONDER NIKS AANPASSEN ==
// =====================================================

	var picLength = Pic.length;								// Het Aantal plaatjes.
	var teller = Math.floor(Math.random()*picLength);		// Omdat de teller het beginplaatje aangeeft en we random willen starten, hier random functie.
	var firstRun = true;									// Stel in dat dit de eerste ronde is
	
runSlideshow = function () {
	$('slideshowFront').style.backgroundImage = 'url('+ Pic[teller] + ')'; 	// Stel de achtergrond van het voorgrondplaatje in die we straks willen weg faden
	$('slideshowFront').style.display = 'block'; 				// Maak zichtbaar om straks weg te kunnen faden.
	
	// Zoek het nummer van het nieuwe plaatje
	if(!firstRun){
		teller++;
		if(teller > (picLength-1)){
			teller=0;
		}
	}else{
		firstRun = false; // Na deze ronde is dit niet meer de eerste ronde	
	}
	
	// Preload
	imageObj = new Image();	
	imageObj.src = Pic[teller];
	imageObj.onload = function(){
		// Stel de achtergrond van het achterste plaatje in die na de fade zichtbaar wordt.
		$('slideshow').style.backgroundImage = 'url('+ Pic[teller] + ')';

		// Fade het voorgrond plaatje uit.
		Effect.Fade('slideshowFront', { duration: crossFadeDuration });
	
		// Wacht
		var timer = runSlideshow.delay(slideShowSpeed);
	}
}

/**
*** EINDE - Slideshow script
*/	

// ======================
// = END OF - FUNCTIONS =
// ======================