
var vs,kk,kerr;
var alv_pros=0; 
var verotonhinta=0;
var verovapaahinta=0;
var uuden_hinta=0, ohinta=0;
var vastaavan_hinta=0;
var tulliprosentti=0, tullausarvo=0, tuontikulut=0;
var verotusarvo=0, veropros=0, ika_1=0, ika_2=0, ika_3=0, ylilisa=0, nettoprosentti=0, alv_hyvitys=0, lopullinen_mpveroprosentti=0;
var taysi_hinnanalv=0;
var auto, hinnanalv_maksuun, alv_hyvitys_maksuun;
var yliv, ulkovvoh, _rahti, lask_tuontikulut;
var laskennalliset;
var EUR=5.946;

kurssit=new Array(0.024789, 0.511292, 0.006010, 1, 0.168188, 0.152449, 0, 0.0005164, 0, 0, 0, 0);

function asetaSivu()
{
pvm=new Date();         // haetaan kalenteritiedot...
this.vs=pvm.getYear();
this.kk=pvm.getMonth();
if(this.vs<1000)
        this.vs+=1900;
document.forms[0].rek_vs.value=""+this.vs;
document.forms[0].rekikuu.options.selectedIndex=this.kk;
erittele();
}

function nappula1()
{
var arvo=document.forms[0].ostovs.value;
if(!isNaN(parseInt(arvo)))
        {
        arvo=parseInt(arvo);
        arvo--;
        if(arvo<1900)
                arvo=1900;
        }
else
        {
        arvo=1998;
        }
document.forms[0].ostovs.value=""+arvo;
erittele();
}                      

function nappula2()
{
var arvo=document.forms[0].ostovs.value;
if(!isNaN(parseInt(arvo)))
        {
        arvo=parseInt(arvo);
        arvo++;
        if(arvo>2100)
                arvo=2100;
        }
else
        {
        arvo=1998;
        }
document.forms[0].ostovs.value=""+arvo;
erittele();
}

function nappula3()
{
var arvo=document.forms[0].rek_vs.value;
if(!isNaN(parseInt(arvo)))
        {
        arvo=parseInt(arvo);
        arvo--;
        if(arvo<1900)
                arvo=1900;
        }
else
        {
        arvo=this.vs;
        }
document.forms[0].rek_vs.value=""+arvo;
erittele();
}

function nappula4()
{
var arvo=document.forms[0].rek_vs.value;
if(!isNaN(parseInt(arvo)))
        {
        arvo=parseInt(arvo);
        arvo++;
        if(arvo>2100)
                arvo=2100;
        }
else
        {
        arvo=this.vs;
        }
document.forms[0].rek_vs.value=""+arvo;
erittele();
}    
 
function vaihda_valuutta()
{
document.forms[0].valuutanhinta.value=kurssit[document.forms[0].valuutta.selectedIndex];
erittele();
}

function suojaa_fim()		// suojaa kiinteät valuuttakurssit
{
indeksi=document.forms[0].valuutta.selectedIndex;
if(indeksi!=6 && indeksi!=8 && indeksi!=9 && indeksi!=10 && indeksi!=11)
	{
	document.forms[0].alv_prosentti.focus();
	}
}

function hyppy()
{
document.forms[0].alv_prosentti.focus();
}

function rasteihin()
{
document.forms[0].ajoraja.focus();
}

function nappuloihin()
{
document.forms[0].hinnasto.focus();
}

function tarkista_desimaali(luku)
{
var indeksi=luku.indexOf(",");
if(indeksi>-1)
        {
        uusiluku=luku.substring(0,indeksi);
        uusiluku+=".";
        uusiluku+=luku.substring(indeksi+1, luku.length);
        return uusiluku;
        }
else 
	return luku;
}

// -----------------------------------------------------------------------------------

function erittele()		// Suoritetaan aina kun lomakkeessa tapahtuu muutos
{
var virhe=false;
var onko_uusi=false;
var vanha=false;
var ostohinta=0, veroprosentti=0, mpvero=0, hinnanalv=0, veronalv=0, kuukaudet=0, tulliprosentti=0;
var nettohinta=0, tulli=0, EU_nettohinta=0; 
var kk1=document.forms[0].ostokuu.options.selectedIndex;
var kk2=document.forms[0].rekikuu.options.selectedIndex;
var v1=parseInt(document.forms[0].ostovs.value);
var v2=parseInt(document.forms[0].rek_vs.value);
var tulli_ostohintaan=false;
var laske_vanha=false;
var nettohinta2=0, mpvero2=0, verotusarvo2=0;

ika_1=0; ika_2=0; ika_3=0; ylilisa=0; alv_hyvitys=0; veropros=0; lopullinen_mpveroprosentti=0;
tullausarvo=0;
taysi_hinnanalv=0;
tuontikulut=0;
auto=false;
hinnanalv_maksuun=false;
alv_hyvitys_maksuun=false;
yliv=false;
laskennalliset=false;

if(!isNaN(v1) && !isNaN(v2))
        {
        if(v1>v2)
		{
		virhe=true;
		}
	  else if(v1==v2 && kk1>kk2)
         	{
		virhe=true;
		}
        vhinta=parseInt(document.forms[0].verovhinta.value);
        if(isNaN(vhinta))
	     {
	     if((document.forms[0].verovhinta.value!="jos haluat" && document.forms[0].verovhinta.value!="ei tarvita") && document.forms[0].tuontialue.selectedIndex!=0)
		  {
	     	  document.forms[0].verovhinta.value=verovapaahinta;
	     	  vhinta=0;
		  }
	     else if((document.forms[0].verovhinta.value!="jos haluat" && document.forms[0].verovhinta.value!="ei tarvita") && document.forms[0].tuontialue.selectedIndex==0)
		  {
	     	  document.forms[0].verovhinta.value="jos haluat";
	     	  vhinta=0;
		  }	
	     }
	  else if(vhinta<0)
		{
		vhinta*=-1;
		document.forms[0].verovhinta.value=vhinta;
		verovapaahinta=vhinta;
		}
	  else
	     verovapaahinta=vhinta;	// talletetaan jos on järkevä numero

         var o_hinta=parseInt(document.forms[0].textostohinta.value);
         if(isNaN(o_hinta))
		{
	      	document.forms[0].textostohinta.value=ohinta;
		}
	 else if(o_hinta<0)
		{
		o_hinta*=-1;
		document.forms[0].textostohinta.value=o_hinta;
		ohinta=o_hinta;
		}
	else
		ohinta=o_hinta;	 
        }
else
        {
        virhe=true;
        if(isNaN(v1))
		document.forms[0].ostovs.value="1998";
        if(isNaN(v2))
		document.forms[0].rek_vs.value=""+this.vs;
        }

document.forms[0].valuutanhinta.value=tarkista_desimaali(document.forms[0].valuutanhinta.value);
var kurssi=parseFloat(document.forms[0].valuutanhinta.value);
if(isNaN(kurssi))
   	{
      document.forms[0].valuutanhinta.value="0";
      kurssi=0;
      }
else if(kurssi<0)
	kurssi=kurssi*-1;
else if(kurssi>100)
	kurssi=0;

document.forms[0].valuutanhinta.value=kurssi;

kurssit[document.forms[0].valuutta.selectedIndex]=kurssi;      // talleta valuutan hinta

document.forms[0].alv_prosentti.value=tarkista_desimaali(document.forms[0].alv_prosentti.value);
var alv_pr=parseFloat(document.forms[0].alv_prosentti.value);
if(!isNaN(alv_pr))
	{
	if(alv_pr<0 || alv_pr>100)
		document.forms[0].alv_prosentti.value=alv_pros;
	else
		alv_pros=alv_pr;	// talleta arvo
	}
else if(document.forms[0].alv_prosentti.value!="ei tarvita")  // ei ole numero eikä "ei tarvita"	
	{
	document.forms[0].alv_prosentti.value=alv_pros;
	}

var vvh=parseInt(document.forms[0].verovhinta.value);
if(!isNaN(vvh))
        {
        if(vvh<0)
		{
                document.forms[0].verovhinta.value=0;
		}
        else
		{
                verovapaahinta=vvh;        // talleta arvo
		if(document.forms[0].tuontialue.selectedIndex==0 && vvh>0)
			laske_vanha=true;
		else
			laske_vanha=false;
		verovapaahinta=verovapaahinta*kurssit[document.forms[0].verov_valuutta.selectedIndex];
		}
        }
else if((document.forms[0].verovhinta.value!="ei tarvita" && document.forms[0].verovhinta.value!="jos haluat") && document.forms[0].tuontialue.selectedIndex!=0) 
 	{				// ei ole numero eikä "ei tarvita" eikä "jos haluat"
        document.forms[0].verovhinta.value=verovapaahinta;
        }
else if((document.forms[0].verovhinta.value!="ei tarvita" && document.forms[0].verovhinta.value!="jos haluat") && document.forms[0].tuontialue.selectedIndex==0) 
	document.forms[0].verovhinta.value="jos haluat";

//************************

var vahittaishinta=parseInt(document.forms[0].uudenhinta.value);
if(!isNaN(vahittaishinta))
        {
        if(vahittaishinta<0)
		{
            document.forms[0].uudenhinta.value=vahittaishinta*(-1);
		uuden_hinta=vahittaishinta*(-1);        // talleta arvo
		}
	else
		uuden_hinta=vahittaishinta;
        }
else if(document.forms[0].uudenhinta.value!="ei tarvita")  // ei ole numero eikä "ei tarvita"
        {
        document.forms[0].uudenhinta.value=uuden_hinta;
        }

var vastaavanhinta=parseInt(document.forms[0].vastaavanhinta.value);
if(!isNaN(vastaavanhinta))
        {
        if(vastaavanhinta<0)
		{
            document.forms[0].vastaavanhinta.value=vastaavanhinta*(-1);
		vastaavan_hinta=vastaavanhinta*(-1);        // talleta arvo
		}
	else
		vastaavan_hinta=vastaavanhinta;
        }
else if(document.forms[0].vastaavanhinta.value!="ei tarvita")  // ei ole numero eikä "ei tarvita"
        {
        document.forms[0].vastaavanhinta.value=vastaavan_hinta;
        }


//************************

_rahti=parseInt(document.forms[0].rahti.value);
if(!isNaN(_rahti))
        {
        if(_rahti<0)
		{
            document.forms[0].rahti.value=0;
		tuontikulut=0;
		}
        else
		{
            tuontikulut=_rahti;        // talleta arvo
		}
        }
else
	{
	document.forms[0].rahti.value="0";
	tuontikulut=0;
	}

// ---------------------------- nyt kaikki syötteet ovat OK ----------------------------------------------------


if(virhe==false)
	{
	if(document.forms[0].ajoneuvo.selectedIndex==7)
		auto=true;
        ostohinta=parseInt(document.forms[0].textostohinta.value)*parseFloat(document.forms[0].valuutanhinta.value);
        tuontikulut=tuontikulut*parseFloat(document.forms[0].valuutanhinta.value);

	if(document.forms[0].ei_tuontikuluja.checked)		// käytetään laskennallisia arvoja
		lask_tuontikulut=tuontikulut;
	else
		lask_tuontikulut=0;

	if(v1==v2)
		kuukaudet=kk2-kk1;
	else	
		{
		kuukaudet=12-kk1;
		kuukaudet=kuukaudet+(v2-v1-1)*12;
		kuukaudet=kuukaudet+kk2;
		}

	if(kuukaudet<=6)
		onko_uusi=true;

	if(document.forms[0].tuontialue.selectedIndex>0)	// tuodaan EU:n ulkopuolelta, tulli kuntoon
		{
		laske_vanha=false;
		if(auto==false)
			{
			if(document.forms[0].ajoneuvo.selectedIndex==0 || document.forms[0].ajoneuvo.selectedIndex==1)	// alle 250 cc (suunnilleen)
				{
				tullausarvo=ostohinta+tuontikulut;
				tulliprosentti=8;
				tulli=0.08*tullausarvo;
				}
			else
				{
				tullausarvo=ostohinta+tuontikulut;
				tulliprosentti=6;
				tulli=0.06*tullausarvo;
				}
			}
		else
			{
			tullausarvo=ostohinta+tuontikulut;
			tulli=0.1*tullausarvo;
			tulliprosentti=10;
			}
		hinnanalv=0.22*(ostohinta+tulli);
		}





	if((v2-v1)>=26)							// 25 v tai yli?
		{
		vanha=true;
		laske_vanha=false;
		if(document.forms[0].verovhinta.value!="ei tarvita")
                	{
			if(isNaN(document.forms[0].verovhinta.value))
                        	verovapaahinta=parseInt(document.forms[0].verovhinta.value);
                        document.forms[0].verovhinta.value="ei tarvita";
                        }
		if(document.forms[0].uudenhinta.value!="ei tarvita")
                	{
			if(isNaN(document.forms[0].uudenhinta.value))
                        	uuden_hinta=parseInt(document.forms[0].verovhinta.value);
                        document.forms[0].uudenhinta.value="ei tarvita";
                        }
		veropros=laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,true);
		verotusarvo=ostohinta+tulli+tuontikulut;
		if(verotusarvo<0)
			verotusarvo=0;
		tulli_ostohintaan=false;  		// koskee vain laskennallista lisäystä
		mpvero=0.3*veropros*verotusarvo;
		veropros=veropros*100*0.3;
		lopullinen_mpveroprosentti=veropros;
		if(document.forms[0].ei_rek.checked)	// väh. 25 v ja rekisteröimätön = ylivuotinen
                      	{
			yliv=true;
                        ylilisa=mpvero*1.2-mpvero;
                        mpvero=mpvero*1.2;
                        lopullinen_mpveroprosentti*=1.2;
                        }
		}





	else							// alle 25 v tai sitten ihan uusi
		{
		if(onko_uusi==true || (document.forms[0].ei_rek.checked && v2-v1<26))
			{					// uusi ajoneuvo (max 6 kk ensirekisteröinnistä)?
			onko_uusi=true;
			laske_vanha=false;
			if(document.forms[0].verovhinta.value!="ei tarvita")
				{
				if(isNaN(document.forms[0].verovhinta.value))
					verovapaahinta=parseInt(document.forms[0].verovhinta.value);
				document.forms[0].verovhinta.value="ei tarvita";
				}
			if(document.forms[0].uudenhinta.value!="ei tarvita")
				{
				uuden_hinta=parseInt(document.forms[0].uudenhinta.value);
				document.forms[0].uudenhinta.value="ei tarvita";
				}
			if(document.forms[0].vastaavanhinta.value!="ei tarvita")
				{
				vastaavan_hinta=parseInt(document.forms[0].vastaavanhinta.value);
				document.forms[0].vastaavanhinta.value="ei tarvita";
				}

			verotusarvo=ostohinta+tuontikulut+tulli;
		        if(auto==true)
				{
                       	verotusarvo-=770;
				if(document.forms[0].saaste.checked)
					verotusarvo-=757+70;
				}
               		if(verotusarvo<0)
                       		verotusarvo=0;
			mpvero=laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,true)*verotusarvo;
		
			tulli_ostohintaan=false;	// koskee vain laskennallista lisäystä

			if(kuukaudet>12)			// ylivuotinen?
				{
				yliv=true;
				ylilisa=mpvero*1.2-mpvero;
				mpvero=mpvero*1.2;
				lopullinen_mpveroprosentti*=1.2;
				}
			}




		else  					// käytetty ajoneuvo, nuorempi kuin 25 v
			{
			
			if(document.forms[0].alv_prosentti.value!="ei tarvita")
				{
				alv_pros=parseFloat(document.forms[0].alv_prosentti.value);
                        document.forms[0].alv_prosentti.value="ei tarvita";
				} 

			if(document.forms[0].tuontialue.selectedIndex>0) 	// tuodaan EU:n ulkopuolelta
				{
				laske_vanha=false;
				if(document.forms[0].verovhinta.value=="ei tarvita" || document.forms[0].verovhinta.value=="jos haluat")
					{
					document.forms[0].verovhinta.value=verovapaahinta;
					verovapaahinta*=kurssit[document.forms[0].verov_valuutta.selectedIndex];
					}
				if(document.forms[0].uudenhinta.value!="ei tarvita")
					{
					uuden_hinta=parseInt(document.forms[0].uudenhinta.value);
					document.forms[0].uudenhinta.value="ei tarvita";
					}
				if(document.forms[0].vastaavanhinta.value!="ei tarvita")
					{
					vastaavan_hinta=parseInt(document.forms[0].vastaavanhinta.value);
					document.forms[0].vastaavanhinta.value="ei tarvita";
					}
				if(auto==false)
					{
					if(document.forms[0].ajoneuvo.selectedIndex==0 || document.forms[0].ajoneuvo.selectedIndex==1)
                                               	{
                                               	verotusarvo=1.08*(verovapaahinta+tuontikulut);
                                               	}
                                       	else
                                               	{
                                               	verotusarvo=1.06*(verovapaahinta+tuontikulut);
                                               	}
					}
				else
					{
					verotusarvo=1.1*(verovapaahinta+tuontikulut);
					}
				if(auto==true)
					{
                        		verotusarvo-=770;
					verotusarvo-=70;	// oletetaan pesurit sun muut
					}
                		if(verotusarvo<0)
                       			verotusarvo=0;
				tulli_ostohintaan=true;			// koskee vain laskennallista lisäystä
				mpvero=laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,true)*verotusarvo;
				
				}

			else								// tuodaan EU:sta
				{
				if(document.forms[0].uudenhinta.value=="ei tarvita")
					{
					document.forms[0].uudenhinta.value=uuden_hinta;
					}
				if(document.forms[0].vastaavanhinta.value=="ei tarvita")
					{
					document.forms[0].vastaavanhinta.value=vastaavan_hinta;
					}
				if(document.forms[0].verovhinta.value=="0")
					{
					document.forms[0].verovhinta.value="jos haluat";
					verovapaahinta=0;
					}
				if(document.forms[0].EUmoto.checked)	// tehty EU:ssa
					{
                              		verotusarvo=(uuden_hinta*vertailukerroin())+tuontikulut;
                              		if(auto==true)
                              			{
                                   		verotusarvo-=770; 		// perusvähennys
                                   		verotusarvo-=70;		// oletetaan pesurit sun muut
                                  		}
                              		if(verotusarvo<0)
                               			verotusarvo=0;
                              		tulli_ostohintaan=false;	// koskee vain laskennallista lisäystä
			      		mpvero=laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,true)*verotusarvo;

			//------------------------ vanha alkaa ------------------------------------------------------

					if(laske_vanha==true)	// laske huvikseen myös vanhan mallin mukaan
						{
						verotusarvo2=verovapaahinta*kurssit[document.forms[0].verov_valuutta.selectedIndex]+tuontikulut
						if(auto==true)
                              				{
                                   			verotusarvo2-=770; 		// perusvähennys
                                   			verotusarvo2-=70;		// oletetaan pesurit sun muut
                                  			}
                              			if(verotusarvo2<0)
                               				verotusarvo2=0;
                              			tulli_ostohintaan=false;	// koskee vain laskennallista lisäystä
			      			mpvero2=laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,false)*verotusarvo2;
						}

			//------------------------ uusi alkaa ----------------------------------------------------
					}
				else						// tehty EU:n ulkopuolella
					{
					if(auto==false)
                                   		{
                                   		if(document.forms[0].ajoneuvo.selectedIndex==0 || document.forms[0].ajoneuvo.selectedIndex==1)
                                         		{
                                         		verotusarvo=1.08*((uuden_hinta*vertailukerroin())+tuontikulut);
                                         		}
                                   		else
                                         		{
                                        		verotusarvo=1.06*((uuden_hinta*vertailukerroin())+tuontikulut);
                                        		}
                                  		}
                               		else
                                   		{
                                  		verotusarvo=1.1*((uuden_hinta*vertailukerroin())+tuontikulut);
                                  		}
                              		if(auto==true)
                                   		{
                                   		verotusarvo-=770;
                                  		verotusarvo-=70;		// oletetaan pesurit sun muut
                                  		}
                              		if(verotusarvo<0)
                                  		verotusarvo=0;
                              		tulli_ostohintaan=true;      	// koskee vain laskennallista lisäystä
                              		mpvero=laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,true)*verotusarvo;

			//------------------------ vanha alkaa ------------------------------------------------

					if(laske_vanha==true)
						{
						if(auto==false)
                                   			{
                                   			if(document.forms[0].ajoneuvo.selectedIndex==0 || document.forms[0].ajoneuvo.selectedIndex==1)
                                         			{
                                         			verotusarvo2=1.08*((verovapaahinta*kurssit[document.forms[0].verov_valuutta.selectedIndex])+tuontikulut);
                                         			}
                                   			else
                                         			{
                                        			verotusarvo2=1.06*((verovapaahinta*kurssit[document.forms[0].verov_valuutta.selectedIndex])+tuontikulut);
                                        			}
                                  			}
                               			else
                                   			{
                                  			verotusarvo2=1.1*((verovapaahinta*kurssit[document.forms[0].verov_valuutta.selectedIndex])+tuontikulut);
                                  			}
                              			if(auto==true)
                                   			{
                                   			verotusarvo2-=770;
                                  			verotusarvo2-=70;		// oletetaan pesurit sun muut
                                  			}
                              			if(verotusarvo2<0)
                                  			verotusarvo2=0;
                              			tulli_ostohintaan=true;      	// koskee vain laskennallista lisäystä
                              			mpvero2=laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,false)*verotusarvo2;
						}

			//---------------------------------------------------------------------------------------

					}
				//********* tänne vertailu *************
				}
			}
		}

	if((document.forms[0].ajoraja.checked || onko_uusi==true) && document.forms[0].tuontialue.selectedIndex==0)
            {							// ALV-mielessä uusi
	    if(document.forms[0].alv_prosentti.value=="ei tarvita")
                    	document.forms[0].alv_prosentti.value=alv_pros;
            var vieras_alv=1+(parseFloat(document.forms[0].alv_prosentti.value)/100); // antaa esim. 1.16
            ulkovvoh=ostohinta/vieras_alv;
            var ulkoalv=ostohinta-ulkovvoh; // ulkomainen ALV
            alv_hyvitys=ulkoalv;
            alv_hyvitys_maksuun=true;
            var kotivvoh=ostohinta/1.22;
            var kotialv=ostohinta-kotivvoh; // kotimaan ALV
            hinnanalv=0.22*(ulkovvoh+tuontikulut);
            taysi_hinnanalv=hinnanalv;
            hinnanalv=hinnanalv-ulkoalv;
            }
	else
		{
            if(document.forms[0].alv_prosentti.value!="ei tarvita")
               	alv_pros=document.forms[0].alv_prosentti.value;
            document.forms[0].alv_prosentti.value="ei tarvita";
            }

	if(document.forms[0].tuontialue.selectedIndex>0)		// tuodaanko EU:n ulkopuolelta? Aina 22% ALV
            	{
		if(document.forms[0].alv_prosentti.value!="ei tarvita")
                        {
                        alv_pros=parseFloat(document.forms[0].alv_prosentti.value);
                        document.forms[0].alv_prosentti.value="ei tarvita";
                        }
		hinnanalv=0.22*(ostohinta+tulli+tuontikulut);
		hinnanalv_maksuun=true;
		taysi_hinnanalv=hinnanalv; 
		}

	veronalv=0.22*mpvero;
	if(laske_vanha==true)
		veronalv2=0.22*mpvero2;
	nettohinta=ostohinta+tuontikulut-lask_tuontikulut+hinnanalv+tulli+mpvero+veronalv;
	if(document.forms[0].tuontialue.selectedIndex==0)
		EU_nettohinta=ostohinta+tuontikulut-lask_tuontikulut+hinnanalv+tulli+suurinverokerroin()*vastaavan_hinta*1.22;
	if(ostohinta>0)
		{
		nettoprosentti=Math.round(100*((nettohinta-ostohinta)/ostohinta));
		}
	else
		{
		nettoprosentti="--";
		}
	if(ostohinta>0 && nettoprosentti>500)
		nettoprosentti=">500";
	}
else				// virhe lomakkeessa, ei näytetä laskelmaa 
	{
	ostohinta=0;
	tuontikulut=0;
	lask_tuontikulut=0;
	tulli=0;
	hinnanalv=0;
	veronalv=0;
	mpvero=0;
	nettohinta=0;
	verotusarvo=0;
	}

erittely="Verolaskelma\n\nOstohinta + tuontikulut\t\t"+fill(6, Math.round(ostohinta+tuontikulut-lask_tuontikulut))+" EUR\n";

var tullijono="Tulli "+tulliprosentti;
tullijono+=" % per "+Math.round(tullausarvo)+" EUR";
erittely+=tullijono+fill(38-tullijono.length, Math.round(tulli))+" EUR\n"+
"Verolaskennan lähtöhinta";
if(onko_uusi==false && vanha==false)
	if(document.forms[0].tuontialue.selectedIndex==0)
		erittely+=fill(14, Math.round(uuden_hinta*vertailukerroin()));
	else
        	erittely+=fill(14, Math.round(verovapaahinta));
else	// uusi tai museoajoneuvo mistä tahansa
        erittely+=fill(14, Math.round(ostohinta+tuontikulut));
erittely+=" EUR\n";
erittely+="Verotusarvo\t\t"+fill(14, Math.round(verotusarvo))+
" EUR\n * lisätty laskennallista tullia ";
if(tulli_ostohintaan==true)
	{
	if(auto==false)
		{
		if(document.forms[0].ajoneuvo.selectedIndex==0 || document.forms[0].ajoneuvo.selectedIndex==1)
			{
			erittely+="8";
			}
		else
			{
			erittely+="6";
			}
		}
	else
		{
		erittely+="10";
		}
	}
else
	{
	erittely+="0";
	}
erittely+=" %\n * laskennalliset tuontikulut "+Math.round(lask_tuontikulut)+" EUR\n";
if(auto==false || vanha==true)
	erittely+=" * ei vähennyksiä\n\n";
else
	{
	erittely+=" * vähennykset 770 ";
	if(document.forms[0].saaste.checked && onko_uusi==true)
		erittely+="+ 757 + 70 ";
	else if(document.forms[0].saaste.checked && onko_uusi==false)
		erittely+="+ 70 ";
	erittely+="EUR\n\n";
	}

erittely+="Autovero täysimääräisenä";
erittely+="\t"+fill(8, veropros)+" %\nIkävähennys"+fill(4, ika_1)+" x 0,6 %-yksikköä"+fill(8, pyorista(-1*ika_1*0.6))+" %\n"+
"\t   "+fill(4, ika_2)+" x 0,9 %\t\t"+fill(8, pyorista(-100*(1-Math.pow(0.991, ika_2))))+
" %\n\t   "+fill(4, ika_3)+" x 0,4 %\t\t"+fill(8, pyorista(-100*(1-Math.pow(0.996, ika_3))))+" %\n"+
"Ylivuotisen veronkorotus ";
if(yliv==true)
	erittely+=fill(2, 20);
else
	erittely+=fill(2, 0);
erittely+=" %"+fill(9, Math.round(ylilisa))+" EUR\n";
mpverojono="Lopullinen autovero"+fill(8, pyorista(lopullinen_mpveroprosentti))+" %";
if(onko_uusi==false && vanha==false && verovapaahinta==0 && document.forms[0].tuontialue.selectedIndex!=0)
	erittely+=mpverojono+fill(38-mpverojono.length, "-----")+" EUR\n\n"+"ALV ";
else if(onko_uusi==false && vanha==false && uuden_hinta==0 && document.forms[0].tuontialue.selectedIndex==0)
	erittely+=mpverojono+fill(38-mpverojono.length, "-----")+" EUR\n\n"+"ALV ";
else
	erittely+=mpverojono+fill(38-mpverojono.length, Math.round(mpvero))+" EUR\n\n"+"ALV ";

if(hinnanalv_maksuun==true || alv_hyvitys_maksuun==true)
	erittely+="22 % per ";	
else
	erittely+="0 %                 ";

if(alv_hyvitys_maksuun)
	erittely+=Math.round(ulkovvoh+tuontikulut)+" EUR\t";		// uusi EU:n alueelta
else if(hinnanalv_maksuun)
	erittely+=Math.round(ostohinta+tulli+tuontikulut)+" EUR\t";	// uusi tai käytetty EU:n ulkopuolelta
erittely+=fill(14, Math.round(taysi_hinnanalv))+" EUR\nALV-hyvitys ostomaassa\t"+fill(14, Math.round(-1*alv_hyvitys))+" EUR\n";
if(alv_hyvitys_maksuun)
	erittely+="HUOM!! Ks. ohjeen kohta \"Arvonlisäverotus\"\n";
else
	erittely+="\n";
erittely+="ALV autoverosta";
erittely+="\t\t 22 %\t"+fill(6, Math.round(veronalv))+" EUR\n"+
"Verot ja tulli yht.";

if(onko_uusi==false && vanha==false && verovapaahinta==0 && document.forms[0].tuontialue.selectedIndex!=0)
        erittely+=fill(8, nettoprosentti)+" %"+fill(9, "-----")+" EUR\n";
else if(onko_uusi==false && vanha==false && uuden_hinta==0 && document.forms[0].tuontialue.selectedIndex==0)
	erittely+=fill(8, nettoprosentti)+" %"+fill(9, "-----")+" EUR\n";
else
	erittely+=fill(8, nettoprosentti)+" %"+fill(9, Math.round(hinnanalv+tulli+mpvero+veronalv))+" EUR\n";

erittely+="Suurin lain sallima vero    ";
if(document.forms[0].tuontialue.selectedIndex==0 && onko_uusi==false)
	erittely+=fill(10,Math.round(suurinverokerroin()*vastaavan_hinta*1.22))+" EUR\n";
else
	erittely+=fill(10,"-----")+" EUR\n";
erittely+="Verot vanhalla laskutavalla ";

if(laske_vanha==true)
	{
	erittely+=fill(10,Math.round(mpvero2+tulli+veronalv2))+" EUR\n\n";
	}
else
	{
	erittely+=fill(10, "-----")+" EUR\n\n";
	}	

if(auto==false)
	erittely+="PYÖRÄN VEROLLINEN HINTA\t";
else
	erittely+="AUTON VEROLLINEN HINTA \t";
if(onko_uusi==true || vanha==true)	// uusi tai museo
	{
	if(ostohinta==0)
		erittely+=fill(14, "-----");
	else if(vanha==true && document.forms[0].tuontialue.selectedIndex==0)
		{
		if(EU_nettohinta<nettohinta)
				erittely+=fill(14, Math.round(EU_nettohinta));
			else
				erittely+=fill(14, Math.round(nettohinta));
		}
	else if(onko_uusi==true && document.forms[0].tuontialue.selectedIndex==0)
		{
		erittely+=fill(14, Math.round(nettohinta));
		}
	else if(vanha==true || onko_uusi==true && document.forms[0].tuontialue.selectedIndex!=0)
		{
		erittely+=fill(14, Math.round(nettohinta));
		}
	}
else			// käytetty
	{
	if(vanha==false && verovapaahinta==0 && document.forms[0].tuontialue.selectedIndex!=0)
		erittely+=fill(14, "-----");
	else if(vanha==false && (uuden_hinta==0 || vastaavan_hinta<100) && document.forms[0].tuontialue.selectedIndex==0)
		erittely+=fill(14, "-----");
	else
		{
		if(document.forms[0].tuontialue.selectedIndex!=0)
			erittely+=fill(14, Math.round(nettohinta));
		else
			{
			if(EU_nettohinta<nettohinta)
				erittely+=fill(14, Math.round(EU_nettohinta));
			else
				erittely+=fill(14, Math.round(nettohinta));
			}
		}
			
	}
erittely+=" EUR";
document.forms[0].tulosikkuna.value=erittely;
}




function laskeVeroprosentti(onko_uusi,kuukaudet,v1,v2,paivitetaanko)
{
var indeksi=document.forms[0].ajoneuvo.selectedIndex;
if(indeksi==0)
	kerr=0.2;
else if(indeksi==1 || indeksi==2)
	kerr=0.3;
else if(indeksi==3)
	kerr=0.4;
else if(indeksi==4)
        kerr=0.5;
else if(indeksi==5)
	kerr=0.6;
else if(indeksi==6)
	kerr=0.7;
else kerr=1.0;

veropros=100*kerr;
kerroin=1;
if((v2-v1)>=26 || onko_uusi==true)		// onko väh. 25 v tai uusi?
	{
	lopullinen_mpveroprosentti=veropros;
	return kerr;
	}
var kierrokset=kuukaudet;
for(i=100;i>0 && kierrokset>0;i--)		// ekat 100 kk
	{
	kerroin=kerroin-0.006;
	kierrokset--;
	if(paivitetaanko==true)
		ika_1++;
	}
for(i=100;i>0 && kierrokset>0;i--)		// seuraavat 100 kk
	{
	kerroin=kerroin*0.991;
	kierrokset--;
	if(paivitetaanko==true)
		ika_2++;
	}
while(kierrokset>0)				// loput, korkeintaan siihen asti, kunnes 25-vuotisen sääntö tulee voimaan 
	{
	kerroin=kerroin*0.996;
	kierrokset--;
	if(paivitetaanko==true)
		ika_3++;
	}
kerr=kerr*kerroin;
if(kerr>0)
	{
	lopullinen_mpveroprosentti=100*kerr;
	return kerr;
	}
else
	{
	lopullinen_mpveroprosentti=0;
	return 0;
	}
}


function vertailukerroin()
	{
	if(document.forms[0].ajoneuvo.selectedIndex==0)
		return 0.46;
	if(document.forms[0].ajoneuvo.selectedIndex==1)
		return 0.41;
	if(document.forms[0].ajoneuvo.selectedIndex==2)
		return 0.41;
	if(document.forms[0].ajoneuvo.selectedIndex==3)
		return 0.40;
	if(document.forms[0].ajoneuvo.selectedIndex==4)
		return 0.39;
	if(document.forms[0].ajoneuvo.selectedIndex==5)
		return 0.35;
	if(document.forms[0].ajoneuvo.selectedIndex==6)
		return 0.33;
	if(document.forms[0].ajoneuvo.selectedIndex==7 && !document.forms[0].diesel.checked)
		return 0.35;
	if(document.forms[0].ajoneuvo.selectedIndex==7 && document.forms[0].diesel.checked)
		return 0.33;
	return 0;
	}



function suurinverokerroin()
	{
	if(document.forms[0].ajoneuvo.selectedIndex==0)
		return 0.09;
	if(document.forms[0].ajoneuvo.selectedIndex==1)
		return 0.12;
	if(document.forms[0].ajoneuvo.selectedIndex==2)
		return 0.12;
	if(document.forms[0].ajoneuvo.selectedIndex==3)
		return 0.15;
	if(document.forms[0].ajoneuvo.selectedIndex==4)
		return 0.19;
	if(document.forms[0].ajoneuvo.selectedIndex==5)
		return 0.21;
	if(document.forms[0].ajoneuvo.selectedIndex==6)
		return 0.23;
	if(document.forms[0].ajoneuvo.selectedIndex==7 && !document.forms[0].diesel.checked)
		return 0.29;
	if(document.forms[0].ajoneuvo.selectedIndex==7 && document.forms[0].diesel.checked)
		return 0.30;
	return 0;
	}

function historia()
	{
	var teksti="Versiohistoria\n---------------------------------------------------------------------\n\n";
	teksti+="V1.0.0 \t4/2000 \tLaskuri julkaistu\n";
	teksti+="V1.1.0 \t5/2000 \tLisätty uudet ja ylivuotiset pyörät\n";
	teksti+="V1.1.1 \t8/2000 \tKosmeettisia muutoksia\n";
	teksti+="V1.1.2 \t8/2000 \tLisätty ALV-info uusien pyörien kohdalla\n";
	teksti+="V1.2.0 \t9/2000 \tLisätty automaattinen ALV-muunnos ja valuuttalaskin\n";
	teksti+="V1.2.1 \t9/2000 \tValuuttalaskimen markkasumma siirtyy automaattisesti ostohinnaksi\n";
	teksti+="V1.2.2 \t9/2000 \tValuuttalaskin integroitu verolaskuri-ikkunaan\n";
	teksti+="V1.2.3 \t9/2000 \tLisätty kiinteät valuuttakurssit\n";
	teksti+="V1.2.4 \t3/2001 \tTullin käsittelytapaa korjattu\n";
	teksti+="V1.2.5 \t5/2001 \tUuden pyörän määritelmää muutettu\n";
	teksti+="V1.2.6 \t6/2001 \tSaksan mp-hinnasto lisätty\n";
	teksti+="V1.3.0 \t9/2001 \tLisätty autot, veroerittelyä parannettu, virheitä korjattu ym. ym.\n";
	teksti+="V1.3.1 \t1/2002 \tHinnastot vedetty yhteen, markat vaihdettu euroiksi\n";
	teksti+="V1.4.0 \t10/2002 \tKäytettyjen EU-ajoneuvojen uusi verolaskentamalli lisätty\n\n";
	teksti+="Voiko tätä vielä parantaa? Ehdotuksia vastaanotetaan.\n\n";
	alert(teksti);
	return false;
	}                     

function asetaostohinta(markat)
	{
	document.forms[0].textostohinta.value=markat;
	erittele();
	}


function fill(tavoite, luku)		// palauttaa välilyöntejä ja luvun
	{
	var tulos="";
	var lukujono=""+luku;
	var pituus=lukujono.length;
	for(i=0;i<tavoite-pituus;i++)
		{
		tulos=tulos+" ";
		}
	tulos=tulos+luku;
	return tulos;
	}


function pyorista(luku)			// pyöristä luku yhteen desimaaliin
	{
	var koko, desi, negat=false;
	if(luku<0)
		{
		luku=luku*(-1);
		negat=true;
		}
	koko=Math.floor(luku);		// ota kokonaisosa
	desi=luku-koko;			// ota desimaalit
	desi=desi*10;
	desi=Math.round(desi);
	if(desi==10)
		{
		koko++;
		desi=0;
		}
	if(negat==false)
		return ""+koko+","+desi;
	return "-"+koko+","+desi;
	}



function ohje()
	{
	window.open('http://www.iki.fi/hannula/ohje.html','ohje','width=780,height=400,scrollbars=yes,resizable=yes,toolbar=yes',false);
	return false;
	}


function valuuttakurssit()
	{
	window.open('http://www2.leonia.fi/external/kurssiti/kurssiti.nsf/kurssitiedot/kurssitiedot?Opendocument','kurssit','width=600,height=400,scrollbars=yes,resizable=yes',false);
	return false;
	}

function infoikkuna()
	{
	window.open('http://www.bajahill.net/s-h-m-FAQ.html','infoa','width=700,height=500,scrollbars=yes,resizable=yes,toolbar=yes',false);
	return false;
	}

function hinnasto()
	{
	
window.open('http://www.iki.fi/hannula/hinnasto.html','hinnat','width=780,height=600,scrollbars=yes,resizable=yes,toolbar=yes,location=yes',false);
	return false;
	}

function alv_ikkuna()
	{
	window.open('http://www.trade.gov/td/tic/tariff/eu_vat.htm','alvprosentit','width=700,height=550,scrollbars=yes,resizable=yes,toolbar=yes',false);
	return false;
	}

function aseta_tuontikulut()
	{
	if(document.forms[0].ei_tuontikuluja.checked==true)
		{
		if(document.forms[0].ajoneuvo.selectedIndex==7)
			arvo=168;
		else
			arvo=84;
		if(document.forms[0].tuontialue.selectedIndex==2)
			arvo=arvo*6.5;			// taaloja
		document.forms[0].rahti.value=""+Math.round(arvo/kurssit[document.forms[0].valuutta.selectedIndex]);
		}
	erittele();
	}

