////////////////////////////////////////////////////////////////////////////////
//■マウス座標の取得用クラス
//※インスタンス生成後 getPosition でデータ取得。プロパティ x,y,left,top を参照して使用。
onMouseEvent = function(){ this.onMouseEvent_init(); }
onMouseEvent.prototype = {
	//■private
	onMouseEvent_init: function(){
		this.setOffset(8, 8);
	}
	,onmousemoveOP: function(e){
		// OPでマウスが動いた
		this.x = this.offsetX + e.clientX;
		this.y  = this.offsetY + e.clientY;
		this.left = this.x + "px"
		this.top  = this.y + "px";
	}
	,onmousemoveIE: function(e){
		// IEでマウスが動いた
		var scroll_x = document.body.scrollLeft || document.documentElement.scrollLeft;
		var scroll_y = document.body.scrollTop  || document.documentElement.scrollTop;
		this.x = this.offsetX + e.clientX + scroll_x;
		this.y  = this.offsetY + e.clientY + scroll_y;
		this.left = this.x + "px";
		this.top  = this.y + "px";
	}
	,onmousemoveN6: function(e){
		// N6でマウスが動いた
		this.x = this.offsetX + e.clientX + window.pageXOffset;
		this.y  = this.offsetY + e.clientY + window.pageYOffset;
		this.left = this.x + "px";
		this.top  = this.y + "px";
	}
	,onmousemoveN4: function(e){
		// N4でマウスが動いた
		this.x = this.offsetX + e.x;
		this.y  = this.offsetY + e.y;
		this.left = this.x;
		this.top  = this.y;
	}

	//■public
	,setOffset: function(x, y){
		this.offsetX = x;
		this.offsetY = y;
	}
	,getPosition: function(){
		if( DOCUMENT_IS_OP ){		this.onmousemoveOP(window.event); }
		else if( DOCUMENT_IS_IE4 ){	this.onmousemoveIE(window.event); }
		else if( DOCUMENT_IS_NS6 ){	this.onmousemoveN6(window.event); }
		else if( DOCUMENT_IS_NS4 ){	this.onmousemoveN4(window.event); }
/*
		if( DOCUMENT_IS_OP ){
			this.onmousemoveOP(e);
		}else if( DOCUMENT_IS_IE4 ){
			this.onmousemoveIE(e);
		}else if( DOCUMENT_IS_NS6 ){
			this.onmousemoveN6();
		}else if( DOCUMENT_IS_NS4 ){
			this.onmousemoveN4();
		}
		if((navigator.userAgent.indexOf("Opera",0) != -1) ? 1 : 0){
			this.onmousemoveOP(window.event);
		}else if(document.all){
			this.onmousemoveIE(window.event);
		}else if(document.getElementById){
			this.onmousemoveN6(window.event);
		}else if(document.layers){
			this.onmousemoveN4(window.event);
		}
*/
	}
}





////////////////////////////////////////////////////////////////////////////////
//■キーボードイベントの取得
onKeyboardEvent = function(){
	this.onKeyboardEvent_init();
}
onKeyboardEvent.prototype = {
	onKeyboardEvent_init: function(){
		this.code = null
		this.char = null;
		this.shifton = false;
		this.ctrlon = false;
		document.onkeydown = this.onkeydown;
		document.onkeyup = this.onkeyup;
	}
	,onkeydown: function(e){
		var shift, ctrl; 
		 
		//●Mozilla(Firefox, NN) and Opera 
		if (e != null) { 
			this.code  = e.which; 
			this.ctrlon  = typeof e.modifiers == 'undefined' ? e.ctrlKey : e.modifiers & Event.CONTROL_MASK; 
			this.shifton = typeof e.modifiers == 'undefined' ? e.shiftKey : e.modifiers & Event.SHIFT_MASK; 
			// イベントの上位伝播を防止 
			//		e.preventDefault(); 
			//		e.stopPropagation(); 
	
		//●Internet Explorer 
		} else { 
			this.code  = event.keyCode; 
			this.ctrlon  = event.ctrlKey; 
			this.shifton = event.shiftKey; 
			// イベントの上位伝播を防止 
			//		event.returnValue = false; 
			//		event.cancelBubble = true; 
		} 

		//※メモ 特殊キーコードの対応
			// 27   Esc 
			// 8	BackSpace 
			// 9	Tab 
			// 32   Space 
			// 45   Insert 
			// 46   Delete 
			// 35   End 
			// 36   Home 
			// 33   PageUp 
			// 34   PageDown 
			// 38   ↑ 
			// 40   ↓ 
			// 37   ← 
			// 39   → 
		// 処理の例 
		// if (keyevent_code == 27) { 
		//  alert('Escapeキーが押されました'); 
		// } 
	}
	,onkeyup: function(e){ 
		this.code = null;
		this.char = null;
		this.shifton = false;
		this.ctrlon = false;
	}
}


/*
var keyevent_code = null;
var keyevent_char = null;
var keyevent_shifton = false;
var keyevent_ctrlon = false;

document.onkeydown = function(e) { 
	var shift, ctrl; 
	 
	//●Mozilla(Firefox, NN) and Opera 
	if (e != null) { 
		keyevent_code  = e.which; 
		keyevent_ctrlon  = typeof e.modifiers == 'undefined' ? e.ctrlKey : e.modifiers & Event.CONTROL_MASK; 
		keyevent_shifton = typeof e.modifiers == 'undefined' ? e.shiftKey : e.modifiers & Event.SHIFT_MASK; 
		// イベントの上位伝播を防止 
		//		e.preventDefault(); 
		//		e.stopPropagation(); 

	//●Internet Explorer 
	} else { 
		keyevent_code  = event.keyCode; 
		keyevent_ctrlon  = event.ctrlKey; 
		keyevent_shifton = event.shiftKey; 
		// イベントの上位伝播を防止 
		//		event.returnValue = false; 
		//		event.cancelBubble = true; 
	} 
	 
	//●キーコードの文字を取得 
	keyevent_char = String.fromCharCode(keyevent_code).toUpperCase(); 


	//※メモ 特殊キーコードの対応
		// 27   Esc 
		// 8	BackSpace 
		// 9	Tab 
		// 32   Space 
		// 45   Insert 
		// 46   Delete 
		// 35   End 
		// 36   Home 
		// 33   PageUp 
		// 34   PageDown 
		// 38   ↑ 
		// 40   ↓ 
		// 37   ← 
		// 39   → 
	// 処理の例 
	// if (keyevent_code == 27) { 
	//  alert('Escapeキーが押されました'); 
	// } 
}

document.onkeyup = function(e) { 
	keyevent_code = null;
	keyevent_char = null;
	keyevent_shifton = false;
	keyevent_ctrlon = false;
}
*/
