/**
 * Bootstrap.js - JavaScript bootstrapper
 * 
 * @author Webstores <info at webstores dot nl>
 *         Copyright (c) Webstores internet totaalbureau <http://www.webstores.nl/>
 */
$(document).ready(function() {
	
	// Utilities
	WS.Util.externalLinks();
	WS.Util.rowClick();
	WS.Util.fixPlaceholders();
	
	// Font sizer
	var fs = new FontSizer('#font-size', {
		applyTo: ['body']
	});
	
	// AJAX loading
	$(document.body).ajaxStart(function() {
		$(this).addClass('loading');
	}).ajaxComplete(function() {
		$(this).removeClass('loading');
	});
	
	// Togglers
	$('.accordion').each(function() {
		switch(this.id) {
			default:
				new Toggler(this);
				break;
		}
	});
	
	var primaryNavToggler = new Toggler('#primary-nav > ul', {
		animate: true,
		animateSelector: 'ul:first',
		onReady: function(el) {
			$('.toggler', el).append('<span class="icon"></span>');
		}
	});
	
	// Validation
	$('form.generated').validate({
		highlight: function(element, errorClass, validClass) {
			if(element.type == 'checkbox' || element.type == 'radio' || element.nodeName == 'select') {
				$(element).parents('.row').removeClass(validClass).addClass(errorClass);
			}
			else {
				$(element).addClass(errorClass).removeClass(validClass);
			}
		},
		unhighlight: function(element, errorClass, validClass) {
			if(element.type == 'checkbox' || element.type == 'radio' || element.nodeName == 'select') {
				$(element).parents('.row').removeClass(errorClass).addClass(validClass);
			}
			else {
				$(element).removeClass(errorClass).addClass(validClass);
			}
		}
	});
	
	// Messages
	MessageBar.init();
	
	// Shadowbox
	Shadowbox.init({
		overlayOpacity: 0.8,
		troubleElements: ['select']
	});
});

