﻿/* ■■ common.js ■■ */
/* common.jsは汎用関数をまとめたJavaScript集です。
-----------------------------------------------------------------------------
■目次
	01.ページ向け全般
		01.ページトップへするするスクロール(ReturnToTop)
		02.画像ロールオーバー(RollOver)
		03.トップページ画像ランダム表示(RandomVisual)
	02.Header関連
		01.文字サイズ変更(FontSizeChange)
	03.PageBody関連
		01.お申し込みボタン(Button)
	04.Footer関連
		01.お申し込みボタン(FNButton)
----------------------------------------------------------------------------- */

// ■■ 01.ページ向け全般

// ■□ 01-01.ページトップへするするスクロール(ReturnToTop)
// ページの先頭、引数を入れた場合は引数のIDの場所へなめらか動作でスクロールする関数。
// 使用例）
// <a href="#Header" onclick="ReturnToTop(); return false;">ページTOPへ</a>
// <a href="#Main" onclick="ReturnToTop('Main'); return false;">ページ本文へ</a>
function ReturnToTop(pos,now) {
	var x1 = x2 = x3 = 0;
	var y1 = y2 = y3 = y4 = 0;
	if (document.documentElement) {
		x1 = document.documentElement.scrollLeft || 0;
		y1 = document.documentElement.scrollTop || 0;
	}
	if (document.body) {
		x2 = document.body.scrollLeft || 0;
		y2 = document.body.scrollTop || 0;
	}
	x3 = window.scrollX || 0;
	y3 = window.scrollY || 0;
	var x = Math.max(x1, Math.max(x2, x3));
	var y = Math.max(y1, Math.max(y2, y3));
	if (!pos) {
		//ページトップへ
		window.scrollTo(Math.floor(x / 1.25), Math.floor(y / 1.25));
		if (x > 0 || y > 0) {
			window.setTimeout("ReturnToTop()", 25);
		}
	} else {
		//引数に入れたid名の場所へ(y軸限定)
		var usrAge = navigator.userAgent;
		if (window.opera || usrAge.indexOf("Safari",0) > 0 || usrAge.indexOf("Chrome",0) > 0) {
			//Opera、Safari、Chromeは除外
			window.open("#"+pos,"_self")
			return false;
		}
		var isMSIE = /*@cc_on!@*/false;
		var targetEle = document.getElementById(pos);

		while( targetEle ){
			y4 += targetEle.offsetTop;
			targetEle = targetEle.offsetParent;
			//IEの補正：上記計算で無視されてしまう各親要素のborder幅を加算
			if ((targetEle) && (isMSIE)) {
				y4 += (parseInt(getElementStyle(targetEle,"borderTopWidth","border-top-width")) || 0);
			}
		}

		var y5 = y4-y;
		y += Math.floor(y5 / 5);
		window.scrollTo(x, y);
		if ((!now || now != y)&&(y > y4-5 || y < y4-5)) {
			window.setTimeout('ReturnToTop("'+pos+'","'+y+'")', 25);
		}
	}
}
function getElementStyle(targetElm,IEStyleProp,CSSStyleProp) {
	var elem = targetElm;
	if (elem.currentStyle) {
		return elem.currentStyle[IEStyleProp];
	} else if (window.getComputedStyle) {
		var compStyle = window.getComputedStyle(elem,"");
		return compStyle.getPropertyValue(CSSStyleProp);
	}
}

// ■□ 01-02.画像ロールオーバー(RollOver)
// Standards Compliant Rollover Script
// Author : Daniel Nolan
// http://www.bleedingego.co.uk/webdev.php
//
// 使用例）
// imgタグに.rolloverを指定すると、ファイル名の末尾に
// _roとついた画像に自動ロールオーバー。
function RollOver() {
	if (!document.getElementById) return
	
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');

	for (var i = 0; i < aImages.length; i++) {
		if (aImages[i].className == 'rollover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_ro'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}
			
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_ro'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
	//プルダウンボタン画像類
	var fontImages01 = new Image();
	var fontImages02 = new Image();
	var pldownImages01 = new Image();
	var pldownImages02 = new Image();
	
	fontImages01.src = '/common/img/header/btn_font-medium_ro.gif';
	fontImages02.src = '/common/img/header/btn_font-large_ro.gif';
	pldownImages01.src = '/common/img/btn_portal_small_ro.gif';
	pldownImages02.src = '/common/img/footer/btn_portal_medium_ro.gif';
}


// ■□ 01-03.トップページ画像ランダム表示(RandomVisual)
// トップページにて使用。ビジュアルイメージ画像をランダムで表示切り替えを行います。
// 使用例）
// <body onload="RandomVisual">
function RandomVisual() {
	imageSrc = new Array('img/pic_visual-image_01.jpg','img/pic_visual-image_02.jpg');
	imageAlt = new Array('ソフトバンクモバイルの法人向けメール転送サービス 1名様からOK 月額315円　会社のメールが自動でケータイに飛んできて、そのまま会社のメアドで返信できる。','ソフトバンクモバイルの法人向け携帯メール転送サービス 1名様からOK　月額315円　会社のメールが自動でケータイに飛んできて、そのまま会社のメアドで返信できる。');
	pos = Math.floor(Math.random()*imageSrc.length);
	d = document;
	d.getElementById('VisualImage').innerHTML = '<img alt="'+imageAlt[pos]+'" src="'+imageSrc[pos]+'" />';
}



// ■■ 02.Header関連

// ■□ 02-01.文字サイズ変更(FontSizeChange)
// グローバルヘッダー右にある、文字サイズを変更する関数です。
function FontSizeChange(sizer) {
	//medium = 14px;
	//large = 21px;
	d = document;
	BaseBox = d.getElementById("AllLayout");
	MediumSwitch = d.getElementById("FCmedium");
	LargeSwitch = d.getElementById("FClarge");
	switch(sizer){
		case "medium":	//文字サイズ：中
			BaseBox.style.fontSize = "14px";
			MediumSwitch.src = "/common/img/header/btn_font-medium_ro.gif";
			LargeSwitch.src = "/common/img/header/btn_font-large.gif";
			break;
		case "large":	//文字サイズ：大
			BaseBox.style.fontSize = "21px";
			MediumSwitch.src = "/common/img/header/btn_font-medium.gif";
			LargeSwitch.src = "/common/img/header/btn_font-large_ro.gif";
			break;
		default:
			break;
	}
}



// ■■ 03.PageBody関連

// ■□ 03-01.お申し込みボタン(PulldownMenu)
// 右カラムとフッターにある、お問い合わせボタンのプルダウン化関数です。
function PulldownMenu(pos,status) {
	//po = visual = トップページ上部
	//pos = footer = フッター
	//pos = pagebody = 右カラム
	d = document;
	switch(pos){
		case 'visual':
			fnparent = d.getElementById('VsHiddenButtonsParent');
			fnpulldown = d.getElementById('VsHiddenButtons');
			if(status == 0){
				fnpulldown.style.display = 'none';
				fnparent.src = '/img/btn_portal_large.gif';
			} else if(status == 1) {
				fnpulldown.style.display = 'block';
				fnparent.src = '/img/btn_portal_large_ro.gif';
			}
			break;
		case 'footer':
			fnparent = d.getElementById('FNHiddenButtonsParent');
			fnpulldown = d.getElementById('FNHiddenButtons');
			if(status == 0){
				fnpulldown.style.display = 'none';
				fnparent.src = '/common/img/footer/btn_portal_medium.gif';
			} else if(status == 1) {
				fnpulldown.style.display = 'block';
				fnparent.src = '/common/img/footer/btn_portal_medium_ro.gif';
			}
			break;
		case 'pagebody':
			subparent = d.getElementById('SubHiddenButtonsParent');
			subpulldown = d.getElementById('SubHiddenButtons');
			if(status == 0){
				subpulldown.style.display = 'none';
				subparent.src = '/common/img/btn_portal_small.gif';
			} else if(status == 1) {
				subpulldown.style.display = 'block';
				subparent.src = '/common/img/btn_portal_small_ro.gif';
			}
			break;
		default:
			break;
	}
}
