/* #####################################################################################

	NAME:		event.js
	
		NOTES:	HTMLオブジェクトのイベント処理を行う
				
	
	
	AUTHOR:		Yoshikatsu Iyo.		2009/08/28
									Copyright, PorkHamlet Co.Ltd. All rights reserved.

##################################################################################### */


/*~~< variable(s) >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*~~< object(s) >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*~~< program(s) >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

/* =========================================================================**
	addListener
		notes:	オブジェクトにリスナー関数を登録
				
*========================================================================== */
function addListener(	elem,		// オブジェクト
						ev,			// イベント名
						listener	// リスナー関数
){
	if(elem.addEventListener) {
		elem.addEventListener(ev, listener, false);
	} else if(elem.attachEvent){
		elem.attachEvent('on' + ev, listener);
	} else {
		throw new Error('イベントリスナに未対応です。');
	}
}


/* =========================================================================**
	removeListener
		notes:	オブジェクトからリスナー関数を削除
				
*========================================================================== */
function removeListener(	elem,		// オブジェクト
							ev,			// イベント名
							listener	// リスナー関数
){
	if(elem.detachEvent){
		elem.detachEvent('on' + ev, listener);
	} else if(elem.removeEventListener) {
		elem.removeEventListener(ev, listener, false);
	} else {
		throw new Error('イベントリスナに未対応です。');
	}
}


/* =========================================================================**
	getSource
		notes:	イベントのソースオブジェクトを取得
				クロスブラウザ対策
				
*========================================================================== */
function getSource(	e		// イベントオブジェクト
){
	if( e.target )
	{
		return e.target;
	}
	else if(window.event)
	{
		return window.event.srcElement;
	}
	
}








