
// =======================
// ==== Charts front page
// =======================

var lastTblImg=0;
var lastChartImg=0;

var lastPeriod=12;
var isLastPeriodInDays=false;

function SwitchTopTable(i)
{
	var cnt=0;
	document.getElementById("tblHdr"+lastTblImg).src=ntblHdrs[lastTblImg];
	document.getElementById("tblHdr"+i).src=tblHdrs[i];
	document.getElementById("topstbl"+lastTblImg).style.display="none";
	document.getElementById("topstbl"+i).style.display="block";

	if(i==0) {lastPeriod=12; isLastPeriodInDays=false;}
	else if(i==1) {lastPeriod=6; isLastPeriodInDays=false;}
	else if(i==2) {lastPeriod=1; isLastPeriodInDays=false;}
	else if(i==3) {lastPeriod=7; isLastPeriodInDays=true;}
	lastTblImg=i;
	document.getElementById("clcChart").src=BuildChartSrc(lastChartImg);
}

function SwitchFrontChart(i)
{
	document.getElementById("clcChart").src=BuildChartSrc(i);
	document.getElementById("clcHdr"+lastChartImg).src=nchartHdrs[lastChartImg];
	document.getElementById("clcHdr"+i).src=chartHdrs[i];
	lastChartImg=i;
}

function BuildChartSrc(i)
{
	var valDateFrom=new Date();
	var valDateTo=new Date();
	var monthFrom, yearFrom, dateFrom;
	var monthTo, yearTo, dateTo;

	monthTo=valDateTo.getMonth();
	yearTo=valDateTo.getYear();
	if(uaType==UA_GECKO) yearTo=yearTo+1900;
	dateTo=valDateTo.getDate()-1;

	valDateTo=new Date(yearTo, monthTo, dateTo);

	monthTo=valDateTo.getMonth();
	yearTo=valDateTo.getYear();
	if(uaType==UA_GECKO) yearTo=yearTo+1900;
	dateTo=valDateTo.getDate();

	yearFrom=valDateTo.getYear();
	if(uaType==UA_GECKO) yearFrom=yearFrom+1900;

	if(!isLastPeriodInDays) {monthFrom=monthTo-lastPeriod;} else {monthFrom=monthTo;}	
	if(isLastPeriodInDays) {dateFrom=dateTo-lastPeriod;} else {dateFrom=dateTo;}
	valDateTo=new Date(yearFrom, monthFrom, dateFrom);
	monthFrom=valDateTo.getMonth();
	yearFrom=valDateTo.getYear();
	if(uaType==UA_GECKO) yearFrom=yearFrom+1900;
	dateFrom=valDateTo.getDate();

	var cache
	cache=(i+1)*10+1+lastTblImg

	if(i==0) return "/Chart-front.asp?ch="+cache+"&num=1&df="+dateFrom+"."+(monthFrom+1)+"."+yearFrom+
	"&dt="+dateTo+"."+(monthTo+1)+"."+yearTo+"&c=rur&clc=0&i0=13850&s0=2";
	if(i==1) return "/Chart-front.asp?ch="+cache+"&num=1&df="+dateFrom+"."+(monthFrom+1)+"."+yearFrom+
	"&dt="+dateTo+"."+(monthTo+1)+"."+yearTo+"&c=rur&clc=0&i0=15475&s0=3";
	if(i==2) return "/Chart-front.asp?ch="+cache+"&num=2&df="+dateFrom+"."+(monthFrom+1)+"."+yearFrom+
	"&dt="+dateTo+"."+(monthTo+1)+"."+yearTo+"&c=rur&clc=0&i0=12&s0=0&i1=15&s1=0"
	if(i==3) return "/Chart-front.asp?ch="+cache+"&num=1&df="+dateFrom+"."+(monthFrom+1)+"."+yearFrom+
	"&dt="+dateTo+"."+(monthTo+1)+"."+yearTo+"&c=rur&clc=0&i0=1&s0=4"
}


// =======================
// ==== Charts calc
// =======================

function OpenChartPage(width, height, heightInc)
{
	var i, url, x, y, optStr, winWidth, winHeight;
	var numCh; numCh=new Number(document.getElementById("numCh").value).valueOf();
	winWidth=width+40;
	winHeight=height+150+heightInc*numCh;
	
	url="/ChartPage.asp?w="+width+"&h="+height
	for(i=0;i<=numCh;i++) if(document.getElementById("ch"+i).checked==true) url=url+"&ch"+i+"=on";
	
	OpenNewPage(url, winWidth, winHeight, false);
}

// =======================
// ==== Loan Calculator
// =======================

function SwitchMiniLCalc(tbl)
{
	if(tbl==0)
	{
		document.getElementById("lcalcmain").style.display="block";
		document.getElementById("lcalcloans").style.display="none";
		UpdateControls(0);
	}
	else
	{
		document.getElementById("lcalcmain").style.display="none";
		document.getElementById("lcalcloans").style.display="block";
		UpdateControlsLoans(0);
	}
}

function SubmitLCalcForm(url)
{
	//if(priceId>0) document.getElementById("priceId").value=priceId;
	document.getElementById("lCalcForm").action=url;
	document.getElementById("lCalcForm").submit();
}

function UpdateControlsLoans(curTerm)
{
	SetTermValues(curTerm, "termloans", "loanTypeLoans");
}

function UpdateControls(curTerm)
{
	SetTermValues(curTerm, "termmain", "loanTypeMain");
	SetParamName();	
}

function SetParamName()
{
	var paramType=document.getElementById("paramType");
	var paramName=document.getElementById("paramName");
	var loanType=document.getElementById("loanTypeMain");
	if(paramType.selectedIndex==0)
	{
		switch(loanType.selectedIndex)
		{
			case 0:
				paramName.innerHTML="Введите стоимость квартиры";
				break;
			case 1:
				paramName.innerHTML="Введите стоимость автомобиля";
				break;
			default:
				paramName.innerHTML="Введите сумму приобретения";
				break;
		}
	}
	else if(paramType.selectedIndex==1) paramName.innerHTML="Введите величину кредита";
	else if(paramType.selectedIndex==2) paramName.innerHTML="Введите желаемую сумму ежемесячных выплат";
	else if(paramType.selectedIndex==3) paramName.innerHTML="Введите сумму Вашего месячного дохода";
	else if(paramType.selectedIndex==4) paramName.innerHTML="Введите желаемую сумму первого взноса";
}

function SetTermValues(curTerm, termname, loanTypeName)
{
	var loanType=document.getElementById(loanTypeName);
	var term=document.getElementById(termname);
	var labels, values
	
	if(loanType.selectedIndex==0)
	{
		values = new Array(3,5,10,15);
		labels = new Array("3 года","5 лет","10 лет","15 лет")		
	}
	else if(loanType.selectedIndex==1)
	{
		values = new Array(1,2,3);
		labels = new Array("1 год","2 года","3 года");
	}
	for(i=0; i<term.options.length; i++)
	{
		term.remove(i);
		i--;
	}
	for(i=0; i<values.length; i++)
	{
		opt=document.createElement("option");
		
		if(uaType==UA_GECKO) term.add(opt, null);
		else term.options.add(opt);
				
		opt.value=values[i];
				
		if(uaType==UA_GECKO) opt.text=labels[i];
		else opt.innerText=labels[i];
		
		if(curTerm>0 && opt.value==curTerm)
		{
			if(uaType==UA_GECKO) opt.defaultSelected=true;
			else opt.selected=true;
		}
	}
}

// =======================
// ==== Calculator itself!
// =======================

var isDateEdited=false;
//==12.02.04 - Lena Kruglova: no auto date change
function OnDateEdit() { /*isDateEdited=true;*/ }
function OnItemChange() { /*UpdateDateControls("From", "To");*/ }
function OnCurrencyChange() { /*UpdateDateControls("From", "To");*/ }

function UpdateDateControls(prefixFrom, prefixTo)
{
	var day, month, year, dateUser, date;
	var dateStock, itemIdStock, sectorIdStock
	var dateCurr, itemIdCurr, sectorIdCurr

	if(GetSelValue("curr")=="rur") {itemIdCurr=1}
	if(GetSelValue("curr")=="usd") {itemIdCurr=12}
	if(GetSelValue("curr")=="eur") {itemIdCurr=15}
	sectorIdCurr=0

	itemIdStock=new Number(GetSelValue("itemSel")).valueOf();
	sectorIdStock=new Number(GetSelValue("sectorSel")).valueOf();

	dateCurr=dates[sectorIdCurr][itemIdCurr];
	dateStock=dates[sectorIdStock][itemIdStock];
	if(isDateEdited)
	{
		dateUser=new Date(document.getElementById("year"+prefixFrom).value,
						  document.getElementById("month"+prefixFrom).value-1,
						  document.getElementById("day"+prefixFrom).value);
		date=new Date(Math.max(dateCurr, dateStock, dateUser));		
		if(date>dateUser) isDateEdited=false;		
	}
	else
	{
		date=new Date(Math.max(dateCurr, dateStock));
	}
	
	if( date.getDate()<10 ) day="0"+date.getDate(); else day=date.getDate();
	if( date.getMonth()+1 < 10 ) month="0"+(date.getMonth()+1); else month=(date.getMonth()+1);
	year=date.getFullYear();
	document.getElementById("day"+prefixFrom).value=day;
	document.getElementById("month"+prefixFrom).value=month;
	document.getElementById("year"+prefixFrom).value=year;
	eval("minDate"+prefixFrom+"=\""+day+"."+month+"."+year+"\";");
	eval("minDate"+prefixTo+"=\""+day+"."+month+"."+year+"\";");	
}

//item id is passed to tune currently selected item by the way
function PreloadSector(itemId, isForm)
{
	var i, itemIds, opt, prevOpt=null, itemSelLen, j, sector;
	for(i=0; i<document.getElementById("itemSel").options.length; i++)
	{
		document.getElementById("itemSel").remove(i);
		i--;
	}
	sector = sectors[new Number(GetSelValue("sectorSel")).valueOf()]	
	
	for(i=0; i<sector.length; i++)
	{
		opt=document.createElement("option");
		
		if(uaType==UA_GECKO) document.getElementById("itemSel").add(opt, null);
		else document.getElementById("itemSel").options.add(opt);
		
		opt.value=sector[i][0];		
		if(uaType==UA_GECKO) opt.text=sector[i][1];
		else opt.innerText=sector[i][1];
		
		if(itemId>0 && opt.value==itemId)
		{
			if(uaType==UA_GECKO) opt.defaultSelected=true;
			else opt.selected=true;
		}
	}
	if(!isForm) OnItemChange();
}

function SubmitCalcForm(formType)
{
	if(formType==1) document.getElementById("calcForm").action=formAction1;
	if(formType==2) document.getElementById("calcForm").action=formAction2;
	document.getElementById("calcForm").submit();
}

function SubmitEmailForm(formType)
{
	if(formType==5) document.getElementById("EmailForm").action=formAction5;
	document.getElementById("EmailForm").submit();
}

function CheckAllHistory(control)
{
	var i;
	var numCh; numCh=new Number(document.getElementById("numCh").value).valueOf();
	for(i=0;i<=numCh;i++)
	{
		if(control.checked==true) document.getElementById("ch"+i).checked=true;
		else document.getElementById("ch"+i).checked=false;
	}
}

function OpenCalendarWindow(url, minDate, maxDate, prefix, width, height)
{
	urlStr = url+"?defDate="+
	(document.getElementById("day"+prefix).value+"."+ 
		document.getElementById("month"+prefix).value+"."+ 
	document.getElementById("year"+prefix).value)+
	"&minDate="+minDate+
	"&maxDate="+maxDate+
	"&prefix="+prefix;	
	
	OpenNewPage(urlStr, width, height,false)
}

function ShowHelp(id, isClose)
{
	if(isClose==true)
	{
		document.getElementById(id).style.display="none";
		lastOpenHelp="";
	}
	else
	{
		if(lastOpenHelp!="") document.getElementById(lastOpenHelp).style.display="none";
		document.getElementById(id).style.display="block";
		lastOpenHelp=id;
	}
}

function OpenHelpPageV2(type, itm, curr, instrType, calcType)
{
	helpRef="?type="+type+"&itm="+itm+"&c="+curr+"&it="+instrType+"&ct="+calcType;
	OpenNewPage("/Help.asp"+helpRef,300,300,true);
}

// =======================
// ==== Currency calc
// =======================

function SetCCalcControls()
{
	SetSelValue("currFrom",840);
	SetSelValue("currTo",0);
}

function SetSelValue2(id,val)
{
	var sel = document.getElementById(id);
	for (i=0; i<sel.length; i++)
	{	if (sel.options[i].value == val)
		{	
//			alert (sel.options[i].value);
			sel.options[i].selected = true;
		}
	}
}

function DoCCalc()
{
	var currFrom=GetSelValue("currFrom");
	var currTo=GetSelValue("currTo");
	var baseamtFrom=cbrates[currFrom][0];
	var baseamtTo=cbrates[currTo][0];
	var rateFrom=cbrates[currFrom][1];
	var rateTo=cbrates[currTo][1];
	var amt=document.getElementById("amt").value;
	var tax=GetSelValue("tax");
	var result="", rate="";
	var codeFrom=cbcodes[currFrom][0];
	var codeTo=cbcodes[currTo][0];
	
	if(!isNaN(amt) && amt>0)
	{
		if(isNaN(tax) || tax==0) tax=0;
		result=(amt*rateFrom/baseamtFrom)*(baseamtTo/rateTo)*(1-(tax/100));
		result=Math.round(result*Math.pow(10,2))/Math.pow(10,2);
		rate=(rateFrom/baseamtFrom)*(baseamtTo/rateTo);
		rate=Math.round(rate*Math.pow(10,2))/Math.pow(10,2);

		amt = amt - 0;
		v1 = amt.triads2(' ', '');
		v2 = result.triads2(' ', '');

//		document.getElementById("result").innerHTML="<h2 align=center>Результат расчета</h2><br><table cellspacing='0' cellpadding='0' border='0' width='100%' bgcolor='#EFEFEF'><tr><td width='15%' style='padding:5px 5px 2px 5px;'>Результат</td><td style='padding:5px 5px 2px 5px;'><b>"+result+"</b></td></tr><tr><td style='padding:0px 5px 5px 5px;'>Курс</td><td style='padding:0px 5px 5px 5px;'><b>"+rate+"</b></td></tr></table>";
		document.getElementById("result").innerHTML="<h2 align=center>Результат расчета</h2><br><table cellspacing='0' cellpadding='0' border='0' width='100%' bgcolor='#EFEFEF'><tr><td align='center' width='100%' style='padding: 15px 15px 15px 15px;'>	<h2>" + v1 + " " + codeFrom + " = " + v2 + " " + codeTo + "</h2></td></tr></table>";
		
		//document.getElementById("rate").innerText=rate;
		
//		document.getElementById("rate").style.display='none';
//		document.getElementById("forex").style.display='block';
		
	}
}


// =======================
// ==== Charts for TA
// =======================

function OpenTAPage(id)
{
	var win;
	win = window.open("/charts/main/default.asp?id="+id, 'win2');
	win.focus();
}

// ===========================
// ==== News Comments & Images
// ===========================

function OpenNewsImage(url, width, height)
{
	OpenNewPage(url, width+20, height+80, false);
}

function ReplyTo(username, id)
{
	if(id>0)
	{
		document.getElementById("replyTo").value=id;
		document.getElementById("replyToAll").disabled=false;
		if (navigator.appName == "Opera" || navigator.appName == "Netscape")
			document.getElementById("txtComment").value="Для "+username+": "+document.getElementById("txtComment").value;
		else
			document.getElementById("txtComment").innerHTML="Для "+username+": "+document.getElementById("txtComment").innerHTML;	
	}
	else
	{
		document.getElementById("replyTo").value=0;
		document.getElementById("replyToAll").disabled=true;
	}
}

// ====================
// ==== Discounts-forms
// ====================

function UpdateDiscountAmtControl()
{
	if(GetSelValue("discountType")=="1") document.getElementById("discountVal").disabled=false;
	else document.getElementById("discountVal").disabled=true;
}

// ====================
// ==== Rantier calc
// ====================

function UpdateRiskBar()
{	
	var risk, investTo;
	investTo = new Number(GetSelValue("investTo")).valueOf();
	document.getElementById("rcRiskBar").style.width=investTo * 4;
	document.getElementById("rcRiskBarTd").style.width=investTo * 4 + 2;
	document.getElementById("rcRiskBar").style.height="20";
	if(investTo==5)
	{
		risk="низкий";
		document.getElementById("rcRiskBar").style.backgroundColor = "00FF00";
	}
	else if(investTo==12)
	{
		risk="средний";
		document.getElementById("rcRiskBar").style.backgroundColor = "FFFF00";
	}
	else if(investTo>12)
	{
		risk="высокий";
		document.getElementById("rcRiskBar").style.backgroundColor = "FF0000";
	}
	document.getElementById("rcRiskBarText").innerHTML="&nbsp;" + risk + "&nbsp;";
}

function CheckRantierExt()
{
	var term, termType, curr, startSum, monthlySavings, monthlySavingsType, perIncome, perIncomeType, infl, inflType
	var savings, resultStr, q, q1, t;
	var result, result1, result2, income;
	var iresult, iresult2, iincome;

	term = new Number(document.getElementById("term").value).valueOf();
	termType = new Number(GetSelValue("termType")).valueOf();
	curr = document.getElementById("curr").value;
	startSum = new Number(document.getElementById("startSum").value).valueOf();
	monthlySavings = new Number(document.getElementById("monthlySavings").value).valueOf();
	monthlySavingsType = new Number(GetSelValue("monthlySavingsType")).valueOf();
	perIncome = new Number(document.getElementById("perIncome").value).valueOf();
	perIncomeType = new Number(GetSelValue("perIncomeType")).valueOf();
	infl = new Number(document.getElementById("infl").value).valueOf();
	inflType = new Number(GetSelValue("inflType")).valueOf();

	if(isNaN(term) || term<=0 || isNaN(termType) || (termType!=1 && termType!=12))
	{
		alert("Не указан срок накопления");
		return false;
	}
	else if(isNaN(startSum) || startSum<=0)
	{
		alert("Не указана начальная сумма");
		return false;
	}
	else if(isNaN(monthlySavings)  || isNaN(monthlySavingsType) || (monthlySavingsType!=1 && monthlySavingsType!=12))
	{
		alert("Не указан размер месячных накоплений");
		return false;
	}
	else if(isNaN(perIncome) || perIncome<=0 || isNaN(perIncomeType) || (perIncomeType!=1 && perIncomeType!=12))
	{
		alert("Не указан процент дохода");
		return false;
	}
	else if(isNaN(infl) || isNaN(inflType) || (inflType!=1 && inflType!=12))
	{
		alert("Не указан размер инфляции");
		return false;
	}
	else
		return true;
}

function DoRantierExt()
{
	var term, termType, curr, startSum, monthlySavings, monthlySavingsType, perIncome, perIncomeType, infl, inflType
	var savings, resultStr, q, q1, t;
	var result, result1, result2, income;
	var iresult, iresult2, iincome;

	term = new Number(document.getElementById("term").value).valueOf();
	termType = new Number(GetSelValue("termType")).valueOf();
	curr = document.getElementById("curr").value;
	startSum = new Number(document.getElementById("startSum").value).valueOf();
	monthlySavings = new Number(document.getElementById("monthlySavings").value).valueOf();
	monthlySavingsType = new Number(GetSelValue("monthlySavingsType")).valueOf();
	perIncome = new Number(document.getElementById("perIncome").value).valueOf();
	perIncomeType = new Number(GetSelValue("perIncomeType")).valueOf();
	infl = new Number(document.getElementById("infl").value).valueOf();
	inflType = new Number(GetSelValue("inflType")).valueOf();

	if(isNaN(term) || term<=0 || isNaN(termType) || (termType!=1 && termType!=12))
		alert("Не указан срок накопления");
	else if(isNaN(startSum) || startSum<=0)
		alert("Не указана начальная сумма");
	else if(isNaN(monthlySavings)  || isNaN(monthlySavingsType) || (monthlySavingsType!=1 && monthlySavingsType!=12))
		alert("Не указан размер месячных накоплений");
	else if(isNaN(perIncome) || perIncome<=0 || isNaN(perIncomeType) || (perIncomeType!=1 && perIncomeType!=12))
		alert("Не указан процент дохода");
	else if(isNaN(infl) || isNaN(inflType) || (inflType!=1 && inflType!=12))
		alert("Не указан размер инфляции");
	else
	{
		if(perIncomeType==12) {q=Math.exp(Math.log(1+0.01*perIncome)/12)-1;} else {q=perIncome*0.01;}
		if(inflType==12) {q1=q-(Math.exp(Math.log(1+0.01*infl)/12)-1);} else {q1=q-infl*0.01;}
			t=term*termType;
			savings=monthlySavings/monthlySavingsType;
			
			result=Math.pow((1+q),t)*startSum + savings*(Math.pow(1+q,t)-1)/q
			iresult=Math.pow((1+q1),t)*startSum + savings*(Math.pow(1+q1,t)-1)/q1
			
			result1=startSum+t*savings;
			if(q1==0) iresult=result1;
			result2=result-result1;
			iresult2=iresult-result1;
			income=result*q;
			iincome=iresult*q1;
			
			resultStr="<b>Срок накопления:</b>&nbsp;"+Math.round(term*Math.pow(10,2))/Math.pow(10,2);
			if(termType==1) {resultStr=resultStr+" месяцев<br>";} else {resultStr=resultStr+" лет<br>";}
			resultStr=resultStr+"<b>Валюта:</b>&nbsp;"+curr+"<br><b>Начальная сумма:</b>&nbsp;"+Math.round(startSum*Math.pow(10,2))/Math.pow(10,2)+"<br><b>Взнос в ";
			if(monthlySavingsType==1) {resultStr=resultStr+" месяц";} else {resultStr=resultStr+" год";}
			resultStr=resultStr+":</b>&nbsp;"+Math.round(monthlySavings*Math.pow(10,2))/Math.pow(10,2)+"<br><b>Доходность в ";
			if(perIncomeType==1) {resultStr=resultStr+" месяц";} else {resultStr=resultStr+" год";}
			resultStr=resultStr+":</b>&nbsp;"+Math.round(perIncome*Math.pow(10,2))/Math.pow(10,2)+"%<br><b>Размер инфляции в ";
			if(inflType==1) {resultStr=resultStr+" месяц";} else {resultStr=resultStr+" год";}
			resultStr=resultStr+":</b>&nbsp;"+Math.round(infl*Math.pow(10,2))/Math.pow(10,2)+"%<br><br>";
			resultStr=resultStr+"<b>Накопленная сумма к отчетному периоду:</b>&nbsp;"+Math.round(result*Math.pow(10,2))/Math.pow(10,2)+
			"<br><b>Из нее накоплено по процентам:</b>&nbsp;"+Math.round(result2*Math.pow(10,2))/Math.pow(10,2)+
			"<br><b>Чистые сбережения:</b>&nbsp;"+Math.round(result1*Math.pow(10,2))/Math.pow(10,2)+
			"<br><b>Месячный доход с накопленной суммы:</b>&nbsp;"+Math.round(income*Math.pow(10,2))/Math.pow(10,2)+"<br><br>"+
			"с поправкой на инфляцию<br>"+
			"<b>Накопленная сумма к отчетному периоду:</b>&nbsp;"+Math.round(iresult*Math.pow(10,2))/Math.pow(10,2)+
			"<br><b>Из нее накоплено по процентам:</b>&nbsp;"+Math.round(iresult2*Math.pow(10,2))/Math.pow(10,2)+
			"<br><b>Чистые сбережения:</b>&nbsp;"+Math.round(result1*Math.pow(10,2))/Math.pow(10,2)+
			"<br><b>Месячный доход с накопленной суммы:</b>&nbsp;"+Math.round(iincome*Math.pow(10,2))/Math.pow(10,2)+"<br>";

			resultStr="<table border=0 align=center>"+
			"<tr><td><b>Накопленная сумма к отчетному периоду:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(result*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr>"+
			"<tr><td><b>Из нее накоплено по процентам:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(result2*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr>"+
			"<tr><td><b>Чистые сбережения:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(result1*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr>"+
			"<tr><td><b>Месячный доход с накопленной суммы:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(income*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr>"+
			"<tr><td colspan=2><br><center><font size='+1' color='#ff0000'>с поправкой на инфляцию</font></center><br></td></tr>"+"</td></tr>"+
			"<tr><td><b>Накопленная сумма к отчетному периоду:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(iresult*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr>"+
			"<tr><td><b>Из нее накоплено по процентам:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(iresult2*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr>"+
			"<tr><td><b>Чистые сбережения:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(result1*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr>"+
			"<tr><td><b>Месячный доход с накопленной суммы:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align=right>"+(Math.round(iincome*Math.pow(10,0))/Math.pow(10,0)).triads2(' ', '')+"</td></tr></table>";

//			document.getElementById("resultStr").innerHTML=resultStr;
			document.getElementById("resultStr").innerHTML="<h2 align=center>Результат расчета</h2><br><table cellspacing='0' cellpadding='0' border='0' width='100%' bgcolor='#EFEFEF'><tr><td width='100%' style='padding:5px 5px 5px 5px;'>"+resultStr+"</td></tr></table>";
			
//			document.getElementById("RantierAdv").style.display="block";
	}
}

function CheckRantierSimple(formType)
{
	var plannedSum, startSum, monthlySavings, investTo, investToLabel, formType;
	var plannedSumPerMonth, result, resultStr, q, t, t0, t1;
	plannedSum = new Number(document.getElementById("plannedSum").value).valueOf();
	startSum = new Number(document.getElementById("startSum").value).valueOf();
	monthlySavings = new Number(document.getElementById("monthlySavings").value).valueOf();
	investTo = new Number(GetSelValue("investTo")).valueOf();
	investToLabel = GetSelLabel("investTo");
	if(isNaN(plannedSum) || plannedSum<=0)
	{
		alert("Не указана требуемая сумма.");
		return false;
	}
	else if(isNaN(investTo) || investTo<=0)
	{
		alert("Не указан инструмент накопления.");
		return false;
	}
	else
		return true;
}


function DoRantierSimple(formType)
{
	var plannedSum, startSum, monthlySavings, investTo, investToLabel, formType;
	var plannedSumPerMonth, result, resultStr, q, t, t0, t1;
	plannedSum = new Number(document.getElementById("plannedSum").value).valueOf();
	startSum = new Number(document.getElementById("startSum").value).valueOf();
	monthlySavings = new Number(document.getElementById("monthlySavings").value).valueOf();
	investTo = new Number(GetSelValue("investTo")).valueOf();
	investToLabel = GetSelLabel("investTo");
	if(isNaN(plannedSum) || plannedSum<=0)
		alert("Не указана требуемая сумма.");
	else if(isNaN(investTo) || investTo<=0)
		alert("Не указан инструмент накопления.");
	else
	{
		if(isNaN(startSum) || new String(document.getElementById("startSum").value).length==0)
		{
			if(formType==0) {startSum=0.1*plannedSum;} else {startSum=6*plannedSum;}
			document.getElementById("startSum").value=Math.round(startSum*Math.pow(10,2))/Math.pow(10,2);
		}
		if(isNaN(monthlySavings) || new String(document.getElementById("monthlySavings").value).length==0)
		{
			if(formType==0) {monthlySavings=0.01*plannedSum;} else {monthlySavings=plannedSum;}
			document.getElementById("monthlySavings").value=Math.round(monthlySavings*Math.pow(10,2))/Math.pow(10,2);
		}
		q=Math.exp(Math.log(1+0.01*investTo)/12)-1;
		if(formType==0)
			plannedSumPerMonth=plannedSum*q;
		else
			plannedSumPerMonth=plannedSum;

		t=Math.log((plannedSumPerMonth+monthlySavings)/(startSum*q+monthlySavings))/Math.log(1+q);

		if(Math.floor(t)!=t) t=Math.floor(t)+1;

		plannedSum = Math.pow(1+q,t)*startSum + monthlySavings*((Math.pow(1+q,t)-1)/q)
		if(formType==1) plannedSum=plannedSum*q
		t1=t % 12;
		t0=(t-t1)/12;

		resultStr="Если у Вас уже есть "+Math.round(startSum*Math.pow(10,2))/Math.pow(10,2)+"$ и Вы можете откладывать "+
		Math.round(monthlySavings*Math.pow(10,2))/Math.pow(10,2)+"$ ежемесячно,";

		if(formType==0)
		{
			resultStr=resultStr+" Вы сможете накопить "+Math.round(plannedSum*Math.pow(10,2))/Math.pow(10,2)+"$ за";
		}
		else
		{
			if(Math.round(t1)<=0 && Math.round(t0)<=0) {resultStr=resultStr+" Вы уже сможете";} else {resultStr=resultStr+" Вы сможете через";}
		}

		resultStr=resultStr+"<b>"
		if(Math.round(t0)>0) resultStr=resultStr+" "+Math.round(t0)+" лет";
		if(Math.round(t0)>0 && Math.round(t1)>0) resultStr=resultStr+" и";
		if(Math.round(t1)>0) resultStr=resultStr+" "+Math.round(t1)+" месяцев";
		resultStr=resultStr+"</b>"

		if(formType==0)
		{
			resultStr=resultStr+" при условии что вы используете для накопления "+investToLabel+".";
		}
		else
		{
			resultStr=resultStr+" получать ежемесячный процентный доход в размере "+Math.round(plannedSum*Math.pow(10,2))/Math.pow(10,2)+
			"$, при условии, что Вы используете для накопления "+investToLabel+".";
		}


		resultStr='';
		if(Math.round(t0)>0) resultStr=resultStr+" "+Math.round(t0)+" "+getYearDesc(Math.round(t0)); //" лет";
		if(Math.round(t0)>0 && Math.round(t1)>0) resultStr=resultStr+" и ";
		if(Math.round(t1)>0) resultStr=resultStr+" "+Math.round(t1)+" "+getMonthDesc(Math.round(t1)); //" месяцев";
		resultStr=resultStr+" = "+(Math.round(plannedSum*Math.pow(10,2))/Math.pow(10,2)).triads(' ', '.')+" руб.";
		if(formType==1)
			resultStr=resultStr+"/мес.";
		

		document.getElementById("resultStr").innerHTML="<h2 align=center>Результат расчета</h2><br><table cellspacing='0' cellpadding='0' border='0' width='100%' bgcolor='#EFEFEF'><tr><td width='100%' style='padding:15px 15px 15px 15px;' align=center><h2>"+resultStr+"</h2></td></tr></table>";
//		document.getElementById("RantierAdv").style.display="block";
	}
}

function getMonthDesc(num)
{	
	if (num == 0)	
		return 'месяцев';
	if (num == 1)	
		return 'месяц';
	if (num >= 2 && num <= 4)	
		return 'месяца';
	if (num >= 5 && num <= 12)	
		return 'месяцев';
}
function getYearDesc(num)
{	
	if (num == 0)	
		return 'лет';
	if (num == 1)	
		return 'год';
	if (num >= 2 && num <= 4)	
		return 'года';
	if (num >= 5 && num <= 20)	
		return 'лет';
	var str
	var n
	str = "" + num;
	n   = str.substring(str.length-1, str.length);
	n   = n - 0
	if (n == 0)	
		return 'лет';
	if (n == 1)	
		return 'год';
	if (n >= 2 && n <= 4)	
		return 'года';
	if (n >= 5 && n <= 9)	
		return 'лет';
}



function add_to_favorites(url, name) {
	if (navigator.userAgent.indexOf('MSIE') != -1) {
		window.external.AddFavorite(url, name);
	} else {
		open_window('/add_to_favorites.html', 400, 250);
	}
}

function set_home_page(url, obj) {
	if (navigator.userAgent.indexOf('MSIE') != -1) {
		obj.style.behavior='url(#default#homepage)';
		obj.setHomePage(url);
	} else {
		open_window('/set_home_page.html', 400, 250);
	}
}

function SetDateInURL (URL) {
	var rqstDate; 
	var filter;
	var day, month, year;
	
	rqstDate = document.getElementById("txtGoToDate").value;
	filter = /^\d{2}-\d{2}-\d{4}$/i;
		
	if (filter.test(rqstDate) == false){
		alert('Неверный формат даты');
		return false;
	}
	else {
		URL = URL.replace ("default.asp","");

		day = rqstDate.substr(0,2)
		day = '00'+parseFloat(day).toString(16)

		month = rqstDate.substr(3,2)
		month = '00'+parseFloat(month).toString(16)

		year = rqstDate.substr(6,4)
		year = '000'+parseFloat(year).toString(16)

		URL = URL+"rqdate"+day.slice(-2)+""+month.slice(-2)+""+year.slice(-3)+"/";
		document.getElementById("frmGoToDate").action = URL
		document.getElementById("frmGoToDate").submit();
		return true;
	}
	return false;
}



function reloadCAPTCHA() {
	document.getElementById('CAPTCHA').src='CAPTCHA/CAPTCHA_image.asp?'+Date();
}



function checkMaxInput(elementId, maxLen) {
	var element = document.getElementById(elementId);
	if (element.value.length > maxLen) 
		element.value = element.value.substring(0, maxLen); 
	else document.getElementById('remLen').value = maxLen - element.value.length; 
}



var prevStockId=new Array();
prevStockId[1]=0;
prevStockId[2]=0;
var prevMarket=new Array();
prevMarket[1]=0;
prevMarket[2]=0;

function SwapChartImage(chartNum, stockId, market)
{
	if (!(stockId==prevStockId[chartNum] && market==prevMarket[chartNum]))
	{
	document.getElementById("chart"+chartNum).src="http://blotter.ru/charts/BlotterChart"+stockId+"("+market+").gif"
	document.getElementById("chartHref"+stockId+"("+market+")").style.color="#fa741c";
	if(prevStockId[chartNum]>0 && prevMarket[chartNum]>0)
		document.getElementById("chartHref"+prevStockId[chartNum]+"("+prevMarket[chartNum]+")").style.color="black";	
	prevStockId[chartNum]=stockId;
	prevMarket[chartNum]=market;
	}
}


function DoVote(url){
	document.location.href=url
}

//	=============================================

function body_load()
{ 	
	if (document.getElementById("Partners"))
		document.getElementById("Partners").innerHTML = '<center><iframe id="Partners" scrolling="No" src="Partners.html" frameborder="0" height="180" width="800" hspace="0" vspace="0"></iframe></center>';
}

function clear_text_win()
{ 	
	str = window.location.href;

//	#forum
	str = str.replace('#forum','');
	
	num = str.indexOf('?');
	if (num > 0)
		str += '&is_print=1';
	else
		str += '?is_print=1';

	window.location = str;
}

function mailAlert()
{
//	created	by burmm@mail.ru

	if (navigator.appName == 'Microsoft Internet Explorer')
	{
		if (event.ctrlKey == true && event.keyCode == 13)
		{
			range = document.selection.createRange();
			str1 = "Ошибка на странице : " + document.title + encodeURI("\r\n\r\n");
			str = str1 + "URL страницы : " + window.location.href + encodeURI("\r\n\r\n");
			str += "Проблемный текст: " + range.text;
	
			reg = /<([^>]*)>/gi;
	//		reg = /<.*?>/gi;
			str = str.replace(reg," ");
			
			reg = /\r/gi;
			str = str.replace(reg," ");
			reg = /\n/gi;
			str = str.replace(reg," ");
	
			reg = /"/gi;
			str = str.replace(reg,encodeURI('"'));
			str1 = str1.replace(reg,encodeURI('"'));
			reg = /'/gi;
			str = str.replace(reg,encodeURI("'"));
			str1 = str1.replace(reg,encodeURI("'"));
	
			reg = /&nbsp;/gi;
			str = str.replace(reg," ");
			reg = /&amp;/gi;
			str = str.replace(reg," ");
			reg = /&quot;/gi;
			str = str.replace(reg,encodeURI('"'));
			str1 = str1.replace(reg,encodeURI('"'));
			reg = /&lt;/gi;
			str = str.replace(reg,encodeURI("<"));
			str1 = str1.replace(reg,encodeURI("<"));
			reg = /&gt;/gi;
			str = str.replace(reg,encodeURI(">"));
			str1 = str1.replace(reg,encodeURI(">"));
			reg = /&copy;/gi;
			str = str.replace(reg," ");
			reg = /&laquo;/gi;
			str = str.replace(reg," ");		
			reg = /&raquo;/gi;
			str = str.replace(reg," ");		
			reg = /&/gi;
			str = str.replace(reg," ");
			str1 = str1.replace(reg," ");
	
	//		document.all("txtTest").value = str;

			parent.location="mailto:news@finam.ru?subject=" + str1 + "&body=" + str;
		}
	}
//	if (navigator.appName == "Netscape")
//	{
//		alert (navigator.appName);
//	}
}

//	форматирование тысячных с дробной частью
//	----------------------------------------

Number.prototype.triads = function (triadSeparator, decSeparator, fractNum)
{
  if (typeof(fractNum)=='undefined') fractNum = 2;
  var num = parseInt(this).toString();
  var numd = this.toString();

  numd = numd.toString().substr(numd.indexOf('.')+1, fractNum);
  /* while (numd.length<fractNum) numd += '0'; // add 0 after comma */
  
  var regEx = /(-?\d+)(\d{3})/;
  while (regEx.test(num)) { num = num.replace(regEx,"$1"+triadSeparator+"$2"); }
  if (numd != 0)
  { num += decSeparator+numd; }
  return num;
}

//	форматирование тысячных без дробной части
//	-----------------------------------------

Number.prototype.triads2 = function (triadSeparator, decSeparator, fractNum)
{
  if (typeof(fractNum)=='undefined') fractNum = 2;
  var num = parseInt(this).toString();
  var numd = this.toString();

  numd = numd.toString().substr(numd.indexOf('.')+1, fractNum);
  /* while (numd.length<fractNum) numd += '0'; // add 0 after comma */
  
  var regEx = /(-?\d+)(\d{3})/;
  while (regEx.test(num)) { num = num.replace(regEx,"$1"+triadSeparator+"$2"); }
  if (numd != 0)
//  { num += decSeparator+numd; }	// с дробной частью
	{ num += decSeparator; }		// без дробной части
  return num;
}

//	var num = 2.1;
// 	alert(num.triads(' ', ','));


//	=============================================

function MoveToGraph (tId,pId,cId)
{
	window.location = "/building/graph/default.asp?t=" + tId + "&p=" + pId + "&c=" + cId;
}

var flagLoad;
flagLoad=false;

function onObserverEvent(event)
{
	switch (event) {
		case 'initComplete': {
			/**
			 * Event is dispatched when Observer is loaded and initialized
			 * Enter your directives here
			 */
			//	window.setTimeout("startPage()",3000);
			window.setTimeout("flagLoadtrue()",3000);
			break;
		}
	}
}

function flagLoadtrue()
{	flagLoad=true;
}

function startPage(Sname,Cname,tId,pId)
{
	var parameters = new Object();
	if (flagLoad)
	{
		parameters.type = 1;
		parameters.index = 3;
		parameters.country = Sname;
		parameters.city = Cname;
		parameters.transaction = tId;
		parameters.property = pId;
		observerRequest("getAnalysisChart", parameters);
		window.location = "#graph";
	}
	else
	{	alert("Пожалуйста подождите, идет загрузка информации");
	}
}


function switchVisible(idStr)
{
	if (document.getElementById(idStr).style.display=="none")
		document.getElementById(idStr).style.display="";
	else
		document.getElementById(idStr).style.display="none";
}