dojo.provide("UI.Widgets.Game.Client");

/**
 * This is a singleton, please see below
 */
(function() {
	var URI_GAME = "/games/park";
	
	dojo.declare("UI.Widgets.Game._Client", UI.Base, {
		constructor: function() {
			URI_GAME = PPP.config.paths.self + "games/park";
		},
		
		addLaunchTriggers: function(triggers) {
			if ( !dojo.isArray(triggers) && !triggers.length ) {
				triggers = [triggers];
			}
			
			var handler = function(event) {
				dojo.stopEvent(event);
				event.target.blur();
				this.launch((dojo.isMac && event.metaKey) || event.ctrlKey);
				return false;
			};
			
			for ( var i=0, l=triggers.length; i<l; ++i ) {
				this.setNodeAttribute(
					triggers[i], "launchTrigger",
					dojo.connect(triggers[i], "click", this, handler)
				);
			}
			
			return this;
		},
		
		removeLaunchTriggers: function(triggers) {
			if ( !dojo.isArray(triggers) && !triggers.length ) {
				triggers = [triggers];
			}
			
			for ( var i=0, l=triggers.length; i<l; ++i ) {
				dojo.disconnect( this.getNodeAttribute(triggers[i], "launchTrigger") );
			}
			
			return true;
		},
		
		launch: function(newWindow) {
			if ( newWindow === true ) {
				return window.open(URI_GAME, "client", "status=yes, height=600, width=980, resizable=no");
			} else {
				window.location = URI_GAME + (PPP.isFramed ? "?framed" : "");
			}
		}
	});
})();

UI.Widgets.Game.Client = new UI.Widgets.Game._Client();

