var isIE = (document.documentElement.getAttribute("style") == document.documentElement.style);
var commonPath = document.getElementsByTagName('head')[0].getElementsByTagName('script')[0].src.split('js/common.js')[0];

/*============================================================**
		wrapHnTextInSpan
**============================================================*/

function wrapHnTextInSpan() {
	for (var n = 2; n <= 6; n++) {
		var hns = document.getElementsByTagName('h' + n);
		for (var i = 0; i < hns.length; i++) {
			var hn = hns[i];
			var span = document.createElement('span');
			
			while (hn.hasChildNodes()) {
				span.appendChild(hn.firstChild);
			}
			
			hn.appendChild(span);
		}
	}
}

/*============================================================**
		changeImg
**============================================================*/

var preloadImg = new Object();
var preNum = 0;

function btnOverEvent() {
	var imgs = document.getElementsByTagName('img');
	for (var i = 0; i < imgs.length; i++) {
		var img = imgs[i];
		if (img.src && img.src.indexOf('_f.') > -1 && img.parentNode.href) {
			var src = img.src;
			var newSrc = src.split('_f.')[0] + '_h.' + src.split('_f.')[1];
			preloadImg[preNum] = new Image();
			preloadImg[preNum].src = newSrc;
			setEvent(img, 'onmouseover', 'changeSrc(this, \'' + newSrc + '\'); return false;');
			setEvent(img, 'onmouseout', 'changeSrc(this, \'' + src + '\'); return false;');
			preNum++;
		}
	}
	
	var inputs = document.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++) {
		var input = inputs[i];
		if (input.src && input.src.indexOf('_f.') > -1) {
			var src = input.src;
			var newSrc = src.split('_f.')[0] + '_h.' + src.split('_f.')[1];
			preloadImg[preNum] = new Image();
			preloadImg[preNum].src = newSrc;
			setEvent(input, 'onmouseover', 'changeSrc(this, \'' + newSrc + '\'); return false;');
			setEvent(input, 'onmouseout', 'changeSrc(this, \'' + src + '\'); return false;');
			preNum++;
		}
	}
}

function changeSrc(element, src) {
	element.src = src;
}

/*============================================================**
		Width Resize
**============================================================*/

var resizeWidth = {
	'minWidth': '950',
	'maxWidth': '1200',
	'autoWidth': '100%'
};

function widthResize() {
	if (document.getElementById('BODY')) {
		var viewportWidth = document.body.clientWidth;
		if (viewportWidth > resizeWidth.maxWidth) {
			document.getElementById('BODY').style.width = resizeWidth.maxWidth + 'px';
		} else if (viewportWidth < resizeWidth.minWidth) {
			document.getElementById('BODY').style.width = resizeWidth.minWidth + 'px';
		} else {
			document.getElementById('BODY').style.width = resizeWidth.autoWidth;
		}
	}
}

window.onresize = function() {
	setTimeout('widthResize()', 400);
};

/*============================================================**
		Width Resize
**============================================================*/

fontsizeChanger = {
	setSize: false,
	setting: {
		target: 'BODY',
		smallSize: '88%',
		midiumSize: '100%',
		largeSize: '130%',
		smallButtonLabel: '&#25991;&#23383;&#12469;&#12452;&#12474;&#23567;',
		midiumButtonLabel: '&#25991;&#23383;&#12469;&#12452;&#12474;&#20013;',
		largeButtonLabel: '&#25991;&#23383;&#12469;&#12452;&#12474;&#22823;',
		availableDays: 7
	},
	writeButtons: function() {
		var smallButton = '<a href="#" onclick="fontsizeChanger.changeSize(\'' + this.setting.smallSize + '\', this); return false;"><img src="' + commonPath + 'images/button_fontsize_small_f.gif" width="18" height="16" alt="' + this.setting.smallButtonLabel + '" /></a>';
		var midiumButton = '<a href="#" onclick="fontsizeChanger.changeSize(\'' + this.setting.midiumSize + '\', this); return false;"><img src="' + commonPath + 'images/button_fontsize_medium_f.gif" width="20" height="17" alt="' + this.setting.midiumButtonLabel + '" /></a>';
		var largeButton = '<a href="#" onclick="fontsizeChanger.changeSize(\'' + this.setting.largeSize + '\', this); return false;"><img src="' + commonPath + 'images/button_fontsize_large_f.gif" width="21" height="19" alt="' + this.setting.largeButtonLabel + '" /></a>';
		if (this.setSize) {
			if (this.setSize == this.setting.smallSize) {
				smallButton = '<a href="#" onclick="fontsizeChanger.changeSize(\'' + this.setting.smallSize + '\', this); return false;"><img src="' + commonPath + 'images/button_fontsize_small_h.gif" width="18" height="16" alt="' + this.setting.smallButtonLabel + '" /></a>';
			}
			if (this.setSize == this.setting.midiumSize) {
				midiumButton = '<a href="#" onclick="fontsizeChanger.changeSize(\'' + this.setting.midiumSize + '\', this); return false;"><img src="' + commonPath + 'images/button_fontsize_medium_h.gif" width="20" height="17" alt="' + this.setting.midiumButtonLabel + '" /></a>';
			}
			if (this.setSize == this.setting.largeSize) {
				largeButton = '<a href="#" onclick="fontsizeChanger.changeSize(\'' + this.setting.largeSize + '\', this); return false;"><img src="' + commonPath + 'images/button_fontsize_large_h.gif" width="21" height="19" alt="' + this.setting.largeButtonLabel + '" /></a>';
			}
		}
		document.write('<ul id="FONTSIZE_CHANGER"><!--');
		document.write('--><li class="i1">' + smallButton + '</li><!--');
		document.write('--><li class="i2">' + midiumButton + '</li><!--');
		document.write('--><li class="i3">' + largeButton + '</li><!--');
		document.write('--></ul>');
	},
	changeSize: function(size, clicked) {
		if (document.getElementById(this.setting.target)) {
			document.getElementById(this.setting.target).style.fontSize = size;
		}
		
		var buttonImages = clicked.parentNode.parentNode.getElementsByTagName('img');
		for (var i = 0; i < buttonImages.length; i++) {
			buttonImages[i].src = buttonImages[i].src.replace('_h.gif', '_f.gif');
			setEvent(buttonImages[i], 'onmouseover', 'changeSrc(this, \'' + buttonImages[i].src.replace('_f.gif', '_h.gif') + '\'); return false;');
			setEvent(buttonImages[i], 'onmouseout', 'changeSrc(this, \'' + buttonImages[i].src + '\'); return false;');
		}
		clicked.getElementsByTagName('img')[0].src = clicked.getElementsByTagName('img')[0].src.replace('_f.gif', '_h.gif');
		setEvent(clicked.getElementsByTagName('img')[0], 'onmouseover', '');
		setEvent(clicked.getElementsByTagName('img')[0], 'onmouseout', '');
		
		var expires = new Date();
		expires.setTime(expires.getTime() + 24 * 60 * 60 * 1000 * this.setting.availableDays);
		document.cookie = 'font-size=' + size + '; path=/; expires=' + expires.toUTCString();
	},
	readCookie: function() {
		if (document.cookie.indexOf('font-size=') >= 0) {
			var cookieAll = document.cookie + ';';
			var cookieF = cookieAll.indexOf('font-size=');
			var cookieE = cookieAll.indexOf(';', cookieF);
			var fontSizeData = cookieAll.substring(cookieF, cookieE);
			this.setSize = fontSizeData.split('=')[1];
		} else {
			this.setSize = this.setting.midiumSize;
		}
		document.write('<style type="text/css">#' + this.setting.target + ' {font-size: ' + this.setSize + ';}</style>');
	}
};
fontsizeChanger.readCookie();

/*============================================================**
		etc
**============================================================*/

function setEvent(obj, eventType, func) {
	if (isIE) {
		obj.setAttribute(eventType, new Function(func));
	} else {
		obj.setAttribute(eventType, func);
	}
}

window.onload = function() {
	btnOverEvent();
	wrapHnTextInSpan();
};