function randOrd() {
	return (Math.round(Math.random())-0.5);
}
window.addEvent('domready', function() {
	var accordion = new Accordion('h3.toggler', 'div.element', {
    	'opacity': false,
		'start': false,
		'transition': Fx.Transitions.Quad.easeOut,

    	onActive: function(toggler, element){
    		toggler.setStyle('color', '#666666');
    		toggler.addClass('current');
    	},
    	
    	onBackground: function(toggler, element){
    		toggler.setStyle('color', '#cccccc');
    		toggler.removeClass('current');
    	}
	}, $('accordion'));
    var found = 0;
        $$('h3.toggler a').each(function(link, i){
            if (window.location.hash.test(link.hash)) found = i;
        });
        accordion.display(found);
    
	var imgs = $$('#box1 span');
	imgs.sort(randOrd);
	imgs.each(function(el) {
	    el.clone().inject($('box1'));
	    el.dispose();
	});
	
	var nS1 = new noobSlide({
	    box: $('box1'),
	    items: [0,1,2,3,4],
	    size: 160,
	    autoPlay: true
	});
	
	var customTips = $$('.tooltip');
	var toolTips = new Tips(customTips, {
		showDelay: 300,    //default is 100
		hideDelay: 100,   //default is 100
		className: 'anything', //default is null
		offsets: {
			'x': 16,       //default is 16
			'y': 16        //default is 16
		},
		fixed: false,      //default is false
		onShow: function(toolTipElement){
		    toolTipElement.fade(.9);
			$('show');
		},
		onHide: function(toolTipElement){
    		toolTipElement.fade(0);
			$('hide');
		}
	});
	
	var menuhorlists = $$('ul#menu li li ul');
	var menuhorfx = new Fx.Elements(menuhorlists, {
		'link': 'cancel',
		'duration': 500,
		transition: Fx.Transitions.Sine.easeOut,
		onComplete: function() {
			var keepopen = null;
			menuhorlists.each(function(el) {
				if (el.getStyle('height').toInt() > 0) {
					keepopen = el;
					el.setStyle('overflow', 'visible');
				}
			});
			menuhorlists.setStyle('width', 0);
			if (keepopen) {
				keepopen.setStyle('width', 'auto');
			}
		}
	});
	openmenuhor = function(e, idx) {
		var obj = {};
		menuhorlists.each(function(el, i) {
			if (i == idx) {
				obj[i] = {
					'height': el.getScrollSize().y
				};
				el.setStyle('width', 'auto');
			} else {
				obj[i] = {
					'height': 0
				};
				el.setStyle('overflow', 'hidden');
			}
		});
		menuhorfx.start(obj);
	}
	var ulcounter = 0;
	$$('ul#menu > li > ul > li').each(function(li) {
		var childul = li.getElement('ul');
		if (childul) {
			childul.setStyles({
				'overflow': 'hidden',
				'position': 'absolute',
				'height': 0
			});
			li.addEvent('mouseenter', openmenuhor.bindWithEvent(childul, ulcounter));
			ulcounter++;
		} else {
			li.addEvent('mouseenter', openmenuhor.bindWithEvent(childul, -1));
		}
	});
	
	// Level 1
	var menulists = $$('ul#menu > li > ul');
	var menufx = new Fx.Elements(menulists, {
		'link': 'cancel',
		'duration': 500,
		transition: Fx.Transitions.Sine.easeOut,
		onStart: openmenuhor.bindWithEvent(menufx, -1),
		onComplete: function() {
			menulists.each(function(el) {
				if (el.getStyle('height').toInt() > 0) {
					el.setStyle('overflow', 'visible');
				}
			});
		}
	});
	openmenu = function(e, idx) {
		var obj = {};
		menulists.each(function(el, i) {
			if (i == idx) {
				obj[i] = {
					'height': el.getScrollSize().y
				};
			} else {
				obj[i] = {
					'height': 0
				};
				el.setStyle('overflow', 'hidden');
			}
		});
		menufx.start(obj);
	}
	var ulcounter = 0;
	$('menu').getChildren('li').each(function(li) {
		var childul = li.getElement('ul');
		if (childul) {
			childul.setStyles({
				'overflow': 'hidden',
				'position': 'absolute',
				'height': '0',
				'width': '200px'
			});
			li.addEvent('mouseenter', openmenu.bindWithEvent(childul, ulcounter));
			ulcounter++;
		} else {
			li.addEvent('mouseenter', openmenu.bindWithEvent(childul, -1));
		}
	});
	$('menu').addEvent('mouseleave', openmenu.bindWithEvent($('menu'), -1));
	
	
	
	$$('div.thumbs').each(function(div) {
		var imglarge = new Element('div').setStyle('width', '30000px').inject($(div.get('id')+'_large'));
		var thumbs = div.getElements('a');
		var imgsfx;
		var imgs;
		function showimage(idx) {
 			imgsfx.start(
 				'margin-left',
 				imglarge.getStyle('margin-left'),
 				-1 * idx * imglarge.getParent('div').getStyle('width').toInt()
 			);
			thumbs.removeClass('current');
			thumbs[idx].addClass('current');
		}
		thumbs.each(function(img, i) {
			new Asset.image(img.get('href')).inject(imglarge);
			img.addEvent('click', function(e) {
				new Event(e).stop();
				showimage(i);
			});
		});
		imgsfx = new Fx.Tween(imglarge, {
			duration: 300,
			transition: Fx.Transitions.Sine.easeInOut
		});
		if (thumbs[0]) {
			showimage(0);
		}
	});
	
	$$('form#validate').each(function(form) {
		new fValidator("validate", {
			required: {msg: "Dit veld is verplicht."},
			alpha: {msg: "Dit veld mag alleen letters bevatten."},
			alphanum: {msg: "Dit veld mag alleen letters en cijfers bevatten."},
			integer: {msg: "Dit veld mag alleen gehele getallen bevatten."},
			real: {msg: "Dit veld mag alleen getallen bevatten."},
			date: {
				re: /^(((([1-9])|([0-2][0-9])|(3[01]))[\-]((0[13578])|([13578])|(1[02])))|((([1-9])|([0-2][0-9])|(30))[\-]((0[469])|([469])|(11)))|((([1-9])|([0-2][0-9]))[\-](2|02)))[\-]\d{4}$|^\d{4}$/,
				msg: "Dit is geen geldige datum (dd-mm-yyyy)."
			},
			email: {msg: "Dit is geen geldig e-mailadres."},
			phone: {msg: "Dit is geen geldig telefoonnummer."},
			url: {msg: "Dit is geen geldige url/link."},
			confirm: {msg: "De wachtwoorden komen niet overeen."},
			zipcode: {type: "zipcode", re: /^\d{4} [a-zA-Z]{2}$/, msg: "Dit is geen geldige postcode."},
			int_or_empty: {re: /^\d*$/, msg: "Dit veld mag alleen getallen bevatten of leeg zijn."},

			quietTillSubmit: false,
			scrollDelay: 750
		});
	});
	
	var pageUnsaved = false;
	changeState = function(e) {
		if (!$(e.target).hasClass('ignore-state')) {
			pageUnsaved = true;
		}
	};
	$$('input').addEvent('change', changeState.bindWithEvent());
	$$('select').addEvent('change', changeState.bindWithEvent());
	$$('textarea').addEvent('change', changeState.bindWithEvent());
	$$('form').addEvent('submit', function(e) {
		pageUnsaved = false;
	});
	window.onbeforeunload = function() {
		if (pageUnsaved) {
			return PAGE_LEAVE;
		}
	};

	var gallery = new slideGallery($$("div.gallery")[0], {
				steps: 3,
				mode: "circle",
				autoplay: true,
				duration: 6000
	});	
});
