var po = {};
po.OTH={"Name":"Дополнительные инструменты"};
var portRisk = 0; var portReturn = 0;
var chart2Url = "cgi-bin/financechart.pl?";
var xydata = "";
var logscale = "0";
var htmltext ="";
var currentTicker="*";
var p = 0;
var dec = 5;
var portfolioSet = "";
var setId= new Array();
setId["GAZ"]="1";
setId["OIL"]="2";
setId["PWR"]="3";
setId["TLC"]="4";
setId["FIN"]="5";
setId["MET"]="6";
setId["OTH"]="7";
setId["FREE"]="8";
setId["DEPO"]="9";
setId["CASINO"]="10";
var indusryNames = new Array();
indusryNames["GAZ"]="Добыча и переработка газа";
indusryNames["OIL"]="Нефтедобыча и переработка";
indusryNames["PWR"]="Электроэнергетика";
indusryNames["TLC"]="Телекоммуникации";
indusryNames["FIN"]="Финансовая сфера";
indusryNames["MET"]="Черная и цветная металлургия";
indusryNames["OTH"]="Другие отрасли";
indusryNames["FREE"]="Свободные денежные средства";
indusryNames["DEPO"]="Мультивалютный депозит";
indusryNames["CASINO"]="Азартные игры";
var currentDate = new Date();
var tv = "<table cellspacing='0' cellpadding='0' width='100%'><tr><td width='260px'><object type='video/x-ms-wmv'  id='Player' height='240' width='320' CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'> <param name='autoStart' value='true'><param name='uiMode' value='none' /><param name='enableContextMenu' value='false' /></object></td><td width='100px'><div id='playerStatus'></div></td><td>Программа РЫНКИ на РБК-ТВ:<br />";
var rbcUrl = "http://videoarchive.rbc.ru/archive/2007/";
var http_request = false;

var chartUrl = "cgi-bin/charts/perldemo_cgi/fb104.pl?";
chartUrl += "TimeRange="+Math.round((currentDate.getTime()-1176723487265)/24/3600000);
chartUrl +="&ChartSize=L&VGrid=1&HGrid=1&ChartType=Close&TickerSymbol=";

var portChart = "cgi-bin/portfolio1.pl?";
var portOld = "";
var portNew = "";
var xmlhttp;
var xmlhttp2;
var xmlhttp3;
var rr = "";
var uuuu="";
var oldSet = "";

var name = "";
var yyyy = "";
var aaaa = "";
var ins = "";
var pro = "";
var set = "";
var sum = 0;
var sumsum = 100;
var $set = "";
var $ins = "";
var pref = "<table class='t1' cellspacing='0' cellpadding='0' width='100%' border='0'>";
var p1 = "<tr><th scope='col'>Финансовый инструмент портфеля</th><th scope='col'>Доля в портфеле</th><th scope='col'>Доходность, % / мес.</th><th scope='col'>Риск</th></tr>";
var mes2 = "Задайте желаемый уровень месячной доходности портфеля и нажмите ОК!";
var mes3 = "4";
var mes4 = "Данная функция доступна только для клиентов ФОРА-БАНКа.";
var suf = "<tr><td style='background-color:#FFFFFF;'></td><td style='background-image:url(img/menu_red.gif); background-repeat:repeat-x; cursor:pointer; font-size:10px;'><a style='color:#FFFFFF;' title='Расчет оптимального соотношения процентных долей финансовых инструментов портфеля для заданного уровня доходности' href='javascript:optimize();'>Оптимизировать портфель</a></td><td  style='background-color:#FFFFFF;'></td><td  style='background-color:#FFFFFF;'></td></tr></table>";
var currentN = "";
function optimize(retun) {
	ret=prompt(mes2, mes3);
	if (ret!==null) alert(mes4+" Если Вы являетесь нашим клиентом, то результаты оптимизации уже высланы на Ваш клиентский почтовый адрес");
}
function makePOSTRequest(url, parameters) {
	//alert(url+"  "+parameters);
	oldSet = parameters;
document.getElementById("subtitle").innerHTML = "<img style='margin:4px 20px 0px 0px;' align='right' src='/img/loader.gif' border='0'><h2>Загрузка данных..</h2>";
  http_request = false;
  if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  } else   if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/html');
	 }
  }

  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  
  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function alertContents() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		//alert(http_request.responseText);
		result = http_request.responseText;
		//alert(result);
		document.getElementById("chart1").src =result;
		//document.getElementById('chartContentNew').innerHTML = result;            
	 } else {
		alert('There was a problem with the request.');
	 }
  }
}

function getRBC() {
	var rbcRinki = new Array("0610","0710","0735","0810","0835","0910","1010","1040","1110","1210","1310","1410","1505","1610","1635","1715","1735","1810","1910","2010","2120","2205","2305");
	var rbcNews = new Array("0700","0730","0800","0830","0900","0930","1000","1030","1100","1130","1200","1230","1300","1330","1400","1430","1500","1530","1600","1630","1700","1730","1800","1830","1900","1930","2000","2030","2100","2130","2200","2230","2300","2330");
	var t = currentDate.getMonth()+1;
	var d = currentDate.getDate();
	var n = currentDate.getDay();
	var h = currentDate.getHours();
	var m = currentDate.getMinutes();
	var q = "";
	if (Number(m)<10) m = "0"+m;
	if (Number(h)<10) h = "0"+h;
	if (Number(t)<10) t = "0"+t;
	if (Number(d)<10) d = "0"+d;
	for (var i=0;i<rbcRinki.length;i++) {
		if (60*Number(h)+Number(m)-10 >  60*Number(rbcRinki[i].substr(0,2))+Number(rbcRinki[i].substr(2,2))) {
			q = t+'/'+d+'/rinki'+rbcRinki[i]+'.wmv"';
			tv += "<a style='cursor:pointer;' onclick='StartMediaUp("+'"'+rbcUrl+q+")'>"+rbcRinki[i].substr(0,2)+":"+rbcRinki[i].substr(2,2)+"</a>&nbsp;&nbsp;&nbsp;";
			if (i==4 || i==9 || i==14 || i== 19) tv += "<br />";
		}
	}
	tv += "<br /><br />НОВОСТИ на РБК-ТВ:<br />";
	for (var i=0;i<rbcNews.length;i++) {
		if (60*Number(h)+Number(m)-10 >  60*Number(rbcNews[i].substr(0,2))+Number(rbcNews[i].substr(2,2))) {
			q = t+'/'+d+'/news'+rbcNews[i]+'.wmv"';
			tv += "<a style='cursor:pointer;' onclick='StartMediaUp("+'"'+rbcUrl+q+")'>"+rbcNews[i].substr(0,2)+":"+rbcNews[i].substr(2,2)+"</a>&nbsp;&nbsp;&nbsp;";
			if (i==4 || i==9 || i==14 || i== 19 || i==24 || i==29) tv += "<br />";
		}
	}
	tv += "</td><td>Прямая трансляция:<br /><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(1)'> RBC TV</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(2)'> Bloomberg TV USA</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(4)'> Bloomberg TV UK</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(6)'> Bloomberg TV Germany</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(7)'> Bloomberg TV Japan</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(8)'> Bloomberg TV Asia-Pacific</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(9)'> Bloomberg TV Brazil</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(3)'> Nasdaq TV</a><br />";
	tv += "<a style='cursor:pointer;' onclick='StartMediaUp(5)'> Deutsche Welle TV</a><br />";
	tv += "</td></tr><br /><tr><td><input type='button' name='StopMedia' value=' Play / Pause / Stop ' OnClick='ShutMediaDown()'></td></td></table>";
	document.getElementById("Video").innerHTML = tv;
	return tv;
}

function loadXMLDoc(url){
	document.getElementById("subtitle").innerHTML = "<img style='margin:4px 20px 0px 0px;' align='right' src='/img/loader.gif' border='0'><h2>Загрузка данных..</h2>";
	xmlhttp=null
	if (window.ActiveXObject) {
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	} else 	if (window.XMLHttpRequest) {
	  xmlhttp=new XMLHttpRequest();
	} 

	if (xmlhttp!=null) {
	  xmlhttp.onreadystatechange=onResponse;
	  xmlhttp.open("GET", url, true);
	  xmlhttp.send(null);
	} else  {
	  alert("Ваш браузер не поддерживает XMLHTTP.");
	}
}

function loadReturnRisk(url){
	document.getElementById("subtitle").innerHTML = "<img style='margin:4px 20px 0px 0px;' align='right' src='/img/loader.gif' border='0'><h2>Загрузка данных..</h2>";
	xmlhttp2=null
	if (window.ActiveXObject) {
	  xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP")
	} else 	if (window.XMLHttpRequest) {
	  xmlhttp2=new XMLHttpRequest()
	} 

	if (xmlhttp2!=null) {
	  xmlhttp2.onreadystatechange=onResponse2
	  xmlhttp2.open("GET",url,true)
	  xmlhttp2.send(null)
	} else  {
	  alert("Ваш браузер не поддерживает XMLHTTP.")
	}
}

function marketReturn(s){
	var url = "cgi-bin/return.pl?period="+document.getElementById("setFutPeriod").value+"&index="+s;
	kRisk = Math.sqrt(Number(document.getElementById("setFutPeriod").value)/100);
	xmlhttp3=null
	if (window.ActiveXObject) {
	  xmlhttp3=new ActiveXObject("Microsoft.XMLHTTP")
	} else 	if (window.XMLHttpRequest) {
	  xmlhttp3=new XMLHttpRequest()
	} 
	if (xmlhttp3!=null) {
	  xmlhttp3.onreadystatechange=onResponse3
	  xmlhttp3.open("GET",url,true)
	  xmlhttp3.send(null)
	} else  {
	  alert("Ваш браузер не поддерживает XMLHTTP.")
	}
}

function viewPrognoz(){
	var s = "Доходность загруженного портфеля на ";
	s += document.getElementById("setFutPeriod")[document.getElementById("setFutPeriod").selectedIndex].innerHTML;
	s += " составляет ";
	s += Math.round(po.retun*Number(document.getElementById("setFutPeriod").value)/20*100)/100;
	s += "%. На графике отображается месячная доходность.";
	alert(s);
	document.getElementById("setFutPeriod").value = 20;
}

function checkReadyState(obj){
  if(obj.readyState == 4)  {
    if(obj.status == 200)    {return true;} else {alert("Не удалось получить данные:\n");}
  }
}

function onResponse(){
  if(checkReadyState(xmlhttp))  {
  	var rss = xmlhttp.responseXML.documentElement.getElementsByTagName("channel")[0];
	//alert(rss.getElementsByTagName("title")[0].firstChild.data);
	document.getElementById("subtitle").innerHTML = "<h2>"+rss.getElementsByTagName("title")[0].firstChild.data+"</h2>";
	po.title = rss.getElementsByTagName("title")[0].firstChild.data;
	setPortfolio(rss);
  }
}

function onResponse2(){  if(checkReadyState(xmlhttp2))   addInsAfterRequest();}
function onResponse3(){  if(checkReadyState(xmlhttp3))   market();}
function market() {
	var s = xmlhttp3.responseXML.documentElement.getElementsByTagName("index")[0];
	s = chComma(s.getElementsByTagName("expected_returns")[0].firstChild.data);
	s = Math.round((Number(s)*Number(document.getElementById("setFutPeriod").value)/30*10000))/100+"%.";
	document.getElementById("MMVB").innerHTML = "<h5>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Прогноз доходности фондового рынка на "+document.getElementById("setFutPeriod")[document.getElementById("setFutPeriod").selectedIndex].innerHTML+": "+s+"</h5>";
	updatePortfolio();
	if (document.getElementById("subtitle").innerHTML.indexOf("%")>0) setNewPortfolio();
}

function setPortfolio(res) {
		yyyy = "";
		aaaa = "";
		ins = "";
		pro = "";
		set = "";
		sum = 0;
		sumsum = 100;
		po["OTH"] = {"Name":"Дополнительные инструменты"};
	for (i=0;i<res.getElementsByTagName("item").length;i++){
		$set = res.getElementsByTagName("item")[i].attributes[0].value;
		if ($set == "PORTFOLIO-SET") {
			po.risk = Number(chComma(res.getElementsByTagName("item")[i].getElementsByTagName("quote")[0].attributes[2].value));
			po.retun = Number(chComma(res.getElementsByTagName("item")[i].getElementsByTagName("quote")[0].attributes[1].value));
		} else {
			po[$set]={"Name":res.getElementsByTagName("item")[i].getElementsByTagName("title")[0].firstChild.data};
			//alert(po[$set].Name);
			set = '"'+$set+'"';
			sum = 0;
			
			if (res.getElementsByTagName("item")[i].getElementsByTagName("quote").length>0) {
				for (j=0;j<res.getElementsByTagName("item")[i].getElementsByTagName("quote").length;j++) {
					pro = chComma(res.getElementsByTagName("item")[i].getElementsByTagName("quote")[j].attributes[1].value);
					sum += Number(pro);
				}
			}
			
			sumsum -=sum;
			yyyy += "<tr><td>"+res.getElementsByTagName("item")[i].getElementsByTagName("title")[0].firstChild.data+"</td><td><div id="+set+">"+sum+"%</div></td><td></td><td></td></tr>";
			//alert(res.getElementsByTagName("item")[i].getElementsByTagName("quote").length);
			
			if (res.getElementsByTagName("item")[i].getElementsByTagName("quote").length>0) {
				for (j=0;j<res.getElementsByTagName("item")[i].getElementsByTagName("quote").length;j++) {
					pro = res.getElementsByTagName("item")[i].getElementsByTagName("quote")[j].attributes[1].value;
					$ins = 	res.getElementsByTagName("item")[i].getElementsByTagName("quote")[j].attributes[0].value;
					po[$set][$ins] = {};
					po[$set][$ins].procent = Math.round(Number(chComma(pro))*10)/10;
					//alert($ins+"  "+res.getElementsByTagName("item")[i].getElementsByTagName("quote")[j].attributes[3].value);
					po[$set][$ins].risk = Number(chComma(res.getElementsByTagName("item")[i].getElementsByTagName("quote")[j].attributes[3].value));
					po[$set][$ins].retun = Number(chComma(res.getElementsByTagName("item")[i].getElementsByTagName("quote")[j].attributes[2].value));
					po[$set][$ins].name = res.getElementsByTagName("item")[i].getElementsByTagName("quote")[j].firstChild.data;
					po[$set][$ins].ticker = $ins;
					if (currentTicker=="*") currentTicker = po[$set][$ins].ticker;
					//alert(po[$set][$ins].ticker);
					ins = 	'"'+$ins+'"';
				}
			}
			
		}
	}
	updatePortfolio();

	portOld = "GAZ2=" + delProcent("GAZ")+"&";
	portOld += "OIL2=" + delProcent("OIL")+"&";
	portOld += "PWR2=" + delProcent("PWR")+"&";
	portOld += "TLC2=" + delProcent("TLC")+"&";
	portOld += "FIN2=" + delProcent("FIN")+"&";
	portOld += "MET2=" + delProcent("MET")+"&";
	portOld += "FREE2=" + delProcent("FREE")+"&";
	portOld += "DEPO2=" + delProcent("DEPO")+"&";
	portOld += "CASINO2=" + delProcent("CASINO")+"&";
	portOld += "NEW2=" + delProcent("NEW")+"&";
	portNew = "GAZ=" + delProcent("GAZ")+"&";
	portNew += "OIL=" + delProcent("OIL")+"&";
	portNew += "PWR=" + delProcent("PWR")+"&";
	portNew += "TLC=" + delProcent("TLC")+"&";
	portNew += "FIN=" + delProcent("FIN")+"&";
	portNew += "MET=" + delProcent("MET")+"&";
	portNew += "FREE=" + delProcent("FREE")+"&";
	portNew += "DEPO=" + delProcent("DEPO")+"&";
	portNew += "CASINO=" + delProcent("CASINO")+"&";
	portNew += "NEW=" + delProcent("NEW")+"&";
	setContent();
}

function addInstrument() {
	ins = document.getElementById("add").value;
	set = document.getElementById("add")[document.getElementById("add").selectedIndex].label;
	if (set == undefined || set =="") {
		set = "NEW";
	}
	if (!po[set][ins]) {
		po[set][ins] = {};
		po[set][ins].procent = 0;
		po[set][ins].risk = Math.round(Math.random(20)*1000)/20;
		po[set][ins].retun = Math.round(Math.random(25)*1000)/20;
		po[set][ins].ticker = document.getElementById("add").value;
	}
	po[set][ins].name = document.getElementById("add")[document.getElementById("add").selectedIndex].innerHTML;
	updatePortfolio();
}

function addIns(n) {
	var newIns = document.getElementById("fi"+n).value;
	if (oldSet.indexOf(newIns)>0) {
	getInstrument(newIns);
	alert("Финансовый инструмент "+newIns+" уже есть в портфеле. Его добавление не требуется. При необходимости Вы можете изменить параметры этого инструмента в таблице. После обновления графика инструмент будет выделен синим цветом.");
	} else {
		currentN = n;
		if (n==5) {addInsAfterRequest();} else {
		loadReturnRisk("cgi-bin/return.pl?period="+document.getElementById("setFutPeriod").value+"&index="+newIns);
		}
	}
}
function chComma(s) {
	var n = s.indexOf(",");
	if (n>0) s = s.substr(0,n)+"."+s.substr(n+1);
	return s;
}
function addInsAfterRequest() {
	var n = currentN;
	if (n!==5) var rr = xmlhttp2.responseXML.documentElement.getElementsByTagName("index")[0];
	ins = document.getElementById("fi"+n).value;
	set = document.getElementById("fi"+n)[document.getElementById("fi"+n).selectedIndex].label;
	if (set == undefined || set =="") {	set = "OTH"; }
	if (!po[set]) po[set]={"Name":indusryNames[set]};
	if (!po[set][ins]) {
		po[set][ins] = {};
		po[set][ins].procent = 0;
		if (n!==5) {
		po[set][ins].risk = Math.round(Number(chComma(rr.getElementsByTagName("std_dev")[0].firstChild.data))*1000)/10;
		po[set][ins].retun = Math.round(Number(chComma(rr.getElementsByTagName("expected_returns")[0].firstChild.data))*1000)/10;
		}
		po[set][ins].ticker = document.getElementById("fi"+n).value;
	}
	if (set=="CASINO") {
		sum = Number(po[set][ins].ticker.substr(4));
		po[set][ins].retun =	Math.round(1000*(sum-1))/10;
		po[set][ins].risk = Math.round((sum - 1)*1000/sum)/10;
	} 	
	po[set][ins].name = document.getElementById("fi"+n)[document.getElementById("fi"+n).selectedIndex].innerHTML;
	updatePortfolio();
	document.getElementById("fi"+n).value = "0";
}

function setNewPortfolio() {
	portNew = "GAZ=" + delProcent("GAZ")+"&";
	portNew += "OIL=" + delProcent("OIL")+"&";
	portNew += "PWR=" + delProcent("PWR")+"&";
	portNew += "TLC=" + delProcent("TLC")+"&";
	portNew += "FIN=" + delProcent("FIN")+"&";
	portNew += "MET=" + delProcent("MET")+"&";
	portNew += "FREE=" + delProcent("FREE")+"&";
	portNew += "DEPO=" + delProcent("DEPO")+"&";
	portNew += "CASINO=" + delProcent("CASINO")+"&";
	portNew += "NEW=" + delProcent("NEW")+"&";
	setContent();
}

function getPortfolio() {
	alert("Сервис доступен только клиентам ФОРА-БАНКа");
}

function setDec() {dec = Number(document.getElementById("Dec").value)}
var portfolioSign=1;
function loadPortfolio(n,d,k) {
	k==-1 ? portfolioSign=-1 : portfolioSign=1;
	document.getElementById("subtitle").innerHTML = "<img style='margin:4px 20px 0px 0px;' align='right' src='/img/loader.gif' border='0'><h2>Загрузка данных..</h2>";
	currentTicker = "*";
	if (n==1) {
		document.getElementById("ReturnSolver").value="input";
		loadXMLDoc("xml/"+ d + ".xml");
		document.getElementById("Dec").value = ".5";
		dec = .5;
		if (d=="data0") {
			document.getElementById("Dec").value = "5";
			dec = 5;
		}
	} else if (n==2) {
		//alert(document.getElementById("ReturnSolver").value);
		document.getElementById("ReturnSolver").value="stat";
		//alert(document.getElementById("ReturnSolver").value);
		po = {};
		po.OTH={"Name":"Дополнительные инструменты"};
		loadXMLDoc("/cgi-bin/portfolio.pl?index="+d+"&portfolioSign="+portfolioSign);
	}
}

function delIns(ticker, set) {
	delete po[set][ticker];
	if (currentTicker == ticker) currentTicker = "*";
	updatePortfolio();
}

function getInstrument(currentIns, industry) {
	currentTicker = currentIns;
	updatePortfolio();
}

function delProcent(s) {
	if (document.getElementById(s)!==null) {
		var x = document.getElementById(s).innerHTML;
		if (x.substr(x.length-1,1)=="%") x=x.substr(0,x.length-1);
		return x;
	} else {
		return "";
	}
}
function plus(s, set) {
	p = po[set][s].procent;
	if (Number(delProcent("FREE"))-dec>=0) {
		po[set][s].procent = Number(p)+Number(dec);
		currentTicker = s;
		updatePortfolio();
	}
}
function minus(s, set) {
	p = po[set][s].procent;
	if (Number(p)-dec>=0) {
		po[set][s].procent = Number(p)-Number(dec);
		//setNewPortfolio();
		updatePortfolio();
	}
}
function plusReturn(s, set) {
		po[set][s].retun = Number(po[set][s].retun)+Number(dec);
		updatePortfolio();
		//setNewPortfolio();
}
function minusReturn(s, set) {
		po[set][s].retun = Number(po[set][s].retun)-Number(dec);
		updatePortfolio();
		//setNewPortfolio();
}
function setLogScale() {
	logscale = document.getElementById("LogScale").value;
	updatePortfolio();
}
function initContent() {
	document.getElementById("chartContent").innerHTML = "<img align='left' id='chart1' src='/img/loader.gif'>";
	document.getElementById("chartContent").innerHTML += "<img align='right' id='chart' src='/img/loader.gif'>";
	//loadPortfolio(1,"data0");
	loadPortfolio(2,1);
}
function setContent() {
	document.getElementById("chart").src = portChart+portNew+portOld;
}
function sendPortfolio() {
	portfolioSet = "";
	 for (var word in po) {
		$set = word;
		 if (word!=="title" && word!=="NEW") {
			for (var word in po[$set]) {
				if (word!=="Name") {
					if (currentTicker=="*") currentTicker = po[$set][word].ticker;
					portfolioSet += setId[$set]+":";
					portfolioSet += po[$set][word].ticker+":";
					portfolioSet += round100(po[$set][word].procent)+":";
					if (document.getElementById("ReturnSolver").value=="stat") {
						portfolioSet += "NaN:";
						portfolioSet += "NaN:";
					} else if (document.getElementById("ReturnSolver").value=="input") {
						portfolioSet += "NaN:";
						//portfolioSet += round100(po[$set][word].risk)+":";
						portfolioSet += round100(po[$set][word].retun)+":";
					}
				}
			}
		 }
	 }
	if (portfolioSet!=="")	 {
		document.getElementById("chart1").src ="/img/loader.gif";
		portfolioSet = portfolioSet.substr(0,portfolioSet.length-1);
		makePOSTRequest('/cgi-bin/portfoliochange.pl?selected='+currentTicker+'&return='+po.retun+'&risk='+po.risk+"&portfolioSign="+portfolioSign, portfolioSet);
	}
}
function round100(s) {
	s = Number(s);
	s = Math.round(s*100)
	return s
}
function updatePortfolio() {
	document.getElementById("subtitle").innerHTML = "<h2>Загрузка данных..</h2>";
	sendPortfolio();
	//alert("update "+kRisk+"  "+kReturn);
	var addReturnControl = "";
		yyyy = "";
		aaaa = "";
		ins = "";
		pro = "";
		set = "";
		sum = 0;
		sumsum = 100;
		//portRisk = 0; portReturn = 0; 
		xydata="";
		var i = 0;
	 for (var word in po) {
		$set = word;
		set = '"'+$set+'"';
		sum = 0;
		var setLen = 0;
		//alert("   set= "+set);
		if ($set!=="title") {
			for (var word in po[$set]) {
				//alert(word);
				setLen ++;
				pro = po[$set][word].procent;
				if (Number(pro)>0) {
					sum += Number(pro);
					i++;
					if ($set!=="CASINO") {
					//xydata += "x"+i+"=" +Math.round(po[$set][word].risk*kRisk*100)/100+"&y"+i+"="+Math.round(po[$set][word].retun*kReturn*100)/100+"&z"+i+"="+po[$set][word].ticker+"&";
					xydata += "x"+i+"=" +Math.round(po[$set][word].risk*100)/100+"&y"+i+"="+Math.round(po[$set][word].retun*100)/100+"&z"+i+"="+po[$set][word].ticker+"&";
					} else {
					xydata += "x"+i+"=" +Math.round(po[$set][word].risk*100)/100+"&y"+i+"="+Math.round(po[$set][word].retun*100)/100+"&z"+i+"="+po[$set][word].ticker+"&";
					}
				}
			}
			sumsum -=sum;
			//alert("setLen= "+setLen);
			if (setLen>1) yyyy += "<tr><td>"+po[$set].Name+"</td><td><div id="+set+">"+Math.round(sum*100)/100+"%</div></td><td></td><td></td></tr>";
			//alert("po[$set].Name=  "+po[$set].Name);
			for (var word in po[$set]) {
				if (word !== "Name") {
					pro = po[$set][word].procent;
					$ins = 	word;
					ins = 	'"'+$ins+'"';
					if ($ins.substr(0,6)!=="drugie") {
					name = '"'+po[$set][word].name+'"';
					yyyy += "<tr class='t2'><td><img title='Удаление инструмента из состава портфеля' style='cursor:pointer;' onclick='delIns("+ins+", "+set+")' align='left' src='img/minus.gif' border='0'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a title='Выделение инструмента на графике'  href='javascript:getInstrument("+ins+","+set+");'>"+po[$set][word].name+" ("+ins+")</a></td>";
					yyyy += "<td><img title='Уменьшение доли инструмента в портфеле'  align='left' class='getChartL' onclick='minus("+ins+","+set+")' src='img/minus.gif' /><img title='Увеличение доли инструмента в портфеле'   align='right' class='getChartR' onclick='plus("+ins+","+set+")' src='img/plus.gif' /><div id="+ins+">"+Math.round(pro*100)/100+"%</div></td><td>";
					addReturnControl ="";
					if (document.getElementById("ReturnSolver").value=="input") {
		addReturnControl = "<img title='Уменьшение доходности инструмента'   align='left' class='getChartL' onclick='minusReturn("+ins+","+set+")' src='img/minus.gif' /><img title='Увеличение доходности инструмента'  align='right' class='getChartR' onclick='plusReturn("+ins+","+set+")' src='img/plus.gif' />"
	}
					yyyy += addReturnControl;
					if ($set!=="CASINO") {
						yyyy += Math.round(Number(po[$set][word].retun)*100)/100+"%</td><td>";
						yyyy += Math.round(Number(po[$set][word].risk)*100)/100+"%</td></tr>";
						portRisk += Number(po[$set][word].risk)*Number(pro)*Number(po[$set][word].risk)*Number(pro);
						portReturn += Number(po[$set][word].retun)*Number(pro);
					} else {
						yyyy += Math.round(Number(po[$set][word].retun)*100)/100+"%</td><td>";
						yyyy += Math.round(Number(po[$set][word].risk)*100)/100+"%</td></tr>";
						//portRisk += Number(po[$set][word].risk)*Number(pro)*Number(po[$set][word].risk)*Number(pro)/kRisk;
						//portReturn += Number(po[$set][word].retun)*Number(pro)/kReturn;
						//portRisk += Number(po[$set][word].risk)*Number(pro)*Number(po[$set][word].risk)*Number(pro);
						//portReturn += Number(po[$set][word].retun)*Number(pro);
					}
					} else {
					yyyy += "<tr class='t2'><td>"+po[$set][word].name+"</td>";
					yyyy += "<td><img align='left' class='getChartL' onclick='minus("+ins+","+set+")' src='img/minus.gif' /><img align='right' class='getChartR' onclick='plus("+ins+","+set+")' src='img/plus.gif' /><div id="+ins+">"+pro+"%</div></td><td></td><td></td></tr>";
					}
				}
			}
		}
		
	 }
	 //portRisk = Math.round(Math.sqrt(portRisk))/100;
	 //portReturn = Math.round(portReturn)/100;
	 htmltext = pref +p1+"<tr><td>Свободные денежные средства</td><td><div id='FREE'>"+sumsum+"%</div></td><td>0%</td><td>0%</td></tr>"+yyyy+suf;
	document.getElementById("portfolio").innerHTML = htmltext;
	//alert(kReturn+"  "+kRisk);
	if (sumsum==100) {
		htmltext = "<h2>"+po.title+". Для формирования портфеля добавьте инструменты и задайте их доли.</h2>";
		
	} else {
		//htmltext = "<h2>"+po.title+".&nbsp;( Загруженный портфель: возврат - "+Math.round(po.retun*100)/100+"%, риск - "+Math.round(po.risk*100)/100+"%)</h2>";
		htmltext = "<h2>Анализ инвестиционного портфеля - '"+po.title+"'</h2>";
	}
	document.getElementById("subtitle").innerHTML = htmltext;
	xydata +="x0="+portRisk+"&y0="+portReturn+"&LogScale="+logscale+"&";
	setNewPortfolio();
}

