/**
 * Bootstrap.js - JavaScript bootstrapper
 * 
 * @author Webstores <info at webstores dot nl>
 *         Copyright (c) Webstores internet totaalbureau <http://www.webstores.nl/>
 */
$(document).ready(function() {
	
	$(document.body).addClass('js');
	
	// Utilities
	WS.Util.externalLinks();
	WS.Util.rowClick();
	WS.Util.fixPlaceholders();
	
	// Messages
	MessageBar.init();
	
	// IE6 fixes
	if(/msie 6/i.test(navigator.userAgent)) {
		MessageBar.show('warning', '<h1>U gebruikt een zeer oude versie van Internet Explorer</h1><p>Voor een optimale ervaring is het aan te raden om de <a href="http://www.microsoft.com/netherlands/windows/internet-explorer/" title="De laatste versie van Internet Explorer downloaden" rel="external">laatste versie van Internet Explorer</a> te installeren, of te kiezen voor een alternatieve browser zoals <a href="http://www.mozilla.com/firefox/" title="Mozilla Firefox downloaden" rel="external">Firefox</a>, <a href="http://www.google.com/chrome" title="Google Chrome downloaden" rel="external">Chrome</a>, <a href="http://www.apple.com/nl/safari/" title="Apple Safari downloaden" rel="external">Safari</a> of <a href="http://www.opera.com/" title="Opera downloaden" rel="external">Opera</a>.</p>');
		WS.Util.fixIE6HoverList();
	}
	
	// // AJAX loading
	// $(document.body).ajaxStart(function() {
	// 	$(this).addClass('loading');
	// }).ajaxComplete(function() {
	// 	$(this).removeClass('loading');
	// });

	
	// Togglers
	$('.accordion').each(function() {
		switch(this.id) {
			/*case 'whatever-accordion':
				new Toggler(this).expand($(this).find('li:first-child'));
				break;*/
			default:
				new Toggler(this);
				break;
		}
	});
	
	// Validation
	$('form').each(function() {
		$(this).validate({
			highlight: function(el, errorClass, validClass) {
				var errorEl = null;
				
				switch(el.type) {
					case 'radio':
						errorEl = $(el).parents('.options');
						break;
					case 'checkbox':
						errorEl = $(el).parent();
						break;
					default:
						errorEl = $(el);
						break;
				}
				
				errorEl.removeClass(validClass).addClass(errorClass);
			},
			unhighlight: function(el, errorClass, validClass) {
				var errorEl = null;
				
				switch(el.type) {
					case 'radio':
						errorEl = $(el).parents('.options');
						break;
					case 'checkbox':
						errorEl = $(el).parent();
						break;
					default:
						errorEl = $(el);
						break;
				}
				
				errorEl.removeClass(errorClass).addClass(validClass);
			}
		});
	});
	
	// Shadowbox
	Shadowbox.init({
		overlayOpacity: 0.8,
		troubleElements: ['select']
	});

	// Twitter
	$.ajax({
		type: 'GET',
		dataType: 'jsonp',
		url: 'http://api.twitter.com/1/statuses/user_timeline.json',
		data: {
			screen_name: 'dockshardenberg',
			include_rts: 0 //show retweets
		},
		success:function(response) {
			var currentDate = new Date();
			var createdAtParts = response[0].created_at.split(' ');
			var updateDate = new Date(Date.parse(createdAtParts[1]+' '+createdAtParts[2]+', '+createdAtParts[5]+' '+createdAtParts[3]+' UTC'));

			var diffDate = currentDate - updateDate;
			var diffSeconds = diffDate / 1000;
			var diffHours = diffSeconds / 60 / 60;
			var diffDays = diffHours / 24;
			var diffWeeks = diffDays / 7;

			if(diffHours < 24) {
				var time = Math.floor(diffHours)+' uur geleden';
			} else if(diffDays<14) {
				if(Math.floor(diffDays) != 1) {
					var time = Math.floor(diffDays)+' dagen geleden';
				} else {
					var time = Math.floor(diffDays)+' dag geleden';
				}
			} else {
				if(Math.floor(diffWeeks) != 1) {
					var time = Math.floor(diffWeeks)+' weken geleden';
				} else {
					var time = Math.floor(diffWeeks)+' week geleden';
				}
			}

			$('#twitter .text').text(response[0].text);
			$('#twitter .date').text(time);
		}
	});
	
	/* Broodjes/Dranken bestelformulier */
	$('#order-form .spinner-input').each(function(){
		new Spinner(this, {
			min: parseInt($(this).attr('data-min'), 10),
			max: parseInt($(this).attr('data-max'), 10),
			step: parseInt($(this).attr('data-step'), 10),
			onUpdate: function(input) {
				updateOrderValues(input);
			}
		});
	});

	if($('#order-form').length){
		$('.item').each(function(){
			updateOrderValues($(this).find('input'));
		});
		
		$('#order-form input[name=method]').change(function(){
			if($(this).val() == 'pickup'){
				$('#order-deliver-box').hide();
				$('#order-deliver-box input').each(function(){
					$(this).removeClass('required');
				});
			}else{
				$('#order-deliver-box').show();
				$('#order-deliver-box input').each(function(){
					$(this).addClass('required');
				});
			}
		});
		if($('#order-form input[name=method][value=deliver]:checked').length){
			$('#order-deliver-box').show();
			$('#order-deliver-box input').each(function(){
				$(this).addClass('required');
			});
		}
	}
	
	
	if($('#order-form input[name=step][value=2]').length){
		$.get('/order.php?q=order', function(data){
			$('#order-overview').html(data);
		});
	}
	
});

function updateOrderValues(input){
	id = $(input).attr('id').split('-');
	totalprice = 0;
	if($(input).attr('item-type') == 'brood'){
		//Bij broodjes
		white = parseFloat($('#item-'+id[1]+'-white').val());
		brown = parseFloat($('#item-'+id[1]+'-brown').val());
		price = parseFloat($('#item-'+id[1]+'-price').html());
		$('#item-'+id[1]+'-total').html((Math.round((price*(white+brown))*100)/100).toFixed(2));
	}else if($(input).attr('item-type') == 'drank'){
		//Bij dranken
		quantity = parseFloat($('#item-'+id[1]+'-quantity').val());
		price = parseFloat($('#item-'+id[1]+'-price').html());
		$('#item-'+id[1]+'-total').html((Math.round((price*quantity)*100)/100).toFixed(2));
	}

	$('.item').each(function(){
		id = $(this).attr('id').split('-');
		price = parseFloat($('#item-'+id[1]+'-total').html());
		totalprice += price;
	});
	
	$('#price-total').html((Math.round((totalprice)*100)/100).toFixed(2));
	$('input[name=price-total]').val((Math.round((totalprice)*100)/100).toFixed(2));
}
