/*============================================================
 正規表現に関する汎用関数 
==============================================================*/
function checkValue(val, str){
	var txt = '' + val;
	var re = new RegExp(str);
	return (txt.match(re) ? true : false);
}

/*============================================================
 配列に関する汎用関数
==============================================================*/

function arrayPush(arr,val){
	var num = arr.length;
	arr[num] = val;
	return arr;
}

/*============================================================
 onload処理 
==============================================================*/
function class_onloadlib(){
	this.onloadFunc = new Array();
	this.addFunc = addFunc;
	this.exec = exec;
	this.completed = false;
	
	function addFunc(fn){
		this.onloadFunc = arrayPush(this.onloadFunc, fn);
	}
	function exec(){
		for(var i = 0; i < this.onloadFunc.length; i++){
			eval(this.onloadFunc[i]);
		}
		this.completed = true;
	}
}
var onload_obj = new class_onloadlib();
function onload_add(fn){
	onload_obj.addFunc(fn);
}
function onload_exec(fn){
	onload_obj.exec();
}
window.onload = onload_exec;


/*============================================================
 ウィンドウ&ロケーション
==============================================================*/

function win_open(){
	if(arguments[0]){
		var url = arguments[0];
		var tgt = (arguments[1] ? arguments[1] : '_self');
		var prp = '';
		if(arguments.length > 3){
			var scroll = (arguments[2] ? 1 : 0);
			var resize = (arguments[3] ? 1 : 0);
			var width = (arguments[4] > 100 ? arguments[4] : 100);
			var height = (arguments[5] > 100 ? arguments[5] : 100);
			prp = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=' + scroll + ',resizable=' + resize + ',width=' + width + ',height=' + height;
		}
		else if(arguments[2] != null){
			prp = arguments[2];
		}
		
		(arguments[2] ? arguments[2] : '');
		var newWin = new Object();
		if(prp) newWin = window.open(url,tgt,prp);
		else newWin = window.open(url,tgt);
		newWin.focus();
	}
}

/*============================================================
 クッキー
==============================================================*/

function class_cookielib(){
	this.getCookie = getCookie;
	this.setCookie = setCookie;
	this.removeCookie = removeCookie;
	
	var expireDate = new Date();
	expireDate.setFullYear(expireDate.getFullYear()+1);
	expireStr = "expires=" + expireDate.toUTCString();

	function getCookie(name){
		var gc=name+"=";
		var Cookie=document.cookie;
		if (Cookie.length>0) {
			var start=Cookie.indexOf(gc);
			if (start!=-1) {
				start+=gc.length;
				terminus=Cookie.indexOf(";",start);
				if (terminus==-1) terminus=Cookie.length;
				return unescape(Cookie.substring(start,terminus));
			}
		}
		return '';
	}
	function setCookie() {
		var key = arguments[0];
		var val = arguments[1];
		var path = (typeof(arguments[2]) != 'undefined' ? arguments[2] : '/');
		var exp = (typeof(arguments[3]) != 'undefined' ? arguments[3] : expireStr);
		var sc = key + "=" + escape(val) + "; path=" + path + "; " + exp;
		document.cookie = sc;
	}
	function removeCookie(key,path) {
		if(!path){
			path = '/';
		}
		var rc = key + "=; path=" + path + "; expires=Thu, 1 Jan 1970 00:00:00 UTC";
		document.cookie = rc;
	}
}
var cookieObj = new class_cookielib();

/*============================================================
 ページトップ移動
==============================================================*/

window.goPageTop = function(){
	window.scrollTo(0,0);
}

var scrollToPageTopTimer = null;
var scrollToPageTopPos = 0;
function _scrollToPageTop(){
	if(scrollToPageTopPos > 0){
		scrollToPageTopPos = Math.floor(scrollToPageTopPos * 0.5);
		window.scrollTo(0, scrollToPageTopPos);
		scrollToPageTopTimer = setTimeout('_scrollToPageTop();',30);
	}
	else{
		//window.location.hash = "PAGETOP";
		clearTimeout(scrollToPageTopTimer);
	}
}
function scrollToPageTop(){
	if(typeof(window.pageYOffset) != 'undefined'){
		scrollToPageTopPos = window.pageYOffset;
	}
	else if(typeof(document.documentElement) != 'undefined'){
		if(typeof(document.documentElement.scrollTop) != 'undefined'){
			scrollToPageTopPos = document.documentElement.scrollTop;
		}
	}
	if(scrollToPageTopPos > 0){
		_scrollToPageTop();
	}
	else{
		window.scrollTo(0, 0);
	}
}

/*============================================================
 Class指定
==============================================================*/

function set_classname(obj, cname){
	if(document.getElementById){
		obj.className = cname;
	}
}

/*============================================================
 MISC
==============================================================*/

function img_transit(id,img_name,tra){
	var dobj = new Object();
	var transit = -1;
	if(document.getElementById){
		dobj = document.getElementById(id);
		if(tra > 0){
			if(typeof(dobj.filters) != 'undefined'){
				if(typeof(dobj.filters[0]) != 'undefined'){
					transit = 0;
				}
			}
		}
	}
	if(transit > -1){
		dobj.filters[transit].Apply();
	}
	dobj.src = img_name;
	if(transit > -1){
		dobj.filters[transit].Play();
	}
}

/*============================================================
 ウインドウを閉じる
==============================================================*/

function close_win(){
	window.opener = window;
	var win = window.open(location.href,"_self");
	win.close();
}

/*============================================================
 スワップイメージ
==============================================================*/

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*============================================================
 google analytics
==============================================================*/
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));



