$(function() {
	
	$("a[href^='http://']:not([href*=thuisinnederlands.nl])").attr("rel","external");
	$("a[rel=external]").attr("target","_blank").addClass('external').each(function(i) {
		var title = $(this).attr("title") ? $(this).attr("title") : $('img', this).attr("title");
		title = $.trim(title) ? $.trim(title) : $.trim($(this).text());
		if (title) $(this).attr("title", title + " (Externe link)");
		else $(this).attr("title", "Externe link");
	}).filter(":has(img), .portal-klant").removeClass('external').removeClass('pdf');
	
	$('a[rel*=lightbox]').lightBox();

	
	$('.tree').find('dd').hide().end().find('dt').click(function() {
		$(this).next().slideToggle();
	}).css({cursor: 'default'});
	
	$(".tree a[href$=pdf]").addClass('pdf');

	$("a[href$='pages/portal.html']").popUp({width:600,height:500});
	
	$("#prijzen .info").parent().parent().hover(function () {
		$(this).children().children('div').fadeIn(250);
	}, function () {
		$(this).children().children('div').fadeOut(250);
	});
	

	$('#acties').show();
	
	reactiesysteem = '<ul id="actiemenu">';
	reactiesysteem += '<li id="actie_redactie"><a href="#">Stuur een reactie naar ITpreneurs</a></li>';
	reactiesysteem += '<li id="actie_door"><a href="#">Doorsturen naar een collega</a></li>';
	if (!ie6()) {
		reactiesysteem += '<li id="actie_print"><a href="#">Print dit artikel</a></li>';
		reactiesysteem += '<li id="actie_abo"><a href="#">RSS feed van de laatste artikelen</a></li> </ul>';
	}
	reactiesysteem += '</ul>';

	$('#actiemenu').replaceWith(reactiesysteem);
	
	$('#actiemenu')
	.find('#actie_redactie a').click(function() {
		$('#actiemenu').hide();
		$('#reactie').slideDown(function() {
			$(this).find('input:blank:first').focus();
		});//.find('label.error').remove().end().find('.error').removeClass('error');
		return false;
	}).end()
	.find('#actie_door a').click(function() {
		$('#actiemenu').hide();
		$('#doorsturen').slideDown(function() {
			$(this).find('input:blank:first').focus();
		}).find('label.error').remove().end().find('.error').removeClass('error');
		return false;
	}).end()
	.find('#actie_print a').click(function() {
		window.print();
		return false;
	}).end()
	.find('#actie_abo a').click(function() {
		window.open('/feed/feed.xml');
		return false;
	});
	
	$("#acties input:reset").click(function() {
		$(this).parents('form').slideUp();
		reactieValidate.resetForm();
		doorsturenValidate.resetForm();
		$('#actiemenu').show();

	});
	
	$('.contactform').prepend('<div class="actie-load"><div><img src="images/lightbox-ico-loading.gif" alt="" /></div></div><input type="hidden" name="ajax" value="1" />');
	
	// $('.actie-load')
	// .parent().css({position:'relative'}).end()
	// .css({background:'url(images/form_overlay.png)',width:'100%',height:'100%',position:'absolute'})
	// .find('div').css({'margin-top':'40%','text-align':'center'}).end()
	// .hide();
	
	$('.actie-load').ajaxStart(function() {
		$(this).show();
		// alert('start');
	}).ajaxSuccess(function() {
		// $(this).find('img').fadeOut();
	});
	
	$.validator.setDefaults({
		errorPlacement: function(error, element) {
			if (element.attr("type") == "radio" || element.attr("type") == "checkbox")
				error.insertAfter(element.nextAll(':last'));
			else if (element.attr("name") == "pc_cijfers" || element.attr("name") == "pc_letters")
				error.insertAfter("#plaats");
			else if (element.attr("name") == "fact_pc_cijfers" || element.attr("name") == "fact_pc_letters")
				error.insertAfter("#fact_plaats");
			else
				error.insertAfter(element);
		}
	});


	var reactieValidate = $("#reactie").validate({
		submitHandler: function(form) {
			submitActie(form);
		}
	});
	
	var doorsturenValidate = $("#doorsturen").validate({
		submitHandler: function(form) {
			submitActie(form);
		}
	});
	
	function submitActie(form) {
		$(form).ajaxSubmit(function() {
			$(form).slideUp(2000,function() {
				$('.actie-load').hide();
				$(this).resetForm();
			});
			$('#actiemenu').show();
		});
	}


	$("#contact").validate({
		groups: {
			pc_plaats: "pc_cijfers pc_letters plaats"
		},
		submitHandler: function(form) {
			$(form).ajaxSubmit({
				target: '#content',
				resetForm: true
			});
		}
	});


	
	if ($('#factuuradres').is(':not(:checked)')) {
		$('#factuur').hide();		
	}

	
	$('#factuuradres').click(function() {
		$('#factuur').slideToggle();
	});
	
	$("#trainingform").validate({
		groups: {
			pc_plaats: "pc_cijfers pc_letters plaats",
			fact_pc_plaats: "fact_pc_cijfers fact_pc_letters fact_plaats"
		},
		rules: {
			fact_naam: {
				required: "#factuuradres:checked"
			},
			fact_org: {
				required: "#factuuradres:checked"
			},
			fact_adres: {
				required: "#factuuradres:checked"
			},
			fact_pc_cijfers: {
				required: "#factuuradres:checked"
			},
			fact_pc_letters: {
				required: "#factuuradres:checked"
			},
			fact_plaats: {
				required: "#factuuradres:checked"
			}
		},		
		submitHandler: function(form) {
			if ($('#voorwaarden').is(':checked')) {
				$(form).ajaxSubmit({
					target: '#content',
					resetForm: true
				});
			} else {
				alert('Gaat u akkoord met de voorwaarden?');
			}
		}
	});
	
	
	$("#datum").datepicker({showAnim: 'fadeIn'});
	
	$.datepicker.regional.nl = {
		closeText: 'Sluiten',
		prevText: 'Vorige',
		nextText: 'Volgende',
		currentText: 'Vandaag',
		monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
		'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
		monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',
		'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
		dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
		dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
		dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
		dateFormat: 'dd/mm/yy', firstDay: 1,
		isRTL: false};
		
	$.datepicker.setDefaults($.datepicker.regional.nl);
	
	$('#quick').quickNews();
	
});

/*
 * Translated default messages for the jQuery validation plugin.
 * Language: NL
 */
jQuery.extend(jQuery.validator.messages, {
        required: "Dit is een verplicht veld.",
        remote: "Controleer dit veld.",
        email: "Vul hier een geldig email adres in.",
        url: "Vul hier een geldige URL in.",
        date: "Vul hier een geldige datum in.",
        dateISO: "Vul hier een geldige datum in (ISO).",
        number: "Vul hier een geldig nummer in.",
        digits: "Vul hier alleen nummers in.",
        creditcard: "Vul hier een geldig credit card nummer in.",
        equalTo: "Vul hier dezelfde waarde in.",
        accept: "Vul hier een waarde in met een geldige extensie.",
        maxlength: jQuery.format("Vul hier maximaal {0} tekens in."),
        minlength: jQuery.format("Vul hier minimaal {0} tekens in."),
        rangelength: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),
        range: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),
        max: jQuery.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),
        min: jQuery.format("Vul hier een waarde in groter dan of gelijk aan {0}.")
});

jQuery.validator.addMethod("telefoon", function(value, element) {
	return this.optional(element) || /^[\d-\+()\s]+$/i.test(value);
}, "Vul hier een geldige telefoonnummer in.");

jQuery.validator.addMethod("pc_cijfers", function(value, element) {
	return this.optional(element) || /^[\d]{4}$/i.test(value);
}, "Vul hier een geldige postcode in.");

jQuery.validator.addMethod("pc_letters", function(value, element) {
	return this.optional(element) || /^[a-z]{2}$/i.test(value);
}, "Vul hier een geldige postcode in.");


function ie6() {
	if($.browser.msie && $.browser.version == '6.0') {
		return true;
	}
}

jQuery.fn.echo = function(msg) {
	return this.each(function() {
		if (msg)
			alert(msg);
	});
};

jQuery.fn.popUp = function(settings) {
	return this.each(function() {
		$(this).click(function() {
    		settings = jQuery.extend({
				name: 'popup',
				width: 600,
				height: 400,
				scrollbars: 0,
				resizable: 0,
				toolbar: 0,
				location: 0,
				statusbar: 0,
				menubar: 0	
			}, settings);
	
			var url = this.href;
			var left = (screen.availWidth - settings.width)/2;
			var top = (screen.availHeight - settings.height)/2;
	
			var props = 'width='+settings.width+',height='+settings.height+',left='+left+',top='+top+'toolbar='+settings.toolbar+',scrollbars='+settings.scrollbars+',location='+settings.location+',statusbar='+settings.statusbar+',menubar='+settings.menubar+',resizable='+settings.resizable+',directories=0';
	

			if (url) {
				window.open(url, settings.name, props).focus();
			} else {
				alert(url);
			}
		
			return false;
		});
	});
};

jQuery.fn.quickNews = function(settings) {	
	return this.each(function() {
		settings = jQuery.extend({
			delay: 10000,
			transition: 1000
		}, settings);
		
		var $this = $(this);
		var $list = $this.find('ul');
		var $quick = $(this).find('li');
		var current = 0;
		var over = false;
		$this.show();
		
		function slide() {
			current = current < $quick.length ? current : 0;
			if (!over) {
				$list.empty().html($quick[current]).find('li').show().delayAnimation(settings.transition/2).css({left:$this.width()}).animate({left:0},settings.transition);
				current++;
			}
			
			$this.delayAnimation(settings.delay,function() {
				if (!over) $this.find('li').fadeOut(settings.transition/2,slide);
				else slide();
			});
		}
		slide();
		
		$this.hover(function() { over = true; },function() { over = false; });	
		
	});
};
