document.observe("dom:loaded", function() {
	$("barsearch").observe("focus",focusSearch);
	
	if($('impression') != null) var sc = new impressionSwapper();
	
});

var impressionSwapper = Class.create({
	initialize: function() {

		this.timer			= null;
		this.loader			= null;
		this.first 			= true;
		this.wrapper1		= $('impression1');
		this.wrapper2		= $('impression2');
		this.currentImage	= 0;
		this.insertIn		= this.wrapper1;
		this.intervalTime	= 2000;
		
		// get the images
		this.imageArray		= this.getImages();
	},
	getImages: function(){
		new Ajax.Request('pages/impression.php',{
			onComplete: function (resp){
				var imgs 		= resp.responseText;
				this.imgArray 	= imgs.split("||");
				this.maxCount	= this.imgArray.length;
				//preload the image
				this.loadImage();
								
			}.bind(this)
		});
	},
	loadImage: function(){
		
		var imgPreloader = new Image();
		this.currentImage = (this.currentImage == this.maxCount) ? 0 : this.currentImage;
		
		
        imgPreloader.onload = (function(){				
			if(this.first == true){				
				this.currentImage++;
				this.insertImage(imgPreloader);
				this.first = false;
			}else{
				
				this.createInterval(imgPreloader);
			}
       }).bind(this);
	
       imgPreloader.src = this.imgArray[this.currentImage];	

	},
	insertImage: function(imgPreloader){
		
		var image = '<img src='+imgPreloader.src+' />';
		if(this.insertIn == $('impression') ){
			this.wrapper1.update(image).hide();
			this.fadeOut 	= this.wrapper2;
			this.fadeIn 	= this.wrapper1;
			this.insertIn	= this.wrapper2;
		}else{
			this.wrapper2.update(image).hide();
			this.fadeOut 	= this.wrapper1;
			this.fadeIn 	= this.wrapper2;
			this.insertIn	= this.wrapper1;
		}
		
		this.crossFade();
	},
	crossFade: function(){

		new Effect.Fade(this.fadeOut, { duration:0.5}); 
		new Effect.Appear(this.fadeIn, {duration:0.5,
			afterFinish: function(){
				this.loadImage();
			}.bind(this)
		});

	},
	createInterval: function(imgPreloader){	
			
		this.timer 	= setTimeout(function(){
			clearInterval(this.timer);
			this.timer = null;
			
			this.currentImage++;
			this.insertImage(imgPreloader);
			
		}.bind(this),this.intervalTime*4);
		
	}
});

function focusSearch(event){
	var el = Event.element(event);
	if(el.hasClassName("inactive")){
		el.removeClassName("inactive");
		el.value = "";
	}
}

function validateAjaxForm(element){
	var form 	= element.up();
	var fv 		= $(form.id).serialize(true);
	var inp 	= $(form.id).getElements('text');
	var reg 	= /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var missed	= "";
	var mail	= "";
	var msg		= "";
	
	inp.each(function(i){
		if(i.hasClassName("req") && i.hasClassName("email") && reg.test($F(i)) == false){
			i.addClassName("missed");
			missed 	= true;
			mail 	= "<span>!</span> Het ingevulde email adres is niet geldig<br />";
		}
		else if(i.hasClassName("req") && $F(i) == "" || i.hasClassName("inactive")){
			i.addClassName("missed");
			missed 		= true;
			msg 		= "<span>!</span> Je hebt niet alle velden ingevuld<br />";
		}else i.removeClassName("missed");

	});	
	
	if(missed == true) $("msg").update(msg+mail);
	else{
		new Effect.BlindUp(form.id,{duration:0.2});
		$("msg").update("Uw bericht is succesvol verstuurd.");
		new Ajax.Request("pages/handle_ajax_form.php",{
			parameters: fv
		});
		
	}
}
var inTransform = false;
function validateForm(formid){
	
	var inputs 		= $(formid).getElements('text');
	var form_values = $(formid).serialize(true);
	var reg 		= /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var missed 		= false;
	var fieldCheck	= "";
	inputs.each(function(i){
		if(i.hasClassName("required") && $F(i) == ""){
			i.addClassName("missed");
			missed 		= true;
			fieldCheck 	= "<span>!</span> Je hebt niet alle velden ingevuld, vul de gemarkeerde velden in.";
		}else i.removeClassName("missed");

	});
	
	if(missed == true){
		$('msg').update(fieldCheck).addClassName("missed");

		if(inTransform == true) return false;
		inTransform = true;
		new Effect.Highlight('msg',{startcolor:"#d2232a",endcolor:"#ffffff", duration:1,
			afterFinish: function(){
				inTransform = false;
			}
		});
		return false;
	}	
}

