$(function() {
	
	$("a[href^='http://']:not([href*=nahw.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)").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');
	
	
	$('#portal ul').find('a').removeClass('external').end().find('a.portal-klant').parent().css({'float':'left','display':'inline'}).end().end().find('ul').hide();
	
	$('#portal ul a[href$=#]').live('click',function() {
		var portals = $('#portal').html();
		$(this).removeAttr('href');
		var subPortals = $(this).parent().html();
		var back = '<p><a href="#" rel="terug">Terug naar het overzicht</a></p>';
		
		$('#portal').slideUp(400,function() {
			$(this).html('<ul><li>'+subPortals+'</li></ul>'+back).find('ul').show().end().slideDown(400);
		});
		
		$('a[rel=terug]').live('click',function() {
			$('#portal').slideUp(400,function() {
				$(this).html(portals).slideDown(400);
			});
			return false;
		});
		
		return false;
	});
	
	
	$("a[href$='media/demo/']").popUp({width:800,height:600});
	$("a[href$='media/epg/']").popUp({width:850,height:595});
	$("a[href$='media/newtrailer/']").popUp({width:640,height:360});
	$("a[href$='media/trailer/']").popUp({width:670,height:390});
	$("a[href$='pages/portal.html']").popUp({width:600,height:600});
	
	
	$('#acties').show();
	
	var 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('http://www.nahw.nl/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
			});
		}
	});
	
	$("#referentie").validate({
		rules: {
			foto: {
				accept: "jpe?g|png|bmp|gif|pct|pdf|psd|tiff?|zip"
			}
		},
		messages: {
			foto: "Voer hier een geldige foto in."
		},
		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(e) {
    		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();
			}
		
			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; });	
		
	});
};
