var mymouse = new mouse();
var mytimer = new timer();
var mykeyboard = new keyboard();

function isIE(){  return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);}

function mouse_device()
{
   return mymouse;
}

function timer_device()
{
   return mytimer;
}

function keyboard_device()
{
   return mykeyboard;
}

function MouseDown(e)
{
   mymouse.button_down();
   document.body.focus();
}

function MouseUp(e) {
    mymouse.button_up();
}

function MouseDoubleClick(e) {
    mymouse.mouse_double_click();
}

function MouseMove(e)      
{         
   try
	{
		if (isIE()) 
		{ 
			mymouse.m_position.x = event.clientX + document.body.scrollLeft;
			mymouse.m_position.y = event.clientY + document.body.scrollTop;
		}
		else 
		{  	      
			mymouse.m_position.x = e.pageX;
			mymouse.m_position.y = e.pageY;
		}  
		if (mymouse.m_position.x < 0) {object_global_mouse.m_position.x = 0;}
		if (mymouse.m_position.y < 0) {object_global_mouse.m_position.y = 0;}  
	}
	catch( e ){}
	
//	document.body.focus();
   
   mymouse.move();
}


function ChangeTick()
{  
   mytimer.tick();

   try{clearInterval(m_timerId);}catch(e){}
   m_timerId=setInterval("ChangeTick()",1000/mytimer.frame_per_sec());
}

function owk_read_XML()
{
   var obj = null;
   
   return obj;
}

function handle(delta) {
    mymouse.mouse_wheel(delta);    
}

/** Event handler for mouse wheel event. */
function MouseWheel(event) {
   
    var delta = 0;
    if (!event) /* For IE. */
        event = window.event;
    if (event.wheelDelta) { /* IE/Opera. */
        delta = event.wheelDelta / 120;
        /** In Opera 9, delta differs in sign as compared to IE.
        */
        if (window.opera)
            delta = -delta;
    } else if (event.detail) { /** Mozilla case. */
        /** In Mozilla, sign of delta is different than in IE.
        * Also, delta is multiple of 3.
        */
        delta = -event.detail / 3;
    }
    /** If delta is nonzero, handle it.
    * Basically, delta is now positive if wheel was scrolled up,
    * and negative, if wheel was scrolled down.
    */
    if (delta)
        handle(delta);
    /** Prevent default actions caused by mouse wheel.
    * That might be ugly, but we handle scrolls somehow
    * anyway, so don't bother here..
    */
    /*
    if (event.preventDefault)
    event.preventDefault();*/
   
    event.returnValue = false;
}

var m_view_port_width = 0;
var m_view_port_height = 0;

function on_resize() {
    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined') {
        m_view_port_width = window.innerWidth,
        m_view_port_height = window.innerHeight
    }
    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
    else if (typeof document.documentElement != 'undefined'
             && typeof document.documentElement.clientWidth !=
             'undefined' && document.documentElement.clientWidth != 0) {
            m_view_port_width = document.documentElement.clientWidth,
               m_view_port_height = document.documentElement.clientHeight
    }
    // older versions of IE
    else 
    {
        m_view_port_width = document.getElementsByTagName('body')[0].clientWidth,
        m_view_port_height = document.getElementsByTagName('body')[0].clientHeight
    }

    m_view_port_width--;
    m_view_port_height--;
}

function scroll_top_value() {
    var scroll_top = 0;
    try 
    {
        if (window.pageYOffset) {
            scroll_top = window.pageYOffset;
        }
        else if (document.documentElement.scrollTop) {
            scroll_top = document.documentElement.scrollTop;
        }
        else if (document.body.scrollTop) {
            scroll_top = document.body.scrollTop;
        } 
    }
    catch (e) {}

    return scroll_top;
}

function capture_mouse_wheel()
{
    document.onmousewheel = MouseWheel;
}

function enabled_capture_mouse() {
    document.onmousedown = MouseDown;
    document.onmouseup = MouseUp;
    document.onmousemove = MouseMove;
}

function disabled_capture_mouse() {
    document.onmousedown = null;
    document.onmouseup = null;
    document.onmousemove = null;
    document.onmousewheel = null;
}

document.onmousedown = MouseDown;
document.onmouseup = MouseUp;
document.onmousemove = MouseMove;

document.ondblclick = MouseDoubleClick;
window.onresize = on_resize;


//this.m_frame_per_sec = i_value;     

mytimer.create();

mytimer.set_frame_per_sec(5); 
var m_timerId;

m_timerId=setInterval("ChangeTick()",mytimer.frame_per_sec()); 

mymouse.create();
mykeyboard.create();
