/*============================================================
 正規表現に関する汎用関数 
==============================================================*/
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 MM_openBrWindow(theURL,winName,features) { //v2.0
  win=window.open(theURL,winName,features);
  win.focus();
}

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

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];}
}

//mediaPlayer
/*
 * [関数名] CreateWindowsMediaPlayerObj
 * [機　能] Windows Media Player のウェブ埋め込みタグ生成
 * [説　明] JavaScriptでOBJECTタグ、EMBEDタグを生成し、生成した埋め込みタグを書き出す
 *　　　　　ムービーサイズ、自動再生の有無、コントロール表示・非表示を指定可
 * [引　数]
 * @param fpas ムービーへのパス（相対パス可）
 * @param width ムービーの幅
 * @param height ムービーの高さ
 * @param f_controll コントロール表示の有無 "true" | "false"
 * @param f_auto 自動再生の有無 "true" | "false"
 * @param f_status ステータスバー表示の有無 "true" | "false"
*/
function CreateWindowsMediaPlayerObj(fpass,width,height,f_controll,f_auto,f_status){
  htm="";
  if(f_controll=="true"){ // コントロール表示の場合はコントロールの高さ(45px)をプラス
    height=eval(height+45);
  }
  if(f_status=="true"){ // ステータスバー表示の場合はステータスバーの高さ(24px)をプラス
    height=eval(height+24);
  }
  //OBJECT TAG
  htm+="<object";
  htm+=" id='WMP'";
  htm+=" width='"+width+"' height='"+height+"'";
  htm+=" classid='CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95'";
  htm+=" codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715'";
  htm+=" standby='Loading MicrosoftR WindowsR Media Player components...'";
  htm+=" type='application/x-oleobject'>\n";
  htm+="<param name='FileName' value='"+fpass+"'>\n";
  htm+="<param name='ShowControls' value='"+f_controll+"'>\n";
  htm+="<param name='AutoStart' value='"+f_auto+"'>\n";
  htm+="<param name='ShowStatusBar' value='"+f_status+"'>\n";
  //EMBED TAG
  htm+="<embed name='WMP' type='application/x-mplayer2'";
  htm+=" pluginspage='http://www.microsoft.com/Windows/MediaPlayer/'";
  htm+=" src='"+fpass+"'";
  htm+=" width='"+width+"' height='"+height+"'";
  htm+=" showcontrols='"+((f_controll=="true")?1:0)+"'";
  htm+=" autostart='"+((f_auto=="true")?1:0)+"'";
  htm+=" showstatusbar='"+((f_status=="true")?1:0)+"'>\n";
  htm+="</embed>\n";
  htm+="</object>\n";
  document.write(htm);
}
