// JavaScript Document
//var srednemesPens=7126;//cms
//var ns1=10800;//cms
//var ns2=35100;//cms
//var dohodNPO=4;//cms
//var dohodOPS=6;//cms
//var vozrastM=60;//cms
//var vozrastJ=55;//cms
//var maxRazmerDohoda=415000;//cms
dohodNPO=dohodNPO/100;
dohodOPS=dohodOPS/100;
maxRazmerDohoda=maxRazmerDohoda*dohodOPS;
var today = new Date();
var fullToday = today.getDate()+"."+(today.getMonth()+1)+"."+today.getFullYear();
var fullTodayYear = today.getFullYear();
fullTodayYear = today.getFullYear();
var godPensii=0;
var paramD1=0;
var pole3;
var pole1;
var showmess;
var moveFormId;
var moveFormIdBack;
var moveFormIdReturnStart;
var old;
var news;
var oldLeft;
var newLeft;
var move;
var leftMouse;
var paintMouse;
var startMoveForm;
var razn;

function showMessForm1 () {
	if((document.getElementById('pole1').value).length==4 && (document.getElementById('pole3').value).length>1)
		document.getElementById("testform1").style.display='block'
		else document.getElementById("testform1").style.display='none'
}

function showMessage (mes) {
	clearTimeout(showmess);
	var mess = document.getElementById("message");
	mess.style.display="block";
	mess.innerHTML=mes;
	showmess=setTimeout("clearMessage()",3000);
}
function clearMessage() {
	document.getElementById("message").style.display="none";
}
function rachet1()
{
	pole1= document.getElementById('pole1').value;
	if (pole1.length==0) {
		showMessage('Не указана дата Вашего рождения');
		return false;
	}
	pole1 = parseInt(pole1.substr(pole1.length-4),10);
	pole3= document.getElementById('pole3').value;
	if (pole1<1900 || pole1>fullTodayYear || isNaN(pole1)){showMessage('Не правильно указана дата Вашего рождения')}
	else if (pole3.length==0 || isNaN(pole3)){showMessage('Не заполнено поле размер Вашего ежемесячного дохода')}
	//else if (pole1<1900 || pole1>fullTodayYear) showMessage('Не корректная дата. Укажите полную дату рождения 4 цыфры');
	else {
		pole3=parseInt(pole3);
		if (pole3<=0) {
			showMessage("размер Вашего ежемесячного дохода должен быть больше 0");
			return false;
		}
		if (document.getElementById("pole2").value == 1) godPensii=vozrastM;
		else godPensii=vozrastJ;
		document.getElementById("pole4").value = godPensii+pole1;
		document.getElementById("pole5_1").value=srednemesPens;
		var ejemesDohod = pole3;
		document.getElementById("pole5_2").value=Math.floor(srednemesPens/ejemesDohod*100);
		document.getElementById("pole6_1").value = Math.floor(ejemesDohod * 0.4);
		document.getElementById("pole6_2").value = Math.floor(ejemesDohod * 0.6);
		nextForm("forma1","forma2");
		showMessage('Вы можете изменить год приобретения права на трудовую пенсию');
	}
}
function showForm3()
{
	document.getElementById("pole7").innerHTML = fullToday;
	nextForm("forma2","forma3");
}
function nextForm(oldForm, newForm)
{
	if (moveFormId || moveFormIdBack) return;
	old = document.getElementById(oldForm);
	news = document.getElementById(newForm);
	if (startMoveForm)	{
		oldLeft = -70;
		startMoveForm=false;
	}
	else oldLeft = 0;
	newLeft = 680;
	move = 20;
	moveFormId = setInterval('MoveForm()',20);
}
function MoveForm()
{
	if (newLeft==0) {
		clearTimeout(moveFormId);
		moveFormId=false;
		var texts=document.getElementById("headerstr");
		switch(news.id) {
			case "forma1":
			texts.innerHTML="Калькулятор пенсии";
			break;
			case "forma2":
			texts.innerHTML="Результаты расчета";
			break;
			case "forma3":
			texts.innerHTML="Увеличение будущей пенсии";
			break;
		}

	}
	old.style.left=oldLeft+"px";
	news.style.left=newLeft+"px";
	oldLeft-=move;
	newLeft-=move;
}
function nextFormBack(oldForm, newForm)
{
	if (moveFormId || moveFormIdBack) return;
	old = document.getElementById(oldForm);
	news = document.getElementById(newForm)
	if (startMoveForm)	{
		oldLeft = 70;
		startMoveForm=false;
	}
	else oldLeft = 0;
	newLeft = -680;
	move = 20;
	moveFormIdBack = setInterval('MoveFormBack()',20);
}
function MoveFormBack()
{
	if (newLeft==0) {
		clearTimeout(moveFormIdBack);
		moveFormIdBack=false;
		var texts=document.getElementById("headerstr");
		switch(news.id) {
			case "forma1":
			texts.innerHTML="Калькулятор пенсии";
			break;
			case "forma2":
			texts.innerHTML="Результаты расчета";
			break;
			case "forma3":
			texts.innerHTML="Увеличение будущей пенсии";
			break;
		}
	}
	old.style.left=oldLeft+"px";
	news.style.left=newLeft+"px";
	oldLeft+=move;
	newLeft+=move;
}
function resultD1()
{
	var NS;
	var BR;
	var PU;
	var D1;
	var ns;
	PU = parseInt(document.getElementById("pole4").value)-fullTodayYear;
	if (PU<0) {
		//showMessage("Год приобретения права на трудовую пенсию указан неверно");
		return 0;
	}
	if (document.getElementById("pole4").value) {
		if (document.getElementById("pole2").value == 1 && pole1<=1952) return 0;
		if (document.getElementById("pole2").value == 2 && pole1<=1956) return 0;

		if(pole1>=1967) {
			ns=ns2;
			BR = pole3*12*dohodOPS;
			if(BR>maxRazmerDohoda) BR = maxRazmerDohoda;
			D1=(ns*Math.pow((1+dohodOPS),PU)+ BR*(Math.pow((1+dohodOPS),PU)-1)/dohodOPS)/228
			return D1;
		}
		if(pole1<=1966) {
			ns=ns1;
			D1=(ns*Math.pow((1+dohodOPS),PU))/228
			return D1;
		}
	}
}
function resultD2()
{
	var PPV = parseInt(document.getElementById("pole9_1").value);
	var PUS = parseInt(document.getElementById("pole9_2").value);
	if (PUS>10) {alert('показатель поля "количество лет уплаты добровольных взносов" не может быть более 10 лет. '); return false}
	var G1 = parseInt(document.getElementById("pole4").value);
	var N = G1-fullTodayYear-PUS;
	if (N<0) N=0;
	var PND1 = PPV*((Math.pow((1+dohodOPS),PUS)-1)*((1+dohodOPS)/dohodOPS))*Math.pow((1+dohodOPS),N);
	if ((N)<1) N=1;
	if (PPV<2000) PPV=0;
	if (PPV>12000)PPV=12000;
	var PND2 = PPV*((Math.pow((1+dohodOPS),PUS)-1)*(1+dohodOPS)/dohodOPS)*Math.pow((1+dohodOPS),(N-1))
	var D2 = (PND1 + PND2)/228;
	return D2;
}
function resultNP ()
{
	var vozrast = parseInt(document.getElementById("pole4").value)-pole1;
	if (vozrast<0) return false;
	var AR;
	if (vozrast>=100) AR=12;
	else AR=A[vozrast][(parseInt(document.getElementById("pole2").value)-1)];
	var PVZ = parseInt(document.getElementById("pole10_1").value);
	if (PVZ<=0) return false;
	var N = parseInt(document.getElementById("pole4").value)-fullTodayYear;
	if (N<=0) {
		showMessage("Ваш год выхода на пенсию должен быть не менее чем "+(fullTodayYear+1));
		return false;
	}
	var NP = PVZ*306.4611*(Math.pow((1+dohodNPO),N)-1)/AR;
	//alert("ПВ3="+pvz+"\r\n n1="+parseInt(document.getElementById("pole4").value)+"-"+fullTodayYear+"="+N+"\r\n A="+AR+"\r\n"+PVZ+"*"+306.4611+"*((1"+dohodNPO+")^"+N+")-1)/"+AR+")="+NF);
	return NP;
}
function showPoleIs9()
{
	if (document.getElementById("pole9").checked) {//disabled
		document.getElementById("pole9_1").disabled="";
		document.getElementById("pole9_2").disabled="";
		if (document.getElementById("pole9_1").value=="")
		document.getElementById("pole9_1").value="12000";
		if (document.getElementById("pole9_2").value=="")
		document.getElementById("pole9_2").value="10";
	}
	else {
		document.getElementById("pole9_1").disabled="disabled";
		document.getElementById("pole9_2").disabled="disabled";
	}
}
function showPoleIs10()
{
	if (document.getElementById("pole10").checked) {//disabled
		document.getElementById("pole10_1").disabled="";
	}
	else {
		document.getElementById("pole10_1").disabled="disabled";
	}
}

function rachet2()
{
	var D1 = 0;
	var D2 = 0;
	var NF = 0;
	if (document.getElementById("pole8").checked){
		D1 = resultD1();
		if (D1===false) return;
	}
	if (document.getElementById("pole9").checked){
		D2 = resultD2();
		if (!D2) return;
	}
	if (document.getElementById("pole10").checked){
		if ((document.getElementById("pole10_1").value).length==0)
		{
		showMessage("заполните поле ежемесячно уплачивать пенсионный взнос");
		document.getElementById("pole10_1").focus();
		return;
		}
		NF = resultNP ();
		if (!NF) return;
	}
	if (document.getElementById("pole8").checked || document.getElementById("pole9").checked || document.getElementById("pole10").checked) {
			document.getElementById("pole11_1").value = (Math.round(D1) + Math.round(D2) + Math.floor(NF));
			document.getElementById("pole11_2").value = Math.round(((Math.round(D1) + Math.round(D2) + Math.floor(NF))/pole3)*100);
			document.getElementById("pole12_1").value = Math.floor(srednemesPens + (Math.round(D1) + Math.round(D2) + Math.floor(NF)));
			document.getElementById("pole12_2").value = Math.round((srednemesPens + Math.round(D1) + Math.round(D2) + Math.floor(NF))/pole3*100);
	}
	else {
			document.getElementById("pole11_1").value = 0;
			document.getElementById("pole11_2").value = 0;
			document.getElementById("pole12_1").value = 0;
			document.getElementById("pole12_2").value = 0;
	}
	var infoProcentSBOPS = document.getElementById("infoProcentSBOPS");
	var pole10_1 = parseInt(document.getElementById("pole10_1").value);
	if (document.getElementById("pole10").checked && pole10_1>0) infoProcentSBOPS.innerHTML = "Расчеты произведены исходя из уровня доходности "+(dohodOPS*100)+"% годовых";
	else infoProcentSBOPS.innerHTML = "";
	if (pole10_1<0) infoProcentSBOPS.innerHTML = "";
	var comfort = document.getElementById("comfort");
	if (parseInt(document.getElementById("pole12_1").value)>parseInt(document.getElementById("pole6_2").value)) {
		comfort.innerHTML = "КОМФОРТНЫЙ УРОВЕНЬ ПЕНСИИ ДОСТИГНУТ! РЕАЛИЗОВАТЬ ВЫБРАННУЮ СТРАТЕГИЮ ВЫ  МОЖЕТЕ, ЗАКЛЮЧИВ ПЕНСИОННЫЙ ДОГОВОР В НПФ СБЕРБАНКА!";
		comfort.style.color="#009966";
	}
	else {
		if (document.getElementById("pole10").checked) comfort.innerHTML = "Не достигнут комфортный уровень пенсии! Рекомендуем увеличить размер уплачиваемого ежемесячного пенсионного взноса.";
		else if (document.getElementById("pole9").checked) comfort.innerHTML = "Не достигнут комфортный уровень пенсии! Рекомендуем повторить расчет с учетом заключения договора негосударственного пенсионного обеспечения.";
		else if (document.getElementById("pole8").checked) comfort.innerHTML = "Не достигнут комфортный уровень пенсии! Рекомендуем повторить расчет с учетом вступления в систему государственного софинансирования.";

		comfort.style.color="#cc0000";
		}

}
function mouseForm(boolz,event)
{
	if (boolz) {
		leftMouse=boolz;
		paintMouse=event.x?event.x:event.pageX;
		}
	else {
		leftMouse=boolz;
		startMoveForm=false;
		moveFormIdReturnStart = setInterval('MoveFormReturnStart()',10);
		}
}
function MoveFormReturnStart()
{
	if (moveFormId || moveFormIdBack) {
		clearTimeout(moveFormIdReturnStart);
		return;
	}

	if (razn>0) --razn;
	else ++razn;
	if (news){
		news.style.left=razn+"px";
	}
	else {
		if (razn=+0) document.getElementById("forma1").style.left=razn;
		else document.getElementById("forma1").style.left=razn+"px";
	}
	if (razn==0) {
		clearTimeout(moveFormIdReturnStart);
	}
}

function mouseMoveForm(event)
{
	removeSelection();
	var movemouse =event.x?event.x:event.pageX; 
	if (leftMouse)
	{
		razn = movemouse-paintMouse;
		if (razn>70 || razn<-70)
		{
			startMoveForm=true;
			if (razn<-70) {
				leftMouse=false;
				if (news) {
					if (news.id=="forma1")
					{
						rachet1();
					}
					if (news.id=="forma2")
					{
						showForm3();
					}
				}
				else rachet1();
			}
			if (razn>70) {
				leftMouse=false;
				if (news) {
					if (news.id=="forma2")
					{
						nextFormBack("forma2","forma1")
					}
					if (news.id=="forma3")
					{
						nextFormBack("forma3","forma2")
					}
				}
			}
		}
		else {
			if (news){
				news.style.left=razn+"px";
			}
			else {
				document.getElementById("forma1").style.left=razn+"px";
			}
		}
	}
}
function removeSelection(){
	if (navigator.userAgent.toLowerCase().indexOf('chrome') == -1) {
		if (window.getSelection) { window.getSelection().removeAllRanges(); }
		else if (document.selection && document.selection.clear)
			document.selection.clear();
	}
}
function tectInputData(event) {
//alert (window.event.keyCode);
	var code = (event.charCode) ? event.charCode : event.keyCode;
	if ((code<96 && code>57) || code>105||code==9) {return false;}
	
//	else return false;
}
function nextPole (id,idNext,event)
{
	if (id.value.length==id.maxLength) {
		if(!document.all) //если не IE
     		{
var code = (event.charCode) ? event.charCode : event.keyCode;
 
//alert (code);
		   if ((code<96 && code>57) || code>105) {
		       id.focus();  
		       id.value='';
		   }
		   else
   		       document.getElementById(idNext).focus();  
   		}
        	else
       		{
            	    document.getElementById(idNext).select(); 
        	}
	}
}
function testKetTab(event) {
	if((event.charCode) ? event.charCode : event.keyCode==9) return false;
}
window.onload = function(){
    document.getElementById("pole3").onkeydown = function(){return tectInputData(event)};
    //document.getElementById("pole3").onkeypress = function(){return tectInputData(event)};
    document.getElementById("pole6_2").onkeydown = function(){return testKetTab(event)};
    //document.getElementById("pole6_2").onkeypress = function(){return testKetTab(event)};
}

