utgp = ( function () {
	
	var get_window_height, get_scroll_top;
	( function () {
		var h, t;
		if ( !document.all && (document.layers || document.getElementById) ) {
			h = function () { return window.innerHeight; };
			t = function () { return window.pageYOffset; };
		} else if ( document.getElementById && (document.compatMode=='CSS1Compat') ) {
			h = function () { return document.documentElement.clientHeight;};
			t = function () { return document.documentElement.scrollTop;   };
		} else if ( document.all ){
			h = function () { return document.body.clientHeight;};
			t = function () { return document.body.scrollTop;   };
		}
		get_window_height = h;
		get_scroll_top = t;
	} )();
	
	/**
	 * @param int img_size               : pagetop.gifのheight
	 * @param int utgpContent_area       : utgpContentのwidth
	 * @param int min_trace_area         : page topボタンがスクロールエリアの最小値
	 * @param int max_trace_area         : page topボタンのスクロールエリアの最大値
	 */
	var img_size = 0;
	var utgpContent_area;
	var min_trace_area;
	var max_trace_area ;
	window.onload = function () {
		utgpContent_area = document.getElementById('utgpBorder').offsetWidth;
		min_trace_area = document.getElementById('utgpContent').offsetTop;
		max_trace_area = document.getElementById('utgpBorder').offsetHeight + min_trace_area;
		
		var ulEle   = document.createElement('ul');
		ulEle.id    = 'lastPagetopdummy';
		ulEle.className = 'pageTop';
		document.body.appendChild( ulEle );
		var liEle   = document.createElement('li');
		liEle.id    = 'lilastPagetop';
		liEle.style.position = 'static';
		document.getElementById('lastPagetopdummy').appendChild( liEle );
		var aEle    = document.createElement('a');
		aEle.id     = 'pagetopid';
		aEle.href   = '#globalHeader';
		aEle.style.position = 'absolute';
		aEle.style.top = get_scroll_top() + get_window_height() - img_size + 'px';
		aEle.style.left = document.getElementById('utgpContent').offsetLeft + utgpContent_area + 'px';
		document.getElementById('lilastPagetop').appendChild( aEle );
		
		img_size = document.getElementById('pagetopid').offsetHeight;
		
		setTimeout( function () {
			utgp_scroll_trace();
			utgp_resize_trace();
		}, 500 );
		
	}
	
	var scrollTimer;
	utgp_scroll_trace = function () {
		var scroll = function () {
			var aEle = document.getElementById('pagetopid').style;
			
			if ( get_window_height() +  get_scroll_top() >= max_trace_area ) {
				aEle.top = max_trace_area - img_size + 'px';
			} else if ( get_scroll_top() + get_window_height() - img_size <= min_trace_area ) {
				aEle.top = min_trace_area + 'px';
			} else {
				aEle.top = get_scroll_top() + get_window_height() - img_size + 'px';
			}
			
		};
		document.body.onscroll = scroll;
		scrollTimer = setInterval( scroll, 100 );
	};
	
	var resizeTimer;
	utgp_resize_trace = function () {
		var resize = function () {
			var aEle = document.getElementById('pagetopid').style;
			aEle.left = document.getElementById('utgpContent').offsetLeft + utgpContent_area + 'px';
		};
		document.body.onresize = resize;
		resizeTimer = setInterval( resize, 100 );
	};
})();
