Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

added require.js, fullscreencanvas

  • Loading branch information...
commit 260a1856751771631e4257555f373ee3524cc2ed 1 parent f048c72
Fabrizio Codello authored
6 TODO
View
@@ -0,0 +1,6 @@
+- crea stanza
+- collega stanza id
+- max 9?
+- schermata lobby
+- propagazione azione da mobile
+- posizione rispetto ad altri
20 public/css/style.css
View
@@ -1,11 +1,13 @@
-body {
- font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
- background-color: #DCECEC;
- color: #333;
+* {
margin: 0;
padding: 0;
}
+body {
+ font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
+ overflow: hidden;
+}
+
a {
color: #00B7FF;
}
@@ -15,13 +17,12 @@ a {
}
#wrapper {
- padding: 0;
- padding-top: 30px;
- padding-left: 50px;
+ position: relative;
}
h1 {
color: #3CAEC2;
+ display: none;
}
#debug {
@@ -30,7 +31,7 @@ h1 {
right: 10px;
bottom: 0;
background-color: #FFFFDD;
- border: 0px solid #CCC;
+ border: 0 solid #CCC;
border-bottom: none;
padding: 10px;
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
@@ -46,6 +47,9 @@ h1 {
}
#canvas {
+ position: absolute;
+ top: 0;
+ left: 0;
background-color: #CCC;
}
14 public/index.html
View
@@ -7,15 +7,6 @@
<link type="text/css" rel="stylesheet" href="./css/style.css" media="screen">
- <script type="text/javascript" src="./js/jquery-1.7.2.min.js"></script>
- <script type="text/javascript" src="./socket.io/socket.io.js"></script>
-
- <script type="text/javascript" src="./js/Fps.js"></script>
- <script type="text/javascript" src="./js/Player.js"></script>
- <script type="text/javascript" src="./js/Viewport.js"></script>
- <script type="text/javascript" src="./js/requestAnimationFrame.js"></script>
- <script type="text/javascript" src="./js/Mangonel.js"></script>
- <script type="text/javascript" src="./js/main.js"></script>
</head>
<body>
<div id="wrapper">
@@ -35,5 +26,10 @@
<h1>Scoreboard</h1>
<ul></ul>
</div>
+
+ <script type="text/javascript" src="./js/jquery-1.7.2.min.js"></script>
+ <script type="text/javascript" src="./js/require-2.1.4.min.js"></script>
+
+ <script type="text/javascript" src="./js/main.js"></script>
</body>
</html>
64 public/js/Mangonel.js
View
@@ -39,6 +39,18 @@
var vp = new Viewport(canvasWidth, canvasHeight);
+ var resizeCanvas = function() {
+ canvasWidth = $(window).innerWidth();
+ canvasHeight = $(window).innerHeight();
+
+ canvas.attr({ width: canvasWidth, height: canvasHeight });
+
+ vp.setSize(canvasWidth, canvasHeight);
+ };
+
+ $(window).resize(resizeCanvas);
+ resizeCanvas();
+
var debug = function(msg) {
console.log(msg);
};
@@ -50,7 +62,7 @@
var toggleDebugPanel = function(spd) {
var speed = spd || 'fast';
-
+
debugPanel.stop();
debugPanel.fadeToggle(speed);
debugPanel.toggleClass("active");
@@ -63,23 +75,23 @@
var showScoreboard = function() {
var list = scoreboard.find('ul');
-
+
list.html('');
var length = players.length;
for(var i = 0; i < length; i++) {
list.append("<li>"+ players[i] +"</li>");
}
-
+
list.append("<li>&nbsp;</li>");
list.append("<li>Total players: "+ length +"</li>");
scoreboard.show();
- }
+ };
var start = function() {
if (isReady) {
debug('* Mangonel started.');
isPlaying = true;
-
+
$(window).keydown(function(e) {
//e.preventDefault();
@@ -107,16 +119,16 @@
}
});
-
+
$(window).keypress(function(e) {
//e.preventDefault();
var keyCode = e.keyCode;
-
+
});
$(window).keyup(function(e) {
//e.preventDefault();
-
+
switch(e.keyCode) {
case keys.left:
player.moveLeft = false;
@@ -175,7 +187,7 @@
player.lastMoveDir = dir;
nowMove = Date.now();
- if ((nowMove - player.lastMoveTime) > allowSendEvery) {
+ if ((nowMove - player.lastMoveTime) > allowSendEvery) {
socket.emit('play', { id: player.id, dir: dir });
player.lastMoveTime = Date.now();
}
@@ -196,7 +208,7 @@
drawMapBounds = function() {
var coords = mapToVp(0, 0);
- ctx.save()
+ ctx.save();
ctx.strokeStyle = "#AAA";
ctx.lineWidth = 8;
ctx.strokeRect(coords.x - 4, coords.y - 4, canvasWidth + 8, canvasHeight + 8);
@@ -244,8 +256,8 @@
var loop = function() {
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
-
- if (isPlaying) {
+
+ if (isPlaying) {
sendMovement();
vp.setCenter(player.x, player.y);
@@ -257,22 +269,22 @@
for(var i = 0; i < length; i++) {
if (players[i].id != player.id) {
drawPlayer(players[i]);
- }
+ }
}
-
+
fps.count++;
requestAnimationFrame(loop);
//setTimeout(loop, desiredFPS); //debug
}
- }
+ };
- socket.on('join', function(data) {
+ socket.on('join', function(data) {
player.id = data.player.id;
player.nick = data.player.nick;
player.x = data.player.x;
player.y = data.player.y;
-
+
debug('Received current player id: '+ player.id);
debug('You have joined the server.');
});
@@ -288,28 +300,28 @@
break;
}
}
-
+
debug('Player quitted: '+ quitter +' (id '+ data.id +')');
});
- socket.on('newplayer', function(data) {
+ socket.on('newplayer', function(data) {
var newPlayer = new Player();
newPlayer.id = data.player.id;
newPlayer.nick = data.player.nick;
newPlayer.x = data.player.x;
newPlayer.y = data.player.y;
newPlayer.lastMoveDir = data.player.lastMoveDir;
-
+
players.push(newPlayer);
debug('New player joined: '+ newPlayer.nick);
tmpPlayer = {};
});
-
- socket.on('playerlist', function(data) {
+
+ socket.on('playerlist', function(data) {
players = []; //prepare for new list
var length = data.list.length;
- for(var i = 0; i < length; i++) {
+ for(var i = 0; i < length; i++) {
var tmpPlayer = new Player();
tmpPlayer.id = data.list[i].id;
tmpPlayer.nick = data.list[i].nick;
@@ -317,12 +329,12 @@
tmpPlayer.y = data.list[i].y;
tmpPlayer.lastMoveDir = data.list[i].lastMoveDir;
tmpPlayer.ping = data.list[i].ping;
-
+
players.push(tmpPlayer);
tmpPlayer = {};
}
- debug('Initial player list received: '+ length +' players.');
+ debug('Initial player list received: '+ length +' players.');
});
socket.on('play', function(data) {
@@ -345,7 +357,7 @@
socket.emit('pong', { time: Date.now() });
//debug('Ping? Pong!');
});
-
+
socket.on('pingupdate', function(data) {
var length = players.length;
for(var i = 0; i < length; i++) {
4 public/js/Viewport.js
View
@@ -23,7 +23,7 @@ var Viewport = function(width, height) {
((_y >= -_rangeY) && (_y < _height + _rangeY))) {
return true;
}
-
+
return false;
};
@@ -42,7 +42,7 @@ var Viewport = function(width, height) {
// Resize viewport to given size
// Useful when resizing a full screen viewport
- setSize = function(width, height) {
+ setSize = function(_width, _height) {
width = _width;
height = _height;
};
55 public/js/main.js
View
@@ -1,30 +1,45 @@
$(document).ready(function() {
-
- var tot = $("#tot");
+
+ var Game = null,
+ require_js = [],
+ tot = $("#tot");
/*
* Main
*/
- var Game = new Mangonel();
+ require_js = [
+ '/socket.io/socket.io.js',
+ '/js/Fps.js',
+ '/js/Player.js',
+ '/js/Viewport.js',
+ '/js/requestAnimationFrame.js',
+ '/js/Mangonel.js'
+ ];
+
+ require(require_js, function(data) {
+
+ Game = new Mangonel();
+
+ /*
+ * Socket.io
+ */
+
+ Game.socket.on('connect', function() {
+ Game.debug('Connected.');
+ Game.start();
+ });
+
+ Game.socket.on('disconnect', function() {
+ Game.debug('Disconnected.');
+ Game.stop();
+ });
+
+ Game.socket.on('tot', function(data) {
+ tot.html(data.tot);
+ Game.debug("Current players number: "+ data.tot);
+ });
- /*
- * Socket.io
- */
-
- Game.socket.on('connect', function() {
- Game.debug('Connected.');
- Game.start();
- });
-
- Game.socket.on('disconnect', function() {
- Game.debug('Disconnected.');
- Game.stop();
- });
-
- Game.socket.on('tot', function(data) {
- tot.html(data.tot);
- Game.debug("Current players number: "+ data.tot);
});
});
35 public/js/require-2.1.4.min.js
View
@@ -0,0 +1,35 @@
+/*
+ RequireJS 2.1.4 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
+ Available via the MIT or new BSD license.
+ see: http://github.com/jrburke/requirejs for details
+*/
+var requirejs,require,define;
+(function(Y){function I(b){return"[object Function]"===L.call(b)}function J(b){return"[object Array]"===L.call(b)}function x(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function M(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function r(b,c){return da.call(b,c)}function i(b,c){return r(b,c)&&b[c]}function E(b,c){for(var d in b)if(r(b,d)&&c(b[d],d))break}function Q(b,c,d,i){c&&E(c,function(c,h){if(d||!r(b,h))i&&"string"!==typeof c?(b[h]||(b[h]={}),Q(b[h],
+c,d,i)):b[h]=c});return b}function t(b,c){return function(){return c.apply(b,arguments)}}function Z(b){if(!b)return b;var c=Y;x(b.split("."),function(b){c=c[b]});return c}function F(b,c,d,i){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=i;d&&(c.originalError=d);return c}function ea(b){function c(a,f,v){var e,n,b,c,d,k,g,h=f&&f.split("/");e=h;var l=m.map,j=l&&l["*"];if(a&&"."===a.charAt(0))if(f){e=i(m.pkgs,f)?h=[f]:h.slice(0,h.length-1);f=a=e.concat(a.split("/"));
+for(e=0;f[e];e+=1)if(n=f[e],"."===n)f.splice(e,1),e-=1;else if(".."===n)if(1===e&&(".."===f[2]||".."===f[0]))break;else 0<e&&(f.splice(e-1,2),e-=2);e=i(m.pkgs,f=a[0]);a=a.join("/");e&&a===f+"/"+e.main&&(a=f)}else 0===a.indexOf("./")&&(a=a.substring(2));if(v&&(h||j)&&l){f=a.split("/");for(e=f.length;0<e;e-=1){b=f.slice(0,e).join("/");if(h)for(n=h.length;0<n;n-=1)if(v=i(l,h.slice(0,n).join("/")))if(v=i(v,b)){c=v;d=e;break}if(c)break;!k&&(j&&i(j,b))&&(k=i(j,b),g=e)}!c&&k&&(c=k,d=g);c&&(f.splice(0,d,
+c),a=f.join("/"))}return a}function d(a){z&&x(document.getElementsByTagName("script"),function(f){if(f.getAttribute("data-requiremodule")===a&&f.getAttribute("data-requirecontext")===k.contextName)return f.parentNode.removeChild(f),!0})}function y(a){var f=i(m.paths,a);if(f&&J(f)&&1<f.length)return d(a),f.shift(),k.require.undef(a),k.require([a]),!0}function g(a){var f,b=a?a.indexOf("!"):-1;-1<b&&(f=a.substring(0,b),a=a.substring(b+1,a.length));return[f,a]}function h(a,f,b,e){var n,u,d=null,h=f?f.name:
+null,l=a,m=!0,j="";a||(m=!1,a="_@r"+(L+=1));a=g(a);d=a[0];a=a[1];d&&(d=c(d,h,e),u=i(p,d));a&&(d?j=u&&u.normalize?u.normalize(a,function(a){return c(a,h,e)}):c(a,h,e):(j=c(a,h,e),a=g(j),d=a[0],j=a[1],b=!0,n=k.nameToUrl(j)));b=d&&!u&&!b?"_unnormalized"+(M+=1):"";return{prefix:d,name:j,parentMap:f,unnormalized:!!b,url:n,originalName:l,isDefine:m,id:(d?d+"!"+j:j)+b}}function q(a){var f=a.id,b=i(j,f);b||(b=j[f]=new k.Module(a));return b}function s(a,f,b){var e=a.id,n=i(j,e);if(r(p,e)&&(!n||n.defineEmitComplete))"defined"===
+f&&b(p[e]);else q(a).on(f,b)}function A(a,f){var b=a.requireModules,e=!1;if(f)f(a);else if(x(b,function(f){if(f=i(j,f))f.error=a,f.events.error&&(e=!0,f.emit("error",a))}),!e)l.onError(a)}function w(){R.length&&(fa.apply(G,[G.length-1,0].concat(R)),R=[])}function B(a,f,b){var e=a.map.id;a.error?a.emit("error",a.error):(f[e]=!0,x(a.depMaps,function(e,c){var d=e.id,h=i(j,d);h&&(!a.depMatched[c]&&!b[d])&&(i(f,d)?(a.defineDep(c,p[d]),a.check()):B(h,f,b))}),b[e]=!0)}function C(){var a,f,b,e,n=(b=1E3*m.waitSeconds)&&
+k.startTime+b<(new Date).getTime(),c=[],h=[],g=!1,l=!0;if(!T){T=!0;E(j,function(b){a=b.map;f=a.id;if(b.enabled&&(a.isDefine||h.push(b),!b.error))if(!b.inited&&n)y(f)?g=e=!0:(c.push(f),d(f));else if(!b.inited&&(b.fetched&&a.isDefine)&&(g=!0,!a.prefix))return l=!1});if(n&&c.length)return b=F("timeout","Load timeout for modules: "+c,null,c),b.contextName=k.contextName,A(b);l&&x(h,function(a){B(a,{},{})});if((!n||e)&&g)if((z||$)&&!U)U=setTimeout(function(){U=0;C()},50);T=!1}}function D(a){r(p,a[0])||
+q(h(a[0],null,!0)).init(a[1],a[2])}function H(a){var a=a.currentTarget||a.srcElement,b=k.onScriptLoad;a.detachEvent&&!V?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=k.onScriptError;(!a.detachEvent||V)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function K(){var a;for(w();G.length;){a=G.shift();if(null===a[0])return A(F("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));D(a)}}var T,W,k,N,U,m={waitSeconds:7,
+baseUrl:"./",paths:{},pkgs:{},shim:{},map:{},config:{}},j={},X={},G=[],p={},S={},L=1,M=1;N={require:function(a){return a.require?a.require:a.require=k.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?a.exports:a.exports=p[a.map.id]={}},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m.config&&i(m.config,a.map.id)||{}},exports:p[a.map.id]}}};W=function(a){this.events=i(X,a.id)||{};this.map=a;this.shim=
+i(m.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};W.prototype={init:function(a,b,c,e){e=e||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=t(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;this.ignore=e.ignore;e.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=
+b)},fetch:function(){if(!this.fetched){this.fetched=!0;k.startTime=(new Date).getTime();var a=this.map;if(this.shim)k.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],t(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=this.map.url;S[a]||(S[a]=!0,k.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var e=this.exports,n=this.factory;
+if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(I(n)){if(this.events.error)try{e=k.execCb(c,n,b,e)}catch(d){a=d}else e=k.execCb(c,n,b,e);this.map.isDefine&&((b=this.module)&&void 0!==b.exports&&b.exports!==this.exports?e=b.exports:void 0===e&&this.usingExports&&(e=this.exports));if(a)return a.requireMap=this.map,a.requireModules=[this.map.id],a.requireType="define",A(this.error=a)}else e=n;this.exports=e;if(this.map.isDefine&&
+!this.ignore&&(p[c]=e,l.onResourceLoad))l.onResourceLoad(k,this.map,this.depMaps);delete j[c];this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=h(a.prefix);this.depMaps.push(d);s(d,"defined",t(this,function(e){var n,d;d=this.map.name;var v=this.map.parentMap?this.map.parentMap.name:null,g=k.makeRequire(a.parentMap,{enableBuildCallback:!0});
+if(this.map.unnormalized){if(e.normalize&&(d=e.normalize(d,function(a){return c(a,v,!0)})||""),e=h(a.prefix+"!"+d,this.map.parentMap),s(e,"defined",t(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=i(j,e.id)){this.depMaps.push(e);if(this.events.error)d.on("error",t(this,function(a){this.emit("error",a)}));d.enable()}}else n=t(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),n.error=t(this,function(a){this.inited=!0;this.error=a;a.requireModules=
+[b];E(j,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&delete j[a.map.id]});A(a)}),n.fromText=t(this,function(e,c){var d=a.name,u=h(d),v=O;c&&(e=c);v&&(O=!1);q(u);r(m.config,b)&&(m.config[d]=m.config[b]);try{l.exec(e)}catch(j){return A(F("fromtexteval","fromText eval for "+b+" failed: "+j,j,[b]))}v&&(O=!0);this.depMaps.push(u);k.completeLoad(d);g([d],n)}),e.load(a.name,g,n,m)}));k.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){this.enabling=this.enabled=!0;x(this.depMaps,t(this,function(a,
+b){var c,e;if("string"===typeof a){a=h(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=i(N,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,"defined",t(this,function(a){this.defineDep(b,a);this.check()}));this.errback&&s(a,"error",this.errback)}c=a.id;e=j[c];!r(N,c)&&(e&&!e.enabled)&&k.enable(a,this)}));E(this.pluginMaps,t(this,function(a){var b=i(j,a.id);b&&!b.enabled&&k.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=
+this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){x(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};k={config:m,contextName:b,registry:j,defined:p,urlFetched:S,defQueue:G,Module:W,makeModuleMap:h,nextTick:l.nextTick,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=m.pkgs,c=m.shim,e={paths:!0,config:!0,map:!0};E(a,function(a,b){e[b]?"map"===b?Q(m[b],a,!0,!0):Q(m[b],a,!0):m[b]=a});a.shim&&(E(a.shim,function(a,
+b){J(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=k.makeShimExports(a);c[b]=a}),m.shim=c);a.packages&&(x(a.packages,function(a){a="string"===typeof a?{name:a}:a;b[a.name]={name:a.name,location:a.location||a.name,main:(a.main||"main").replace(ga,"").replace(aa,"")}}),m.pkgs=b);E(j,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=h(b))});if(a.deps||a.callback)k.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(Y,arguments));
+return b||a.exports&&Z(a.exports)}},makeRequire:function(a,d){function g(e,c,u){var i,m;d.enableBuildCallback&&(c&&I(c))&&(c.__requireJsBuild=!0);if("string"===typeof e){if(I(c))return A(F("requireargs","Invalid require call"),u);if(a&&r(N,e))return N[e](j[a.id]);if(l.get)return l.get(k,e,a);i=h(e,a,!1,!0);i=i.id;return!r(p,i)?A(F("notloaded",'Module name "'+i+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):p[i]}K();k.nextTick(function(){K();m=q(h(null,a));m.skipMap=d.skipMap;
+m.init(e,c,u,{enabled:!0});C()});return g}d=d||{};Q(g,{isBrowser:z,toUrl:function(b){var d,f=b.lastIndexOf("."),h=b.split("/")[0];if(-1!==f&&(!("."===h||".."===h)||1<f))d=b.substring(f,b.length),b=b.substring(0,f);b=k.nameToUrl(c(b,a&&a.id,!0),d||".fake");return d?b:b.substring(0,b.length-5)},defined:function(b){return r(p,h(b,a,!1,!0).id)},specified:function(b){b=h(b,a,!1,!0).id;return r(p,b)||r(j,b)}});a||(g.undef=function(b){w();var c=h(b,a,!0),d=i(j,b);delete p[b];delete S[c.url];delete X[b];
+d&&(d.events.defined&&(X[b]=d.events),delete j[b])});return g},enable:function(a){i(j,a.id)&&q(a).enable()},completeLoad:function(a){var b,c,d=i(m.shim,a)||{},h=d.exports;for(w();G.length;){c=G.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);D(c)}c=i(j,a);if(!b&&!r(p,a)&&c&&!c.inited){if(m.enforceDefine&&(!h||!Z(h)))return y(a)?void 0:A(F("nodefine","No define call for "+a,null,[a]));D([a,d.deps||[],d.exportsFn])}C()},nameToUrl:function(a,b){var c,d,h,g,k,j;if(l.jsExtRegExp.test(a))g=
+a+(b||"");else{c=m.paths;d=m.pkgs;g=a.split("/");for(k=g.length;0<k;k-=1)if(j=g.slice(0,k).join("/"),h=i(d,j),j=i(c,j)){J(j)&&(j=j[0]);g.splice(0,k,j);break}else if(h){c=a===h.name?h.location+"/"+h.main:h.location;g.splice(0,k,c);break}g=g.join("/");g+=b||(/\?/.test(g)?"":".js");g=("/"===g.charAt(0)||g.match(/^[\w\+\.\-]+:/)?"":m.baseUrl)+g}return m.urlArgs?g+((-1===g.indexOf("?")?"?":"&")+m.urlArgs):g},load:function(a,b){l.load(k,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===
+a.type||ha.test((a.currentTarget||a.srcElement).readyState))P=null,a=H(a),k.completeLoad(a.id)},onScriptError:function(a){var b=H(a);if(!y(b.id))return A(F("scripterror","Script error",a,[b.id]))}};k.require=k.makeRequire();return k}var l,w,B,D,s,H,P,K,ba,ca,ia=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ja=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,aa=/\.js$/,ga=/^\.\//;w=Object.prototype;var L=w.toString,da=w.hasOwnProperty,fa=Array.prototype.splice,z=!!("undefined"!==typeof window&&navigator&&
+document),$=!z&&"undefined"!==typeof importScripts,ha=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,V="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),C={},q={},R=[],O=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(I(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!I(require)&&(q=require,require=void 0);l=requirejs=function(b,c,d,y){var g,h="_";!J(b)&&"string"!==typeof b&&(g=b,J(c)?(b=c,c=d,d=y):b=[]);
+g&&g.context&&(h=g.context);(y=i(C,h))||(y=C[h]=l.s.newContext(h));g&&y.configure(g);return y.require(b,c,d)};l.config=function(b){return l(b)};l.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=l);l.version="2.1.4";l.jsExtRegExp=/^\/|:|\?|\.js$/;l.isBrowser=z;w=l.s={contexts:C,newContext:ea};l({});x(["toUrl","undef","defined","specified"],function(b){l[b]=function(){var c=C._;return c.require[b].apply(c,arguments)}});if(z&&(B=w.head=document.getElementsByTagName("head")[0],
+D=document.getElementsByTagName("base")[0]))B=w.head=D.parentNode;l.onError=function(b){throw b;};l.load=function(b,c,d){var i=b&&b.config||{},g;if(z)return g=i.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),g.type=i.scriptType||"text/javascript",g.charset="utf-8",g.async=!0,g.setAttribute("data-requirecontext",b.contextName),g.setAttribute("data-requiremodule",c),g.attachEvent&&!(g.attachEvent.toString&&0>g.attachEvent.toString().indexOf("[native code"))&&
+!V?(O=!0,g.attachEvent("onreadystatechange",b.onScriptLoad)):(g.addEventListener("load",b.onScriptLoad,!1),g.addEventListener("error",b.onScriptError,!1)),g.src=d,K=g,D?B.insertBefore(g,D):B.appendChild(g),K=null,g;$&&(importScripts(d),b.completeLoad(c))};z&&M(document.getElementsByTagName("script"),function(b){B||(B=b.parentNode);if(s=b.getAttribute("data-main"))return q.baseUrl||(H=s.split("/"),ba=H.pop(),ca=H.length?H.join("/")+"/":"./",q.baseUrl=ca,s=ba),s=s.replace(aa,""),q.deps=q.deps?q.deps.concat(s):
+[s],!0});define=function(b,c,d){var i,g;"string"!==typeof b&&(d=c,c=b,b=null);J(c)||(d=c,c=[]);!c.length&&I(d)&&d.length&&(d.toString().replace(ia,"").replace(ja,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c));if(O){if(!(i=K))P&&"interactive"===P.readyState||M(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return P=b}),i=P;i&&(b||(b=i.getAttribute("data-requiremodule")),g=C[i.getAttribute("data-requirecontext")])}(g?
+g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};l.exec=function(b){return eval(b)};l(q)}})(this);
Please sign in to comment.
Something went wrong with that request. Please try again.