//------------------------------
// はさみ移動処理
//-----------------------------
sc_open.onEnterFrame = function(){
	//移動?
	if( _global.comStatus == 'stick' ){
		stickCheckAndMove( sc_open );
	}
}

//------------------------------
// はさみ移動状態チェック
//-----------------------------
function stickStatusCheck(){

	//
	//はさみの状態
	if( _global.currentPOSs != _global.nextPOSs ){
		return false;
	}

return true;
}

//----------------------------
//はさみの移動確認と移動
//----------------------------
function stickCheckAndMove( obj:MovieClip ){
	var nextPOS:String;
	var fromX:Number;
	var fromY:Number;
	var toX:Number;
	var toY:Number;
	var tmpMOVEVALUE:Number;
	var Offset:Number;

	// 移動?
	if( _global.currentPOSs != _global.nextPOSs ){

		//
		//行き先を分離して取出す
		nextPOS = _global.nextPOSs;


		// from座標取得
		fromX = obj._x;
		fromY = obj._y;

		// to各座標の取得
		toX = getMtx( nextPOS.charAt(0,1), 'x' );
		if( toX == '' ){
			trace("stickMoveNG x");
			return;
		}

		toY = getMtx( nextPOS.charAt(1,1), 'y' );
		if( toY == '' ){
			trace("stickMoveNG y");
			return;
		}

		if( nextPOS.substr( 1, 1 ) != 'z' ){
			//y座標にオフセットを足す
			Offset = _global.stickOffset;
		}else{
			Offset = 0;
		}

		//
		// 移動処理
		//
		if( fromX == toX && fromY+Offset == toY ){
			//
			//移動終了ならカレント位置を変更
			_global.currentPOSs = nextPOS;

			//
			//次の移動データを設定(2文字左シフト)
			_global.stickMoveString = _global.stickMoveString.substr( 2 );
			_global.nextPOSs = _global.stickMoveString.substr( 0, 2 );

			//
			//箱移動開始？
			if( _global.nextPOSs.substr( 1, 1 ) == 'x'
				 && _global.currentPOSs.substr( 1, 1 ) != 'z'
				 && _global.comStatus == 'stick' ){
				_global.comStatus = 'move';
				//
				//箱の次の移動位置を設定
				hakoExtractAndSet();
			//
			//上空静止の場合
			}else if( _global.currentPOSs.substr( 1, 1 ) != 'z'
				 && _global.currentPOSs.substr( 1, 1 ) != 'x'
				 && _global.nextPOSs.substr( 1, 1 ) == '5'
				 && _global.comStatus == 'stick' ){
				_global.comStatus = 'move';
				//
				//箱の次の移動位置を設定
				hakoExtractAndSet();
			}
			//
			//最終位置にきたか?
			if( _global.stickMoveString.length < 2 && _global.comStatus == 'stick' ){

				//
				//次のはさみ全移動データ確認・設定
				if( makeStickMoveData() == true ){

					if( _global.currentPOSs.substr( 1, 1 ) == '5' ){

						//上空にいる時、次の移動データがある時は箱も動かす
						hakoExtractAndSet();
						_global.comStatus = 'move';
					}

				} else {
				//
				//移動終了だったら
					//
					//上空で終了の場合は閉じない？
					if( _global.currentPOSs.substr( 1, 1 ) != '5' ){
						//
						//はさみを閉じる
						stickClose();
					}
					//
					//通信許可
					_global.comStatus = 'idle';
				}
			}
			return to;
		}

		//
		//箱の移動量を取得
		tmpMOVEVALUE = _global.MOVEVALUE;

		//
		//x座標　減速しない
		//
		if( fromX < toX ){		//右移動
			obj._x += tmpMOVEVALUE;
			if( obj._x > toX ){
			//
			//行き過ぎたら戻して残り全部移動
				obj._x -= tmpMOVEVALUE;
				obj._x += ( toX - obj._x );
			}
		}else if ( fromX > toX ){		//左移動
			obj._x -= tmpMOVEVALUE;
			if( obj._x < toX ){
			//
			//行き過ぎたら戻して残り全部移動
				obj._x += tmpMOVEVALUE;
				obj._x -= ( obj._x - toX );
			}
		}
		//
		//y座標
		//
		if ( fromY+Offset < toY ){			//下向き移動
			obj._y += tmpMOVEVALUE;
			if( obj._y+Offset > toY ){
			//
			//行き過ぎたら戻して残り分移動
				obj._y -= tmpMOVEVALUE;
				obj._y += ( toY - obj._y - Offset );
			}
		}else if ( fromY+Offset > toY ){			//上向移動
			obj._y -= tmpMOVEVALUE;
			if( obj._y+Offset < toY ){
			//
			//行き過ぎたら戻して残り分移動
				obj._y += tmpMOVEVALUE;
				obj._y -= ( obj._y + Offset - toY );
			}
		}
	}
}

//--------------------------------------
// はさみを開く
//--------------------------------------
function stickOpen(){

	sc_close._visible = false;
	sc_open._x = sc_close._x;
	sc_open._y = sc_close._y;
	sc_open._visible = true;
	setDepth( sc_open );
//	sc_open.swapDepths( _global.depth++ );

}

//--------------------------------------
// はさみを閉じる
//--------------------------------------
function stickClose(){

	sc_open._visible = false;
	sc_close._x = sc_open._x;
	sc_close._y = sc_open._y;
	sc_close._visible = true;
	setDepth( sc_close );
//	sc_close.swapDepth( _global.depth++ );

}

//---------------------------
//はさみの移動データを作成する
//---------------------------
function makeStickMoveData(){
	var	moveString:String;

	//
	//移動文字列初期化
	_global.stickMoveString = '';

	//from to 座標を抽出
	moveString = _global.moveString.substr( 1, _global.ANSWER_COUNT -1 );
	if( moveString.length != _global.ANSWER_COUNT -1 ){
		//文字数エラー
		return false;
	}

	//
	//上空静止状態で同一行の移動？
	if( _global.currentPOSs.substr( 1, 1 ) == '5'
		&& moveString.substr( 0, 1 ) == moveString.substr( 2, 1 ) ){
		//
		//移動先へ
		_global.stickMoveString += moveString.substr( 2, 2 );
		//移動先の待機位置へ
		_global.stickMoveString += moveString.substr( 2, 1 );
		_global.stickMoveString += 'z';

		//
		//最初のnext設定
		_global.nextPOSs = _global.stickMoveString.substr( 0, 2 );
	
		return true;
	}
	
	//
	//移動元の待機位置へ
	if( _global.currentPOSs.substr( 0,1 ) != moveString.substr( 0,1 ) ){
		_global.stickMoveString = moveString.substr( 0, 1 );
		_global.stickMoveString += 'z';
	}

	if( moveString.substr( 1, 1 ) != '5' ){
		//
		//移動元へ
		_global.stickMoveString += moveString.substr( 0, 2 );
	}

	if( moveString.substr( 3, 1 ) != '5' ){
		//
		//移動元の上空
		_global.stickMoveString += moveString.substr( 0, 1 );
		_global.stickMoveString += 'x';

		//
		//移動先の上空
		_global.stickMoveString += moveString.substr( 2, 1 );
		_global.stickMoveString += 'x';
	}
	
	//
	//移動先へ
	_global.stickMoveString += moveString.substr( 2, 2 );

	if( moveString.substr( 3, 1 ) != '5' ){
		//
		//移動先の待機位置
		_global.stickMoveString += moveString.substr( 2, 1 );
		_global.stickMoveString += 'z';
	}

	//
	//最初のnext設定
	_global.nextPOSs = _global.stickMoveString.substr( 0, 2 );

return true;
}

