/***************/
/* takahashiX  */
/***************/
/*	2006.11.09	Opera Show 表示の時、フォントサイズを画面いっぱいにする。	*/
if(document.addEventListener)//!Trident
{
(function()
{
	document.addEventListener('load',changeFontSize,false);
	document.addEventListener
	('load',
		function()
		{
			document.addEventListener('mouseover',changeFontSize,false);
		},false
	)
	var takahashied = 0;

	function changeFontSize()
	{
		// PageFoot に page-break-before:always; が設定されている時だけ実行
		var PageFoot = document.getElementById('PageFoot');
		if(window.getComputedStyle(PageFoot,null).pageBreakBefore == "always" && takahashied != 1)//
		{
			tXYAll(document,'h1',0.7);
			tXAll(document,'h2',1.0);
			tXAll(document,'h3',0.9);
			var divs	= document.getElementsByTagName('div');
			for(var i = 0,div;div = divs[i];i++)
			{
				if(div.getAttribute('class') == 'content')
				{
					tXAll(div,'h4',0.7);
					tXAll(div,'h5',0.6);
					tXAll(div,'h6',0.6);
					tXYAll(div,'p',0.7);
					tXYAll(div,'table',0.4);
					tXYAll(div,'ul',0.5);
					tXYAll(div,'dl',0.3);
					objectFitTo(div);
					var ols	= document.getElementsByTagName('ol');
					for(var j = 0,ols;ol = ols[j];j++)
					{
						tXYAll(ol,'li',0.7);
					}
				}
			}
			takahashied = 1;
		}
		else if(window.getComputedStyle(PageFoot,null).pageBreakBefore != "always" && takahashied == 1)
		{
			var elements	= document.getElementsByTagName('*');
			for(var i = 0,element;element = elements[i];i++)
			{
				with(element.style)
				{
					fontSize	= "";
					lineHeight	= "";
					width      = "";
					height     = "";
				}
			}
			takahashied = 0;
		}
		/*	object 要素を広げる */
		function objectFitTo(parent)
		{
			var elements = parent.getElementsByTagName('object');
			var w	= parseInt(window.innerWidth  * 0.8);
			var h	= parseInt(window.innerHeight * 0.8);
			for(var i = 0,element;element = elements[i];i++)
			{
				element.style.width  = w + "px";
				element.style.height = h + "px";
			}
		}
		/*	指定要素すべてについて takahashiX */
		function tXAll(parent,tagName,size)
		{
			var elements = parent.getElementsByTagName(tagName);
			for(var i = 0,element;element = elements[i];i++)
			{
				takahashiX(element,size);
			}
		}
		/*	指定要素すべてについて takahashiXY */
		function tXYAll(parent,tagName,size)
		{
			var elements = parent.getElementsByTagName(tagName);
			for(var i = 0,element;element = elements[i];i++)
			{
				takahashiXY(element,size);
			}
		}
		/*	element 文字が、占有率 size で横幅にきっちり収まるように文字サイズを変更する。 	*/
		function takahashiX(element,size)
		{
			var windowWidth		= window.innerWidth;
			var elementLength	= element.innerText.length;
			var rts	= element.getElementsByTagName('rt');
			for(var i = 0,rt;rt = rts[i];i++)
			{
				elementLength = elementLength - rt.innerText.length - 2;
			}
			var eleFontSize	= Math.ceil(windowWidth / elementLength * size);
			with(element.style)
			{
				fontSize	= eleFontSize + "px";
				lineHeight	= "1.2em";
			}
		}
		/*	element 文字が、占有率 size で画面にきっちり収まるように文字サイズを変更する。 	*/
		function takahashiXY(element,size)
		{
			var windowWidth		= window.innerWidth;
			var windowHeight	= window.innerHeight;
			var elementLength	= element.innerText.length;
			var rts	= element.getElementsByTagName('rt');
			for(var i = 0,rt;rt = rts[i];i++)
			{
				elementLength = elementLength - rt.innerText.length - 2;
			}
			var imgSpace	= 0;
			var imgs			= element.getElementsByTagName('img');
			for(var i = 0,img;img = imgs[i];i++)
			{
				imgSpace = imgSpace + img.clientWidth * img.clientHeight;
			}
			var eleFontSize	= Math.ceil(Math.sqrt((windowWidth * windowHeight - imgSpace) / elementLength) * size);
			with(element.style)
			{
				fontSize	= eleFontSize + "px";
				lineHeight	= "1.2em !important";
			}
		}
	}
})();
}
