			// subclass ScrollWindow
			YAHOO.util.ScrollWindow = function(el, attributes, duration,  method) {
				if (arguments.length > 0) {
					YAHOO.util.ScrollWindow.superclass.constructor.call(this, el, attributes, duration,  method);
				}
			}
			
			YAHOO.extend( YAHOO.util.ScrollWindow , YAHOO.util.Scroll );
			
			YAHOO.util.ScrollWindow.prototype.getAttribute = function(attr) {
				var val = null;
				
				if (attr == 'scroll') {
					val = [ window.scrollX, window.scrollY ];
				} else {
					val = superclass.getAttribute.call(this, attr);
				}
				
				return val;
			};
			
			YAHOO.util.ScrollWindow.prototype.setAttribute = function(attr, val, unit) {
				//var el = this.getEl();
				
				if (attr == 'scroll') {
					window.scrollTo( val[0] , val[1] );
				} else {
					superclass.setAttribute.call(this, attr, val, unit);
				}
			};
			
			// -------------------------


			window.NUMPAD = new function()
			{
				this.paneHeight = 768;
				this.paneWidth = 1024;
				
				this.init = function()
				{
					// normal 1-9
					NUMPAD.makeHandler( 1,49 );
					NUMPAD.makeHandler( 2,50 );
					NUMPAD.makeHandler( 3,51 );
					NUMPAD.makeHandler( 4,52 );
					NUMPAD.makeHandler( 5,53 );
					NUMPAD.makeHandler( 6,54 );
					NUMPAD.makeHandler( 7,55 );
					NUMPAD.makeHandler( 8,56 );
					NUMPAD.makeHandler( 9,57 );
					
					// keypad 1-9
					NUMPAD.makeHandler( 1,97 );
					NUMPAD.makeHandler( 2,98 );
					NUMPAD.makeHandler( 3,99 );
					NUMPAD.makeHandler( 4,100 );
					NUMPAD.makeHandler( 5,101 );
					NUMPAD.makeHandler( 6,102 );
					NUMPAD.makeHandler( 7,103 );
					NUMPAD.makeHandler( 8,104 );
					NUMPAD.makeHandler( 9,105 );
				}
				
				this.makeHandler = function( key , keyCode )
				{
					var pad1handler = new YAHOO.util.KeyListener(document, { keys:keyCode },  							
						{ fn:function(){NUMPAD.doScroll(key)} }, "keydown" );
					pad1handler.enable();
				}
				
				this.doScroll = function( key )
				{
					paneArr = NUMPAD.keyToPane( key );
					
					var scrollAnim = new YAHOO.util.ScrollWindow( window, {
											scroll: { to: [NUMPAD.paneWidth * paneArr[0],NUMPAD.paneHeight * paneArr[1]] }
											},
											2,
											YAHOO.util.Easing.easeOutStrong);
											
					scrollAnim.animate();
					
				}
				
				this.keyToPane = function( key )
				{
					switch( key )
					{
						case 9:		return [2,0];
									break;
						case 8:		return [1,0];
									break;
						case 7:		return [0,0];
									break;
						case 6:		return [2,1];
									break;
						case 5:		return [1,1];
									break;
						case 4:		return [0,1];
									break;
						case 3:		return [2,2];
									break;
						case 2:		return [1,2];
									break;
						case 1:		return [0,2];
									break;									
					}
				}
			}

			// -------------------------
			

			
			YAHOO.util.Event.addListener(window, "load", NUMPAD.init );