(function($) {

	// jQuery searchValue 1.0
	$.fn.searchValue=function(){var a=$(this);var b=a.val();a.focus(function(){if(a.val()==b)a.val('')});a.blur(function(){if(a.val()=='')a.val(b)});return this};
	
	// jQuery hMenu 1.1
	$.fn.hMenu=function(c){var c=$.extend({submenu:'ul',active:'active'},c);var d=this;var e=[];return this.each(function(){var a=$(this);var b=a.children(c.submenu);e.push(b);a.mouseover(function(){d.removeClass(c.active);$(this).addClass(c.active)})})};

})(jQuery);

function _enhanceSlider() {
	
	var slider = $('.projects'),
		timer = false;
	
	// Truncate texts
	slider.find('.description').shorten({
		length : 60
	});
	
	slider.find('h3 a').shorten({
		length : 45
	});
	
	// Set up scroll
	slider
		.serialScroll({
			items : '.element',
			force : true,
			interval : 6000,
			duration : 1000,
			start : 0,
			step : 1
		})
		.hover(function() {
				
				if(timer) {
					window.clearTimeout(timer);
					timer = false;					
				};
	
				slider.trigger('stop');
				
			}, function() {
				
				timer = window.setTimeout(function() {
					slider.trigger('start');
				}, 2000);
				
			}
		);

};

function _enhanceMenu() {
	
	var menuButtons = $('#navigation > ul > li').each(function() {
		var nodes = $(this).children('ul').children('li');
		if(nodes.length > 1)
			$(this).children('a').children('span').append('&nbsp;&nbsp;<span class="arrow">&nbsp;&nbsp;</span>');
	});
	
};

function _enhanceSubscription() {
	
	function toggleMisc() {
		if(contactSelect.val() == 'Overig')
			contactMiscRule.show();
		else
			contactMiscRule.hide();
	};
	
	var contactSelect = $('#hoe_contact'),
		contactMiscRule = $('#overig_contact_regel');
	
	// Contact options
	contactMiscRule.hide();
	contactSelect.change(function() {
		toggleMisc(); 
	});
	contactSelect.keyup(function() {
		toggleMisc();
	});
	
	// Controls
	API.formControllers.New('inschrijven',{
		'properties' : { 
			'Voornaam' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Voornaam</li>' 
			},
			'Voorletters' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Voorletters</li>' 
			},
			'Achternaam' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Achternaam</li>' 
			},
			'Straat' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Straat</li>' 
			},
			'Postcode_en_plaats' : {
			'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Postcode en plaats</li>' 
			},
			'Plaats' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Plaats</li>' 
			},
			'Telefoon_prive' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Telefoon prive</li>' 
			},
			'Telefoon_zakelijk' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Telefoon zakelijk</li>' 
			},
			'Telefoon_mobiel' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Telefoon mobiel</li>' 
			},
			'Geboortedatum' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_error' :'<li>Geboortedatum</li>' 
			},
			'Opleidingsniveau' : {
				'_required' : '1',
				'_errorClass' : 'select_error',
				'_error' :'<li>Opleidingsniveau</li>' 
			},
			'email_address' : {
				'_required' : '1',
				'_errorClass' : 'error',
				'_mask' : 'email',
				'_error' :'<li>E-mailadres</li>' 
			},
			'Akkoord' : {
				'_required' : '1',
				'_error' :'<li>U moet onze voorwaarden accepteren</li>' 
			}
		},
		'messages' : {
			'error' : 'error',
			'info' : 'info',
			'invalid' : 'invalid' 
		}
	});

};

$(function() {

	_enhanceLinks();
	
	$('#search input[type=text]').searchValue();
	
	// Enhance search inputs
	$('#search form, #search-page form').each(function() {
		
		var form = $(this);
		
		form.children('.text')
			.focus(function() {
				form.addClass('active');
			})
			.blur(function() {
				form.removeClass('active');
			});
		
	});
	
	// Set up menu slide
	$('#portal ul > li').menu({
		dropdown : '.portal_slide',
		effect : 'slideRight',
		duration : 150,
		swapTarget : 'a',
		ignoreDummy : true
	});
	
	// Set up menu slide
	$('#news-view ul > li').menu({
		dropdown : '.portal_slide',
		effect : 'slideRight',
		duration : 150,
		swapTarget : 'a',
		ignoreDummy : true
	});
	
	// Set up hMenu for the main navigation
	$('#navigation > ul > li').hMenu();
	
	// Fix PNG images if the user client is IE 6 or lower
	if($.browser.msie) {
		if($.browser.version <= 6) {
			$('head').append('<script type="text/javascript" src="style/pco/js/jquery.pngfix.js" />');
			$('#navigation .corner, #footer .corner, #header .corner, .slide_image, .project_background').pngfix();
		};
	};
	
	// Enhance vacancy back button	
	var elementContainer = $('#customdb-vacancies-back'),
		element = elementContainer.children('a');
		
	element.attr({
		'href' : '',
		'title' : 'Ga terug'
	});
	element.text('Ga terug');
	element.click(function(event) {
		history.back();
		event.preventDefault();
	});

});

function _enhanceLinks() {
	if(window.location.pathname.indexOf('admin')!=-1)
	    return;
	var aLinks=document.getElementsByTagName('a');	
	for(var i=0;i<aLinks.length;i++) {
		var oLink=aLinks[i];				
		if(oLink.href && oLink.href.indexOf(window.location.hostname)==-1) {			
			oLink.onclick=function(e) {
				window.open(this.href);
				if(e && e.preventDefault!= undefined)
					e.preventDefault();
				return false;
			}
		}
	}
}
