function ruisekiGraph(id,filename,asyncMode){var msCommonObj=new msCommonClass;msCommonObj.Start(id,filename,ruisekiDraw,asyncMode)}function ruisekiDraw(id,xmlData){var min,max,i,fullDay=365,jg=new jsGraphics(id),tagDays=xmlData.getElementsByTagName("day");if(tagDays.length==0){ruisekiDrawBackground(jg);jg.paint();return}var enabledDay=ruisekiGetDate(tagDays,0),enDay=ruisekiGetDate(tagDays,tagDays.length-1),stIdx=0;while(stIdx<tagDays.length){if(tagDays[stIdx].getAttribute("fund_return_ruiseki")=="0"&&tagDays[stIdx].getAttribute("index_return_ruiseki")=="0")break;stIdx++}if(stIdx==tagDays.length){ruisekiDrawBackground(jg);jg.paint();return}var stDay=ruisekiGetDate(tagDays,stIdx),days=(enDay-stDay)/8.64e7+1;if(days<fullDay){days=fullDay;stDay.setTime(enDay.getTime()+(1-fullDay)*8.64e7);stIdx=0}var arrF=new Array(days),arrI=new Array(days);for(i=0;i<days;i++){arrF[i]=Number.NEGATIVE_INFINITY;arrI[i]=Number.NEGATIVE_INFINITY}var parentNode=null,rp=stIdx,wp=-1,wpCur,intF,maxF=Number.NEGATIVE_INFINITY,minF=Number.POSITIVE_INFINITY,preF=Number.NEGATIVE_INFINITY,intI,maxI=Number.NEGATIVE_INFINITY,minI=Number.POSITIVE_INFINITY,preI=Number.NEGATIVE_INFINITY;while(rp<tagDays.length){dd=Number(tagDays[rp].getAttribute("value"));if(parentNode!=tagDays[rp].parentNode){mm=Number(tagDays[rp].parentNode.getAttribute("value"));yyyy=Number(tagDays[rp].parentNode.parentNode.getAttribute("value"));parentNode=tagDays[rp].parentNode}dt=new Date(yyyy,mm-1,dd);wpCur=days-parseInt((enDay-dt)/8.64e7)-1;var str=tagDays[rp].getAttribute("fund_return_ruiseki");if(str!="")intF=str*100;else intF=NaN;var str=tagDays[rp].getAttribute("index_return_ruiseki");if(str!="")intI=str*100;else intI=NaN;if(wpCur<0){preF=!isNaN(intF)?intF:preF;preI=!isNaN(intI)?intI:preI;rp++;continue}while(wpCur!=wp+1&&wp+1<days){wp++;arrF[wp]=preF;arrI[wp]=preI}if(wpCur>=days)break;wp++;if(isNaN(intF))arrF[wp]=preF;else{preF=intF;arrF[wp]=preF;maxP=Math.max(maxF,preF);minP=Math.min(minF,preF)}if(isNaN(intI))arrI[wp]=preI;else{preI=intI;arrI[wp]=preI;maxI=Math.max(maxI,preI);minI=Math.min(minI,preI)}rp++}min=Number.POSITIVE_INFINITY;max=Number.NEGATIVE_INFINITY;for(i=0;i<days;i++){if(arrF[i]!=Number.NEGATIVE_INFINITY){min=Math.min(min,arrF[i]);max=Math.max(max,arrF[i])}if(arrI[i]!=Number.NEGATIVE_INFINITY){min=Math.min(min,arrI[i]);max=Math.max(max,arrI[i])}}ruisekiDrawBackground(jg);var kugiri=new ruisekiKugiriClass(min,max);if(kugiri.max==0&&kugiri.min==0){kugiri.max=1;kugiri.min=-1;kugiri.step=1}ruisekiDrawSepa(jg,kugiri.min,kugiri.max,kugiri.step);ruisekiDrawGraph(jg,"#ffab57",arrF,kugiri.min,kugiri.max);ruisekiDrawGraph(jg,"#40bf40",arrI,kugiri.min,kugiri.max);var tagDaysText=new Array(5);rp=0;for(i=0;i<5;i++){var dat=new Date;if(i==4)dat=enDay;else dat.setTime(stDay.getTime()+Math.round(days/4)*i*8.64e7);if(enabledDay<=dat){while(ruisekiGetDate(tagDays,rp)<dat)rp++;dat=ruisekiGetDate(tagDays,rp)}var m="0"+(dat.getMonth()+1),d="0"+dat.getDate();tagDaysText[i]=m.substr(m.length-2)+"/"+d.substr(d.length-2)}ruisekiDrawFrame(jg,kugiri.min,kugiri.max,kugiri.step,tagDaysText);jg.paint();return}function ruisekiGetDate(tagDays,tagDayIndex){var dd=Number(tagDays[tagDayIndex].getAttribute("value")),mm=Number(tagDays[tagDayIndex].parentNode.getAttribute("value")),yyyy=Number(tagDays[tagDayIndex].parentNode.parentNode.getAttribute("value"));return new Date(yyyy,mm-1,dd)}function ruisekiDrawGraph(jg,color,arrData,min,max){var n=arrData.length,diff=max-min,i,x,y,prex,prey,max,min,y0;jg.setColor(color);jg.setStroke(2);y0=Math.round(116+min*97/diff)-1;for(i=0;i<n;i++)if(arrData[i]!=Number.NEGATIVE_INFINITY)break;prex=parseInt(i/n*150)+43;prey=y0;max=min=y0;for(;i<n;i++){x=parseInt(i/n*150)+43;y=Math.max(19,y0-Math.round(arrData[i]*97/diff));jg.drawLine(prex,prey,x,y);prex=x;prey=y}jg.setStroke(1)}function ruisekiKugiriClass(min,max){var arrMul=[1,2,5];this.min=0;this.max=0;this.step;var iMul,step,completed=false,mul=1;while(!completed){for(iMul=0;iMul<arrMul.length;iMul++){step=mul*arrMul[iMul];var maxLargeVal=LargeVal(max,step,mul),minLargeVal=LargeVal(-min,step,mul);if(maxLargeVal.scaleCount+minLargeVal.scaleCount<=2){if(maxLargeVal.total==0&&-minLargeVal.total==0){this.max=1;this.min=-1;this.step=1}else{this.min=-minLargeVal.total;this.max=maxLargeVal.total;this.step=step}return}}mul*=10}}function LargeVal(val,step,mul){var amari=val%step,scaleCount=(val-amari)/step;if(amari==0)if(val==0)return {total:val,scaleCount:0};else return {total:val,scaleCount:scaleCount-1};else if(amari<=mul)return {total:step*scaleCount+mul,scaleCount:scaleCount};else return {total:step*scaleCount+step,scaleCount:scaleCount}}function ruisekiDrawSepa(jg,min,max,step){var i,y,diff=max-min;jg.setColor("#ffffff");jg.drawLine(80,20,80,115);jg.drawLine(118,20,118,115);jg.drawLine(155,20,155,115);jg.setColor("#bfbf40");var y0=Math.round(116+min*97/diff);jg.drawLine(43,y0,194,y0);for(i=step;i>=0&&i<max;i+=step){y=Math.round(y0-i*97/diff);jg.drawLine(43,y,194,y)}for(i=-step;i<=0&&i>min;i-=step){y=Math.round(y0-i*97/diff);jg.drawLine(43,y,194,y)}}function ruisekiDrawFrame(jg,min,max,step,tagDayss){var i,diff=max-min,y0;jg.setColor("#bfbf40");jg.drawLine(43,116,194,116);jg.drawLine(43,19,194,19);jg.drawLine(43,19,43,116);jg.drawLine(194,19,194,116);jg.setColor("#000000");jg.setFont("arial","9px",Font.PLAIN);jg.drawString("(%)",36,0);y0=Math.round(116+min*98/diff);jg.drawStringRect("0",10,y0-4,20,"right");for(i=step;i>=0&&i<=max;i+=step){y=Math.round(y0-i*98/diff);jg.drawStringRect(""+i,10,y-4,20,"right")}for(i=-step;i<=0&&i>=min;i-=step){y=Math.round(y0-i*98/diff);jg.drawStringRect(""+i,10,y-4,20,"right")}for(i=0;i<5;i++)jg.drawString(tagDayss[i],31+38*i,118)}function ruisekiDrawBackground(jg){jg.setColor("#fcfccc");jg.fillRect(0,0,216,130);jg.setColor("#cbcb33");jg.fillRect(0,117,216,13)}