// msgear_func.js
// Copyright 2006 MSGear. All rights reserved.
// info@msgear.jp
// Last update : 2007.01.28
//=====================================================================================================


// メールアドレス(email)が正しい形式ならtrue、空白や不正な形式の場合はfalseを返す
//-----------------------------------------------------------------------------------------------------
function isEmail(email){
	if(email){
		return email.match(/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9_\.\-]+[\.][a-zA-Z]+$/);
	}else{
		return false;
	}
}

// メッセージ(msg)を表示し、OKをクリックすればtrue、CANCELをクリックしたらfalseを返す
//-----------------------------------------------------------------------------------------------------
function confirmMsg(msg){
	return window.confirm(msg);
}

// アドレス(url)を新規ウインドウで開く
//-----------------------------------------------------------------------------------------------------
function openWin(url){
	window.open(url, "_blank", "toolbar=yes,location=yes,menubar=yes,directories=yes,status=yes,scrollbars=yes,resizable=yes");
	return false;
}

// クラス属性がnew-winのaタグをクリックすると新規ウインドウで開く
//-----------------------------------------------------------------------------------------------------
function setNewWin(){
	var i, obj;
	for(i = 0; (obj = document.getElementsByTagName("a")[i]); i ++){
		if(obj.getAttribute("class") == "new-win" || obj.getAttribute("className") == "new-win"){
			obj.target = "_blank";
		}
	}
}

// イメージ(複数の場合はカンマで区切る)をあらかじめキャッシュに読み込んでおく
//-----------------------------------------------------------------------------------------------------
function preloadImg(){
	var i, img;
	for(i = 0; i < preloadImg.arguments.length; i ++){
		img = new Image();
		img.src = preloadImg.arguments[i];
	}
}

// オブジェクト(ID属性:idName)にイベント(eventName)をトリガーとするファンクション(funcName)をセットする
//-----------------------------------------------------------------------------------------------------
function setFunc(idName, eventName, funcName){
	var scriptStr = "if(getObjById(\"" + idName + "\")){";
	scriptStr += "getObjById(\"" + idName + "\")." + eventName + " = function(){";
	scriptStr += funcName + ";";
	scriptStr += "}}";
	eval(scriptStr);
}

// オブジェクト(ID属性:idName)を返す
//-----------------------------------------------------------------------------------------------------
function getObjById(idName){
	if(document.getElementById){
		return document.getElementById(idName);
	}else if(document.all){
		return document.all(idName);
	}else if(document.layers){
		return document.layers[idName];
	}
}

// イメージオブジェクト(obj)の参照を指定するもの(imgPath)に変える
//-----------------------------------------------------------------------------------------------------
function changeImg(obj, imgPath){
	obj.src = imgPath;
}

// クッキー(クッキー名:cookieName)に値(value)を保存する
// ブラウザを終了しても保存する場合はsaveCookieにtrueを与える
//-----------------------------------------------------------------------------------------------------
function setCookie(cookieName, value, saveCookie){
	if(saveCookie){
		document.cookie = cookieName + "=" + value + "; path=/; expires=Tue, 1-Jan-2030 00:00:00;";
	}else{
		document.cookie = cookieName + "=" + value + "; path=/";
	}
}

// クッキー(クッキー名:cookieName)に保存されている値を返す
//-----------------------------------------------------------------------------------------------------
function getCookie(cookieName){
	var cookies = document.cookie + ";";
	var from = cookies.indexOf(cookieName + "=");
	if(from == -1){
		return null;
	}else{
		var to = cookies.indexOf(";", from + 1);
		return cookies.substring(from + cookieName.length + 1, to);
	}
}

// クッキー(クッキー名:cookieName)を削除する
//-----------------------------------------------------------------------------------------------------
function clearCookie(cookieName){
	document.cookie = cookieName + "=; path=/; expires=Tue, 1-Jan-1980 00:00:00;";
}


// title属性がある外部スタイルシートでのうち、指定するもの(title属性:cssTitle)だけを有効にする
// クッキーに保存する場合は、第２引数(クッキー名:cookieName)を指定する
//-----------------------------------------------------------------------------------------------------
function changeCss(cssTitle, cookieName){
	var i, obj, title;
	for(i = 0; (obj = document.getElementsByTagName("link")[i]); i ++){
		if(title = obj.getAttribute("title")){
			if(obj.getAttribute("rel").indexOf("style") != -1){
				obj.disabled = true;
				if(title == cssTitle){
					obj.disabled = false;
				}
			}
		}
	}
	if(cookieName) setCookie(cookieName, cssTitle, true);
	return false;
}

// 外部スタイルシートのうち、クッキー(クッキー名:cookieName)に保存されているものだけを有効にする
//-----------------------------------------------------------------------------------------------------
function initCss(cookieName){
	var cssTitle;
	if(cssTitle = getCookie(cookieName)) changeCss(cssTitle, false);
}

// 挿入ポイント(ID属性:idName)に、文字列(htmlStr)を挿入する
//-----------------------------------------------------------------------------------------------------
function insertHtml(idName, htmlStr){
	getObjById(idName).innerHTML = htmlStr;
}

// 挿入ポイント(ID属性:第１引数)に、第２引数〜第n引数の中からランダムに１つを挿入する
//-----------------------------------------------------------------------------------------------------
function setRandomHtml(){
	var idName, htmlNum, i, htmlStr;
	idName = setRandomHtml.arguments[0];
	htmlNum = setRandomHtml.arguments.length - 1;
	i = Math.floor(Math.random() * htmlNum) + 1;
	htmlStr = setRandomHtml.arguments[i];
	insertHtml(idName, htmlStr);
}

// クラス属性がmailtoのaタグをクリックするとメールを送信する
// href属性には暗号化されたメールアドレスを指定しておく
//-----------------------------------------------------------------------------------------------------
function sendToCodedEmail(){
	var i, obj, codedMailto, arParameter, offset, mailto, j;
	for(i = 0; (obj = document.getElementsByTagName("a")[i]); i ++){
		if(obj.getAttribute("class") == "mailto" || obj.getAttribute("className") == "mailto"){
			obj.onclick = function(){
				codedMailto = this.getAttribute("href")
				if((n = codedMailto.lastIndexOf("/")) != -1){
					codedMailto = codedMailto.substring(n + 1);
				}
				arParameter = codedMailto.split(",");
				offset = arParameter.length;
				mailto = "";
				for(j in arParameter){
					mailto += String.fromCharCode(arParameter[j] - offset);
				}
				eval(mailto);
				return false;
			}
		}
	}
}
// 前後の全角・半角スペースを削除
//-----------------------------------------------------------------------------------------------------
function trim(str){
	return str.replace(/^[\s　]+|[\s　]+$/g,"");
}