//  Copyright (c) 2008 David Caldwell,  All Rights Reserved.
function KeyboardFocusAutoPause(){}
KeyboardFocusAutoPause.prototype.init_keyboard_focus_auto_pause=function(game_div,pause_button_div,pausable)
{pausable=wrap(this,pausable||function(){return true;});var input_div=doc.el("input",{id:"input",style:{width:"0px",height:"0px",position:"relative",left:"-10000px"}});input_div.onblur=wrap(this,function(){this.pause(1);});game_div.parentNode.appendChild(input_div);if(pause_button_div)pause_button_div.onmousedown=wrap(this,function(){if(this._pause_hack=(pausable()&&!this.paused)){this._key_pause=0;this.pause(1);return false;}});if(pause_button_div)pause_button_div.onmouseup=wrap(this,function(){if(!this._pause_hack){this._key_pause=0;this.pause();}});game_div.onclick=wrap(this,function(){input_div.focus();if(this.paused&&!this._key_pause)this.pause(0)});this.key_pause=function(pause){this.pause(pause);if(this.paused)this._key_pause=true;}
this.pause=function(pause){if(pause!=undefined&&!((this.paused?1:0)^ pause))
return;if(pause&&!pausable())
return;if(!this.paused){this.paused=true;if(pause_button_div)pause_button_div.value=pause_button_div.value.replace(/Pause/,"Unpause");if(this.on_pause)this.on_pause();}else{this.paused=false;input_div.focus();if(pause_button_div)pause_button_div.value=pause_button_div.value.replace(/Unpause/,"Pause");if(this.on_unpause)this.on_unpause();}}
this.register_key_events=function(handler){var args=Array.prototype.slice.call(arguments);args[0]=wrap(this,args[0]);args.unshift(input_div);plat.register_key_events.apply(null,args);}
this.input_focus=function(){input_div.focus();this.pause(false);}}
