﻿/*
		event.js
		Copyright(c)2007 Total Solutions, Inc.
		http://www.totalsolutions.jp
		
		This script is under BSD license.
*/
var Event = new Object();
// ---------- Global variable ----------
Event.load		= 'load';
Event.mouseover = 'mouseover';
Event.mouseout	= 'mouseout';
Event.click		= 'click';
Event.focus		= 'focus';
Event.blur		= 'blur';
Event.keydown	= 'keydown';
Event.keyup		= 'keyup';
Event.scroll	= 'scroll';
Event.enter		= 13;
Event.esc		= 27;
Event.tab		= 23;
Event.left		= 37;
Event.up		= 38;
Event.right		= 39;
Event.down		= 40;

// ---------- Functions ----------
Event.addEventListener = function(el, type, func) {
	if(!el) return false;
	if(el.addEventListener) {
		el.addEventListener(type, func, false);
	} else if(el.attachEvent) {
		el.attachEvent('on' + type, func);
	} else {
		return false;
	}
	return true;
}
Event.removeEventListener = function(el, type, func) {
	if(!el) return false;
	if(el.removeEventListener) {
		el.removeEventListener(type, func, false);
	} else if(elm.detachEvent) {
		el.detachEvent('on' + type, func);
	} else {
		return false;
	}
	return true;
}
Event.addMouseWheelListener = function(el, func) {
	if(!el) return false;
	if(el.addEventListener) {
		el.addEventListener('DOMMouseScroll' , func, false); 
	} else if(el.attachEvent) {
		el.attachEvent('onmousewheel' ,func);
	} else {
		return false;
	}
	return true;
}
Event.preventDefault = function(evt) {
	if(evt && evt.preventDefault) {
		evt.preventDefault();
		evt.currentTarget['on' + evt.type] = function() {return false};
	} else {
		window.event.returnValue = false;
	}
}
Event.stopPropagation = function(evt) {
	if(evt && evt.stopPropagation) {
		evt.stopPropagation;
	} else if(window.event) {
		window.event.cancelBubble = true;
	}
}
Event._target = function(evt) {
	if(evt && evt.target) {
		if(evt.target.nodeType == 3) return evt.target.parentNode; else return evt.target;
	} else if(window.event && window.event.srcElement) {
		return window.event.srcElement;
	} else {
		return null;
	}
}

// ---------- Get mouse position ---------- 
Event._mousex = function(evt) {
	if(evt) return evt.clientX; else return window.event.clientX;
}
Event._mousey = function(evt) {
	if(evt) return evt.clientY; else return window.event.clientY;
}
Event._mousedelta = function(evt) {
	if(evt && evt.detail) alert(evt.detail * -1); else return window.event.wheelDelta;
}
// ---------- Get key code ----------
Event._keycode = function(evt) {
	if(evt) return evt.keyCode; else return window.event.keyCode;
}
