﻿// JScript ファイル

//=======================================================================
//ブラウザ判別
//=======================================================================
var CheckBrowser = function(){
	this.isSafari = false;
	this.isOpera = false;
	this.isFF = false;
	this.isNN = false;
	this.isGecko = false;
	this.isMozilla = false;
	this.isIE = false;
}

CheckBrowser.prototype = {
	GetInfo : function(){
		var ua = navigator.userAgent;
		
		if(ua.indexOf("Safari") > -1){
			this.isSafari = true;
			return;
		}
		
		if(ua.indexOf("Opera") > -1){
			this.isOpera = true;
			return;
		}
		
		if(ua.indexOf("Firefox") > -1){
			this.isFF = true;
			return;
		}
		
		if(ua.indexOf("Gecko") > -1){
			this.isGecko = true;
			return;
		}
		
		if(ua.indexOf("MSIE") > -1){
			this.isIE = true;
			return;
		}
		
		if(ua.indexOf("Mozilla") > -1){
			this.isNN = true;
			return;
		}
	}
}

//=======================================================================
//イベントキャンセル
// <summary>
// デフォルトイベントをキャンセルする
// </summary>
// <param name="e">イベントオブジェクト</param>
//=======================================================================
function calcelEvent(e){
	if(e.preventDefault){
		//IE以外のブラウザ
		e.preventDefault();
	}
	else if(window.event){
		//IE
		window.event.returnValue = false;
	}
}

//=======================================================================
//バブリングキャンセル
// <summary>
// 上位層へのイベント通達をキャンセルする
// </summary>
// <param name="e">イベントオブジェクト</param>
//=======================================================================
function calcelBubbling(e){
	if(e.stopPropagation){
		//IE以外のブラウザ
		e.stopPropagation();
	}
	else if(window.event){
		//IE
		window.event.cancelBubble = true;
	}
}

//=======================================================================
//イベントオブジェクトの発生元を取得
// <summary>
// イベントオブジェクトの発生元を取得する
// </summary>
// <param name="e">イベントオブジェクト</param>
//=======================================================================
function getTarget(e){
	if(e.target){
		//IE以外のブラウザ
		return e.target;
	}
	else {
		//IE
		return window.event.srcElement;
	}
}

//=======================================================================
//OnLoadイベントへの関数追加
// <summary>
// OnLoadイベントに指定した関数を追加する
// </summary>
// <param name="func">追加関数</param>
//=======================================================================
function addOnLoadEvent(func){
	var oldOnLoad = window.onload;
	
	if(typeof window.onload != "function"){
		window.onload = func;
	}
	else {
		window.onload = function(){
			oldOnLoad();
			func();
		}
	}
}

//=======================================================================
//イベントリスナの登録
//
// <summary>
// 要素にイベントを登録する（クロスブラウザ対応）
// </summary>
// <param name="elem">対象要素</param>
// <param name="e">登録イベント</param>
// <param name="listener">イベントリスナ(関数)</param>
//=======================================================================
function addEvent(elem, e, listener){
	if(elem.addEventListener){
		//IE以外のブラウザ
		elem.addEventListener(e, listener, false);
	}
	else if(elem.attachEvent){
		//IE
		elem.attachEvent("on"+e, listener);
	}
	else {
		//throw new Error("イベントリスナに未対応のブラウザです。処理を中止します。");
	}
}

//=======================================================================
//イベントリスナの削除
//
// <summary>
// 要素のイベントを削除する（クロスブラウザ対応）
// </summary>
// <param name="elem">対象要素</param>
// <param name="e">削除イベント</param>
// <param name="listener">イベントリスナ(関数)</param>
//=======================================================================
function removeEvent(elem, e, listener){
	if(elem.removeEventListener){
		//IE以外のブラウザ
		elem.removeEventListener(e, listener, false);
	}
	else if(elem.detachEvent){
		//IE
		elem.detachEvent("on"+e, listener);
	}
	else {
		throw new Error("イベントリスナに未対応のブラウザです。処理を中止します。");
	}
}

//=======================================================================
//画像の先読み
//
// <summary>
// 画像の先読みを行う
// </summary>
// <param name="elem">イメージパスの配列</param>
//=======================================================================
function imgPreload(images){
	if(!images)return;
	
	for(var i = 0; i < images.length; i++){
		var imgObj = new Image();
		imgObj.src = images[i];
	}
}

//=======================================================================
//スクロールバーのサイズ（幅）を取得
//
// <summary>
// 調査用の<div>を作成し実サイズとクライアントサイズの差からスクロールバーのサイズを求める
// </summary>
//=======================================================================
function getScrollbarWidth(){
	var testDiv = document.createElement("div");
	testDiv.style.overflow = "scroll";
	testDiv.style.width = "100px";
	testDiv.style.height = "100px";
	testDiv.style.visibility = "hidden";
	document.body.appendChild(testDiv);
	
	var width = (testDiv.offsetWidth - testDiv.clientWidth);
	document.body.removeChild(testDiv);
	return width;
}

//=======================================================================
//Copyrightの作成
//=======================================================================
function createCopyright(parentElemID, bottomOffset){
	var parentElem = document.getElementById(parentElemID);
	if(parentElem){
		var copyright = document.createElement('div');
		copyright.id = "footer";
		copyright.style.bottom = bottomOffset;
		
		var text = document.createTextNode("Copyright ©2003-2010 Sakuzo soft All Right reserved.");
		copyright.appendChild(text);
		parentElem.appendChild(copyright);
	}
}

//=======================================================================
//div要素の切り替え
//=======================================================================
function divChanger(showID){
	var divs = document.getElementById("contentArea");

	for(var i = 0;i < divs.childNodes.length;i++){
		if(divs.childNodes[i].className == "content"){
			if(divs.childNodes[i].id.indexOf("page") > -1){
				if(showID == divs.childNodes[i].id){
					divs.childNodes[i].style.visibility = "visible";
					divs.childNodes[i].top = "0px";
				}
				else {
					divs.childNodes[i].style.visibility = "hidden";
				}
			}
		}
	}	
}
