/*
	nas.ProductionUnit　Object（制作単位）オブジェクト

ProductionUnit は、ムービー制作における制作単位を分割する要素である
一般にTVシリーズ制作の各制作話数　映画の興業単位　上映単位に対応する
一括りの予算管理単位であると位置づける

通常、制作時における1単位の制作チームが担当する範囲に相当する

管理要求に従って、1本の上映フイルムを複数の制作単位に分割して制作を行ったり
同チームで複数本の納品制作を行う際に、便宜上1つの制作単位として扱っても良いものとする

//	Object.create() を利用すること?　＞基本的に使用しない
　親のプロパティを変更するケースが殆ど無い
　仮に変更が発生した場合、自動でデフォルトの値が切り替わるのが制作上望ましくない

継承するべき親の参照をオブジェクト内に置いて、立ち上げ時に必要なプロパティは立ち上げ時の親のプロパティを必ず「複製」して持つ

上位オブジェクトから順に

ProjectTitle	(企画タイトル)
	通常はタイトルを冠する制作管理単位
	TVシリーズ１シーズン等がこれに当たる
	適宜分割して管理される場合もある
	制作途中で現場を維持したまま製作者が変更になるようなケースの場合は、
	ProjectTitleの委譲が行われる可能性があるのでその手続は念頭に置くこと

ProductionUnit	(制作管理単位)
	同じ予算枠または現場ごとに分割した管理ユニット
	ProjectTitleを直接構成する要素
	通常はTVシリーズ各話などの納品単位で分割する
	ただし、納品単位と一致するケースは多いがケースによっては
	納品本数が複数になったり、複数のProductionUnitで単一の納品を行うこともあり得る
	あくまで納品単位ではなく「制作管理単位」として捉えること

ProductionScene	(シーン)
	映画のシーンに相当する中間的な管理構造
	一幕（１シーン）またはそれに呼応する単位でカットをグループ化する
	ライン構成上は下のカットと同一になる場合もあり得るので注意（１シーン/１カット等）
	アセットの管理を行う際にインデックスの役目を果たす
	絵コンテのカット番号がシーン制をとらない場合でも、
	通常は一連のシーンに相当するカット群を別々のシーンとして管理に当たることが望ましい
	その場合は、時刻・舞台・登場人物等のシチュエーションでシーンを分割してIDを与える
	
ProductionCut	(カット)
	編集上のカッティング単位に呼応する管理構造
	作画（または他の）作業上同一リソースを複数のカットで共有するのが通常であるため
	１ユニットが複数のカット番号を保持する場合がある
	制作管理単位としては、ローレベル管理単位として捉えるべきで、カット番号に固執してはならない
	カット番号を持たないProductionCutが存在するので、その場合は適宜識別可能な名称を与えて管理対象とすること


このライブラリは、nas_common.js内部のオブジェクトを利用するものなので、ロード順位に注意
*/
/*
	制作スペックオブジェクト
	幅、アスペクト、基底解像度を指定
	ベースオブジェクトは　nsaオブジェクトのプロパティを継承
*/
//productMediaSpec base Class
nas.ProductMediaSpec={
	width		:new nas.UnitValue(nas.LENGTH)	,
	aspect		:"aspect"			,
	baseResolution	:"1233"	,
	baseFramerate	:"24"
}

//createMethod //引数指定がない場合は各自デフォルトの値で作成　デフォルト値はnas 定数オブジェクト
nas.newProductSpec=function(myWidth,myAspect,myPixelAspect,myBaseResolution){
	var newSpec= Object.create(nas.ProductionMediaSpec);
	if(arguments[0]) newSpec.width		=(myWidth instanceof nas.UnitValue)? myWidth:new nas.UnitValue(myWidth);
	if(arguments[1]) newSpec.aspect		=myAspect;
	if(arguments[2]) newSpec.pixelAspect	=myPixelAspect;
	if(arguments[3]) newSpec.baseResolution	=(myBaseResolotuion instanceof nas.Resolution)? myBaseResolution:new nas.Resolution(myBaseResolution);
	return newSpec;
}

/*
 *　ProductionTitle Object
 *	projectTitleID:	DB接続用ID
 *	title:	タイトル文字列
 *	extraditionMediaSpec:	納品仕様	納品用のビデオ映画等の仕様　原版仕様はこちらであるケースが多い
 *	outputMediaSpec:	編集仕様	編集時の入力仕様　正確には productionOutputMediaSpec 
 *						プロダクション出力の統一仕様である
 *	inputMediaSpec: 	仕上仕様	仕上出力時の標準仕様　コンポジット行程の入力標準仕様
 *	drawingMediaSpac:	作画納品仕様	作画出力時の標準仕様　仕上行程への入力標準仕様
 *	framerate:	基準フレームレート 	作品としての基準フレームレート 使用可能性のあるフレームレート全般を確認の上決定
 *	fixedLength:	定尺 制作時の定尺（あれば）
 *
 *
 *
 */

nas.ProductionTitle=function(myProduction,myTitle){
	this.producedBy=	myProduction;//プロダクション識別キー
	this.title=	myTitle;//タイトル文字列
	this.extraditionMedia=	"";//納品メディアスペック-DBへのポインタ/または識別文字列
	this.outputMedia=	"";//編集メディアスペック
	this.compositMedia=	"";//撮影仕上標準仕様:コンポジットのための標準仕様
	this.drawingMedia=	"";//寸法　この辺りの作品仕様はオブジェクト化するが吉
	this.framerate=		"";//フレームレートオブジェクト
	this.standerdFrame=	"";//標準フレーム w:aspect
	this.baseResolution=	"";//標準解像度
	this.guideMethod=	"";//ガイドメソッド(JAtrad,JAretas,4:3fields,5000center　等？)
	this.baseDrawingResoltion=	"";//作画標準解像度: これをここで定める必要があるか？　無いと思うんだけどどうよ？
}

//カラでオブジェクトを作成して必要なプロパティを上書きしてもOK
/*
 *   ProductionUnit Object	制作管理単位（各話）オブジェクト
 *	productionUnitID:DB接続用ID
 *	parentProduct:親プロジェクトへの参照（プロトタイプを指す）書き換え禁止
 *	title:タイトルを継承　書き換え禁止
 *	opus:管理単位識別ID
 *	subtitle:サブタイトルを登録
 *		以下のプロパティはオブジェクト初期化時にプロパティ自体を持たず親オブジェクトから継承
 *		プロパティを作成することでそれぞれの値を保持できるようにする
 *	extraditionMediaSpec:	納品仕様	納品用のビデオ映画等の仕様　原版仕様はこちらであるケースが多い
 *	outputMediaSpec:	編集仕様	編集時の入力仕様　正確には productionOutputMediaSpec 
 *	inputMediaSpec: 	仕上仕様	仕上出力時の標準仕様　コンポジット行程の入力標準仕様
 *	drawingMediaSpec:	作画納品仕様	作画出力時の標準仕様　仕上行程への入力標準仕様
 *	framerate:	基準フレームレート 
 *	fixedLength:	定尺 制作時の定尺（あれば）
 *
 *
 *
 *
 *
 */
nas.ProductionUnit=function(myParentProject,mySubtitle,myOpus){

}

//