// ========================================================================================@ MTechno
//  Class_WheelRoll.js ---- JavaScript Common Library ver.1.0
// -------------------------------------------------------------------------------------------------
//  prototype.js 必須  (このスクリプトより前に読み込むこと)
// =================================================================================================
//   WHEEL ROLL CLASS
//--------------------------------------------------------------------------------------------------
var WheelRollMT = Class.create();
WheelRollMT.prototype = {
	initialize: function ( element, FuncName ) {
		this.element = $( element );
		this.FuncName = FuncName;
		this.SetEvent();
		return this;
	},
	onRoll: function ( event ) {
		if ( !event ) event = window.event;
		var value = "";
		var RollCount = this._EventToRollCount( event );
		//var func = this.FuncName;
		//var Script = func + '(RollCount, event)';
		//value = eval( Script );
		value = this.FuncName( RollCount, event );
		this._EventCancell( event );
		return value;
	},
	_EventToRollCount: function ( e ) {
		if ( e.wheelDelta ) return e.wheelDelta / -120;
		if ( e.detail ) return e.detail / 3;
		return 0;
	},
	_EventCancell: function ( e ) {
		e.returnValue = false;
		if ( e.preventDefault ) e.preventDefault();
	},
	SetEvent: function () {
		var RollFunc = this.onRoll.bindAsEventListener( this );
		if ( navigator.userAgent.indexOf( "Safari" ) != -1 ) {
			this.element.addEventListener( "mousewheel", RollFunc, false );
			return;
		}
		if ( this.element.attachEvent ) {
			this.element.attachEvent( "onmousewheel", RollFunc );
			return;
		}
		if ( this.element.addEventListener ) {
			this.element.addEventListener( "DOMMouseScroll", RollFunc, false );
			return;
		}
	}
};
