/******************************************************************
stap.js
PRESENTED BY santaclass
version.0.9b
stap
>やること
2.htmlタグ内でstapを呼ぶ > 済み
3.bgFrameはいらない
******************************************************************/
function stap(
	prm_preImgPath,
	prm_preImgWidth,
	prm_preImgHeight,
	prm_preBgColor,
	prm_group,
	prm_maxWidth,
	prm_bgOpacity,
	prm_bgSize
){
	
	//動作判別フラグ
	this.onmove = false;

	//パラメータセット
	this.prm = new Object();
	this.prm.imgPath = prm_preImgPath;
	this.prm.imgWidth = prm_preImgWidth;
	this.prm.imgHeight = prm_preImgHeight;
	this.prm.bgColor = prm_preBgColor;
	this.prm.group = prm_group;
	this.prm.maxWidth = prm_maxWidth;
	this.prm.bgOpacity = prm_bgOpacity;
	this.prm.bgSize = prm_bgSize;

	//情報セット
	this.info = new Object();
	//ua
	var ua = getU();
	if(!ua){	//対応外ブラウザならば終了
		return;
	}
	
	//zindex
	this.info.zindex = 1000;

	//タイマー
	this.info.timer = null;	
	//スクロール状態
	this.info.yScroll  = 0;
	//背景カウンタ
	this.info.bg_cnt = 0;
	//アニメーションカウンタ
	this.info.animX_cnt = 0;
	this.info.animY_cnt = 0;
	//背景デフォルトサイズ
	this.info.bgSize = 0;
	//現在背景サイズ
	this.info.nowBgSize = 0;
	//写真静止位置
	this.info.photoStop = 0;
	//写真現在位置
	this.info.photoNow = 0;
	
	//オブジェクトセット
	this.obj = new Object();
	this.obj.bg_array = new Array();	//bg
	this.obj.stapImage = new Image();	//image
	
	//overflowセット
	this.setOverflow('loadStart');
		
	//アクションセット
	var prm_self = this;
	var prm_group = this.prm.group;
	var prm_maxWidth = this.prm.maxWidth;
	
	//プリロードセット
	this.preload(prm_self);
	
	//onload
	addEvent(window,'load',function(){prm_self.loadComplete(prm_self,prm_group,prm_maxWidth);},false);
	//onunload
	addEvent(window,'unload',function(){window.scrollTo(0,0);},false);
	
}

/*********************************
>loadComplete
*********************************/
stap.prototype.loadComplete = function(arg_this){
	
	var self = arg_this;	//self = stap
	var prm_group = self.prm.group;
	var prm_maxWidth = self.prm.maxWidth;

	//画像のリサイズ
	var check_img = self.imgResize(prm_group,prm_maxWidth);
	
	//画像があれば
	if(check_img){
		//stap背景オブジェクトを作成
		var setId = 'stapBg';
		var setHTML =  '<div id="' + setId + '"></div>';
		document.body.innerHTML += setHTML;
		
		var obj = getI(setId);
		setStyle(obj,'position','absolute');
		setStyle(obj,'top','0');
		setStyle(obj,'left','0');
		setStyle(obj,'width','100%');
		setStyle(obj,'z-index',self.info.zindex);
		
		//カウンタ、深度++
		self.info.zindex++;
	}
	
	//photoFrameをステージ外に
	var obj_photoFrame = getI('photoFrame');
	setStyle(obj_photoFrame,'position','absolute');
	setStyle(obj_photoFrame,'top','-9999px');
	setStyle(obj_photoFrame,'left','-9999px');
	
	//縦スクロールバーを表示
	self.setOverflow('loadEnd');
	
	//プリロード解除
	hide(getI('stapBg_pre_img'));
	setStyle(getI('stapBg_pre_bg'),'opacity',self.prm.bgOpacity);
	
	self.info.timer = setInterval(function(){self.animateLoad(self,check_img)},60);
}

/*********************************
animateLoad
ロード時のアニメーション
*********************************/
stap.prototype.animateLoad = function(arg_self,arg_setMouse){
	
	var self = arg_self;
	var stapBg_pre_bg = getI('stapBg_pre_bg');
	
	var nowWidth = stapBg_pre_bg.offsetWidth;
	var setWidth = Math.floor(nowWidth - nowWidth * 0.4);
	
	//通常移動
	if(setWidth > 0){
		setStyle(stapBg_pre_bg,'width',setWidth + 'px');
	//終了
	}else{
		clearInterval(self.info.timer);
		
		//htmlクリア
		var stapBg_pre = getI('stapBg_pre');
		hide(stapBg_pre);	//IE
		stapBg_pre.innerHTML = '';
		
		//画像アリならマウスアクションセット
		if(arg_setMouse){
			self.setMouse(self);
		}
	}
	
}

/*********************************
>action
*********************************/
stap.prototype.action = function(arg_self,arg_image){
	
	var self = arg_self;	//self = stap

	//エラーチェック
	//動作中なら何もしない
	if(self.onmove){
		return;
	}
	
	//動作
	self.onmove = true;
	
	//overflowセット
	self.setOverflow('stapStart');
	
	//stapイメージセット
	self.obj.stapImage.src = arg_image.src;
	
	//高さを比較
	self.info.maxHeight = self.getMaxHeight();
	
	//スクロール状態をチェック
	self.info.yScroll = self.checkScroll(self);

	//背景サイズを算出
	var size = self.prm.bgSize;
	if(String(size).match('t')){
		var time = Number(size.replace('t',''));
		var winHeight = getWinHeight();
			self.info.bgSize = Math.round(winHeight / time);
	}else{
		self.info.bgSize = size;
	}
	
	//背景アニメーション
	self.info.timer = setInterval(function(){stap.prototype.animateBg(self)},60);
	
}

/*********************************
setOverflow
overflowをセット
*********************************/
stap.prototype.setOverflow = function(arg_toggle){
	
	var ua = getU();
	
	if(ua == 'ie'){
		var objBody = document.documentElement;
	}else{
		var objBody = document.body;
	}
	
	if(objBody.style.overflowX != undefined){
		var style_flg = true;
	}else{
		var style_flg = false;
	}

	//ロード開始
	if(arg_toggle == 'loadStart'){
		setStyle(objBody,'overflow','hidden');
	//ロード終了
	}else if(arg_toggle == 'loadEnd'){
		if(!style_flg){
			setStyle(objBody,'overflow','auto');
		}else{
			setStyle(objBody,'overflowY','scroll');
			setStyle(objBody,'overflowX','hidden');
		}
	//stap開始
	}else if(arg_toggle == 'stapStart'){
		if(!style_flg){
			setStyle(objBody,'overflow','hidden');
			setStyle(objBody,'paddingRight','15px');
		}
	//stap終了
	}else if(arg_toggle == 'stapEnd'){
		if(!style_flg){
			setStyle(objBody,'overflow','auto');
			setStyle(objBody,'paddingRight','0px');
		}
	}
}

/*********************************
checkScroll
ウィンドウのスクロール状態をチェック。スクロールされていれば、背景を塗る
*********************************/
stap.prototype.checkScroll = function(arg_self){
	
	var self = arg_self;
	var ua = getU();

	//スクロール状態チェック
	if(ua == 'ie'){
		var yOffset = document.documentElement.scrollTop;
	}else{
		var yOffset = window.pageYOffset;
	}
	if(yOffset <= 0){
		return 0;
	}
	
	//htmlセット
	var setId = 'stapBg_' + self.info.bg_cnt;
	var setHtml = '<div id="' + setId + '"></div>';
	getI('stapBg').innerHTML += setHtml;
	
	//背景配列にセット
	self.obj.bg_array.push(getI(setId));
	
	//スタイルセット
	var obj = self.obj.bg_array[self.info.bg_cnt];
	setStyle(obj,'width','100%');
	setStyle(obj,'height',yOffset + 'px');
	setStyle(obj,'backgroundColor',self.prm.bgColor);
	setStyle(obj,'opacity',self.prm.bgOpacity);
	
	//背景カウンタ++
	self.info.bg_cnt++;
	
	//縦方向差分をセット
	return  yOffset;
	
}

/*********************************
imageLoaded
stapImageのロード判定
*********************************/
stap.prototype.imageLoaded = function(arg_self){
	
	var self = arg_self; //self = stap
	
	if(self.obj.stapImage.complete){
		//タイマー解除
		clearInterval(self.info.timer);
		
		//loadingを隠す
		hide(getI('stapBg_img'));
		//photoセット
		self.setPhoto(self);
	}
}

/*********************************
setPhoto
写真をアニメーション前位置へセット
*********************************/
stap.prototype.setPhoto = function(arg_self){
	
	var self = arg_self;
	var ua = getU();
	var stapImage = self.obj.stapImage;
	var obj_photoFrame = getI('photoFrame');
	var obj_photo = getI('photo');
	
	//size check
	var imgWidth = stapImage.width;
	var imgHeight = stapImage.height;
	var maxWidth = getWinWidth() -  obj_photoFrame.offsetWidth - 20;
	var maxHeight = getWinHeight() - obj_photoFrame.offsetHeight - 20;
	if(imgWidth >= maxWidth){
		var wRatio = Math.ceil(maxWidth / imgWidth * 100) / 100;
	}else{
		var wRatio = 1;
	}
	if(imgHeight >= maxHeight){	
		var hRatio = Math.ceil(maxHeight / imgHeight * 100) / 100;
	}else{
		var hRatio = 1;
	}
	
	if(wRatio <= hRatio){
		var setWidth = Math.ceil(stapImage.width * wRatio);
		var setHeight = Math.ceil(stapImage.height * wRatio);
	}else if(hRatio <= wRatio || hRatio == wRatio){
		var setWidth = Math.ceil(stapImage.width * hRatio);
		var setHeight = Math.ceil(stapImage.height * hRatio);
	}
	
	//HTMLセット
	var setHTML = '<img src="' + stapImage.src + '" width="' + setWidth + '" height=' + setHeight + '" alt="photo" />';
	obj_photo.innerHTML = setHTML;

	//画面縦中央にセット
	//スクロール状態チェック
	if(ua == 'ie'){
		var yOffset = document.documentElement.scrollTop;
	}else{
		var yOffset = window.pageYOffset;
	}
	if(yOffset <= 0){
		var yOffset = 0;
	}
	var setTop = yOffset + Math.ceil((getWinHeight() - obj_photoFrame.offsetHeight) / 2);

	setStyle(obj_photoFrame,'top',setTop + 'px');

	//画面横端にセット
	self.info.photoNow = getWinWidth();
	setStyle(obj_photoFrame,'left',self.info.photoNow + 'px');

	//静止位置を算出
	self.info.photoStop = Math.floor((self.info.photoNow - obj_photoFrame.offsetWidth) / 2);

	//写真アニメーション
	self.info.timer = setInterval(function(){stap.prototype.animatePhoto(self)},60);

}

/*********************************
animatePhoto
写真のアニメーション
*********************************/
stap.prototype.animatePhoto = function(arg_self){

	var self = arg_self;
	var obj_photoFrame = getI('photoFrame');
	var stopPos = self.info.photoStop;
	var nowPos = self.info.photoNow;
	
	//位置セット
	var setPos = Math.floor(nowPos - (nowPos - stopPos) * 0.85);
	setStyle(obj_photoFrame,'left',setPos + 'px');
	
	if(setPos <= stopPos){
		//タイマー解除
		clearInterval(self.info.timer);
		//動作完了処理セット
		var obj_stapBg = getI('stapBg');
		obj_stapBg.onclick = function(){
			stap.prototype.clearStap(self);
		}
		
		getI('photoClose').onclick = function(){
			stap.prototype.clearStap(self);
		}
	}else{
		self.info.photoNow = setPos;
	}
	
}

/*********************************
clearStap
動作完了処理
*********************************/
stap.prototype.clearStap = function(arg_self){

	var self = arg_self;
	
	//写真の停止位置を算出
	self.info.photoStop = getWinWidth();
	//動作セット
	self.info.timer = setInterval(function(){stap.prototype.animateClear(self)},60);
	
}

/*********************************
animateClear
stapクリア時のアニメーション
*********************************/
stap.prototype.animateClear = function(arg_self){

	var self = arg_self;

	var obj_stapBg = getI('stapBg');
	var obj_photoFrame = getI('photoFrame');
	
	var bg_flg = false;
	var photo_flg = false;
	

	//背景移動	
	if(self.info.nowBgSize > 0){
	
		var nowWidth = self.info.nowBgSize;
		var setWidth = Math.floor(nowWidth - nowWidth * 0.6);
	
		//alert('背景移動/' + setWidth);
		setStyle(obj_stapBg,"width",setWidth + 'px');
		
		self.info.nowBgSize = setWidth;
	
	}else{
		bg_flg = true;
	}
	
	//写真
	if(self.info.photoNow < self.info.photoStop){
		
		var nowLeft = self.info.photoNow;
		var stopLeft = self.info.photoStop;
		
		var setLeft = Math.round(nowLeft + (stopLeft - nowLeft) * 0.6);
		setStyle(obj_photoFrame,'left',setLeft + 'px');
		self.info.photoNow = setLeft;
		
	}else{
		photo_flg = true;
	}

	//終了
	if(bg_flg && photo_flg){
		clearInterval(self.info.timer);

		//overflow表示
		self.setOverflow('stapEnd');

		//背景クリア
		obj_stapBg.innerHTML = "";
		setStyle(obj_stapBg,'width','100%');
		
		//写真クリア
		setStyle(obj_photoFrame,'left','-9999px');
		var obj_photo = getI('photo');
		obj_photo.innerHTML = '';
		
		//変数クリア
		self.info.nowBgSize = 0;
		self.obj.bg_array = new Array();
		self.info.bg_cnt = 0;
		self.info.animX_cnt = 0;
		self.info.animY_cnt = 0;

		self.info.timer = null;
		self.onmove = false;
	}
	
}

/*********************************
animateBg
背景アニメーション
*********************************/
stap.prototype.animateBg = function(arg_self){

	var self = arg_self;
	var info = self.info;
	var ua = getU();
	
	//X方向処理
	//初回のみHTML作成
	if(info.animX_cnt == 0){
		var setObj = getI('stapBg');
		var setId = 'stapBg_' + info.bg_cnt;
		var setHtml = '<div id="' + setId + '"></div>';
		var setTop = info.yScroll + info.animY_cnt * info.bgSize;
		setObj.innerHTML += setHtml;
		
		//管理配列に挿入
		self.obj.bg_array.push(getI(setId));
		//スタイルセット
		var obj = self.obj.bg_array[self.info.bg_cnt];
		setStyle(obj,'position','absolute');
		setStyle(obj,'top',setTop + 'px');
		setStyle(obj,'left','0px');
		setStyle(obj,'height',self.info.bgSize + 'px');
		setStyle(obj,'backgroundColor',self.prm.bgColor);
		setStyle(obj,'opacity',self.prm.bgOpacity);
			
		//カウンタ++
		self.info.animX_cnt++;
	}else{
		var obj = self.obj.bg_array[info.bg_cnt];
		//幅をセット
		var winWidth = getWinWidth();
		var setWidth = 1 + info.nowBgSize + Math.round((winWidth - info.nowBgSize) * 0.75);
		//x方向MAX
		if(setWidth >= winWidth){
			//100%でセット
			setStyle(obj,'width','100%');
			
			//y方向チェック
			var winHeight = getWinHeight() + info.yScroll;
			var checkTop = info.yScroll + info.bgSize * (info.animY_cnt + 1);
			
			//MAXなら終了
			if(checkTop >= winHeight){
				//タイマー解除
				clearInterval(self.info.timer);
				//カウンタセット
				self.info.bg_cnt++;
				
				//塗った分をスクロール領域にセット
				self.info.yScroll = checkTop;
				//下部分を塗る
				self.fillBottom(self);
				
				//画像のロード判定セット
				var scrHeight = getScrHeight();

				var setHTML = '<div  id="stapBg_img"><img src = "' + self.prm.imgPath + '" alt="" /></div>';
				var setTop = scrHeight + Math.ceil(getWinHeight() / 2);
				var setLeft = Math.ceil(self.prm.imgHeight / 2) * -1;

				getI('stapBg').innerHTML += setHTML;
				var setObj_img = getI('stapBg_img');
				setStyle(setObj_img,'position','absolute');
				setStyle(setObj_img,'zIndex',self.info.zindex);
				setStyle(setObj_img,'width',self.prm.imgWidth + 'px');
				setStyle(setObj_img,'height',self.prm.imgHeight + 'px');
				setStyle(setObj_img,'top',setTop + 'px');
				setStyle(setObj_img,'left', '50%');
				setStyle(setObj_img,'marginLeft', setLeft + 'px');
				
				self.info.zindex++;
				
				self.info.timer = setInterval(function(){stap.prototype.imageLoaded(self)},36);

			//それ以外は移動
			}else{
				//カウンタセット
				self.info.animX_cnt = 0;
				self.info.animY_cnt++;
				self.info.bg_cnt++;
			}
		//それ以外は通常移動
		}else{
			self.info.nowBgSize = setWidth;
			setStyle(obj,'width',setWidth + 'px');
		}
	}
	
}

/*********************************
fillBottom
>ドキュメント下部分を塗る
*********************************/
stap.prototype.fillBottom = function(arg_self){
	
	var self = arg_self;
	
	//差分を算出
	var otherDoc = getDocHeight() - self.info.yScroll;
	
	if(otherDoc > 0){
		var setObj = getI('stapBg');
		var setId = 'stapBg_' + self.info.bg_cnt;
		var setHtml = '<div id="' + setId + '"></div>';
		setObj.innerHTML += setHtml;
		
		//管理配列に挿入
		self.obj.bg_array.push(getI(setId));
		//スタイルセット
		var obj = self.obj.bg_array[self.info.bg_cnt];
		setStyle(obj,'position','absolute');
		setStyle(obj,'top',self.info.yScroll + 'px');
		setStyle(obj,'left','0px');
		setStyle(obj,'height',otherDoc + 'px');
		setStyle(obj,'width','100%');
		setStyle(obj,'backgroundColor',self.prm.bgColor);
		setStyle(obj,'opacity',self.prm.bgOpacity);
	
		//カウンタ++
		self.info.bg_cnt++;
	}
	
}

/*********************************
setMouse
*********************************/
stap.prototype.setMouse = function(arg_this){

	var self = arg_this;	//self = stap

	var id_group = getI(self.prm.group);
	var img_array = id_group.getElementsByTagName('img');

	for(var ii=0; ii<img_array.length; ii++){
		img_array[ii].onmouseover = function(){
			setStyle(this,'cursor','pointer');
		}
		img_array[ii].onclick = function(){
			self.action(self,this);
		}
		/*
		addEvent(img_array[ii],'mouseover',function(){},false);	//this = img //ieで動かない
		addEvent(img_array[ii],'click',function(){stap.prototype.action(self,this);},false);
		*/
	}

}

/*********************************
getMaxHeight
>ドキュメントとウィンドウで高い方の高さを返す
*********************************/
stap.prototype.getMaxHeight = function(){
	
	var ua = getU();
	var scnHeight = screen.height;

	//ウインドウサイズを取得
	var winHeight = getWinHeight();

	//ドキュメントの高さを取得
	var docHeight = getDocHeight();
	
	if(docHeight >= winHeight && docHeight >= scnHeight){
		return docHeight;
	}else{
		return scnHeight;
	}
	
}

/*********************************
imgResize
*********************************/
stap.prototype.imgResize = function(prm_group,prm_maxWidth){

	var id_group = getI(prm_group);
	var img_array = id_group.getElementsByTagName('img');
	var maxWidth = Number(prm_maxWidth);
	var loop_cnt = img_array.length;
	
	//エラーチェック
	if(loop_cnt == 0){
		return  false;
	}
	
	for(var ii=0; ii<img_array.length; ii++){
		//size check
		var orgWidth = img_array[ii].width;
		if(orgWidth > maxWidth){
			var ratio = Math.floor((maxWidth / orgWidth) * 100);
			ratio /=100;
			
			var setWidth = Math.floor(img_array[ii].width * ratio);
			var setHeight = Math.floor(img_array[ii].height * ratio);
			img_array[ii].width = setWidth;
			img_array[ii].height = setHeight;
		}
	}

	return true;
	
}

/*********************************
preload
*********************************/
stap.prototype.preload = function(arg_self){

	var self = arg_self;
	var scnWidth = screen.width;
	var scnHeight = screen.height;
	
	//stapBg_preセット
	var setHTML = '<div id="stapBg_pre"><div id="stapBg_pre_bg"></div><div id="stapBg_pre_img"></div></div>';
	document.open();
	document.write(setHTML);
	document.close();
	
	//preLoad-bgセット
	var setObj_bg = getI('stapBg_pre_bg');
	var setTop = Math.ceil(scnWidth / 2) * -1;
	var setLeft = Math.ceil(scnHeight / 2) * -1;
	
	setStyle(setObj_bg,'position','absolute');
	setStyle(setObj_bg,'top','0');
	setStyle(setObj_bg,'left','0');	
	setStyle(setObj_bg,'zIndex',self.info.zindex);
	setStyle(setObj_bg,'width','100%');
	setStyle(setObj_bg,'height',scnHeight + 'px');
	setStyle(setObj_bg,'background',self.prm.bgColor);	
	self.info.zindex++;
	
	//preLoad-imgセット
	var setObj_img = getI('stapBg_pre_img');
	setObj_img.innerHTML += '<img src="' + self.prm.imgPath + '" alt="" />';
	var setTop = Math.ceil(self.prm.imgWidth / 2) * -1;
	var setLeft = Math.ceil(self.prm.imgHeight / 2) * -1;
	
	setStyle(setObj_img,'position','absolute');
	setStyle(setObj_img,'zIndex',self.info.zindex);
	setStyle(setObj_img,'width',self.prm.imgWidth);
	setStyle(setObj_img,'height',self.prm.imgHeight);
	setStyle(setObj_img,'marginLeft',setLeft + 'px');
	setStyle(setObj_img,'marginTop',setTop + 'px');
	setStyle(setObj_img,'left','50%');
	setStyle(setObj_img,'top','50%');	
	this.info.zindex++;
}

/*********************************
getScrHeight
*********************************/
getScrHeight = function(){
	
	var ua = getU();

	if(ua == 'ie'){
		return document.documentElement.scrollTop;
	}else{
		return window.pageYOffset;
	}

}

/*********************************
getWinWidth
*********************************/
getWinWidth = function(){

	var ua = getU();
	if(ua == 'ie'){
		return document.body.clientWidth;
	}else{
		return window.innerWidth;
	}
	
}

/*********************************
getWinHeight
*********************************/
getWinHeight = function(){

	var ua = getU();
	if(ua == 'ie'){
		return document.documentElement.clientHeight;
	}else{
		return window.innerHeight;
	}
	
}

/*********************************
getDocHeight
*********************************/
getDocHeight = function(){
	/*
	var ua = getU();
	if(ua == 'ie'){
		return document.body.clientHeight;
	}else{
		return document.body.clientHeight;
	}
	*/
	return document.body.clientHeight;
	
}

/*********************************
getDocWidth
*********************************/
getDocWidth = function(){

	var ua = getU();
	if(ua == 'ie'){
		return document.documentElement.clientWidth;
	}else{
		return document.body.clientWidth;
	}
	
}

/*********************************
setStyle
*********************************/
setStyle = function(arg_obj,arg_elem,arg_value){
	
	if(!arg_obj){
		alert("setStyle object error!/" + arg_obj);
		return;
	}
	
	//opactiyの場合
	if(arg_elem == 'opacity'){
		var ua = getU();
		if(ua == 'ie'){
			arg_obj.style['filter'] = 'alpha(opacity = ' + arg_value + ')';
			return;
		}else{
			arg_obj.style[arg_elem] = (arg_value / 100);
			return;
		}
	}else{
		arg_obj.style[arg_elem] = arg_value;
	}
	
}

/*********************************
hide
*********************************/
hide = function(arg_obj){

	setStyle(arg_obj,'display','none');

}

/*********************************
show
*********************************/
show = function(arg_obj){

	setStyle(arg_obj,'display','block');

}

/*********************************
getI
*********************************/
function getI(prm_id,prm_parent){

	if(prm_parent){
		var parent = document.getElementById(prm_parent);
		return parent.getElementById(prm_id);
	}else{
		return document.getElementById(prm_id);
	}

}


/*********************************
getU
*********************************/
function getU(){

	var nav = navigator.userAgent.toLowerCase();
	if(nav.match('firefox')){
		return 'firefox';
	}else if(nav.match('safari')){
		return 'safari';
	}else if(nav.match('msie')){
		return 'ie'
	}else{	//対応外ブラウザ
		return false;
	}

}


/*********************************
>addEvent
*********************************/
function addEvent(arg_obj,arg_event,arg_func,arg_cap){

    if(arg_obj.addEventListener){
        arg_obj.addEventListener(arg_event,arg_func,arg_cap);
        return;
    }else if(arg_obj.attachEvent){
        arg_obj.attachEvent("on"+arg_event,arg_func);
        return;
    }else{
        return;
    }
	
}