document.observe("dom:loaded", function() {
	$("showSubs").observe("mouseover",showSubs);
	var t = ($('kistjesoverzicht').hasClassName("false")) ? "def" : "app";  
	var k = new toonKistjes(t);
	
	if(!$('kistjesoverzicht').hasClassName("false")){
		
		
		var nb = $$("a.samenvatting");
		var cl = $$("a.close");
		cl.invoke("observe","click",closeAccordion);
		nb.invoke("observe","click",loadAccordion);
		loadAccordion(nb[0],1);
		
		$$('.maandkistje .mover').invoke("observe","click",function(event){
			Event.stop(event);
			var el = Event.element(event);
			var kistje = new loadKistje(el);
		});
	}
	
	$$("ul .label").invoke("observe","click",function(event){
		var ul = Event.element(event);
		var dd = new dropdDown(ul);
	});
	
	$("q").observe("focus",doSearch);
	
	embedYoutube();
});

var toonKistjes = Class.create({
	initialize: function(type){
		this.appearType = type;
		this.timer 		= null;
		this.completed 	= false;
		this.setSize();
	},
	setSize: function(){
		var vph 	= document.viewport.getDimensions();
		var rows	= Math.ceil(vph.height/68);
		var h		= rows * 68;
		['kistjesoverzicht','kistjesRechts'].each(function(el){
			$(el).setStyle({
				height: h+"px",
				overflow: "hidden"
			});
		});
		
		this.getKistjes(rows);
		
	},
	getKistjes: function(number){
		new Ajax.Request("pages/get_kistjes.php",{
			parameters: "load="+number,
			onComplete: function(r){
				this.imgArray		= r.responseText.split("||");
				this.arrayLength	= this.imgArray.length;
				this.insertIn		= $('kistjesoverzicht');
				this.extraClass		= (this.appearType == "def") ? "transp" : "";
				this.delay			= (this.appearType == "def") ? 0 : 15;
				this.currentCount 	= 0;
				
				this.createWrapper(this.imgArray[0]);
			}.bind(this)
		});
		//var imgs = $$("img.intro");
		//doIntro(imgs,0);
	},
	createWrapper: function(imgsrc){
		
		var div = new Element("div",{"class": "maskImg"}).hide(); 		
		this.insertIn.insert({bottom:div});
		this.insertImage(div,imgsrc);
		
	},
	insertImage: function(div,img){
		
		var img2load = new Image().addClassName(this.extraClass);
		img2load.onload = (function(){		
			div.insert({top:img2load});
			this.showImage(div);			
        }).bind(this);
		img2load.src = img;	
			
	},
	showImage: function(div){
		// show img
		//var to = (this.appearType == "app") ? 1 : 0.25 ;
		var to = (!div.down().hasClassName("transp")) ? 1 : 0.25 ;
		
		new Effect.Appear(div,{from:0, to:to,delay:0.5});
		
		if((this.currentCount+1) == this.arrayLength){
			clearTimeout(this.timer);
			this.timer = null;
			
			if(this.completed == false) this.doOtherSide();
		}else{		
			// set timout		
			this.timer = setTimeout(function(){
				this.currentCount = this.currentCount+1;
				this.createWrapper(this.imgArray[this.currentCount]);
			}.bind(this),this.delay);
		}	
	},
	doOtherSide: function(){
		this.completed		= true;
		this.currentCount 	= 0;
		this.extraClass		= "transp";
		this.insertIn		= $('kistjesRechts');
		this.imgArray.reverse();
		this.createWrapper(this.imgArray[0]);
		
	}
});

function embedYoutube(){
	var i = 1;
	$$(".youtube").each(function(flv){
		var url = flv.innerHTML;//+"&autoplay=1";
		flv.update("<div id='embed"+ i +"'></div>");
		var swf = swfobject.embedSWF(url, "embed"+ i +"", "660", "400", "9.0.0", false);
		i++;
	});
}
function showSubs(event){
	var el 	= Event.element(event);
	var subs= el.next(); 
	subs.toggle();
	//new Effect.toggle(subs,"blind",{duration:0.25});
}
var loadKistje = Class.create({
	initialize: function(el){
		this.element 	= el;
		this.loadPos	= this.element.id.replace("kistje-","");
		this.wrapper	= this.element.up(1);
		this.getPrevData();
	},
	getPrevData: function(){
		new Ajax.Request("pages/vorig_maandkistje.php",{
			parameters: "loadPos="+this.loadPos,
			onComplete: function(transport){
				var resp = transport.responseText;
				this.hideCurrent(resp);
			}.bind(this)
		});
	},
	hideCurrent: function(resp){
		this.wrapper.update(resp);
		this.observeLinks();
	},
	observeLinks: function(){
		$$('.maandkistje .mover').invoke("observe","click",function(event){
			Event.stop(event);
			var el = Event.element(event);
			this.element 	= el;
			this.loadPos	= this.element.id.replace("kistje-","");		
			this.getPrevData();
		}.bind(this));
	}
});

function doSearch(){
	var el = $('q');
	el.removeClassName("inactive");
	if(!el.hasClassName("clicked")){
		el.addClassName("clicked");
		el.value = "";
	}
	
	var s = new search(el,$('inlineZoeken'));
//	el.observe("blur",doSearch);

}

var search = Class.create({
	initialize: function(element,results){
		this.element 	= element;	 
		this.results	= results;
		this.timer		= null;
		this.duration	= 250;
		this.setResultPos();

		this.element.stopObserving("focus");
		this.element.observe('keyup', this.setTimer.bind(this));	
	},
	setTimer: function(){
		clearInterval(this.timer);
		this.timer = null;
		
		this.timer = setTimeout(function(){
			this.searchDB()
		}.bind(this), this.duration);
	},
	searchDB: function(){
		this.search 	= $F(this.element);
		
		new Ajax.Updater(this.results,"pages/search_db.php", {
			parameters: "search="+this.search,
			onComplete: function(){
				this.showResults();
			}.bind(this)
		});
	},
	showResults: function(){
		this.results.show();
	},
	setResultPos: function(){
		var size 	= this.element.getDimensions();
		var pos		= this.element.cumulativeOffset();
		var right	= (!this.element.up().hasClassName("home")) ? 13 : 30;
		var top		= (!this.element.up().hasClassName("home")) ? 8 : 23;
		this.results.setStyle({
			position: "absolute",
			width: size.width+"px",
			top: (pos[1]+top)+"px",
			right: right+"px"
		});
	}
});

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:"#BE2C15",endcolor:"#ffffff", duration:1,
			afterFinish: function(){
				
				inTransform = false;
			}
		});
		return false;
	}	
}

var dropdDown = Class.create({
	initialize: function(ul) {
		this.ul 	= ul.up();
		this.search = ul.innerHTML;
		this.lists 	= this.ul.innerHTML;
		this.results= $("zoekresultaten");
		this.createDropper();
	},
	createDropper: function(){
		this.div = new Element("div",{"class" : "ddWrapper"});
		var pos = this.getDDposition();
		this.div.setStyle({
			top: pos[1]+"px",
			left: (pos[0]-1)+"px"
		});
		this.hideActiveDroppers();
		this.ul.insert({after: this.div});
		
		this.div.update("<ul>"+this.lists+"</ul>");
		this.observeLinks();
		this.observeClose();
		
		$("container").setStyle({
			height: (this.div.getHeight()+200)+"px"
		});
	},
	hideActiveDroppers: function(){
		$$(".ddWrapper").invoke("remove");	
		
		$("container").setStyle({
			height: "auto"
		});
	},
	observeLinks: function(){

		var links = this.div.select("a");
		links.each(function(lnk){
			lnk.observe("click",this.doLinkClick.bind(this));
		}.bind(this));

	},
	doLinkClick: function(event){
		Event.stop(event);
		var link 		= Event.element(event);
		var href 		= link.href.split("/").last();
		var page		= $("pheader").innerHTML;
		new Ajax.Request("pages/bekijk_kistjes.php",{
			parameters: "page="+page+"&href="+href+"&search="+this.search,
			onComplete: function(resp){
				var resp = resp.responseText;
				this.hideActiveDroppers();
				this.updateResults(resp)
			}.bind(this)
		});
			
	},
	updateResults: function(resp){
		this.results.update(resp)
	},
	getDDposition: function(){
		return this.ul.positionedOffset();
	},
	observeClose: function(){
		this.div.observe("click",function(){this.div.remove()}.bind(this));
	}
});

function doIntro(imgArray,start){
	
	var vph 	= document.viewport.getDimensions();
	var rows	= Math.ceil(vph.height/68);
	var h		= rows * 68;
	['kistjesoverzicht','kistjesRechts'].each(function(el){
		$(el).setStyle({
			height: h+"px",
			overflow: "hidden"
		});
	});
	

	if(start == imgArray.length){
		clearInterval(timer);
		return false;
	}
	
	var to = ($(imgArray[start]).hasClassName("transp")) ? 0.25 : 1;
	new Effect.Appear(imgArray[start],{from:0, to:to});
	var timer = setTimeout(function(){
		doIntro(imgArray,start+1);
	},10);
	
}

function loadAccordion(event,type){
	
	if(type == 1) var element = event.down();
	else{
		Event.stop(event);
		var element = Event.element(event);
		if(element.tagName == "A") element = element.down();
		new Effect.ScrollTo(element,{duration:0.5});
	}
	var details = element.up().next();

	new Effect.BlindDown(details,{duration:0.5});
	new Effect.BlindUp(element.up(),{
		duration:0.5,
		afterFinish: function(){
		//	new Effect.ScrollTo("footer")
		$("footer").scrollto
		}
	});
}
function closeAccordion(event){
	Event.stop(event);
	var element = Event.element(event);
	var hide	= element.up(2);
	var show	= element.up(2).previous();
	
	new Effect.BlindUp(hide,{duration:0.5});
	new Effect.BlindDown(show,{duration:0.5});
}

