var dirFol = null;
var actComp = app.project;
var actItem = actComp.activeItem;
var compLys = actItem.layers;
var lyTime = actItem.duration;
var lyFr = lyTime*actItem.frameRate;
var keyType=KeyframeInterpolationType.HOLD;
var valFr = null;
var valK = null;
var valE = false;

//alert(lyFr);

//0Fr.～24Fr.までの確定値==============================================================
var kFr = [
             0,
             0.0416667,
             0.0833333,
             0.125,
             0.1660667,
             0.208333,
             0.25,
             0.291667,
             0.333333,
             0.375,
             0.416667,
             0.458333,
             0.5,
             0.541667,
             0.583333,
             0.625,
             0.666667,
             0.708333,
             0.75,
             0.791667,
             0.833333,
             0.875,
             0.916667,
             0.958333,
             1
             ];
//==============================================================================
//main script

dirFol = ".";
//シートデータを読み込み
filename = File.openDialog("テキストファイルを選択してください",dirFol);
fileObj = new File(filename);
if (fileObj.open("r"))
{
	 var qq=compLys.length;
	 
	//行(セル)ごとに読み込み 
     while(!fileObj.eof)
     {
     	
     //既にタイムリマップされている場合、リセット
     	if(compLys[qq].timeRemapEnabled == true){
     		compLys[qq].timeRemapEnabled = false;
     	}
     	
         //タイムリマップ
         	compLys[qq].timeRemapEnabled = true;
         //尻の余計なキーを削除
            compLys[qq].timeRemap.removeKey(2);
            
            //読み込んだ行(セル)を配列化
              txt = fileObj.readln();
              var valCel = txt.split(",");
              
              if (txt){
          	     //配列をレイヤーのタイムリマップのキーに挿入
          	       ImpSheet();

              }
              qq--;
             //次のレイヤーが無い場合
              if(qq==0){
              	break;
              }
	}
}

//*********FUNCTION**************************************************************
function ImpSheet(){
	
	           //タイムリマップのキー番号
	          	var numKey = 1;

	           for(i=0;i<valCel.length;i++){
	           	   //フレーム数が24以下の場合
	           	    if(i+1 <= 24){
	           	    	    valFr = kFr[(i+1)-1];
	           	    	    
                   //フレーム数が25以上の場合(24で割った整数と、確定値に変換した余りを足算)
	           	    }else{
	           	           valFr = Math.floor((i+1) / 24) + kFr[((i+1) % 24)-1];
	           	    }
	           	    
	           	   //セル番号が24以下の場合 
	           	    if(valCel[i] <= 24){
	             			valK = kFr[valCel[i]-1];

                   //セル番号が25以上の場合(24で割った整数と、確定値に変換した余りを足算)
	             	}else{
	             			valK = Math.floor(valCel[i] / 24) + kFr[(valCel[i] % 24)-1];
	             	}
	             	
                   //1フレーム目の場合
                    if(i == 0){
                    	compLys[qq].timeRemap.setValueAtTime(valFr,valK);
                    	//キーをホールド
                        compLys[qq].timeRemap.setInterpolationTypeAtKey(numKey,keyType); 
                        numKey++;
                        
                   //2フレーム目以降の場合     
                    }else{
                    	//前フレームと違うセルならキーを打つ
	             	     if(valCel[i] != valCel[i-1]){

                                compLys[qq].timeRemap.setValueAtTime(valFr,valK);
                                //キーをホールド
                                compLys[qq].timeRemap.setInterpolationTypeAtKey(numKey,keyType); 
                                numKey++;
	             	     }
                    }
              }
}

//*********FUNCTION_END**************************************************************