//===================================================
function speedingfee_calculator(){
//----------------------------
// Options
//----------------------------
	this.unit = 'km/h';
	this.currency = 'Ft';
	this.max_overspeed = 120;	//maximum overspeed indicated, based on selected speed limit
	this.fines = Array(
		{
			limit: 100,
			fines: Array(
				{overspeed:110,fine:'300.000'},
				{overspeed:95,fine:'200.000'},
				{overspeed:80,fine:'130.000'},
				{overspeed:65,fine:'90.000'},
				{overspeed:50,fine:'60.000'},
				{overspeed:35,fine:'45.000'},
				{overspeed:20,fine:'30.000'}
			)
		},
		{
			limit: 50,
			fines: Array(
				{overspeed:105,fine:'300.000'},
				{overspeed:90,fine:'200.000'},
				{overspeed:75,fine:'130.000'},
				{overspeed:60,fine:'90.000'},
				{overspeed:45,fine:'60.000'},
				{overspeed:30,fine:'45.000'},
				{overspeed:15,fine:'30.000'}
			)
		},
		{
			limit: -1,
			fines: Array(
				{overspeed:75,fine:'300.000'},
				{overspeed:65,fine:'200.000'},
				{overspeed:55,fine:'130.000'},
				{overspeed:45,fine:'90.000'},
				{overspeed:35,fine:'60.000'},
				{overspeed:25,fine:'45.000'},
				{overspeed:15,fine:'30.000'}
			)
		}
	);
//----------------------------
// Functions
//----------------------------
	this.updateSpeedSlider = function()
	{
		this.speed = this.limit;
		jQuery('#slider_speed').slider('option', 'min', this.limit);
		jQuery('#slider_speed').slider('option', 'max', this.limit + this.max_overspeed);
		jQuery('#slider_speed').slider('value', this.speed);
	}
	
	this.updateIndicators = function()
	{
		jQuery("#indicator_limit").html(this.limit + ' ' + this.unit);
		jQuery("#indicator_speed").html(this.speed + ' ' + this.unit);
		jQuery("#indicator_overspeed").html(((this.speed > this.limit) ? this.speed - this.limit : 0) + ' ' + this.unit);
		jQuery("#indicator_fine").html(this.getFine() + ' ' + this.currency);
	}

	this.getFineGroup = function()
	{
		for(var i = 0; i < this.fines.length; i++)
			if(this.limit > this.fines[i].limit)
				return this.fines[i].fines;
	}

	this.getFine = function(group)
	{
		var group = this.getFineGroup();
		for(var i = 0; i < group.length; i++)
			if(this.speed - this.limit > group[i].overspeed)
				return group[i].fine;
		return 0;
	}

	this.trackEvent = function()
	{
		_gaq.push(['_trackEvent', 'Büntetéskalkulátor', 'Használat', location.href]);
		this.eventTracked = true;
	}
//----------------------------
// Init
//----------------------------
	var calculator = this;
	jQuery('#slider_limit').slider({
		value: 50, min: 10, max: 130, step: 10,
		slide: function(event, ui) {
			calculator.limit = ui.value;
			calculator.updateSpeedSlider(ui.value);
			calculator.updateIndicators();
			if(calculator.eventTracked == false)
				calculator.trackEvent();
		}
	});
	this.limit = jQuery('#slider_limit').slider('value');
	jQuery('#slider_speed').slider({
		value: this.limit, min: this.limit, max: this.limit + this.max_overspeed, step: 1, 
		slide: function(event, ui) {
			calculator.speed = ui.value;
			calculator.updateIndicators();
			if(calculator.eventTracked == false)
				calculator.trackEvent();
		}
	});
	this.speed = jQuery('#slider_speed').slider('value');
	this.eventTracked = false;	//google event tracking
	this.updateIndicators();
};
//===================================================
