function validate()
	{
		
	ok = true;
	output('');
	
	v.make_int('imoka',true);
	v.make_int('trauma',true);
	var paluk = 1*v.option('palukanos');
    var terminas =12 * v.option('terminas');
    var imoka = 1*v.value('imoka').numerize();
	var mokb = v.option('mokb');
	var age=1*v.option('age');
	var sex=v.option('sex');
	var trauma=1*v.value('trauma').numerize();
	var yraKlientas=v.is_checked('klientas') ? true:false;
	
	var index=0;
	if (v.is_checked('ind1')) index=1*v.value('ind1');
	else if (v.is_checked('ind2')) index=1*v.value('ind2');
	if (trauma==0) v.set_value('trauma','-');
	
	if (imoka * mokb < 720) {
		imoka=Math.ceil(720/mokb);
		v.set_value('imoka',imoka);
		v.focus('imoka');
        alert("Pasirinkta įmoka mažesnė už nustatytą mažiausią! Įmokos dydis pataisytas!");
    }
	if (trauma>0) {
		var num=Math.min(100*imoka*mokb/12, 20000);
		if (trauma>num) {
			trauma=Math.floor(num);
			v.set_value('trauma',trauma);
			v.focus('trauma');
        	alert("Per didelė traumų draudimo suma. Draudimo suma pataisyta!");
		}
    }
	
	fondas=new Array();

	skaiciuoti (age, sex, yraKlientas, terminas, imoka, mokb, paluk, trauma, index, false)
	}

// ***********************************************************
//
// SKAICIAVIMAI
//
// ***********************************************************


function skaiciuoti (age, sex, yraKlientas, terminas, imoka, mokb, paluk, trauma, index, justTest)
	{
	var sumoketa = 0;
var ss="";
	var sukaupta=0;
	var sukauptaTmp=0;
	
	var imokos_mok = 0;
	var men_atskaitymas = 0;
	var sumoketaviso=0;//DS

	ismoka = new Array();

	//imoku mokestis
	pirmu_metu = 0.45;
    //antru_metu = 0.1;
    //treciu_metu = 0.1;
    kitu_metu = 0.05;

	men_mok = yraKlientas ? 3:6;//Lt, sutarties administravimo, per men
	men_atsk =0; // 0.0045/12; "investicines veiklos adm. tarifas = 0" 2004-09-24

	mokesciai=0;
	//atsakiciuojam traumos sumos mokesti
	var trRizika= sex==3 ? 0.00075:0.00055;//traumos rizikos mokestis
	mokesciai = mokesciai + (trauma * trRizika);
		
	Pal = Math.pow((1 + paluk / 100),(1 / 12)) - 1;
	galioja_men=terminas;
	if (justTest) {
		Pal=0;
		galioja_men=12;
	}
	
	var imokaInd=imoka;//indeksuota imoka
	for (j = 1; j <= galioja_men; j++)
		{
		if (j>1 && (j % 12)==1) imokaInd=imokaInd+(index*imokaInd);//jei indeksavimas
		if ((j-1) % (12/mokb) ==0 ) sumoketa = imokaInd;
		else sumoketa = 0;
		
			
		//DS(j) = DS(j - 1) + sumoketa(j)	
		sumoketaviso=sumoketaviso+sumoketa;
				
		if (j<13)	imokos_mok = sumoketa * pirmu_metu;
		//else if (j > 12 && j < 25 )	imokos_mok = sumoketa * antru_metu;
		//else if (j > 24 && j < 37)	imokos_mok = sumoketa * treciu_metu;
		else imokos_mok = sumoketa * kitu_metu;

		if (j > 1)	sukauptaTmp = sukaupta + sumoketa - imokos_mok;
		else sukauptaTmp = sumoketa - imokos_mok;
		
		men_atskaitymas = sukauptaTmp * men_atsk;
          
		qxMokestis=0;
		if (sumoketaviso > sukauptaTmp) {
				qxMokestis = qxMokestis + (sumoketaviso - sukauptaTmp) * qxInvest(age+Math.floor((j-1)/12), sex); // /12 dar truksta
		}

		sukaupta = sukauptaTmp * (1 + Pal) - men_mok - men_atskaitymas - mokesciai - qxMokestis;
		if (j % 12 == 0) fondas[j/12]=sukaupta;
		}
		
		if (justTest) {return;}//buvo tik patikrinimas
	
	var mokbTxt ='';
	if (mokb==12) mokbTxt='Mėnesio';
	else if (mokb==4) mokbTxt='Ketvirčio';
	else if (mokb==2) mokbTxt='Pusmečio';
	else if (mokb==1) mokbTxt='Metinė';
	
	var Viso =sumoketaviso;// imoka * mokb * terminas/12;
	
	//var suLengvata =(1 - 0.33) * Viso;
	var suLengvata=0;
	var koef;
	var terminas=galioja_men / 12;
	var imokaInd=imoka;//indeksuota imoka
	for (j = 1; j<=terminas; j++) {
		if (j>1) imokaInd=imokaInd+(index*imokaInd);//jei indeksavimas
		koef=0.85;
		suLengvata=suLengvata+ (imokaInd * mokb) * koef;
	}
	
	var PoApmokestinimo=0;
	PoApmokestinimo=sukaupta - 0.15 * Math.min(Viso, sukaupta);
	
	tabka = ss+"<table border=0 cellspacing=4 cellpadding=2><tr><td class=tv4>Sumokėta įmokų</td><td align=right class=tv3>"+format(Viso,true)+"</td></tr><tr><td class=tv4>Po lengvatos</td><td align=right class=tv3>"+format(suLengvata,true)+"</td></tr><tr><td class=tv4>Sukauptas kapitalas&nbsp;</td><td align=right class=tv3>"+format(sukaupta,true)+"</td></tr><tr style='display:none;'><td class=tv4>Kapitalas po apmokestinimo&nbsp;</td><td align=right class=tv3>"+format(PoApmokestinimo,true)+"</td></tr></table>";
	tabka += '<table border=0 cellspacing=4 cellpadding=2><tr><td class=tv4>Skaičiavimai atlikti įvertinus galiojančius standartinius Sampo vaikas draudimo sutarties mokesčius ir turi būti interpretuojami tik atsižvelgiant į Sampo vaikas draudimo taisykles Nr.003, bei skaičiavimo atlikimo metu galiojusius įstatymus ir kitus norminius aktus.<br /><br />Skaičiavimai atlikti su prielaida, kad visai sumokėtų draudimo įmokų sumai taikoma gyventojų pajamų mokesčio lengvata (pagal Lietuvos Respublikos gyventojų pajamų mokesčio įstatymo 21 str. draudimo įmokos kartu su kitomis gyventojo išlaidomis, kurioms taikoma lengvata, neturi viršyti 25 proc. apmokestinamųjų pajamų). Skaičiavimuose prognozuojama išperkamoji suma (grąžinamos įmokos) bei draudimo išmoka laikotarpio pabaigoje gali būti apmokestinamos Lietuvos Respublikos gyventojų pajamų mokesčio įstatyme nustatyta tvarka (t.y. atsižvelgiant į įvairius faktorius visai  ar daliai išmokamos sumos gali būti taikomas 15 proc. GPM tarifas). <br /><br />Skaičiavimai yra tik iliustracinio pobūdžio. Kaupiamo kapitalo vertė gali tiek didėti, tiek mažėti, priklausomai nuo prisiimtos investavimo rizikos ir faktinės investicijų grąžos. Bendrovė negarantuoja investicijų pajamingumo ir apskaičiuotų sukaupto kaiptalo ar išperkamosios sumos verčių. </td></tr></table>';
	output(tabka);
	}

	
function pre(){

	var f = document.vaikofrm;
	f.age.options.length = 16; 
	for (var i = 0; i <= 15; i++) {
		f.age.options[i].text = i;
		f.age.options[i].value = i;
	}
	f.age.options[5].selected = true;
	
	f.terminas.options.length = 21;
	for (i = 0; i <= 20; i++)	{
		f.terminas.options[i].text = 5+i;
		f.terminas.options[i].value = 5+i;
	}	
	f.terminas.value = 15;
	keitesi_imoka()
}

function zymek(nr)
{
	var a=v.get_obj('ind1');
	var b=v.get_obj('ind2');
	if (nr==1 && a.checked) b.checked=false;
	if (nr==2 && b.checked) a.checked=false;
}

function keitesi_imoka()
{
	/*var f = document.vaikofrm;
	var mokb=1*v.option('mokb');
	if (mokb==0) return;
	var koef=12/mokb;
	var r; 
	var yra=v.value('imoka');
	var kiek= mokb==12 ? 2:3;
	
	f.imoka.options.length = kiek;
	var was=0;
	for (var i=0;i<kiek;i++) {
		r=50*(i+(3-kiek)+1)*koef;
		f.imoka.options[i].text = r;
		f.imoka.options[i].value = r;
		if (r==yra) was=i;
	}
	f.imoka.options[was].selected=true;

	yra=1*v.value('imoka');
	kiek=1+Math.floor(yra/(koef*50));
	yra=v.option('trauma');
	f.trauma.options.length = kiek;
	was=0;
	for (i=1;i<kiek;i++) {
		f.trauma.options[i].text = 5000*i;
		f.trauma.options[i].value = 5000*i;
		if (5000*i==yra) was=i;
	}
	f.trauma.options[was].selected=true;*/
}

