
//ページスクロール
var MovePageTimer;

function GetObjTag( tag_id )
{
	if( document.all && !window.opera ){
		return document.all( tag_id );
	} else if( document.getElementById ){
		return document.getElementById( tag_id );
	} else {
		return false;
	}
}

function GetCoords( obj_coords )
{
	if( obj_coords )
	{
		if( document.all && !window.opera ){
			if( obj_coords.obj_tag ){
				obj_coords.x = obj_coords.obj_tag.offsetLeft;
				if( typeof( obj_coords.obj_tag.offsetParent ) != "undefined" )
				{
					var obj_temp = obj_coords.obj_tag.offsetParent;
					while( obj_temp.tagName.toLowerCase() != "body" )
					{
						obj_coords.x += obj_temp.offsetLeft;
						obj_temp = obj_temp.offsetParent;
					}
				}
				obj_coords.y = obj_coords.obj_tag.offsetTop;
				if( typeof( obj_coords.obj_tag.offsetParent ) != "undefined" )
				{
					obj_temp = obj_coords.obj_tag.offsetParent;
					while( obj_temp.tagName.toLowerCase() != "body" )
					{
						obj_coords.y += obj_temp.offsetTop;
						obj_temp = obj_temp.offsetParent;
					}
				}
			} else {
				if( document.compatMode )
				{
					obj_coords.x = ( document.compatMode == "CSS1Compat" ) ? document.body.parentNode.scrollLeft : document.body.scrollLeft;
					obj_coords.y = ( document.compatMode == "CSS1Compat" ) ? document.body.parentNode.scrollTop : document.body.scrollTop;
				} else {
					obj_coords.x = document.body.scrollLeft;
					obj_coords.y = document.body.scrollTop;
				}
			}
		} else if( document.getElementById ){
			if( obj_coords.obj_tag ){
				obj_coords.x = obj_coords.obj_tag.offsetLeft;
				obj_coords.y = obj_coords.obj_tag.offsetTop;
			} else {
				obj_coords.x = window.pageXOffset;
				obj_coords.y = window.pageYOffset;
			}
		} else {
			return false;
		}
		return obj_coords;
	} else {
		return false;
	}
}

function GetMaxHeight( last_id )
{
	var win_height = 0;
	var doc_height = 0;

	if( document.all && !window.opera ){
		if( document.compatMode )
		{
			win_height = ( document.compatMode == "CSS1Compat" ) ? document.body.parentNode.clientHeight : document.body.clientHeight;
			doc_height = ( document.compatMode == "CSS1Compat" ) ? document.body.parentNode.scrollHeight : document.body.scrollHeight;
		} else {
			win_height = document.body.clientHeight;
			doc_height = document.all( last_id ).offsetTop;
			var obj_temp = document.all( last_id ).offsetParent
			while( obj_temp.tagName.toLowerCase() != "body" )
			{
				doc_height += obj_temp.offsetLeft;
				obj_temp = obj_temp.offsetParent;
			}

		}
	} else {
		win_height = window.innerHeight;
//		doc_height = document.height;
		doc_height = document.getElementById( last_id ).offsetTop;
	}
	return doc_height - win_height;

}

function MovePage( to_x,to_y,form_x,form_y,url )
{
	var frame_num = 6;

	if (MovePageTimer){ clearTimeout(MovePageTimer); }

	var go_x = ( to_x - form_x ) / frame_num;
	if( go_x > 0 && go_x < 1 ){ go_x = 1; }
	var go_y = ( to_y - form_y ) / frame_num;
	if( go_y > 0 && go_y < 1 ){ go_y = 1; }
	form_x = Math.floor( form_x + go_x );
	if( form_x < 0 ){ form_x = 0; }
	form_y = Math.floor( form_y + go_y );
	if( form_y < 0 ){ form_y = 0; }

	window.scrollTo( form_x, form_y );


	if( ( to_x != form_x ) || ( to_y != form_y ) )
	{
		MovePageTimer = setTimeout( "MovePage("+to_x+","+to_y+","+form_x+","+form_y+",'"+url+"')", 16 );
//	} else {
//		if( navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1 ){
//			document.location.href = url;
//		}
	}
}


function MovePageScroll( tag_id,last_id, url )
{
	var max_height = GetMaxHeight( last_id );
	var to_coords = new Object;
	if( tag_id ){
		if( tag_id == "top" )
		{
			to_coords.obj_tag = GetObjTag( tag_id );
			if( !to_coords.obj_tag ){
				document.location.href = url;
				return;
			}
			to_coords = GetCoords( to_coords );
			if( !to_coords ){
				document.location.href = url;
				return;
			}
			if( to_coords.y > max_height ){ to_coords.y = max_height; }
			to_coords.obj_tag = null;
		} else {
			to_coords.obj_tag = GetObjTag( tag_id );
			if( !to_coords.obj_tag ){
				document.location.href = url;
				return;
			}
			to_coords = GetCoords( to_coords );
			if( !to_coords ){
				document.location.href = url;
				return;
			}
			if( to_coords.y > max_height ){ to_coords.y = max_height; }
			to_coords.obj_tag = null;
		}
	} else {
		to_coords.x = 0;
		to_coords.y = 0;
	}

	var form_coords = new Object;
	form_coords = GetCoords( form_coords );
	if( !form_coords ){
		document.location.href = url;
		return;
	}

	if( form_coords.y > max_height ){ form_coords.y = max_height; }
	if( ( to_coords.x != form_coords.x ) || ( to_coords.y != form_coords.y ) )
	{
		MovePageTimer = setTimeout( "MovePage("+to_coords.x+","+to_coords.y+","+form_coords.x+","+form_coords.y+",'"+url+"')", 16 );
	}
}


