<?xml version="1.0" encoding="utf-8"?>
<TsLinkButton xmlns="commonLibrary.sharedComponent.*" xmlns:mx="http://www.adobe.com/2006/mxml" label="{ScreenItemName.BTN_LOGOUT_NAME}" click="logoff()" xmlns:model="cls.com.ils.biz.model.*"
	 implements="cls.com.ils.common.ctrl.ISharedSearch">
    <!-- データモデル、コントローラの定義 --> 
    <model:SharedDataModel id="_dataModel" />
<mx:Script>
	<![CDATA[
		import cls.com.ils.biz.model.enum.FlgKbn;
		import cls.com.ils.common.model.MsgMgr;
		import cls.com.ils.biz.model.SharedPlace;
		import cls.com.ils.biz.model.enum.ScreenItemName;
		import mx.managers.CursorManager;
		import cls.com.ils.biz.utility.logging.AppLoggingTool;
		import cls.com.ils.biz.ctrl.TsSharedSearch;
		
		// ログオフを実施する。
		// ログオフ後、ボタンが配置されている
		// 画面のlogoffメソッドを実行する
		public function logoff():void{
			
			var ctrl:TsSharedSearch = new TsSharedSearch("CM0020R",this);
			ctrl.searchCtrl(_dataModel);
		}
		
// レスポンスへの対応：共通エラー
		/**
		 * ログオフでタイムアウト→ログオフ済みと判断
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */		
		public function getTimeOutResponse(cd:String, message:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2}",this.name,"getTimeOutResponse",cd);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			this.setBusyCursor(false);
			
		}

		/**
		 * ログオフでジョブエラー→ログオフ済みと判断
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */	
		public function getJobErrResponse(cd:String,message:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getJobErrResponse",cd,message);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			this.setBusyCursor(false);

		}

		/**
		 * ログオフでシステムエラー→ログオフ済みと判断
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */	
		public function getSystemErrResponse(cd:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getSystemErrResponse",cd);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			this.setBusyCursor(false);

		}

// レスポンスへの対応：検索処理時レスポンス処理
				
		/**
		 * ログオフ成功
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */		
		public function getSrchOkResponse(cd:String,message:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getSrchOkResponse",cd,message);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			// カーソルを設定 
			this.setBusyCursor(false);
			
		}
		
		/**
		 * ログオフ成功
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */		
		public function getSrchOkMsgResponse(cd:String,message:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getSrchOkMsgResponse",cd,message);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			// カーソルを設定 
			this.setBusyCursor(false);
			
		}
		
		/**
		 * ログオフ成功
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */		
		public function getSrchAlertResponse(cd:String,message:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getSrchAlertResponse",cd,message);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
		
			// カーソルを設定 
			this.setBusyCursor(false);
		
		}
		
		/**
		 * ログオフでデータなし→ログオフ済みと判断
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */	
		public function getSrchNoDataResponse(cd:String,message:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getSrchNoDataResponse",cd,message);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			// カーソルを設定 
			this.setBusyCursor(false);
			
		}
		

		/**
		 * ログオフで項目レベルエラー→ログオフ済みと判断
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 * 
		 */	
		public function getSrchItemErrResponse(cd:String,message:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getSrchItemErrResponse",cd,message);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			// カーソルを設定 
			this.setBusyCursor(false);
			
		}
		
		/**
		 * ログオフで項目レベルエラー→ログオフ済みと判断
		 * @param cd メッセージコード
		 * @param message メッセージ内容
		 */		          
		public function getSrchAppErrResponse(cd:String,message:String,kbn:String):void{
			AppLoggingTool.logger.debug("{0}.{1}通過:{2},{3}",this.name,"getSrchAppErrResponse",cd,message);
			if(SharedPlace.AUTO_LOGIN == FlgKbn.ON){
				if(ExternalInterface.available == true){
					ExternalInterface.call("window.close()",null);
				}else{
					MsgMgr.dispMsg("Z7","ログオフ");
				}
			}else{
				parentDocument.logoff();
			}
			
			// カーソルを設定 
			this.setBusyCursor(false);
			
		}

		/**
		 * ビジー状態にする 
		 * @param state true:ビジー false:開放
		 * 
		 */		
		public function setBusyCursor(state:Boolean):void{
			
			if(state == true){
				this.enabled = false;
				CursorManager.setBusyCursor();							
			}else{
				this.enabled = true;
				CursorManager.removeBusyCursor();				
			}

		}

// 共通イベントメソッド定義（型を定義します）。
		/**
		 * 初期化処理。初期化処理がないがダミーとして作成
		 * 
		 */		
		public function onCreationComplete():void{}
		
	]]>
</mx:Script>
</TsLinkButton>
