$(document).ready(function(){

	baguetteBox.run('.gallery');

	/* onderdelen filter */
	$checkboxes = $('.sideMenu.filters input[type=checkbox]');
	$checkboxes.change(function(){
		window.location.hash = 'filter=' + $checkboxes.filter(':checked').map(function(){
			return this.value;
		}).get().join("|");

		// do the filter
		filterItems(window.location.hash.replace('#filter=',''));
	});

	var hash = window.location.hash.replace('#filter=','');
	if (hash != '') {
		filterItems(hash);
	}
	/* eind onderdelen filter */

	function filterItems(items) {
		$('.productContainer').removeClass('show').show();

		var filterItems = items.split("|");

		// verwijder lege elementen uit de array
		var filterItems = filterItems.filter(function(x){
			return (x !== (undefined || null || ''));
		});


		if(filterItems.length > 0) {
			$.each(filterItems,function(i){
				var filterItemsSpecific = filterItems[i].split(",");
				$.each(filterItemsSpecific,function(i){
					$('.sideMenu.filters input[value="' + filterItemsSpecific[i].replace(/%20/g, " ") + '"]').attr('checked', 'checked');
					$('.productContainer[data-group="' + filterItemsSpecific[i].replace(/%20/g, " ") + '"]').addClass('show');
				});
			});

			$('.productContainer:not(.show)').hide();
			var aantalActief = $('.productContainer.show').length;
			$('.aantal-producten').html(aantalActief + ' product' + (aantalActief == 1 ? '' : 'en' ) + ' gevonden');
		} else {
			var aantalActief = $('.productContainer').length;
			$('.aantal-producten').html(aantalActief + ' product' + (aantalActief == 1 ? '' : 'en' ) + ' gevonden');
		}

		$("img.lazy").unveil(200, function() {
			$(this).fadeIn("slow");
		});
	}

	$("img.lazy").unveil(200, function() {
		$(this).on('load', function() {
			$(this).fadeIn("slow");
		});
	});

	$('body').on('submit', '.couponcode', function(e) {
		e.preventDefault();
		$.ajax({
			url: "/includes/json/winkelwagen_coupon.php",
			type: "POST",
			data: 'couponcode='+$('#couponinput').val(),
			timeout: 10000,
			dataType: 'json',
			async: false,
			success: function(html){
				if(html.error == 1) {
					alert('De coupon is niet toegevoegd. Controleer of de coupon nog geldig is.');
				} else {
					location.reload();
				}
				$('.loading').remove();
			},
			error: function(result) {
				$('.loading').remove();
				alert('Fout 304 | Helaas kan je coupon niet verwerkt worden.');
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});

    // Home page slider
    $('.slider').slick({
        infinite: true,
        slidesToShow: 4,
        slidesToScroll: 1,
        responsive: [
        {
          breakpoint: 736,
          settings: {
            slidesToShow: 1,
            slidesToScroll: 1
          }
        }
      ]
    });

    // Banner slider
     $('.bannerImgSlider').slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        arrows: true,
        nextArrow: '<span class="arrow arrow-next"></span>',
        prevArrow: '<span class="arrow arrow-prev"></span>',
        asNavFor: '.bannerSlider'
    });

    $('.bannerSlider').slick({
        arrows: false,
        autoplay: true,
        autoplaySpeed: 10000,
        dots: false,
        asNavFor: '.bannerImgSlider'
    });

    if ($('.extraImagesSlider').length) {
        $('.extraImagesSlider').slick({
            infinite: false,
            speed: 300,
            slidesToShow: 3,
            slidesToScroll: 1,
            prevArrow: '<a class="slick-prev"><span>&lsaquo;</span></a>',
            nextArrow: '<a class="slick-next"><span>&rsaquo;</span></a>',
        });
    }

    // mobile menu toggle
    $('.menuToggle').click(function(){
        var hidden = $('.mobileMenu');
        if (hidden.hasClass('visible')){
            hidden.animate({"left":"-1000px"}, 800).removeClass('visible');
        } else {
            hidden.animate({"left":"0px"}, 800).addClass('visible');
        }
    });

    // mobile sub menu toggle, Mobile only
    if( /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
        $('nav .top').click(function(){
            $(this).toggleClass('open');
            $(this).parent().find('.sideMenu').slideToggle('slow');
        });
    }

    // back to top
    $('.backToTop').click(function(){
        $('html, body').animate({scrollTop : 0},800);
        return false;
    });

    // Accordions
    $( "#accordion" ).accordion({
        header: ".openAccordion",
		heightStyle: "content",
		collapsible: true,
        icons: false,
		active: false
    });

	$( "#accordion" ).accordion( "option", "active", phpData.activeAccordion );

    // Tabs
    $(".tabsMenu a").click(function(event) {
        event.preventDefault();
		if(!$(this).parent().parent().hasClass('hideModel')) {
			$(this).parent().addClass("active");
			$(this).parent().siblings().removeClass("active");
			var tab = $(this).attr("href");
			$(this).parent().parent().parent().find(".tabContent").not(tab).css("display", "none");
			$(this).parent().parent().parent().find(tab).fadeIn();
		}
    });


	//if(phpData.emptyPass == 1) {
	//	$('#pass1, #pass2').val('');
	//}

	if(phpData.toggleGeneralPopup == 1) {
		$('.popup, .popup > .algemeen').toggleClass('open');
	}

	// Login popup toggle
	$('body').on('click','li.login:not(.logout) a, a.closeLogin, .loginMobile',function(e){
		e.preventDefault();
        $('.popup, .popup > .login').toggleClass('open');
    });

	// Algemeen popup toggle
	$('body').on('click','.algemeen > .closeAlgemeen',function(e){
		e.preventDefault();
        $('.popup, .popup > .algemeen').toggleClass('open');
    });

    // shoppingCart popup toggle
    $('body').on('click','a.shop:not(.toShop), .shoppingCart > .closeShoppingCart',function(e){
        if ($(window).width() <= 800) {
    		window.location = "/winkelwagen";
        } else {
            e.preventDefault();
            if(!$(this).hasClass('closeShoppingCart')) {
                var cartInfo = generateHeaderCart();
                if(cartInfo == 1) {
                    $('.popup, .popup > .shoppingCart').toggleClass('open');
                }
            } else {
                $('.popup, .popup > .shoppingCart').toggleClass('open');
            }
        }
    });

    // close popup click outside the popup
    $(document).mouseup(function (e) {
        var popup = $(".popup > .login, .popup > .algemeen, .popup > .shoppingCart, .popup > .vin");
        if (!$('li.login a, a.shop, .algemeen').is(e.target) && !popup.is(e.target) && popup.has(e.target).length == 0) {
            popup.removeClass('open');
            $('.popup').removeClass('open');
        }
    });

    // modelFinder toggle
    $('.changeCar, span.licensePlate').click(function(){
        $('.modelFinder').toggleClass('open');
		var text = $(this).text();
		$(this).text(text == "Wijzig auto" ? "Zoeker sluiten" : "Wijzig auto");
    });

	$('input:disabled').addClass('disabled');

    // amount
    // increase amount
    $('.amountPlus').click(function(e){
        e.preventDefault();
        fieldName = $(this).attr('field');
        var currentVal = parseInt($('input[name='+fieldName+']').val());
        if (!isNaN(currentVal)) {
			var newVal = currentVal + 1;
            $('input[name='+fieldName+']').val(newVal);
        } else {
			var newVal = 0;
            $('input[name='+fieldName+']').val(newVal);
        }
		$('.addToCart').attr('data-qty',newVal);
    });
    // decrease amount
    $(".amountMinus").click(function(e) {
        e.preventDefault();
        fieldName = $(this).attr('field');
        var currentVal = parseInt($('input[name='+fieldName+']').val());
        if (!isNaN(currentVal) && currentVal == 1) {
			var newVal = currentVal;
			$('input[name='+fieldName+']').val(newVal);
		} else if (!isNaN(currentVal) && currentVal > 0) {
			var newVal = currentVal - 1;
            $('input[name='+fieldName+']').val(newVal);
        }
		$('.addToCart').attr('data-qty',newVal);
    });

	// toggle place review
    $('.addReview').click(function(){
        $(this).toggleClass('open');
        $(this).parent().find('.writeReview').toggleClass('open');
    });

    // toggle reviews
    $('span.showReviews').click(function(){
		toggleReview(this);
    });

	function toggleReview(thisvar) {
		var el = $(thisvar);
		if (el.text() === el.data('text-swap')) {
			el.text(el.data('text-original'));
		} else {
			el.data('text-original', el.text());
			el.text(el.data('text-swap'));
		}
		el.toggleClass('open');
		el.parent().find('.reviews').toggleClass('open');
	}

	/*
	*	Kenteken / MMT SELECT
	*/

	$('body').on('keyup', '.licensePlate.input', function() {
		doKenteken($(this));
	});

	$('.licensePlate.input').bind('input', function() {
		doKenteken($(this));
	});

	function doKenteken(element) {
		var count = $(element).val().length;
		setTimeout(function() {
			if(count > 4) {
				//$('.searchPlate.home input[type=submit]').show();
				$('.button.secundair.kenteken').attr("disabled",false);
			} else {
				//$('.searchPlate.home input[type=submit]').hide();
				$('.button.secundair.kenteken').attr("disabled",true);
			}
		},0);
	};

	$("body").on("change", "#tab-2 select", function(e){
		e.preventDefault();
		if($(this).attr('name') == 'selectModel') {
			$('.button.secundair.mmt').attr('disabled',true);
			var info = $("#searchByMMT").serialize();
			carByMMT(info,'mmt');
		} else if($(this).attr('name') == 'selectType') {
			$('.button.secundair.mmt').attr('disabled',false);
		}
	});

	$("body").on("click", ".button.secundair.kenteken", function(e){
		e.preventDefault();
		var info = $("#searchByKenteken").serialize();
		carByMMT(info,'kenteken');
	});

	$("body").on("click", ".button.secundair.mmt", function(e){
		e.preventDefault();
		window.location.href = '/' + $("#populateTypes").val() + '/accessoires';
	});

	$("body").on("change", ".shoppingCartTable.variable select", function(e){
		e.preventDefault();
		var item = $(this).closest('.tRow')
		var itemValue = $(item).attr('data-art');
		$.ajax({
			url: "/includes/json/addToCart.php",
			data: 'productid='+itemValue+'&act=4&newQty='+$(this).val(),
			type: "POST",
			dataType: 'json',
			success: function(html){
				$('.loading').remove();
				if(html.error != 0) {
					alert("Error 205 | Hoeveelheid van product kan niet worden gewijzigd.");
				} else {
					generateCheckoutCart();
				}
			},
			error: function(data, status, error) {
				alert("Error 206 | Hoeveelheid van product kan niet worden gewijzigd.");
				$('.loading').remove();
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});

	$("body").on("click", ".searchDealerByPostcode, .kiesDealer", function(e){
		e.preventDefault();
		var postcode 			= $('.newPostalcode').val();
		var showKeepCurrent 	= $(this).attr('rel');
		if($(this).hasClass('kiesDealer')) {
			var store 		= 1;
		} else {
			var store 		= 0;
		}
		$.ajax({
			url: "/includes/json/searchDealerByPostcode.php",
			data: 'postcode='+postcode+'&store='+store,
			type: "POST",
			dataType: 'json',
			success: function(html){
				$('.loading').remove();
				if(html.error == 1) {
					$('.popup, .popup > .algemeen').toggleClass('open');
					$('.popup .algemeen').html('<a class="close" href="#"></a><h1>Geen dealer gevonden</h1><p>Er is geen Kia dealer gevonden in het ingevoerde postcodegebied ('+postcode+').</p>');
				} else {
					var dealer = html.dealer['dealerinfo'][0]['naam']+'<br/>'+html.dealer['dealerinfo'][0]['straat']+' '+html.dealer['dealerinfo'][0]['huisnummer']+'<br/>'+html.dealer['dealerinfo'][0]['postcode_num']+' '+html.dealer['dealerinfo'][0]['postcode_alfa']+' '+html.dealer['dealerinfo'][0]['plaats'];
					if(html.stored == 0) {
						// verwerk dealer;
						$('.popup, .popup > .algemeen').toggleClass('open');
						$('.popup .algemeen').html('<a class="close" href="#"></a><h1>Wil je de dealer wijzigen?</h1><p>Wij hebben onderstaande Kia dealer gevonden voor de door jou ingegeven postcode '+postcode+'.</p><p>'+dealer+'</p><br /><br />');
						if(showKeepCurrent == 1) {
							$('.popup .algemeen').append('<a class="button primair tertiair close2" href="#">Huidige dealer houden</a>');
						}
						$('.popup .algemeen').append('<a class="button primair kiesDealer" style="float:right;" href="#">Dealer kiezen</a>');
					} else if(html.stored == 1) {
						$('.searchDealerByPostcode').attr('rel','1');
						$('.vervang').hide();
						$('.dealerTXT').html('<p>De producten worden afgeleverd bij <span class="dealernaam inlinered">'+html.dealer['dealerinfo'][0]['naam']+'</span>, op basis van postcodegebied <span class="dealerpostcode inlinered">'+html.dealer['dealerinfo'][0]['postcode_num']+'</span>.</p>')
						$('.dealerTXT').append('<p><strong class="dealerInfo">'+dealer+'</strong></p>')
						$('.dealerTXT').append('<p class="andereDealer">Wil je jouw producten bij een andere dealer ophalen? <a href="#">Klik dan hier</a>.</p>');
						$('.popup, .popup > .algemeen').toggleClass('open');
						$('.andereDealerToggle').slideToggle();
						$('.dealerInfo').html(dealer);
						$('.postcode').html(html.dealer['dealerinfo'][0]['postcode_num']);
						$('.dealernaam').html(html.dealer['dealerinfo'][0]['naam']);
					}
				}
			},
			error: function(data, status, error) {
				alert("Error 304 | Er is een fout opgetreden bij het zoeken van de Kia dealer voor de ingegeven postcode.");
				$('.loading').remove();
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});

	$("body").on("click", ".shoppingCartTable.variable SPAN.tRemove a", function(e){
		e.preventDefault();
		var item = $(this).closest('.tRow')
		var itemValue = $(item).attr('data-art');

		$.ajax({
			url: "/includes/json/addToCart.php",
			data: 'productid='+itemValue+'&act=2',
			type: "POST",
			dataType: 'json',
			success: function(html){
				$('.loading').remove();
				if(html.error == 0) {
					generateCheckoutCart();
					$(item).slideToggle();
				} else {
					alert("Error 203 | Product kan niet uit de winkelwagen verwijdert worden.");
				}
			},
			error: function(data, status, error) {
				alert("Error 202 | Product kan niet uit de winkelwagen verwijdert worden.");
				$('.loading').remove();
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});



	function carByMMT(info,how) {
		$.ajax({
			url: "/includes/json/searchModel.php",
			data: info,
			type: "POST",
			dataType: 'json',
			success: function(html){
				$('.loading').remove();
				if(how == 'kenteken') {
					if(html.error == 1 || $.isEmptyObject(html.kentekenResult)) {
						alert('Het kenteken werd niet gevonden. Raadpleeg je dealer indien je een bestelling wilt plaatsen.');
					} else if(html.error == 0 && !$.isEmptyObject(html.kentekenResult)) {
						window.location.href = '/' + html.kentekenResult.url + '/accessoires';
					}
				} else if(how == 'mmt') {
					if(html.error == 1 || $.isEmptyObject(html.modellenResult)) {
						alert('Er zijn geen modellen gevonden. Neem contact met ons op voor meer informatie.');
					} else if(html.error == 0 && !$.isEmptyObject(html.modellenResult)) {
						$('#populateTypes').attr('disabled',false);
						$('#populateTypes').find('option').remove().end().append('<option value="">Selecteer jouw model Kia</option>').val('0');
						$.each(html.modellenResult, function(k, v) {
							$('#populateTypes').append('<option value="' + v.url + '">' + v.title + '</option>');
						});
					}
				}
			},
			error: function(data, status, error) {
				$('.loading').remove();
				//console.log(data);
				//console.log(status);
				//console.log(error);
				alert("Error 100 | Kan auto('s) niet ophalen. Neem contact op voor meer informatie.");
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	}

	$('ul.rateVote li a').on('click',function(e) {
		e.preventDefault();
		var className = $(this).attr('class');
		var getCurrentNumber = $(this).find('span').html();
		var currentNumber = getCurrentNumber.replace(/\D/g,'');
		var reviewid = $(this).parent().parent('ul').attr('data-id');
		var buster = $(this).parent().parent('ul').attr('data-buster');
		var partno = $('#item').val();

		$.ajax({
			url: "/includes/json/addReviewRateReview.php",
			data: 'type='+className+'&reviewid='+reviewid+'&buster='+buster+'&partno='+partno,
			type: "POST",
			dataType: 'json',
			success: function(html){
				$('.loading').remove();
				if(html.error == 0) {
					currentNumber = (currentNumber == '' ? 1 : parseFloat(currentNumber)+parseFloat(1));
					if(className != 'inapp') {
						$('.rateVote[data-id="' + reviewid + '"] .' + className +' span').html('('+currentNumber+'x)');
					} else {
						alert('Bedankt voor je melding betreffende een ongepaste review. Wij nemen jouw opmerking in beraad.');
					}
				} else {
					if(html.error_msg != '') alert(html.error_msg);
				}
			},
			error: function(data, status, error) {
				$('.loading').remove();
				alert("Error 701 | Kan geen stem uitbrengen.");
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});

	$('.submitReview').on('click',function(e) {
		e.preventDefault();
		var forminfo = $(this).closest('form').serialize();
		$.ajax({
			url: "/includes/json/addReview.php",
			data: forminfo,
			type: "POST",
			dataType: 'json',
			success: function(html){
				$('.loading').remove();
				if(html.error == 0) {
					if(!$('.reviews').hasClass('open')) toggleReview('.showReviews');
					$(".button.secundair.right.addReview").removeClass('open');
					$(".placeReview").hide();
					$(".reviewWrapper .reviews").prepend(html.newRow);
					$('input[type=radio].star').rating();
				} else {
					grecaptcha.reset();
					$('.writeReview input[type="text"]').addClass('error');
					if(html.error_msg != '') alert(html.error_msg);
				}
			},
			error: function(data, status, error) {
				grecaptcha.reset();
				$('.loading').remove();
				alert("Error 601 | Kan je review niet plaatsen.");
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});

	$('.delete-cars').on('click',function(e) {
		$.ajax({
			url: "/includes/json/deletecarcache.php",
			data: 'uri='+phpData.uri,
			type: "POST",
			dataType: 'json',
			success: function(resultUrl){
				window.location.href = '/' + resultUrl;
			},
			error: function(data, status, error) {
				$('.loading').remove();
				alert("Error 602 | Kan auto niet verwijderen.");
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});

	$('body').on('click', '.submitLogin', function(e) {
		e.preventDefault();
		var forminfo = $(this).closest('form').serialize();

		var password = $('#login input[name="password"]').val();
		var email = $('#login input[name="email"]').val();

		if(password == '' ||  email == '') {
			$('#login input[name="password"]').addClass('errorf');
			$('#login input[name="email"]').addClass('errorf');
		} else if(password != '' && email != '') {
			$('#login input[name="password"]').removeClass('errorf');
			$('#login input[name="email"]').removeClass('errorf');
			$.ajax({
				url: "/includes/json/login.php",
				data: forminfo,
				type: "POST",
				dataType: 'json',
				success: function(html){
					if(html.error == 1) {
						$('#login input[name="password"]').addClass('errorf');
						$('#login input[name="email"]').addClass('errorf');
					} else {
						window.location.href = html.url;
					}
					$('.loading').remove();
				},
				error: function(data, status, error) {
					$('.loading').remove();
					alert("Error 783 | Inloggen niet mogelijk. Neem contact met ons op voor meer informatie.");
				},
				beforeSend: function() {
					$('body').append('<div class="loading">Loading&#8230;</div>');
				}
			});
		}
	});

	/*
	*	END kenteken / MMT SELECT
	*/

	$('.showloader').on('click',function(e) {
		$('body').append('<div class="loading">Loading&#8230;</div>');
	});

	$('.submitform').on('click',function(e) {
		e.preventDefault();
		$(".form").submit();
	});

	$('body').on('click', '.andereDealer', function(e) {
		e.preventDefault();
		$(".andereDealerToggle").slideToggle();
	});

	$('body').on('click', '#enter-vin', function(e) {
		e.preventDefault();
		$('.popup, .popup > .vin').toggleClass('open');
	});

	$('body').on('click', '.vin .closeAlgemeen', function(e) {
		e.preventDefault();
		$('.popup, .popup > .vin').toggleClass('open');
	});

	$('body').on('submit', '#submit-vin-for-loyalty', function(e) {
		$('#vinError').html('');
		e.preventDefault();
		$.ajax({
			url: "/includes/json/winkelwagen_loyality.php",
			type: "POST",
			data: $('#submit-vin-for-loyalty').serialize(),
			timeout: 10000,
			dataType: 'json',
			async: false,
			success: function(html){
				if(html.error == 1) {
					$('#vinError').html(html.loyaltyerror);
				} else {
					location.reload();
				}
				$('.loading').remove();
			},
			error: function(result) {
				$('.loading').remove();
				$('#vinError').html('Helaas kan de meldcode niet verwerkt worden. Gelieve contact op te nemen met jouw Kia dealer.');
			},
			beforeSend: function() {
				$('body').append('<div class="loading">Loading&#8230;</div>');
			}
		});
	});

	$('.js-models__btn-more').click(function(e){
		e.preventDefault();
		$('.js-models__contain').addClass('c-models__contain--active');
		$('.js-models__btn-more').hide();
		$('.js-models__btn-less').show();
	});

	$('.js-models__btn-less').click(function(e){
		e.preventDefault();
		$('.js-models__contain').removeClass('c-models__contain--active');
		$('.js-models__btn-less').hide();
		$('.js-models__btn-more').show();
	});
});

(function($){
    $(window).load(function(){
        $(".locationList").mCustomScrollbar({
            axis:"y",
            theme:"scrollbar"
        });
    });
})(jQuery);
