/*
** open dagen ~ opendagen.ja
** Author:    Lodewijk Schutte ~ Low
** Purpose:   JavaScript for opendagen site
** Last edit: 20100407
*/


(function($){
	$(function(){
		
		$('body').addClass('js');
		
		// Split lists in two
		$('div.day ul').each(function(){
			var kids = $('li', this);
			var l = kids.length;
			if (l <= 6) return;
			var ul2 = $('<ul>');
			$(this).after(ul2);
			for (i = Math.ceil(l/2); i < l; i++) {
				$(ul2).append(kids[i]);
			}
		});
		
		// Set by step forms
		var Steps = {
			menuTarget: '#subnav',
			menuId: 'stepsmenu',
			buildMenu: function(){
				$(this.menuTarget).append($('<ul>').attr('id', this.menuId));
				for (var i = 0; i < this.total; i++) {
					var li = $('<li>'),
						a = $('<a>'),
						nr = i + 1,
						txt = $('.steptitle',this.items[i]).text();
						
					$(a).attr('href', '#step'+nr).text(nr+'. '+txt);
					$(a).click( jQuery.proxy(this.show, this) );
					
					$(this.menuTarget+' ul').append(li.append(a));
				}
			},
			show: function(e){
				var step = $(e.target).attr('href').match(/#step(\d+)/);
				if (step) {
					var i = parseInt(step[1]) - 1;
					$(e.target).parent().siblings().removeClass('active');
					$(e.target).parent().addClass('active');
					$(this.items).hide();
					$(this.items[i]).show();
				}
				return false;
			},
			init: function(){
				this.items = $('div.step');
				if ((this.total = this.items.length) == 0) return;
				this.buildMenu();
				$('#'+this.menuId+' a:first').trigger('click');
			}
		};
		Steps.init();
		
		// $('#form1').submit(function(e){e.preventDefault()});
		
		$("#form1").validate({ 
			rules: { 
				geslacht: {
					required: true
				},
				voornaam: {
					required: true
				},
				achternaam: {
					required: true
				}, 
				straat: {
					required: true
				}, 
				huisnummer: {
					required: true
				}, 
				postcode: {
					required: true
				}, 
				plaats: {
					required: true
				}, 
				email: { 
					required: true, 
					email: true 
				}, 
				remail: {
					required: true, 
					equalTo: "#email"
				}, 
				vooropleiding: { 
					required: true 
				} 
			}, 
			messages: { 
				geslacht: "Dit veld is verplicht",
				voornaam: "Dit veld is verplicht",
				vooropleiding: "Dit veld is verplicht",
				achternaam: "Dit veld is verplicht", 
				straat: "Dit veld is verplicht",
				huisnummer: "Dit veld is verplicht",
				postcode: "Dit veld is verplicht",
				plaats: "Dit veld is verplicht", 
				email: "Dit veld is verplicht",
				remail: {
					required: "Dit veld is verplicht",
					equalTo: "De email adressen komen niet overeen"
				} 
			},
			// the errorPlacement has to take the table layout into account 
			errorPlacement: function(error, element) { 
				error.appendTo(element.parent());
			}, 
			// specifying a submitHandler prevents the default submit, good for the demo 
			invalidHandler: function() { 
				$('#'+Steps.menuId+' a:first').trigger('click');
			} 
		}); 


		$('.date-pick').datePicker({
			startDate: '01/01/1900',
			endDate: (new Date()).asString()
		});
		

		// Flash video on home page
		$('body.home #video').flash({
			swf: 'http://www.studereninleiden.nl/flash/videoplayer.swf',
			width: 340,
			height: 256,
			params: {wmode:'opaque'},
			flashvars: {XMLfile:'http://icsmedia.plexus.leidenuniv.nl/video/Open_Dagen/od.xml'}
		});
		
		// Table toggler
		$('table.expandable h3.title').each(function(){
			var hasText = $.trim($(this).next().html());
			if (hasText.replace(/\s/,'') == '') return;
			$(this).click(function(){$(this).parent().toggleClass('open')});
			$(this).addClass('toggle');
		});
		
		// Print link
		$('body.praktisch #main h2').before($('<div id="printme"><span><a href="#print" onclick="self.print();return false;">Afdrukken</a></span></div>'));
		
		// SAEF helper
		$('form#entryform').submit(function(e){
			var datefield = $('select[name=field_id_3] option:selected').text();
			var coursefield = $('#prog_studie option:selected').text();
			$('#new-title').attr('value', coursefield+', '+datefield);
		});

	});
})(jQuery);


