// フレームスライド制御クラス.
function MoveFrame()
{
	this.SlideFrame = 30;							// スライドフレーム数.
	this.SlideInterval =10;						// インターバル.
	this.SlideCount = 0;							// スライドカウント.
	this.DefTop;											// デフォルトTOP.
	this.TargetTop;										// 移動目標TOP.
	this.FrameSetTimeoutID = null;		// 
	this.TabSetTimeoutID = null;		//
	this.MapSetTimeoutID = null;		//

  // divタグの移動.
  // div		対応のdivオブジェクト.
  // top		top.
  // left		left.
	this.MoveDivTo = function(div, top, left)
	{
		if (div != null)
		{
			div.style.left = left;
	    	div.style.top = top;
		}
	}

	// 縦移動.
	// div		対応のdivオブジェクト.
	// top		top.
	this.Vertical = function(div, top)
	{
		this.SlideCount = 0;
		
		if (div != null)
		{
			this.DefTop = parseInt(div.style.top);
			
			if (this.DefTop != top)
			{
				this.TargetTop = top;
				this.SlideCount = 0;
				var moveInterval = (top - parseInt(div.style.top)) / this.SlideFrame;
				
				this.FrameSetTimeoutID = setTimeout(function(){moveFrame.MoveVertical(div, moveInterval);} , this.SlideInterval);
			}
		}
		
//		return false;
	}

	this.MoveVertical = function(div, top)
	{
		this.SlideCount++;
		if (div != null)
		{
			div.style.top = this.DefTop + (top * this.SlideCount);
		}
		if (this.SlideCount < this.SlideFrame)
		{
			this.FrameSetTimeoutID = setTimeout(function(){moveFrame.MoveVertical(div, top);} , this.SlideInterval);
		}
		else
		{
			moveFrame.MoveDivTo(div, this.TargetTop, div.style.left);
			this.FrameSetTimeoutID = null;
		}
//		return false;
	}
	
	this.MoveTabFrame = function(id)
	{
		var tabFrame = "TabFrame";
		var seachFrame = "SeachFrame";
		var informationFrame = "InformationFrame";
		var memoFrame = "MemoFrame";
		var neighborhoodFrame = "NeighborhoodFrame";
		var contentsFrame = "ContentsFrame";
		var left = 0;
		
		
		div = document.getElementById(id);

		if (div == null) return;

		if (parseInt(div.style.top) == 0)
		{
			moveFrame.Vertical(div, (parseInt(div.style.height) * -1));
			this.TabSetTimeoutID = setTimeout(function(){moveFrame.MoveDivTo(document.getElementById(tabFrame), (parseInt(div.style.height) * -1), parseInt(document.getElementById(tabFrame).style.left));} , 1000);
			document.getElementById(id + "Button").src = "MapForm/img/" + id + ".gif" ;
			
		}
		else
		{
			switch(id)
			{
				case seachFrame:
					if (this.FrameSetTimeoutID != null)
					{
						clearTimeout(this.FrameSetTimeoutID);
						this.FrameSetTimeoutID = null;
					}
				
					div = document.getElementById(informationFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(memoFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(neighborhoodFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					
					div = document.getElementById(contentsFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					
					document.getElementById(seachFrame + "Button").src = "MapForm/img/" + seachFrame + "_on.gif" ;
					document.getElementById(informationFrame + "Button").src = "MapForm/img/" + informationFrame + ".gif" ;
					document.getElementById(memoFrame + "Button").src = "MapForm/img/" + memoFrame + ".gif" ;
					document.getElementById(neighborhoodFrame + "Button").src = "MapForm/img/" + neighborhoodFrame + ".gif" ;
					document.getElementById(contentsFrame + "Button").src = "MapForm/img/" + contentsFrame + ".gif" ;
					
					break;
				case informationFrame:
					if (this.FrameSetTimeoutID != null)
					{
						clearTimeout(this.FrameSetTimeoutID);
						this.FrameSetTimeoutID = null;
					}
				
					div = document.getElementById(seachFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(memoFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(neighborhoodFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					
					div = document.getElementById(contentsFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}

					document.getElementById(informationFrame + "Button").src = "MapForm/img/" + informationFrame + "_on.gif" ;
					document.getElementById(seachFrame + "Button").src = "MapForm/img/" + seachFrame + ".gif" ;
					document.getElementById(memoFrame + "Button").src = "MapForm/img/" + memoFrame + ".gif" ;
					document.getElementById(neighborhoodFrame + "Button").src = "MapForm/img/" + neighborhoodFrame + ".gif" ;
					document.getElementById(contentsFrame + "Button").src = "MapForm/img/" + contentsFrame + ".gif" ;
					
					break;
				case memoFrame:
					if (this.FrameSetTimeoutID != null)
					{
						clearTimeout(this.FrameSetTimeoutID);
						this.FrameSetTimeoutID = null;
					}
				
					div = document.getElementById(seachFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(informationFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(neighborhoodFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(contentsFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					
					document.getElementById(memoFrame + "Button").src = "MapForm/img/" + memoFrame + "_on.gif" ;
					document.getElementById(seachFrame + "Button").src = "MapForm/img/" + seachFrame + ".gif" ;
					document.getElementById(informationFrame + "Button").src = "MapForm/img/" + informationFrame + ".gif" ;
					document.getElementById(neighborhoodFrame + "Button").src = "MapForm/img/" + neighborhoodFrame + ".gif" ;
					document.getElementById(contentsFrame + "Button").src = "MapForm/img/" + contentsFrame + ".gif" ;
					
					break;
				case neighborhoodFrame:
					if (this.FrameSetTimeoutID != null)
					{
						clearTimeout(this.FrameSetTimeoutID);
						this.FrameSetTimeoutID = null;
					}
									
					div = document.getElementById(seachFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(informationFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(memoFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(contentsFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					
					document.getElementById(neighborhoodFrame + "Button").src = "MapForm/img/" + neighborhoodFrame + "_on.gif" ;
					document.getElementById(seachFrame + "Button").src = "MapForm/img/" + seachFrame + ".gif" ;
					document.getElementById(informationFrame + "Button").src = "MapForm/img/" + informationFrame + ".gif" ;
					document.getElementById(memoFrame + "Button").src = "MapForm/img/" + memoFrame + ".gif" ;
					document.getElementById(contentsFrame + "Button").src = "MapForm/img/" + contentsFrame + ".gif" ;
					
					break;
					
				case contentsFrame:
					if (this.FrameSetTimeoutID != null)
					{
						clearTimeout(this.FrameSetTimeoutID);
						this.FrameSetTimeoutID = null;
					}
									
					div = document.getElementById(seachFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(informationFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(memoFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					div = document.getElementById(neighborhoodFrame);
					if (div != null)
					{
						moveFrame.MoveDivTo(div, (parseInt(div.style.height) * -1), left);
						div.style.visibility = "hidden";
					}
					
					document.getElementById(contentsFrame + "Button").src = "MapForm/img/" + contentsFrame + "_on.gif" ;
					document.getElementById(seachFrame + "Button").src = "MapForm/img/" + seachFrame + ".gif" ;
					document.getElementById(informationFrame + "Button").src = "MapForm/img/" + informationFrame + ".gif" ;
					document.getElementById(memoFrame + "Button").src = "MapForm/img/" + memoFrame + ".gif" ;
					document.getElementById(neighborhoodFrame + "Button").src = "MapForm/img/" + neighborhoodFrame + ".gif" ;
					
					break;
			}
			
			div = document.getElementById(id);
			//自分自身の現在の場所を把握
			if (parseInt(div.style.top) < 0 && parseInt(div.style.top) > (parseInt(div.style.height) * -1))
			{
				if (this.TargetTop != 0)
				{
					//非表示しようとしていた
					clearTimeout(this.TabSetTimeoutID);
					this.TabSetTimeoutID = null;
					document.getElementById(id + "Button").src = "MapForm/img/" + id + "_on.gif" ;
					moveFrame.MoveDivTo(document.getElementById(tabFrame), documentHeader, parseInt(document.getElementById(tabFrame).style.left));
					moveFrame.Vertical(div, 0);
					
				}
				else
				{
					//表示しようとしていた
					document.getElementById(id + "Button").src = "MapForm/img/" + id + ".gif" ;
					moveFrame.Vertical(div, (parseInt(div.style.height) * -1));
					this.TabSetTimeoutID = setTimeout(function(){moveFrame.MoveDivTo(document.getElementById(tabFrame), (parseInt(div.style.height) * -1), parseInt(document.getElementById(tabFrame).style.left));} , 1000);
				}
			}
			else
			{
				//表示されていない
				clearTimeout(this.TabSetTimeoutID);
				this.TabSetTimeoutID = null;
				document.getElementById(id + "Button").src = "MapForm/img/" + id + "_on.gif" ;
				moveFrame.MoveDivTo(document.getElementById(tabFrame), documentHeader, parseInt(document.getElementById(tabFrame).style.left));
				div.style.visibility = "visible";
				moveFrame.Vertical(div, 0);
			}
		}
	}
	
	this.MoveMapFrame = function(id)
	{
		var tabFrame = "MapFrame";
		var left = 0;
		
		div = document.getElementById(id);

		if (div == null) return;

		if (parseInt(div.style.top) == 0)
		{
			moveFrame.Vertical(div, (parseInt(div.style.height) * -1));
			this.MapSetTimeoutID = setTimeout(function(){moveFrame.MoveDivTo(document.getElementById(tabFrame), (parseInt(div.style.height) * -1), parseInt(document.getElementById(tabFrame).style.left));} , 1000);
			document.getElementById("OrthoImage").src = "MapForm/img/Ortho.gif" ;
			
		}
		else
		{
			if (this.FrameSetTimeoutID != null)
			{
				clearTimeout(this.FrameSetTimeoutID);
				this.FrameSetTimeoutID = null;
			}
					
			div = document.getElementById(id);
			//自分自身の現在の場所を把握
			if (parseInt(div.style.top) < 0 && parseInt(div.style.top) > (parseInt(div.style.height) * -1))
			{
				if (this.TargetTop != 0)
				{
					//非表示しようとしていた
					clearTimeout(this.MapSetTimeoutID);
					this.MapSetTimeoutID = null;
					document.getElementById("OrthoImage").src = "MapForm/img/Ortho_on.gif" ;
					moveFrame.MoveDivTo(document.getElementById(tabFrame), documentHeader, parseInt(document.getElementById(tabFrame).style.left));
					moveFrame.Vertical(div, 0);
				}
				else
				{
					//表示しようとしていた
					document.getElementById("OrthoImage").src = "MapForm/img/Ortho.gif" ;
					moveFrame.Vertical(div, (parseInt(div.style.height) * -1));
					this.MapSetTimeoutID = setTimeout(function(){moveFrame.MoveDivTo(document.getElementById(tabFrame), (parseInt(div.style.height) * -1), parseInt(document.getElementById(tabFrame).style.left));} , 1000);
				}
			}
			else
			{
				//表示されていない
				clearTimeout(this.MapSetTimeoutID);
				this.MapSetTimeoutID = null;
				document.getElementById("OrthoImage").src = "MapForm/img/Ortho_on.gif" ;
				moveFrame.MoveDivTo(document.getElementById(tabFrame), documentHeader, parseInt(document.getElementById(tabFrame).style.left));
				div.style.visibility = "visible";
				moveFrame.Vertical(div, 0);
			}
		}
	}
}



