$(document).ready(function(){
	var site = $('base').attr('href');
	
	$('.button').button();
	$('.radio').buttonset();
	$('.nyro').nyroModal();
	
	$(".tabs").tabs({
		select: function(event, ui) {
		}
	});
	
	$('#ui-datepicker-div').maxZIndex();

	
	$("#loginform").validate({ errorPlacement: function(error, element) { error.insertBefore( element ); } });
	$("#loginform2").validate({ errorPlacement: function(error, element) { error.insertBefore( element ); } });
	$("#actionform").validate({ errorPlacement: function(error, element) { error.insertBefore( element ); } });
	$("#actionform2").validate({ errorPlacement: function(error, element) { error.insertBefore( element ); } });
	$("#newsletterform").validate({ errorPlacement: function(error, element) { error.insertBefore( element ); } });
	
	
	$('input.empty').focus(function(){
		if($(this).val() == $(this).attr('changeVal')){
			$(this).val('')
		}
	});
	
	
	$('input.empty').blur(function(){
		if($(this).val() == ''){
			$(this).val($(this).attr('changeVal'))
		}
	});

	//$('#content').css('height',$('#content .container #main_content').outerHeight());
	
	if( $('#steppicker').length ){
		$('#'+$('#steppicker').attr('step')).addClass('magenta');
	}
	
	$('#moreperson').hover(function(){
		$('#morepersonHover').show();
	},function(){
		$('#morepersonHover').hide();
	});
	
	//SLIDER
	$("#slider-range").slider({
		range: "min",
		min: 0,
		max: 75,
		value: $("#kmend").val(),
		stop: function(){
			if($('#searchResults').length){
				//search_restaurants($('#doSearchRestaurants'),true);
				search_goto();
			}
			if( $('#doCheckRestaurants').length ){
				check_restaurants();
			}
			
		},
		slide: function(event, ui) {
			$("#amount").html('tussen 0 km en ' + ui.value + ' km');
			$("#kmend").val(ui.value);
		}
	});
	
	$("#kmend").val($("#slider-range").slider("values", 1));
	$("#amount").html('tussen 0 km en ' + $("#kmend").val() + ' km');

	
	//SLIDER
	$("#slider-range2").slider({
		range: "min",
		min: 0,
		max: 75,
		value: $("#kmend2").val(),
		slide: function(event, ui) {
			$("#amount2").html('tussen 0 km en ' + ui.value + ' km');
			$("#kmend2").val(ui.value);
		}
	});
	
	$("#kmend2").val($("#slider-range2").slider("values", 1));
	$("#amount2").html('tussen 0 km en ' + $("#kmend2").val() + ' km');

	//END SLIDER
	
	$("#birth").datepicker({
		dateFormat : 'dd/mm/yy',
		monthNames: ['Januari','Februari','Maart','April','Mei','Juni', 'Juli','Augustus','September','Oktober','November','December'],
		beforeShow: function() {$('#ui-datepicker-div').maxZIndex(); }
	});

	// DATEPICKER RESTAURANT
	
	//$('#date').datepicker({beforeShowDay: showEventDates, onSelect: showEvent});
	// END DATEPICKER RESTAURANT
	
	
	
	// DATEPICKER
	$(".datepicker").datepicker({
		minDate: new Date($('input[name="begin_date"]').val()),
		maxDate: new Date($('input[name="end_date"]').val()),
		dateFormat : 'dd/mm/yy',
		monthNames: ['Januari','Februari','Maart','April','Mei','Juni', 'Juli','Augustus','September','Oktober','November','December'],
		beforeShow: function() {$('#ui-datepicker-div').maxZIndex(); },
		onSelect : function(dateText, inst){
			if($('#doCheckRestaurants').length || $('#doCheckie').length){
				$.ajax({
					type: "GET",
					cache: false,
					url: "http://www.heerlijk.nl/api/dateid/" + dateText + "/",
					success: function(msg) {
						$("#startdate").val(msg);
						check_restaurants();
					}
				});
			}
			$('.datepicker').val(dateText);
		}
	});
	$('#calender img').click(function(){
		$('.datepicker').focus();
	});
	// END DATEPICKER
	
	// RESTAURANT AVAILABLE
	$("input[name='priceclass_0']").click(function(){
		if($(this).is(':checked')){
			$("input[name='priceclass_1']").attr('checked', true);
		}else{
			$("input[name='priceclass_1']").attr('checked', false);
		}
	})
	
	
	

	$("select[changer='true'], input[changer='true']").change(function() {
		check_restaurants();
	});
	$("label[changer='true']").click(function() {
		check_restaurants();
	});
	
	$(window).ready(function() {
		check_restaurants();
	});

	$('input#submit').click(function(e){
		if(!$('#doCheckRestaurants').length){
			return
		}
		var gogo = parseInt($(this).attr('go'));
		if(gogo == 0){
			e.preventDefault();
		}
	});
	
	if(typeof window.mapsClick == 'function') {
		mapsClick();
	}	
	
	
	
	
	
	

	$("#searchRestaurant").keypress(function(e) {
		code= (e.keyCode ? e.keyCode : e.which);
		if (code == 13){
			search_goto();
		}
	});
	$("#searchButton").click(function(e) {
		search_goto();							  
	});
	$(".searchSort").click(function(e) {
		$('input[name="sorting"]').val( $(this).attr('name') );
		search_restaurants();
	});
	if($('#doSearchRestaurants').length){
		search_restaurants($('#doSearchRestaurants'));
	}	
	
	$('#searchAdvancedButton').click(function(){
		if( $('#searchAdvanced').is(':hidden') ){
			$('#searchAdvanced').slideDown('fast');
		}else{
			$('#searchAdvanced').slideUp('fast');
		}
	});
	// EOF SEARCH
	
	
	
	
	$(".confirm").click(function (e) {
		$('.confirmdata').css('background','#FFFFE9');
		
		var mes = $('input[name="'+$(this).attr('for')+'"]:checked').attr('title');
		if(!mes){ mes = 'Kloppen de ingevoerde gegevens?'; }
		
		if (!confirm(mes)) {
			e.preventDefault();
			$('.confirmdata').css('background','none');
		}else{
			var value = $(this).attr('oldval');
			$('#pay_method').val(value);
		}
	});
	
	
	$('#giftShowAll').click(function(){
		if( $(this).hasClass("all") ){
			$('.overview tr.tohide').addClass('hide');
			$(this).html('Laat alle cadeaubonnen zien').removeClass('all');
		}else{
			$('.overview tr.tohide').removeClass('hide');
			$(this).html('Laat de laatste 5 cadeaubonnen zien').addClass('all');
		}
	});
	
	
	
	$('#toggleCheck').click(function(){
		$("input[type='checkbox']").attr('checked', $('#toggleCheck').is(':checked'));
	});
	
	
	
	$('#emailsplus').click(function() {
		var n = (parseInt($(this).attr('start'))+1);
		var m = parseInt($(this).attr('max'));

		if(n < m){
			$(this).attr('start',n);
			$('#emails').append(' <img src="'+site+'Content/Themes/heerlijk5/images/icons/minus.png" style="cursor:pointer;" class="eb_'+(n-1)+'" onclick="removeLayout(\''+(n-1)+'\');" /><span class="e_'+n+'"><label>'+$(this).attr('title')+' '+n+'</label> <input type="text" style="width: 150px;" name="user['+(n-1)+'][name]" class="empty" value="Naam" changeval="Naam" /> <input type="text" style="width: 150px;" name="user['+(n-1)+'][email]" class="empty email" value="E-mail" changeval="E-mail" /></span>');
		}
	});
	
	
	
	$('.nlshow').hover(function(){
		$('.newsletterForm').show();
	},function(){
		$('.newsletterForm').hover(function(){
			
		},function(){
			$('.newsletterForm').hide();
		});
	});
	
	$('.stopClick').click(function(e){
		e.preventDefault();
	});
		
	
	jQuery.preLoadImages(site + 'Content/Uploads/Images/team-foto-hic.jpg');
	
	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
		$("#newsletterTop li a").bind('touchstart', function(){
			$('#newsletterTop li div').show();
		});
		
		$("#newsletterTop li a").bind('touchend', function(){
			$('#newsletterTop li div').hide();
		});
	}	
});

(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
	var args_len = arguments.length;
	for (var i = args_len; i--;) {
	  var cacheImage = document.createElement('img');
	  cacheImage.src = arguments[i];
	  cache.push(cacheImage);
	}
  }
})(jQuery)
	
function removeLayout(n){
	$('span.e_'+n).remove();
	$('img.eb_'+n).remove();
}
	
	
function callDate(dateText){
	var site = $('base').attr('href');
	$.ajax({
		type: "GET",
		cache: false,
		url: site + "api/dateid/" + dateText + "/",
		success: function(msg) {
			$("#startdate").val(msg);
			check_restaurants();
		}
	});
}

	
function check_restaurants (){
	if(!$('#doCheckRestaurants').length){
		return
	}
	var check		= false;
	var site 		= $("base").attr('href');
	
	var startdate 	= $("input[name='startdate']").val();
	var kmbegin		= $("input[name='begin']").val();
	var kmend 		= $("input[name='end']").val();
	var postalcode 	= $("input[name='postalcode']").val();
	
	if(!postalcode) return;
	if(postalcode == 'Vul een postcode of plaats in') return;
	
	if( (startdate > 0) && (kmend > 0) ){
		var check = true;
		$("#check").html('<div class="box"><img src="'+site+'Content/Themes/heerlijk/images/lb-loading.gif" border="0" style="float: left;margin: 0 10px;"/> Bezig met berekenen van alle mogelijke restaurants in uw omgeving. Een moment geduld alstublieft.</div>');
		$('input#submit').attr('go','0').val('Berekenen, een moment geduld aub');
	}
	
	
	setTimeout(function() {
		var persons 		= $("input[name='persons']:checked").val();
		var priceclass_0 	= $("input[name='priceclass_0']:checked").val();
		var priceclass_1 	= $("input[name='priceclass_1']:checked").val();
		var priceclass_2 	= $("input[name='priceclass_2']:checked").val();
		var priceclass_3 	= $("input[name='priceclass_3']:checked").val();
		
		if(priceclass_0 == '' || typeof(priceclass_0) == 'undefined') priceclass_0=0; 
		if(priceclass_1 == '' || typeof(priceclass_1) == 'undefined') priceclass_1=0; 
		if(priceclass_2 == '' || typeof(priceclass_2) == 'undefined') priceclass_2=0; 
		if(priceclass_3 == '' || typeof(priceclass_3) == 'undefined') priceclass_3=0; 


		var priceclass = priceclass_0 + ',' + priceclass_1 + ',' + priceclass_2 + ',' + priceclass_3;
		
		if(startdate == '' || typeof(startdate) == 'undefined') startdate=0; 
		if(postalcode == '' || typeof(postalcode) == 'undefined' || postalcode == 'Vul een postcode of plaats in') postalcode=0; 
		if(kmbegin == '' || typeof(kmbegin) == 'undefined') kmbegin=0; 
		if(kmend == '' || typeof(kmend) == 'undefined') kmend=0; 
		if(persons == '' || typeof(persons) == 'undefined') persons=2; 
		
		if(check){
			$.ajax({
				type: "GET",
				cache: false,
				url: site + "api/restaurants/" + startdate + '/' + postalcode + "/" + kmbegin + "/" + kmend + "/" + persons + "/" + priceclass + "/look/",
				success: function(msg) {
					$("#check").html(msg);
					
					var se = $('#check:contains("Geen restaurants")').text();
					if(se){
						$('input#submit').attr('go','0').val('Geen restaurants gevonden');
					}else{
						$('input#submit').attr('go','1').val('Volgende stap');
					}
				}
			});
		}
	}, 600);
}

function search_restaurants (v,manual){
	if(!$('#searchResults').length){
		return
	}
	var check		= false;
	var site 		= $("base").attr('href');
	
	var searchRestaurant 	= v.attr('search');
	var begin 				= v.attr('begin');
	var start 				= v.attr('start');
	
	if(typeof(manual) == 'undefined'){
		var end				= v.attr('end');
	}else{
		var end 			= $("#kmend").val();
	}
	
	if(searchRestaurant !== '' && searchRestaurant !== 'Vul een postcode, plaats of naam in'){
		check = true;

		$.ajax({
			type: "GET",
			cache: false,
			url: site + "api/zoek-placeholder/",
			success: function(msg) {
				$("#searchResults").html(msg);
			}
		});
	}
	setTimeout(function() {
		if(check){
			$.ajax({
				type: "GET",
				cache: false,
				url: site + "api/zoek/" + searchRestaurant + "/" + begin + "/" + end + "/" + start + "/",
				success: function(msg) {
					setTimeout(function() {
						$("#searchResults").html('').html(msg);
						
						$("#searchResults").slideDown('fast');
						
						$('#footer').css('bottom','0');
					},600);
				}
			});
		}
	}, 600);
}

function search_goto(){
	var site = $('base').attr('href');
	var s = $('#searchRestaurant').val();
	var ss = $('#searchRestaurant').attr('changeVal');
	if(s !== ss){
		s = s.replace(/ /g,'_');
	}else return false;

	var b = $('#kmbegin').val();
	var e = $('#kmend').val();

	var check = false;
	if(s !== $('#searchRestaurant').attr('changeVal')){
		window.location = site + 'restaurant/zoek/' + s + '/' + b + '/' + e + '/';
	}		
}



function fixIeBug(btn) {
	$(btn).attr('checked', 'checked');
}

$.maxZIndex = $.fn.maxZIndex = function(opt) {
    var def = { inc: 10, group: "*" };
    $.extend(def, opt);
    var zmax = 0;
    $(def.group).each(function() {
        var cur = parseInt($(this).css('z-index'));
        zmax = cur > zmax ? cur : zmax;
    });
    if (!this.jquery)
        return zmax;

    return this.each(function() {
        zmax += def.inc;
        $(this).css("z-index", zmax);
    });
}
