/**
 * @author jinn
 */
function assetchart(applyto,title,indexlabel,assetlabel,n,indexdata,assetdata,updata){
	//Dailyデータ
	var label_chart = "";
	var indexdata_chart = new Array();
	var assetdata_chart = new Array();
	//有効データ数
	var available = indexdata.length;
//	var available = (indexdata.length - 1)/n+1;

	if(n == 0){
		n = Math.round((available - 1)/20+0.5);
	}
    for (i = 0; i < 20*n+1-available; i++) {
//    for (i = 0; i < 21-available; i++) {
		indexdata_chart[i] = 100;
		assetdata_chart[i] = 100;
//		if(i%2 == 0)
		if(i%(2*n) == 0)
			label_chart += '0/0|';
	}
	//無データ期間
	var nodata_length = indexdata_chart.length;
	var initialIndex = 0;
	var initialAsset = 0;
	//割合のリストに変換
//    for (i = 0; i < 21 - nodata_length; i++) {
    for (i = 0; i < 20*n+1 - nodata_length; i++) {
//		var index = indexdata.length - (((21 - nodata_length - i)-1)*n+1);
		var index = indexdata.length - (((20*n+1  - nodata_length - i)-1)+1);
		if (i == 0) {
			initialIndex = indexdata[index];
			initialAsset = assetdata[index];
		}
		indexdata_chart[i+nodata_length] = indexdata[index]/initialIndex*100;
		assetdata_chart[i+nodata_length] = assetdata[index]/initialAsset*100;
		if((i+nodata_length)%(2*n) == 0)
//		if((i+nodata_length)%2 == 0)
			label_chart += updata[index] + '|';
	}
	
	//上下幅自動設定	
	var percent = 100;		
	var maxLine = 100;
	var minLine = 100;
    for (i = 1; i < 20*n+1; i++) {
//    for (i = 1; i < 21; i++) {
		maxLine = Math.max(assetdata_chart[i],maxLine);
		minLine = Math.min(assetdata_chart[i],minLine);
		maxLine = Math.max(indexdata_chart[i],maxLine);
		minLine = Math.min(indexdata_chart[i],minLine);
	}
	var chartMinLine = 0;
	var chartMaxLine = 0;
	//10%刻みで上下幅を自動設定
	var grid = 10;
	while(chartMinLine < minLine){
		chartMinLine += grid;
	}
	chartMinLine -= grid;
	while(chartMaxLine <= maxLine){
		chartMaxLine += grid;
	}
	percent = (chartMaxLine-chartMinLine) / 2 ;
    for (i = 0; i < 20*n+1; i++) {
//    for (i = 0; i < 21; i++) {
		indexdata_chart[i] = Math.round((indexdata_chart[i]-chartMinLine)/(percent*2)*100);
		assetdata_chart[i] = Math.round((assetdata_chart[i]-chartMinLine)/(percent*2)*100);
	}
	//Ｙ軸ラベルを計算
	var label_y_chart = "";
	for(i = -5;i<=5;i++){
		if(i==5)
			label_y_chart += '(%)'+String(percent/5*i+(chartMaxLine+chartMinLine) / 2);
		else
			label_y_chart += String(percent/5*i+(chartMaxLine+chartMinLine) / 2)+'|';
	}
	//描画
    GChart.render({
        applyTo: applyto,
        data: [indexdata_chart,assetdata_chart],
        title: title,
        colors: ['00ff00', 'ff0000'],
        grid: '5,10',
        labels: '0:|'+label_chart+'1:|'+label_y_chart,
        legend: [indexlabel, assetlabel],
        encoding: 't',
        type: 'lc',
        axistype: 'x,y',
        size: '550x300'
    });
}
function assetchart_simple(applyto,title,assetlabel,n,assetdata,updata){
	//Dailyデータ
	var label_chart = "";
	var assetdata_chart = new Array();
	//有効データ数
	var available = assetdata.length;

	if(n == 0){
		n = Math.round((available - 1)/20+0.5);
	}
    for (i = 0; i < 20*n+1-available; i++) {
		assetdata_chart[i] = 100;
		if(i%(2*n) == 0)
			label_chart += '0/0|';
	}
	//無データ期間
	var nodata_length = assetdata_chart.length;
	var initialAsset = 0;
	//割合のリストに変換
    for (i = 0; i < 20*n+1 - nodata_length; i++) {
		var index = assetdata.length - (((20*n+1  - nodata_length - i)-1)+1);
		if (i == 0) {
			initialAsset = assetdata[index];
		}
		assetdata_chart[i+nodata_length] = assetdata[index]/initialAsset*100;
		if((i+nodata_length)%(2*n) == 0)
			label_chart += updata[index] + '|';
	}
	
	//上下幅自動設定	
	var percent = 100;		
	var maxLine = 100;
	var minLine = 100;
    for (i = 1; i < 20*n+1; i++) {
		maxLine = Math.max(assetdata_chart[i],maxLine);
		minLine = Math.min(assetdata_chart[i],minLine);
	}
	var chartMinLine = 0;
	var chartMaxLine = 0;
	//10%刻みで上下幅を自動設定
	var grid = 10;
	while(chartMinLine < minLine){
		chartMinLine += grid;
	}
	chartMinLine -= grid;
	while(chartMaxLine <= maxLine){
		chartMaxLine += grid;
	}
	percent = (chartMaxLine-chartMinLine) / 2 ;
    for (i = 0; i < 20*n+1; i++) {
		assetdata_chart[i] = Math.round((assetdata_chart[i]-chartMinLine)/(percent*2)*100);
	}
	//Ｙ軸ラベルを計算
	var label_y_chart = "";
	for(i = -5;i<=5;i++){
		if(i==5)
			label_y_chart += '(%)'+String(percent/5*i+(chartMaxLine+chartMinLine) / 2);
		else
			label_y_chart += String(percent/5*i+(chartMaxLine+chartMinLine) / 2)+'|';
	}
	//描画
    GChart.render({
        applyTo: applyto,
        data: [assetdata_chart],
        title: title,
        colors: ['ff0000'],
        grid: '5,10',
        labels: '0:|'+label_chart+'1:|'+label_y_chart,
        legend: [assetlabel],
        encoding: 't',
        type: 'lc',
        axistype: 'x,y',
        size: '550x300'
    });
}
function assetchart_base(applyto,title,assetlabel,n,assetdata,updata){
	//Dailyデータ
	var label_chart = "";
	var assetdata_chart = new Array();
	//有効データ数
	var available = assetdata.length;

	//1区間の数
	if(n == 0){
		n = Math.round((available - 1)/20+0.5);
	}
	//20*n+1 = 最大格納要素数
	//空白(無データ期間)カウント
    for (i = 0; i < 20*n+1-available; i++) {
		assetdata_chart[available+i] = -1;
	}
	//無データ期間
	var nodata_length = assetdata_chart.length;
	var initialAsset = 0;
	//割合のリストに変換
    for (i = 0; i < available; i++) {
		if (i == 0) {
			initialAsset = assetdata[i];
		}
		assetdata_chart[i] = assetdata[i]/initialAsset*100;
		if(i%(2*n) == 0)
			label_chart += updata[i] + '|';
	}
	
    for (i = 0; i < 20*n+1-available; i++) {
		if((available+i)%(2*n) == 0)
			label_chart += ' |';
	}
	
	//上下幅自動設定	
	var percent = 100;		
	var maxLine = 100;
	var minLine = 0;
    for (i = 1; i < 20*n+1; i++) {
		if(assetdata_chart[i]<0) continue;
		maxLine = Math.max(assetdata_chart[i],maxLine);
		minLine = Math.min(assetdata_chart[i],minLine);
	}

	var chartMinLine = 0;
	var chartMaxLine = 0;
	//10%刻みで上下幅を自動設定
	var grid = 10;
	while(chartMinLine < minLine){
		chartMinLine += grid;
	}
//	chartMinLine -= grid;
	while(chartMaxLine <= maxLine){
		chartMaxLine += grid;
	}
	percent = (chartMaxLine-chartMinLine) / 2 ;
    for (i = 0; i < 20*n+1; i++) {
		if(assetdata_chart[i]<0) continue;
		assetdata_chart[i] = Math.round((assetdata_chart[i]-chartMinLine)/(percent*2)*100);
	}
	//Ｙ軸ラベルを計算
	var label_y_chart = "";
	for(i = -5;i<=5;i++){
		if(i==5)
			label_y_chart += String((percent/5*i+(chartMaxLine+chartMinLine) / 2)*100);
		else if(i==-5)
			label_y_chart += '|';
		else
			label_y_chart += String((percent/5*i+(chartMaxLine+chartMinLine) / 2)*100)+'|';
	}
	//描画
    GChart.render({
        applyTo: applyto,
        data: [assetdata_chart],
        title: title,
        colors: ['ff0000'],
        grid: '5,10',
        labels: '0:|'+label_chart+'1:|'+label_y_chart,
        legend: [assetlabel],
        encoding: 't',
        type: 'lc',
        axistype: 'x,y',
        size: '550x300'
    });
}
