/*
	アクティブドキュメントに対応するXPSファイルを探して編集する
*/

//Photoshop用ライブラリ読み込み
if(typeof app.nas =="undefined"){
   var myLibLoader=new File(Folder.userData.fullName+"/nas/lib/Photoshop_Startup.jsx");
   $.evalFile(myLibLoader);
}else{
   nas=app.nas;
}
//+++++++++++++++++++++++++++++++++ここまで共用
/*
追加ライブラリのロード
startupロードのオブジェクトは消失するので
nasオブジェクト配下以外のものは必要に従って以下のルーチンで読み込む
*/
var includeLibs=[];//読み込みライブラリを格納する配列
var nasLibFolderPath =  Folder.userData.fullName+"/nas/lib/";
/*	ライブラリ読み込み
ここで必要なライブラリをリストに加えてから読み込みを行う
includeLibs.push(nasLibFolderPath+"psAnimationFrameClass.js");
*/
    includeLibs.push(nasLibFolderPath+"config.js");
    includeLibs.push(nasLibFolderPath+"nas.XpsStore.js");
    includeLibs.push(nasLibFolderPath+"xpsio.js");
    includeLibs.push(nasLibFolderPath+"mapio.js");
    includeLibs.push(nasLibFolderPath+"lib_STS.js");
    includeLibs.push(nasLibFolderPath+"dataio.js");
    includeLibs.push(nasLibFolderPath+"fakeAE.js");
    includeLibs.push(nasLibFolderPath+"io.js");
    includeLibs.push(nasLibFolderPath+"xpsQueue.js");
    includeLibs.push(nasLibFolderPath+"newXps.jsx");

for(prop in includeLibs){
	var myScriptFileName=includeLibs[prop];
	//$.evalFile ファンクションで実行する
		$.evalFile(myScriptFileName);
}
//+++++++++++++++++++++++++++++++++追加ロード終了
/*	暫定ローダー
これが必要なのはCSX(CS6)Photoshopのみ
	ライブラリの整理後は調整必要	2015 06-12
*/
//==================================================================main

if(true){
//動作抑制オブジェクト
	var XPS=new Xps();
//	nas.XPSStore=new XpsStore();
}
if((app.documents.length)){
//
var myTarget=app.activeDocument;
if(myTarget.name.match(/.*\.psd$/i)){
	var myXpsFile=new File([myTarget.fullName.path,myTarget.fullName.name.replace(/\.psd/,".xps")].join("/"));

if(myXpsFile.exists){
	//ファイルが存在するので編集ソフトに渡して終了
		var myOpenfile = new File(myXpsFile.fsName);
		myOpenfile.execute();
}else{
	//ターゲットのXPSが存在しないので、
	//現状のドキュメントに従う（と思われる）XPSをカラで生成して保存する
	//可能ならその場で編集ユニットをコースする
	var myDuration=nas.FRATE*3;//frames初期値３秒
	var myFps=nas.FRATE;
//	(Framesフォルダをシートに入れるか否かを参照すること)
	var myTimelineCount=((true)&&(myTarget.layers[0].name=="Frames")&&(myTarget.layers[0].typename == "LayerSet"))?
		myTarget.layers.length-1:myTarget.layers.length;
	XPS.init(myTimelineCount,myDuration);
	XPS.mapFile="./"+myTarget.fullName.name;
	XPS.title=nas.workTitles.select()[0];
	XPS.create_user=nas.CURRENTUSER;
	XPS.update_user=nas.CURRENTUSER;
	XPS.framerate=myFps;
	XPS.cut=myTarget.name.replace(/\.psd/i,"");
	var mx=myTimelineCount;
	for(var lix=0;lix<mx;lix++){
		var psLayerId=(myTarget.layers.length!=mx)? mx-lix:mx-lix-1;
		XPS.layers[lix].name=(myTarget.layers[psLayerId].name.replace(/\s/g,""));//name設定時にencoding設定してレイヤ名から空白をエスケープすること
		XPS.layers[lix].sizeX=myTarget.layers[psLayerId].bounds[2].as("px")-myTarget.layers[psLayerId].bounds[0].as("px");
		XPS.layers[lix].sizeY=myTarget.layers[psLayerId].bounds[3].as("px")-myTarget.layers[psLayerId].bounds[1].as("px");
//lot が取得可能なのはレイヤセット（layersプロパテイがある）のみそれ以外は１で固定
		XPS.layers[lix].lot=(myTarget.layers[psLayerId].layers)?myTarget.layers[psLayerId].layers.length:1;
	}
	if(confirm(nas.localize({en:"There is no exposure sheet. Are you sure you want to edit it to create a new?",ja:"タイムシートがありません。新規に作成して編集しますか？"}))){
	var fileSaveResult=editXpsProp(XPS);
//	alert(fileSaveResult);
		if((fileSaveResult)&&(myXpsFile.exists)){myXpsFile.execute()};
if(false){
//保存して　ドキュメントを呼び出す
		myXpsFile.encoding="utf8";
		myXpsFile.open("w");
		myXpsFile.write(XPS.toString());
		myXpsFile.close();

		myXpsFile.execute();
}
	}
}
}else{
    alert(nas.localize({
	en:"If the file has not been saved as a psd, you can not create a sheet",
	ja:"ファイルがpsdとして保存されていない場合は、シートを作成できません"
    }));
}

}
//alert(XPS.toString())