$('body').on('click', '[siteplan-toggle]', function(e){
	e.preventDefault();
	var target = $(this).attr('siteplan-toggle');
	$(target).fadeIn();
});

$('body').on('click', '[siteplan-toggle-hide]', function(e){
	e.preventDefault();
	var target = $(this).attr('siteplan-toggle-hide');
	$(target).fadeOut();
});

function bedsCheck(beds, from, to){
	if(isNaN(beds) || beds==0 || beds.length==0){
		return true;
	}

	beds = Math.round(beds);

	if(beds >= from && beds <= to){
		return true;
	}

	return false;
}

function priceCheck(price, from, to){
	if(isNaN(price) || price==0 || price.length==0){
		return true;
	}

	price = Math.round(price);

	if(price >= from && price <= to){
		return true;
	}

	return false;
}

function siteplanFilter()
{
	var housetype = $('[siteplan-housetype=select]').val();
	var bedsFrom = $('select[name=bedsFrom]').val();
	var bedsTo = $('select[name=bedsTo]').val();
	var from = $('input[name=priceFrom]').val();
    var to = $('input[name=priceTo]').val();

	let data = `siteplanHousetype=${housetype}&siteplanBedsFrom=${bedsFrom}&siteplanBedsTo=${bedsTo}&siteplanFrom=${from}&siteplanTo=${to}`;
	let url = '//' + location.host + location.pathname;

	let siteplanStatus = $('[siteplan-filter=status]').val();

	if(siteplanStatus != 'all') {	
		$('[siteplan-status]').each(function(){
			var status = $(this).attr('siteplan-status');
			if(! $(this).is(':checked') && ! $(this).is(':selected')){
				data += `&notStatus[]=${status}`;
			}
		});
	}

	if (! $('[siteplan-push-url="false"]').length) {
		let href = url+'?'+data;
		window.history.replaceState(null, null, href);
	}

	$('[plot-housetype]').each(function(){
		var status = $(this).attr('plot-status');
		if($('[siteplan-status='+status+']').is(':checked') || siteplanStatus == 'all'){
			$(this).addClass('visible').removeClass('invisible');
			var beds = $(this).attr('plot-beds');
			var bedsTest = bedsCheck(beds, bedsFrom, bedsTo);
			var price = $(this).attr('plot-price');
			var priceTest = priceCheck(price, from, to);

			if((housetype==null || housetype.length == 0) && priceTest && bedsTest){
				$(this).fadeIn();
			} else{
				if($(this).attr('plot-housetype')==housetype && priceTest && bedsTest){
					$(this).fadeIn();
				} else{
					$(this).fadeOut();
				}
			}
		} else{
			$(this).addClass('invisible').removeClass('visible');
		}
	});

	$('[siteplan-plots-housetypes]').each(function(){
		var statuses = $(this).attr('siteplan-plots-statuses');
		var statusesArray = statuses.split(',');
		var statusesSelected = [];
		var statusCheck = false;

		var housetypes = $(this).attr('siteplan-plots-housetypes');
		var housetypesArray = housetypes.split(',');

		$('[siteplan-status]').each(function() {
			if($(this).is(':checked')) {
				statusesSelected.push($(this).attr('siteplan-status'));
			}
		})

		$.each(statusesArray, function(key, value) {
		    var index = $.inArray(value, statusesSelected);
		    if(index != -1) {
		        statusCheck = true;
		    }
		});

		if(statusCheck){

			if((housetype==null || housetype.length == 0)){
				$(this).fadeIn();
			} else{
				if($.inArray(housetype, housetypesArray) >= 0){
					$(this).fadeIn();
				} else{
					$(this).fadeOut();
				}
			}
		} else{
			$(this).fadeOut();
		}
	});
}

$('body').on('change', '[siteplan-filter]', function(){
	siteplanFilter();
});

$('body').on('click', '[plot-id]', function(){
	var plotId = $(this).attr('plot-id');
	$('[popup-id]').not('[popup-id='+plotId+']').hide();
	$('[popup-id='+plotId+']').fadeIn(100);
});

$('body').click(function(event) {
	$target = $(event.target);
	if(!$target.closest('[plot-id]').length && $('[plot-id]').is(":visible")) {
		$('[popup-id]').hide();
	}
});

$('body').on('click', '[siteplan-target]', function(){

	var target = $(this).attr('siteplan-target');
	var title = $(target).attr('siteplan-title');

	var apartment = $(target).attr('siteplan-apartment');
	var floor = $(target).attr('siteplan-floor');

	var next = parseInt(floor)+1;
	var previous = parseInt(floor)-1;

	var up = $(target).attr('floor-up');
	var down = $(target).attr('floor-down');

	$('[siteplan-area]').hide();

	$('[siteplan-title-display]').html(title);
	$(target).fadeIn();

	if(up=='true'){
		$('[floor-nav-up]').css('visibility', 'visible');
		$('[floor-nav-up]').attr('siteplan-target', '#apartment'+apartment+'floor'+next);
	} else{
		$('[floor-nav-up]').css('visibility', 'hidden');
		$('[floor-nav-up]').attr('siteplan-target', '#');
	}

	if(down=='true'){
		$('[floor-nav-down]').css('visibility', 'visible');
		$('[floor-nav-down]').attr('siteplan-target', '#apartment'+apartment+'floor'+previous);
	} else{
		$('[floor-nav-down]').css('visibility', 'hidden');
		$('[floor-nav-down]').attr('siteplan-target', '#');
	}

	$('[siteplan-navigator-alt]').hide();
	$('[siteplan-navigator]').fadeIn();
});

$('[siteplan-toggle="#mobileSiteplan"]').on('click', function(){
	$('#mobileSiteplan').css('display', 'block').fadeIn();
});
$('[siteplan-toggle-hide="#mobileSiteplan"]').on('click', function(){
	$('#mobileSiteplan').css('display', 'none').fadeOut();
});

$('body').on('click', '[mobile-siteplan-target]', function(){

	var target = $(this).attr('mobile-siteplan-target');
	var title = $(target).attr('mobile-siteplan-title');

	var apartment = $(target).attr('mobile-siteplan-apartment');
	var floor = $(target).attr('mobile-siteplan-floor');

	var next = parseInt(floor)+1;
	var previous = parseInt(floor)-1;

	var up = $(target).attr('floor-up');
	var down = $(target).attr('floor-down');

	$('[mobile-siteplan-area]').hide();

	$('[mobile-siteplan-title-display]').html(title);
	$(target).show();

	if(up=='true'){
		$('[mobile-floor-nav-up]').css('visibility', 'visible');
		$('[mobile-floor-nav-up]').attr('mobile-siteplan-target', '#mobileApartment'+apartment+'floor'+next);
	} else{
		$('[mobile-floor-nav-up]').css('visibility', 'hidden');
		$('[mobile-floor-nav-up]').attr('mobile-siteplan-target', '#');
	}

	if(down=='true'){
		$('[mobile-floor-nav-down]').css('visibility', 'visible');
		$('[mobile-floor-nav-down]').attr('mobile-siteplan-target', '#mobileApartment'+apartment+'floor'+previous);
	} else{
		$('[mobile-floor-nav-down]').css('visibility', 'hidden');
		$('[mobile-floor-nav-down]').attr('mobile-siteplan-target', '#');
	}

	$('[mobile-siteplan-navigator]').fadeIn();

	$('.modal').modal('hide');

});

$('body').on('click', '[siteplan-return]', function(){
	var title = $(this).attr('siteplan-title');
	$('[siteplan-title-display]').html(title);
	$('[siteplan-navigator-alt]').fadeIn();
	$('[siteplan-navigator]').hide();
	$('[siteplan-area]').hide();
	$('#developmentSitePlan').fadeIn();
});

$('body').on('click', '[siteplan-modal-close]', function(){
	$('.modal').modal('hide');
});