
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;
		}
	});
};

	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}

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');
			}
		);		

		var slidr = jQuery("#slider");
		if (slidr.size() > 0){
			slidr.easySlider({
				auto:true,
				continuous:true,
				controlsShow:false
			});
		}
		
		if (jQuery("body").hasClass("option2")) {
			jQuery("#nav-mijn-lyceo a").attr("class", "").attr("href", "/over-ons/werken-bij-lyceo/");
		}
	
		/* Lightbox */
		jQuery('a.login-link').click(function(e){
			e.preventDefault();
			jQuery('div#lightbox').modal({persist:true});
		});	
		jQuery('.video-link1').click(function(e){
			e.preventDefault();
			jQuery('div#video1').modal({containerId: 'video-container', persist:true});
		});	
		jQuery('.video-link2').click(function(e){
			e.preventDefault();
			jQuery('div#video2').modal({containerId: 'video-container', persist:true});
		});	
		jQuery('.video-link3').click(function(e){
			e.preventDefault();
			jQuery('div#video3').modal({containerId: 'video-container', 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('#extended_options div').hide().end().find('div.'+this.id).show();
			});
			
			/* Kortingscode */
			var k = jQuery("#sLeadCode"), ccookie = readCookie("client"), pcookie = readCookie("leaduser"),
				clc = k.closest("p").attr("class").substring(7);

			tr = jQuery("tr.total"), original_total = tr.find("td:eq(2)").text().substring(1);
			jQuery("a#check-code").click(function(ev){
				var fb_msg = "De opgegeven code is ongeldig.", fb_cls = "invalid";
				if (k.val() == ""){
					jQuery("#code-wrapper").attr("class", fb_cls).text(fb_msg);
				}else{
					jQuery.getJSON("/remote/code.php", {"sLeadCode":k.val(), "sClientLeadCode":clc, "sProductIds":jQuery("#sProductIds").val()}, function(json){
						if (json.success == "1"){
							fb_msg = "De opgegeven code is geldig.";
							fb_cls = "success";	
							/* update the price table */
							if (jQuery("tr.korting").size() == 0){
								var total = tr.find("td:eq(2)").text().substring(1);
								var dec = total.substring(total.length-2);
								total = total.replace(".","");
								total = total.substring(0,total.length-3)+","+dec;
								
								var total = parseFloat(total);
								var korting = parseFloat(json.discount);
								var newtotal = total-korting;
								
								
								tr.before("<tr class=\"korting\"><td colspan=\"3\">&nbsp;</td><td>Korting:</td><td align=\"right\">&euro;"+korting+",00</td></tr>");
								tr.find("td:eq(2)").html("&euro;"+newtotal+",00");
							}
						}else{ // invalid code, remove korting row if visible
							jQuery("tr.korting").remove();
							tr.find("td:eq(2)").html("&euro;"+original_total);
						}
						jQuery("#code-wrapper").attr("class", fb_cls).text(fb_msg);
					});
				}
				return false;
			});
			if (ccookie !== null){
				k.val(ccookie);
				jQuery("a#check-code").click(); // trigger check
			}
			if (pcookie !== null){ // check for leaduser cookie
				pt.append("<input type=\"hidden\" name=\"sPartnerCode\" value=\""+pcookie+"\" />");
			}
		}
		
		/* 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()+'*');
					}
				});
			});
		}
		
		/* codes cookies */
	},
	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 == '' || (t.is(":checkbox") && t.is(":not(:checked)"))){
				var l = jQuery('label[for='+this.id+']').text();
				if(t.is(":checkbox") && this.title != ""){
					l = this.title;
				}
				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);
