﻿/**
 * SWFKeyBoard v1.0: Keyboard event proxy for fullscreen flash!
 *
 * SWFKeyBoard is (c) 2007 Julian Boolean Hudson and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * Dependencies: 
 * SWFObject v2.0 - (c) 2006 Geoff Stearns.
 * http://blog.deconcept.com/swfobject/
 */
function SWFKeyBoard( swfObject )
{
	this.so = swfObject;
    this.init();
}

SWFKeyBoard.prototype = {
	
    init: function()
	{
		SWFKeyBoard.instance = this;
        
        if (window.addEventListener)
        {
           window.addEventListener("keydown",SWFKeyBoard.instance.__keydown,false);
           window.addEventListener("keypress",SWFKeyBoard.instance.__keypress,false);
           window.addEventListener("keyup",SWFKeyBoard.instance.__keyup,false);
        }
        else if (window.attachEvent)
        {
           window.attachEvent("onkeydown", SWFKeyBoard.instance.__keydown);
           window.aattachEvent("onkeypress", SWFKeyBoard.instance.__keypress);
           window.aattachEvent("onkeyup", SWFKeyBoard.instance.__keyup);
        }
        else
        {
           window.onkeydown =  document.onkeydown = SWFKeyBoard.instance.__keydown;
           window.onkeypress= document.onkeypress = SWFKeyBoard.instance.__keypress;
           window.onkeyup= document.onkeyup = SWFKeyBoard.instance.__keyup;
        }
	},
    
    __keyval: function(n)
    {
        if (n == null) return 'undefined';
        var s= '' + n;
        if (n >= 32 && n < 127) s+= ' (' + String.fromCharCode(n) + ')';
        while (s.length < 9) s+= ' ';
        return s;
    },
    
    __keydown: function(e)
    {
       if (!e) e= event;
       SWFKeyBoard.instance.handle(e);
    },

    __keyup: function(e)
    {
       if (!e) e= event;
       //SWFKeyBoard.instance.handle(e);
    },

    __keypress: function(e)
    {
       if (!e) e= event;
       //SWFKeyBoard.instance.handle(e);
    },
	
	handle: function( e )
	{
        alert("zzxc "+e.keyCode)
		document[ this.so.getAttribute('id') ].externalKeyEvent( SWFKeyBoard.instance.__keyval(e.keyCode) );
	}
};
