var startJaar;
var eindJaar;
var startZitplaats;
var eindZitplaats;
var merkId;
var model;
var kleurenIds = new Array();
var begeleiding;
var soorten = new Array();
var herkomst = new Array();

var actie = "lijst";

$(window).ready(function() {
	/* slider bouwjaar */
	$('#slider-bouwjaar').slider({
		range: true,
		min: 1900,
		max: 2010,
		stop: function(event, ui) {
			$('#bouwjaar_txt').html('Bouwjaar van ' + ui.values[0] + ' tot ' + ui.values[1]);
			startJaar = ui.values[0];
			eindJaar = ui.values[1];
			changeSettings();
		}
	});
	$('#bouwjaar_txt').html('Bouwjaar van ' + $('#slider-bouwjaar').slider('values', 0) + ' tot ' + $('#slider-bouwjaar').slider('values', 1));

	/* dropdown merk */
	$('#merk').change(function() {
		merkId = $(this).val();
		changeSettings();
	});
	
	/* dropdown model */
	$('#model').keyup(function() {
		model = $(this).val();
		changeSettings();
	});
	$('#model').focus(function() {
            if($('#model').val()=="Zoekwoord") $('#model').val('');
	});
	$('#model').blur(function() {
            if($('#model').val()=="") $('#model').val('Zoekwoord');
	});

	/* slider zitplaatsen */
	$('#slider-zitplaatsen').slider({
		range: true,
		min: 1,
		max: 68,
		values: [2, 8],
		interval: true,
		stop: function(event, ui) {
			$('#zitplaatsen_txt').html('Van ' + ui.values[0] + ' tot ' + ui.values[1] + ' zitplaatsen');
			startZitplaats = ui.values[0];
			eindZitplaats = ui.values[1];
			changeSettings();
		}
	});
	$('#zitplaatsen_txt').html('Van ' + $('#slider-zitplaatsen').slider('values', 0) + ' tot ' + $('#slider-zitplaatsen').slider('values', 1) + ' zitplaatsen');

	/* checkbox kleuren */
	$('input[name="kleuren[]"]').change(function() {
		kleurenIds = new Array();
		$.each($("input[name='kleuren[]']:checked"), function() { 
			kleurenIds.push($(this).val()); 
		});
		changeSettings();
	});
	
	/* dropdown begeleiding */
	$('#begeleiding').change(function() {
		begeleiding = $(this).val();
		changeSettings();
	});

	/* checkbox soorten */
	$('input[name="soorten[]"]').change(function() {
		soorten = new Array();
		$.each($("input[name='soorten[]']:checked"), function() {
			soorten.push($(this).val());
		});
		changeSettings();
	});
        
	/* checkbox herkomst */
	$('input[name="herkomst[]"]').change(function() {
		herkomst = new Array();
		$.each($("input[name='herkomst[]']:checked"), function() {
			herkomst.push($(this).val());
		});
		changeSettings();
	});
});

function getMerken() {
	$.getJSON(
		'/auto/get-merken'
		,{}
		, function(data) {
			$('#merk >option').remove();
			$('#merk').html(data.merken);
		}
	);
}

function getSetting() {
	$.getJSON(
		'/auto/get-settings'
		,{}
		, function(data) {
			setSettings(data.settings);
		}
	);
}

function setSettings(data) {
	/* jaar */
	startJaar  = data.startJaar;
	eindJaar = data.eindJaar;
	$('#slider-bouwjaar').slider({
		values: [startJaar,eindJaar]
	});
	$('#bouwjaar_txt').html('Bouwjaar van ' + startJaar + ' tot ' + eindJaar);
	
	/* zitplaatsen */
	startZitplaats = data.startZitplaats;
	eindZitplaats = data.eindZitplaats;
	$('#slider-zitplaatsen').slider({
		values: [startZitplaats,eindZitplaats]
	});
	$('#zitplaatsen_txt').html('Van ' + startZitplaats + ' tot ' + eindZitplaats + ' zitplaatsen');

	/* merk */
	merkId = data.merkId;
        $('#merk').val(merkId);

	/* model */
	model = data.model;
        if (model.length == 0) {
            $('#model').blur();
        } else {
            $('#model').val(model);
        }

	/* kleuren */
	kleurenIds = data.kleurenIds;
	$.each($("input[name='kleuren[]']"), function() {
		if(jQuery.inArray( $(this).val(),kleurenIds) >= 0) {
			$(this).attr('checked', true);
		} else {
			$(this).attr('checked', false);
		}
	});
	
	/* begeleiding */
	begeleiding = data.begeleiding;
	$.each($("#begeleiding > option"), function() {
		if($(this).val() == begeleiding) {
			$(this).attr('selected', true);
		} else {
			$(this).attr('selected', false);
		}
	});

	/* soorten */
	soorten = data.soorten;
	$.each($("input[name='soorten[]']"), function() {
		if(jQuery.inArray( $(this).val(),soorten) >= 0) {
			$(this).attr('checked', true);
		} else {
			$(this).attr('checked', false);
		}
	});
        
	/* herkomst */
	herkomst = data.herkomst;
	$.each($("input[name='herkomst[]']"), function() {
		if(jQuery.inArray( $(this).val(),herkomst) >= 0) {
			$(this).attr('checked', true);
		} else {
			$(this).attr('checked', false);
		}
	});
}

function changeSettings() {
	$.getJSON(
		'/auto/change-settings'
		,{ 'merkId': merkId, 'startJaar' : startJaar, 'eindJaar' : eindJaar
			, 'model' : model, 'startZitplaats' : startZitplaats, 'eindZitplaats' : eindZitplaats
			, 'kleurenIds' : kleurenIds, 'begeleiding' : begeleiding, 'soorten' : soorten, 'herkomst' : herkomst}
		, function(data) {
                        if (model.length == 0) {
                            $('#model').blur();
                        }
			getMerken();
			getAantal();
			if (actie == "lijst")
				getLijst(1);
			if (actie == "detail")
				getDetail(1);
		}
	);
}

function resetSettings() {
	$.getJSON(
		'/auto/reset-settings'
		,{ }
		, function(data) {
			$.getJSON(
				'/auto/get-settings'
				,{}
				, function(data) {
					setSettings(data.settings);
					$('#merk').val(""); // hacky: omdat changeSettings dadelijk wordt uitgevoerd en merkenId nog gezet is door json-load, handmatig invullen;
					changeSettings();
				}
			);
			//getSetting();
		}
	);
}

function getAantal() {
	$.getJSON(
		'/auto/get-aantal'
		,{}
		, function(data) {
			aantal = data.aantal;
			$('#resultaat').html(data.aantal + " gevonden auto's");
                        $('.count').html(data.aantal + " gevonden auto's");
		}
	);
}

function getLijst(pageId) {
	actie = "lijst";
	$.getJSON(
		'/auto/get-lijst'
		,{ 'pageId': pageId }
		, function(data) {
			hs.close();
			$('#searchresult').remove();
			$('#detail').remove();
			$('#filters').after(data.lijst);
		}
	);
}

function changeResultCount(count) {
    actie = "lijst";
    $.getJSON(
            '/auto/get-lijst'
            ,{ 'pageId': 1, 'resultCount' : count }
            , function(data) {
                    hs.close();
                    $('#searchresult').remove();
                    $('#detail').remove();
                    $('#filters').after(data.lijst);
            }
    );
}

function getDetail(pageId) {
	actie = "detail";
	$.getJSON(
		'/auto/get-detail'
		,{ 'pageId' : pageId }
		, function(data) {
			hs.close();
			$('#searchresult').remove();
			$('#detail').remove();
			$('#filters').after(data.detail);
		}
	);
}

function print(autoId) {
	$.getJSON(
		'/auto/print'
		,{ 'autoId': autoId }
		, function() {
			window.open("/tmp/" + autoId + ".pdf");
		}
	);
}

function favorietAdd(autoId) {
	$.getJSON(
		'/auto/add-favoriet'
		,{ 'autoId': autoId }
		, function() {
			window.location = "/auto/favorieten"
		}
	);
}

function favorietRemove(autoId) {
	$.getJSON(
		'/auto/remove-favoriet'
		,{ 'autoId': autoId }
		, function() {
			window.location = "/auto/favorieten"
		}
	);		
}

function favorietLijst() {
	actie = "lijst";
	$.getJSON(
		'/auto/favorieten-lijst'
		, function(data) {
			hs.close();
			$('#searchresult').remove();
			$('#detail').remove();
			$('#filters').after(data.lijst);
		}
	);
}

function favorietDetail(autoId) {
	actie = "lijst";
	$.getJSON(
		'/auto/favorieten-detail'
		, { 'autoId' : autoId }
		, function(data) {
			$('#searchresult').remove();
			$('#detail').remove();
			$('#filters').after(data.lijst);
		}
	);	
}

/* other */
function homeTab(nr) {
	$('#tabs').removeClass('tab_1 tab_2 tab_3').addClass('tab_' + nr);
	$('.tabs_content').hide();
	$('#tabs_content_'+ nr).show()
}

function photoFull(href) {
	$('#car_photo_full').fadeOut(function() { $('#car_photo_full').attr('src', href).fadeIn(); });
}
