
Event.add(window, 'load', function(){ 
	El.getElementsByClassName('latex').each(function(el){ 
		var latex = el.innerHTML;
		El.empty(el); 
		var img = El.createNode('img', null, null, el); 
		img.src = "http://www.forkosh.dreamhost.com/mathtex.cgi?"+escape(latex); 
		img.alt = latex; 
	}); 
});

jQuery.fn.check = function(mode) {
	// if mode is undefined, use 'on' as default
	var mode = mode || 'on';

	return this.each(function() {
		switch(mode) {
			case 'on':
				this.checked = true;
			break;
			case 'off':
				this.checked = false;
			break;
			case 'toggle':
				this.checked = !this.checked;
			break;
		}
	});
};

var Lyceo = {
	init: function(){
		var smf = jQuery('#send-a-friend-modal'), sf = jQuery('form#send-a-friend'), pt = jQuery('form#payment-form');
		
		/* Menu hover */
		jQuery('ul#nav > li').hover(
			function(){
				jQuery(this).addClass('hover');
			},
			function(){
				jQuery(this).removeClass('hover');
			}
		);		
	
		/* Lightbox */
		jQuery('a.login-link').click(function(e){
			e.preventDefault();
			jQuery('div#lightbox').modal({persist:true});
		});	
		
		/* Shoutbox */
		jQuery('#showShoutBox2').click(function(){
			jQuery('#shoutbox2').toggleClass( 'show' );
			return false;
		});			
		jQuery('#shoutForm2').submit(function(ev){
			ev.preventDefault();
			jQuery.post('/mijn-lyceo/verstuur-shoutbox/',
				{
					'sMessage':jQuery(this).find('textarea').val(),
					'action': jQuery(this).find('input[name=action]').val(),
					'sResolution': jQuery(this).find('input[name=sResolution]').val()
				},
				function(){
					jQuery('#showShoutConfirm2, #showShoutBox2').click();
					jQuery('div#contents').prepend('<div id="confirm"><p>Bedankt voor je feedback!</p></div>');
					jQuery('div#confirm').get(0).scrollIntoView(true);
				}
			);
		});
		
		sf.submit(function(ev){
			ev.preventDefault();
			var e = sf.find('#sEmailTo').val();
			if(e === '' || Lyceo.emailCheck(e) === false){
				alert('Het ingevulde E-mail adres '+e+' is niet geldig');
				return false;
			}
			jQuery('div#lightbox').remove();
			smf.find('span.email').html(e).end().find('#sEmailToModal').val(e).end().modal({containerId: 'send-a-friend-container',persist:true});
		});

		/* Delete from Cart (not with FLASH) */
		jQuery('table a.delete-product').click(function(){
			var a = jQuery(this), tr = a.parent().parent(), id = tr.attr('id').substring(8);
			jQuery.get('/mijn-lyceo/delete-product/'+id+'/', function(data){
				
				if(tr.parent().find('tr').size() == 2){ // last row + total row
					jQuery('a#afreken-link').remove();
					tr.parent().remove();
				}else{
					tr.remove();																			
					jQuery('td#cart-total').html('Totaal: &euro;'+data);
				}																			
			});
		});
		
		/* payment type form*/
		if(pt.get(0)){
			var pideal = jQuery('.ideal'), pinc = jQuery('.incasso'), pinv = jQuery('.invoice');
			pinc.hide();
			pinv.hide();			
			jQuery('ul#payment-methods input').click(function(){
				pt.find('div').hide().end().find('div.'+this.id).show();
			});
		}
		
		/* data tables rows */
		jQuery('table.data-table tbody tr:odd').attr('bgcolor','#e0f7fd').find('td').css('background-color','#e0f7fd');
		
		/* Mijn docent login? */
		jQuery('input#bTeacher, input#bTeacher2').click(function(){
			var a = '', f = jQuery(this).closest('form'), action = f.attr('action'), newaction = '';
			if(this.value === 'true' && jQuery(this).is(':checked') === true){ // change to docent
				newaction = action.replace('/mijn-lyceo/','/mijn-docent/');
			}else{ // change to lyceo
				newaction = action.replace('/mijn-docent/','/mijn-lyceo/');				
			}
			f.attr('action', newaction);			
		});
		
		/* Form validation */		
		jQuery('form').submit(function(){
			if(this.id === 'send-a-friend') return false;
			if(this.parentNode.id === 'lightbox') return true;
			return Lyceo.validateForm(this);
		});

		var z = 'Vul hier je zoekterm in ...';
		jQuery('input#q').val(z).focus(function(){
			if(jQuery(this).val() == z){
				jQuery(this).val('');
			}
		}).blur(function(){
			if(jQuery(this).val() == ''){
				jQuery(this).val(z);
			}
		});
		if(window.print){
			jQuery('a#print-link').click(function(){
				window.print();
			});
		}
		
		if(jQuery('button#place-order').get(0)){
			jQuery('button#place-order').show().click(function(ev){
				ev.preventDefault();
				if(Lyceo.validateForm(jQuery('form#payment-form').get(0)) !== false){
					jQuery('form#payment-form').submit();
					if(jQuery('input#incasso').is(':checked') === false){
						jQuery(this).attr('disabled', 'disabled').after('<br /><br /><p class="loading" style="width:150px;"><br /></p><p>Reservering wordt geplaatst...</p>'); // Todo
					}
				}
			});
		}
		
		/* extra forms */
		if(jQuery('#scholen-form').get(0)){
			jQuery('#bPromotion').click(function(){
				jQuery('#sSchoolAdress, #sSchoolZip, #sSchoolCity').each(function(){
					if(jQuery(this).hasClass('required')){
						jQuery(this).removeClass('required');
						jQuery('label[for='+this.id+']').text(jQuery('label[for='+this.id+']').text().replace('*',''));
					}else{
						jQuery(this).addClass('required');
						jQuery('label[for='+this.id+']').text(jQuery('label[for='+this.id+']').text()+'*');
					}
				});
			});
		}
	},
	validateForm: function(f){
		jQuery('#warning').remove();
		var labs = '',
		error = false,
		d = '[<a href="#" onclick="$(\'#warning\').remove();">Verberg dit bericht</a>]',
		d = '',
		fb = jQuery(f).prepend('<div id="warning" style="display:none;"><p>De volgende velden zijn verplicht:</p></div>'),
		pwd = jQuery('input#sPasswd'),
		pwd2 = jQuery('input#sPasswd2'),
		oldpwd = jQuery('input#sOldPassword'),
		newpwd = jQuery('input#sNewPassword'),
		newpwd2 = jQuery('input#sNewPassword2'),
		ph = jQuery(f).find('input.phone'),
		pst = jQuery(f).find('input.postal');

		jQuery(f).find('.required').each(function(){
			var t = jQuery(this);
			if(t.parent().is(':visible') === false){
				return;
			}
			if(t.hasClass('error')){
				t.removeClass('error');
			}
			if(this.value == ''){
				var l = jQuery('label[for='+this.id+']').text();
				labs += '<li>'+l+'</li>';
				jQuery(this).addClass('error');
			}
			if(this.value != '' && t.hasClass('email') && Lyceo.emailCheck(this.value) === false){
				labs += '<li><em>'+this.value+'</em> is geen geldig email adres</li>';
				jQuery(this).addClass('error');
			}else if(this.value != '' && t.hasClass('phone') && Lyceo.validatePhone(this.value) === false){
				labs += '<li><em>'+this.value+'</em> is geen geldig telefoon nummer</li>';
				jQuery(this).addClass('error');			
			}
		});
		if(labs != ''){	
			jQuery('#warning').show().find('p').append('<ul>'+labs+'</ul>'+d).get(0).scrollIntoView(true);
			return false;
		}
		/* Lyceo custom */
		if(oldpwd.get(0) && oldpwd.val()!=''){
			if(newpwd.val()!=''){
				if(newpwd.val()!=newpwd2.val()){
					labs +='<li>De 2 nieuwe wachtwoorden komen niet overeen</li>';
					jQuery('#warning').show().find('p').append('<ul>'+labs+'</ul>'+d).get(0).scrollIntoView(true);
					return false;
				}
			}else{
				labs +='<li>Vul aub een nieuw wachtwoord in</li>';
				jQuery('#warning').show().find('p').append('<ul>'+labs+'</ul>'+d).get(0).scrollIntoView(true);
				return false;
			}
		}
		if(pwd.get(0) && pwd2.val()!=''){
			if(pwd.val()!=''){
				if(pwd.val()!=pwd2.val()){
					labs +='<li>De 2 nieuwe wachtwoorden komen niet overeen</li>';
					jQuery('#warning').show().find('p').append('<ul>'+labs+'</ul>'+d).get(0).scrollIntoView(true);
					return false;
				}
			}else{
				labs +='<li>Vul aub een nieuw wachtwoord in</li>';
				jQuery('#warning').show().find('p').append('<ul>'+labs+'</ul>'+d).get(0).scrollIntoView(true);
				return false;
			}
		}
		if(ph.get(0) && ph.val() != '' && Lyceo.validatePhone(ph.val()) === false){
			labs += '<li><em>'+ph.val()+'</em> is geen geldig telefoon nummer</li>';
			jQuery('#warning').show().find('p').append('<ul>'+labs+'</ul>'+d).get(0).scrollIntoView(true);
			return false;
		}
		/* check for correct postal */
		if(pst.get(0) && pst.val() != '' && Lyceo.validatePostal(pst.val()) === false){
			labs += '<li><em>'+pst.val()+'</em> is geen geldige postcode</li>';
			jQuery('#warning').show().find('p').append('<ul>'+labs+'</ul>'+d).get(0).scrollIntoView(true);
			return false;
		}
	},	
	emailCheck: function(email){
		r = new RegExp('^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$');
		return (email == '' || r.test(email) === false) ? false : true;
	},
	validatePhone: function(v){
		var r = new RegExp('^(\\+[0-9]{2}|\\+[0-9]{2}\\s{0,1}\\(0\\)|\\(\\+[0-9]{2}\\)\\s{0,1}\\(0\\)|00[0-9]{2}|0)([0-9]{9}|[0-9\\-\\s]{10,16})$');
		return r.test(v);
	},
	validatePostal: function(v){
		var r = new RegExp('^[0-9]{4}\s?([a-zA-Z]{2})?$');
		return r.test(v);
	}	
}

jQuery(Lyceo.init);