function paivita_luopumispvm() {
	hankintapvmOsat = $("#input-yleiset-hankintapvm").val().split(".");
	var luopumispvm;
	if($("#select-yleiset-kayttoaika").val().match(/\./g)) {
		var kk   = parseInt(hankintapvmOsat[1]) + 6;
		var vvvv = parseInt(hankintapvmOsat[2]) + parseInt($("#select-yleiset-kayttoaika").val());
		if(kk > 12) {
			kk -= 12;
			vvvv++;
		}
		luopumispvm = hankintapvmOsat[0] + "." + kk + "." + vvvv;
	} else {
		luopumispvm = hankintapvmOsat[0] + "." + hankintapvmOsat[1] + "." + (parseInt(hankintapvmOsat[2])+parseInt($("#select-yleiset-kayttoaika").val()))
	}
	$("#div-yleiset-luopumispvm").html( luopumispvm );
}

function hae_paastovero(g) {
	if(g<67) {
		return 5.3;
	} else if (g>399) {
		return 166;
	} else {
		return pv[g];
	}
}

function hae_korko(autonro, lainaosuus) {

	 var saamatta_jaava_korko = $("#input-yleiset-saamatta-jaava-korko").val() / 100;
	 var lainakorko           = $("#input-yleiset-lainakorko").val() / 100;
	 var pitoaika_kk          = $("#select-yleiset-kayttoaika").val() * 12;
	 var lyhennysera          = lainaosuus / pitoaika_kk;
	
	 var saldo_a = parseInt($("#input-yleiset-oma-rahoitusosuus").val());
	 var saldo_b = lainaosuus;
	var saldo_a_vuoden_alussa = saldo_a;
	var saldo_b_vuoden_alussa = saldo_b;
	
	 var korko_a_yht = 0;
	 var korko_b_yht = 0;
	
	for(var i=1 ; i<= pitoaika_kk ; i++) {
	
		var korko_b = saldo_b * lainakorko / 12;
		korko_b_yht += korko_b;
		saldo_b = saldo_b - lyhennysera;
		
		var poisto = 0; 
		if(i % 12 == 0) {
			poisto = (saldo_a_vuoden_alussa + saldo_b_vuoden_alussa) * parseInt($("#input-arvonalennus-auto" + autonro).val()) / 100;
		}
		
		var korko_a = saldo_a * saamatta_jaava_korko / 12;
		korko_a_yht += korko_a;
		saldo_a = saldo_a + lyhennysera - poisto;
		
		if(i % 12 == 0) {
			saldo_a_vuoden_alussa = saldo_a;
			saldo_b_vuoden_alussa = saldo_b;
		}
		
	}

	korko_a_yht *= 0.72;
	var korko_yht = parseInt( korko_a_yht + korko_b_yht );
	return korko_yht;
}

function hae_rengaskulut(autonro) {
	return Math.round( ( $("#select-yleiset-kayttoaika").val() * $("#input-yleiset-ajokilometrit").val() / 30000 ) * $("#auto" + autonro + "-tiedot-hinta").val() * 0.02 );
}

function hae_huoltokulut() {
	return Math.round( $("#select-yleiset-kayttoaika").val() * $("#input-yleiset-ajokilometrit").val() * 0.034 );
}

function hae_sailytyskulut() {
	return $("#select-yleiset-kayttoaika").val() * 468;
}

function oma_asetus(input) {
	var i = input.attr("id").replace(/[a-zA-Z-]+/, "");
	var oma_asetus;
	if(input.attr("id").search(/rengaskulut/) != -1) {
		if(!input.val()) {
			oma_asetus = 0;
		} else if(hae_rengaskulut(i) != input.val()) {
			oma_asetus = 1;
		}
		$("#input-kayttokulut-rengaskulut-oma-asetus-auto" + i).val(oma_asetus);
	} else if(input.attr("id").search(/kayttokulut/) != -1) {
		if(!input.val()) {
			oma_asetus = 0;
		} else if(hae_huoltokulut() != input.val()) {
			oma_asetus = 1;
		}
		$("#input-kayttokulut-huollot-oma-asetus-auto" + i).val(oma_asetus);
	} else if(input.attr("id").search(/sailytys/) != -1) {
		if(!input.val()) {
			oma_asetus = 0;
		} else if(hae_sailytyskulut() != input.val()) {
			oma_asetus = 1;
		}
		$("#input-paaomakulut-sailytys-oma-asetus-auto" + i).val(oma_asetus);
	}
}


function tarkista_desimaalit(input) {
	input.val(input.val().replace(/,/, "."));
}

function etunollat(arvo, pituus) {
    var uusiarvo = arvo.toString();
	if(uusiarvo.length < pituus) {
	    uusiarvo = ('000000' + uusiarvo).slice(-pituus);
	}
	return uusiarvo;
}

function min_zero(value) {
	return (value < 0) ? 0 : value;
}

function auto_tiedot_html(autonro, disabled) {
	var fields = new Array("paino", "kulutus", "paastot", "hinta");
	var html = '<table>';
	for	(var i=0 ; i<= 3 ; i++) {
		html += '<tr><td><input type="text" id="auto' + autonro + '-tiedot-' +fields[i]+ '" onchange="paivita_lomake()" class="uusi-kaytetty-auto' + autonro + '"';
		if(disabled) {
			html += ' disabled="disabled"';
		}
		html += ' /></td></tr>';
	}
	html += '</table>';
	return html;
}

function hae_ajoneuvovero_vuodessa_massan_mukaan(massa) {
	if     (massa <= 1300) return  75.92;
	else if(massa <= 1400) return  86.87;
	else if(massa <= 1500) return  98.55;
	else if(massa <= 1600) return 110.96;
	else if(massa <= 1700) return 124.10;
	else if(massa <= 1800) return 137.97;
	else if(massa <= 1900) return 152.57;
	else if(massa <= 2000) return 167.90;
	else if(massa <= 2100) return 183.96;
	else if(massa <= 2200) return 200.75;
	else if(massa <= 2300) return 218.27;
	else if(massa <= 2400) return 236.52;
	else if(massa <= 2500) return 255.50;
	else if(massa <= 2600) return 275.21;
	else if(massa <= 2700) return 295.65;
	else if(massa <= 2800) return 316.82;
	else if(massa <= 2900) return 338.72;
	else if(massa <= 3000) return 361.35;
	else if(massa <= 3100) return 384.71;
	else if(massa <= 3200) return 408.80;
	else if(massa <= 3300) return 433.62;
	else if(massa <= 3400) return 459.17;
	else 			       return 485.45;
}

function reset_form(autonro, loop) {
	for(var i=1 ; i<=loop ; i++) {
		if(i == 1) {
			$("#div-tyyppi-" + autonro).html('<select id="select-tyyppi-' + autonro + '" disabled="disabled" class="leftpad"><option value="0">Valitse ensin malli</option></select>');
		} else if(i == 2) {
			$("#div-malli-" + autonro).html('<select id="select-malli-' + autonro + '" disabled="disabled" class="leftpad"><option value="0">Valitse ensin merkki</option></select>');
		}
	}
	var disabled = ($("#select-kaytetty-" + autonro).val() == "uusi") ? "disabled" : "";
	$("#div-tiedot-" + autonro).html(auto_tiedot_html(autonro, disabled));
	$("#input-varusteet-" + autonro).val("0");
	$("#div-lainaosuus-" + autonro).html("");
	$("#div-painotettu-korko-" + autonro).html("");
	$("#input-arvonalennus-" + autonro).val("");
	$("#div-ajoneuvovero-" + autonro).html("");
	$("#div-liikennevakuutus-" + autonro).html("");
	$("#div-autovakuutus-" + autonro).html("");
	$("#div-paaomakulut-arvonalennus-" + autonro).html("");
	$("#div-paaomakulut-korko-" + autonro).html("");
	$("#div-paaomakulut-liikennevakuutus-" + autonro).html("");
	$("#div-paaomakulut-autovakuutus-" + autonro).html("");
	$("#div-paaomakulut-ajoneuvovero2008-" + autonro).html("");
	$("#div-paaomakulut-ajoneuvovero2010-" + autonro).html("");
	$("#div-paaomakulut-kayttovoima-" + autonro).html("");
	if($("#input-paaomakulut-sailytys-oma-asetus-" + autonro).val() == 0) {
		$("#input-paaomakulut-sailytys-" + autonro).val("");
	}
	$("#div-paaomakulut-yhteensa-" + autonro).html("");
	$("#div-kayttokulut-polttoaine-" + autonro).html("");
	if($("#input-kayttokulut-rengaskulut-oma-asetus-" + autonro).val() == 0) {
		$("#input-kayttokulut-rengaskulut-" + autonro).val("");
	}
	if($("#input-kayttokulut-huollot-oma-asetus-" + autonro).val() == 0) {
		$("#input-kayttokulut-huollot-" + autonro).val("");
	}
	$("#div-kayttokulut-kilometrikorvaus-" + autonro).html("");
	$("#div-kayttokulut-yhteensa-" + autonro).html("");
	$("#div-lopputulos-yhteensa-" + autonro).html("");
	$("#div-lopputulos-yhteensa-kk-" + autonro).html("");
	$("#div-lopputulos-yhteensa-km-" + autonro).html("");
	
}

function paivita_lomake() {

	var temp;
	paivita_luopumispvm();

	

	
	for(i=1 ; i<=a ; i++) {
		if($("#auto" + i + "-tiedot-hinta").val() > 0) {
			$("#div-hinta-yhteensa-auto" + i).html( parseInt($("#auto" + i + "-tiedot-hinta").val()) + parseInt($("#input-varusteet-auto" + i).val()) );
			$("#auto" + i + "-tiedot-hinta-yht").val( parseInt($("#auto" + i + "-tiedot-hinta").val()) + parseInt($("#input-varusteet-auto" + i).val()) );
		}
	}
	
	
	var auto1_lainaosuus;
	var auto2_lainaosuus;
	
	if($("#auto1-tiedot-hinta").val() > 0 && $("#input-yleiset-oma-rahoitusosuus").val()) {
		auto1_lainaosuus = parseInt($("#auto1-tiedot-hinta-yht").val()) - parseInt($("#input-yleiset-oma-rahoitusosuus").val());
		if(auto1_lainaosuus < 0) auto1_lainaosuus = "0";
		$("#div-lainaosuus-auto1").html(auto1_lainaosuus);
	}
	if($("#auto2-tiedot-hinta").val() > 0 && $("#input-yleiset-oma-rahoitusosuus").val()) {	
		auto2_lainaosuus = parseInt($("#auto2-tiedot-hinta-yht").val()) - parseInt($("#input-yleiset-oma-rahoitusosuus").val());
		if(auto2_lainaosuus < 0) auto2_lainaosuus = "0";
		$("#div-lainaosuus-auto2").html(auto2_lainaosuus);
	}
	
	
	var arvonalennus;

	if($("#input-yleiset-ajokilometrit").val()) {
		if(parseInt($("#input-yleiset-ajokilometrit").val()) < 30000) {
			arvonalennus = $("#input-yleiset-ajokilometrit").val() / 500000 + 0.1;
		} else {
			arvonalennus = 0.16 + ( $("#input-yleiset-ajokilometrit").val() - 30000 ) / 1200000;
		}
		arvonalennus *= 100;		
		
		for(i=1 ; i<=a ; i++) {
			if($("#auto" + i + "-tiedot-hinta").val() > 0) {		
				if($("#input-arvonalennus-auto" + i).val() && $("#input-arvonalennus-auto" + i).val() != arvonalennus.toFixed(0)) {
					// käyttäjä muokannut arvonalennusprosenttia, annetaan olla
				} else {
					$("#input-arvonalennus-auto" + i).val(arvonalennus.toFixed(0));
				}
			}
		}
		
   	}

	
	for(i=1 ; i<=a ; i++) {
		if(parseInt($("#input-vuosi-auto" + i).val()) > 2000) {
			
			if($("#auto" + i + "-tiedot-paastot").val()) {
				$("#div-ajoneuvovero-auto" + i).html(hae_paastovero($("#auto" + i + "-tiedot-paastot").val()));
			}
		} else {
			
			if($("#auto" + i + "-tiedot-paino").val()) {
				var ajoneuvovero_vuodessa_massan_mukaan = hae_ajoneuvovero_vuodessa_massan_mukaan(parseInt($("#auto" + i + "-tiedot-paino").val()))
				$("#div-ajoneuvovero-auto" + i).html( (ajoneuvovero_vuodessa_massan_mukaan * 100) / 365 );
			}
		}
	}
	
	
	
	
	
	
	for(i=1 ; i<=a ; i++) {
		if($("#auto" + i + "-tiedot-hinta").val() > 0) {
			$("#div-paaomakulut-arvonalennus-auto" + i).html( Math.round( $("#auto" + i + "-tiedot-hinta-yht").val() - $("#auto" + i + "-tiedot-hinta-yht").val() * Math.pow((1 - ($("#input-arvonalennus-auto" + i).val()/100)), $("#select-yleiset-kayttoaika").val()) ) );
		}
	}

	
	$("#div-paaomakulut-korko-auto1").html(hae_korko(1, auto1_lainaosuus));
	$("#div-paaomakulut-korko-auto2").html(hae_korko(2, auto2_lainaosuus));
	
	
	for(i=1 ; i<=a ; i++) {
		if($("#input-liikennevakuutus-auto" + i).val() && $("#input-liikennevakuutus-auto" + i).val() != 0 && $("#select-yleiset-kayttoaika").val()) {
			$("#div-paaomakulut-liikennevakuutus-auto" + i).html( parseInt($("#input-liikennevakuutus-auto" + i).val()) * parseInt($("#select-yleiset-kayttoaika").val()) );
		} else {
			$("#div-paaomakulut-liikennevakuutus-auto" + i).html("");
		}
		if($("#input-autovakuutus-auto" + i).val() && $("#input-autovakuutus-auto" + i).val() != 0 && $("#select-yleiset-kayttoaika").val()) {
			$("#div-paaomakulut-autovakuutus-auto" + i).html( parseInt($("#input-autovakuutus-auto" + i).val()) * parseInt($("#select-yleiset-kayttoaika").val()) );
		} else {
			$("#div-paaomakulut-autovakuutus-auto" + i).html("");
		}
	}

	
	
	var hankintapvm_osat = $("#input-yleiset-hankintapvm").val().split('.');

	var hankintapvm_str  = etunollat(hankintapvm_osat[2], 4) + etunollat(hankintapvm_osat[1], 2) + etunollat(hankintapvm_osat[0], 2);
	var dateHankintaPvm  = new Date(hankintapvm_osat[2], hankintapvm_osat[1]-1, hankintapvm_osat[0]);
	
	var luopumispvm_osat = $("#div-yleiset-luopumispvm").html().split('.');
	var dateLuopumisPvm  = new Date(luopumispvm_osat[2], luopumispvm_osat[1]-1, luopumispvm_osat[0]);
	
	var dateUusiVeroPvm = new Date(2011, 2, 1);
	
	var verotettavia_paivia;
	
	for(var i=1 ; i <= 2 ; i++) {
	
		
		if($("#div-ajoneuvovero-auto" + i).html()) {
			if(hankintapvm_str > 20110301) {
				verotettavia_paivia = Math.round(Math.ceil(dateLuopumisPvm.getTime()-dateUusiVeroPvm.getTime()) / (1000*60*60*24));
			    $("#div-paaomakulut-ajoneuvovero2008-auto" + i).html(min_zero(Math.round(verotettavia_paivia * $("#div-ajoneuvovero-auto" + i).val())) + "");
			} else {
				var vero_paivassa_snt = (parseInt($("#input-vuosi-auto" + i).val()) < 1994) ? 0.26 : 0.35; 
				verotettavia_paivia = Math.round(Math.ceil(dateUusiVeroPvm.getTime()-dateHankintaPvm.getTime()) / (1000*60*60*24));
				$("#div-paaomakulut-ajoneuvovero2008-auto" + i).html(parseInt(min_zero(verotettavia_paivia * vero_paivassa_snt)));
			}
		}
	
			
		if($("#div-ajoneuvovero-auto" + i).html()) {
			verotettavia_paivia = Math.round(Math.ceil(dateLuopumisPvm.getTime()-dateUusiVeroPvm.getTime()) / (1000*60*60*24));
			$("#div-paaomakulut-ajoneuvovero2010-auto" + i).html( min_zero( Math.round((verotettavia_paivia * $("#div-ajoneuvovero-auto" + i).html()) / 100) ) );
		}
	
		
		if($("#select-polttoaine-auto" + i).val() == "bensiini") {
			$("#div-paaomakulut-kayttovoima-auto" + i).html("0");
		} else {
			if($("#auto" + i + "-tiedot-paino").val()) {
				$("#div-paaomakulut-kayttovoima-auto" + i).html( min_zero( Math.round( parseInt($("#select-yleiset-kayttoaika").val()) * (Math.round((parseInt($("#auto" + i + "-tiedot-paino").val()-0.001)) / 100) + 1) * 24.46 ) ) );
			}
		}
	
		
		if($("#input-paaomakulut-sailytys-oma-asetus-auto" + i).val() == 0) {
			$("#input-paaomakulut-sailytys-auto" + i).val(hae_sailytyskulut());
		}
	
		
  		if($("#auto" + i + "-tiedot-hinta").val() > 0) {
			$("#div-paaomakulut-yhteensa-auto" + i).html( parseInt($("#div-paaomakulut-arvonalennus-auto" + i).html()) + parseInt($("#div-paaomakulut-korko-auto" + i).html()) + parseInt($("#div-paaomakulut-liikennevakuutus-auto" + i).html()) + parseInt($("#div-paaomakulut-autovakuutus-auto" + i).html()) + parseInt($("#div-paaomakulut-ajoneuvovero2008-auto" + i).html()) + parseInt($("#div-paaomakulut-ajoneuvovero2010-auto" + i).html()) + parseInt($("#div-paaomakulut-kayttovoima-auto" + i).html()) + parseInt($("#input-paaomakulut-sailytys-auto" + i).val()) );
		}
		
	}
	
	
	

	var kilometrikorvaus = 0;
	if($("#input-yleiset-tyoajot").val()) {
		kilometrikorvaus = Math.round( -1 * ( 0.45 * $("#input-yleiset-tyoajot").val() * $("#select-yleiset-kayttoaika").val() ) );
	}

	for(i=1 ; i<=a ; i++) {
	
		
		if($("#auto" + i + "-tiedot-kulutus").val()) {
			$("#div-kayttokulut-polttoaine-auto" + i).html( Math.round( $("#select-yleiset-kayttoaika").val() * $("#input-yleiset-ajokilometrit").val() / 100 * $("#auto" + i + "-tiedot-kulutus").val() * $("#input-yleiset-" + $("#select-polttoaine-auto" + i).val()).val() ) );
		}
	
		
		if($("#auto" + i + "-tiedot-hinta").val() > 0) {
			if($("#input-kayttokulut-rengaskulut-oma-asetus-auto" + i).val() == 0) {
				$("#input-kayttokulut-rengaskulut-auto" + i).val(hae_rengaskulut(i));
			}
		}
		
		
		if($("#input-kayttokulut-huollot-oma-asetus-auto" + i).val() == 0) {
			$("#input-kayttokulut-huollot-auto" + i).val(hae_huoltokulut());
		}
	
		
		$("#div-kayttokulut-kilometrikorvaus-auto" + i).html(kilometrikorvaus);
	
		
		if($("#auto" + i + "-tiedot-hinta").val() > 0) {
			temp = parseInt($("#div-kayttokulut-kilometrikorvaus-auto" + i).html()) ? parseInt($("#div-kayttokulut-kilometrikorvaus-auto" + i).html()) : 0;
			$("#div-kayttokulut-yhteensa-auto" + i).html( parseInt($("#div-kayttokulut-polttoaine-auto" + i).html()) + parseInt($("#input-kayttokulut-rengaskulut-auto" + i).val()) + parseInt($("#input-kayttokulut-huollot-auto" + i).val()) + temp );
		}
		
	}
	
	
	

	var yhteensa_km;
	if($("#div-paaomakulut-yhteensa-auto1").html() && $("#div-kayttokulut-yhteensa-auto1").html()) {
		$("#div-lopputulos-yhteensa-auto1").html( parseInt($("#div-paaomakulut-yhteensa-auto1").html()) + parseInt($("#div-kayttokulut-yhteensa-auto1").html()) );
		$("#div-lopputulos-yhteensa-kk-auto1").html( Math.round( $("#div-lopputulos-yhteensa-auto1").html() / ( $("#select-yleiset-kayttoaika").val() * 12 ) ) );
		yhteensa_km = $("#div-lopputulos-yhteensa-auto1").html() / ( $("#select-yleiset-kayttoaika").val() * $("#input-yleiset-ajokilometrit").val() );
		$("#div-lopputulos-yhteensa-km-auto1").html( yhteensa_km.toFixed(2) );
	}
	if($("#div-paaomakulut-yhteensa-auto2").html() && $("#div-kayttokulut-yhteensa-auto2").html()) {
		$("#div-lopputulos-yhteensa-auto2").html( parseInt($("#div-paaomakulut-yhteensa-auto2").html()) + parseInt($("#div-kayttokulut-yhteensa-auto2").html()) );
		$("#div-lopputulos-yhteensa-kk-auto2").html( Math.round( $("#div-lopputulos-yhteensa-auto2").html() / ( $("#select-yleiset-kayttoaika").val() * 12 ) ) );
		yhteensa_km = $("#div-lopputulos-yhteensa-auto2").html() / ( $("#select-yleiset-kayttoaika").val() * $("#input-yleiset-ajokilometrit").val() );
		$("#div-lopputulos-yhteensa-km-auto2").html( yhteensa_km.toFixed(2) );
	}
	

}

