diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..451151a
Binary files /dev/null and b/.DS_Store differ
diff --git a/fullscreen/index.html b/fullscreen/index.html
new file mode 100644
index 0000000..ee168ac
--- /dev/null
+++ b/fullscreen/index.html
@@ -0,0 +1,26 @@
+
+
+ FS Demo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fullscreen/screenfull.js b/fullscreen/screenfull.js
new file mode 100644
index 0000000..1557548
--- /dev/null
+++ b/fullscreen/screenfull.js
@@ -0,0 +1,137 @@
+/*global Element */
+(function (window, document) {
+ 'use strict';
+
+ var keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element, // IE6 throws without typeof check
+
+ fn = (function () {
+ var val, valLength;
+ var fnMap = [
+ [
+ 'requestFullscreen',
+ 'exitFullscreen',
+ 'fullscreenElement',
+ 'fullscreenEnabled',
+ 'fullscreenchange',
+ 'fullscreenerror'
+ ],
+ // new WebKit
+ [
+ 'webkitRequestFullscreen',
+ 'webkitExitFullscreen',
+ 'webkitFullscreenElement',
+ 'webkitFullscreenEnabled',
+ 'webkitfullscreenchange',
+ 'webkitfullscreenerror'
+
+ ],
+ // old WebKit (Safari 5.1)
+ [
+ 'webkitRequestFullScreen',
+ 'webkitCancelFullScreen',
+ 'webkitCurrentFullScreenElement',
+ 'webkitCancelFullScreen',
+ 'webkitfullscreenchange',
+ 'webkitfullscreenerror'
+
+ ],
+ [
+ 'mozRequestFullScreen',
+ 'mozCancelFullScreen',
+ 'mozFullScreenElement',
+ 'mozFullScreenEnabled',
+ 'mozfullscreenchange',
+ 'mozfullscreenerror'
+ ],
+ [
+ 'msRequestFullscreen',
+ 'msExitFullscreen',
+ 'msFullscreenElement',
+ 'msFullscreenEnabled',
+ 'MSFullscreenChange',
+ 'MSFullscreenError'
+ ]
+ ];
+ var i = 0;
+ var l = fnMap.length;
+ var ret = {};
+
+ for (; i < l; i++) {
+ val = fnMap[i];
+ if (val && val[1] in document) {
+ for (i = 0, valLength = val.length; i < valLength; i++) {
+ ret[fnMap[0][i]] = val[i];
+ }
+ return ret;
+ }
+ }
+ return false;
+ })(),
+
+ screenfull = {
+ request: function (elem) {
+ var request = fn.requestFullscreen;
+
+ elem = elem || document.documentElement;
+
+ // Work around Safari 5.1 bug: reports support for
+ // keyboard in fullscreen even though it doesn't.
+ // Browser sniffing, since the alternative with
+ // setTimeout is even worse.
+ if (/5\.1[\.\d]* Safari/.test(navigator.userAgent)) {
+ elem[request]();
+ } else {
+ elem[request](keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT);
+ }
+ },
+ exit: function () {
+ document[fn.exitFullscreen]();
+ },
+ toggle: function (elem) {
+ if (this.isFullscreen) {
+ this.exit();
+ } else {
+ this.request(elem);
+ }
+ },
+ onchange: function () {},
+ onerror: function () {},
+ raw: fn
+ };
+
+ if (!fn) {
+ window.screenfull = false;
+ return;
+ }
+
+ Object.defineProperties(screenfull, {
+ isFullscreen: {
+ get: function () {
+ return !!document[fn.fullscreenElement];
+ }
+ },
+ element: {
+ enumerable: true,
+ get: function () {
+ return document[fn.fullscreenElement];
+ }
+ },
+ enabled: {
+ enumerable: true,
+ get: function () {
+ // Coerce to boolean in case of old WebKit
+ return !!document[fn.fullscreenEnabled];
+ }
+ }
+ });
+
+ document.addEventListener(fn.fullscreenchange, function (e) {
+ screenfull.onchange.call(screenfull, e);
+ });
+
+ document.addEventListener(fn.fullscreenerror, function (e) {
+ screenfull.onerror.call(screenfull, e);
+ });
+
+ window.screenfull = screenfull;
+})(window, document);
\ No newline at end of file
diff --git a/fullscreen/style.css b/fullscreen/style.css
new file mode 100644
index 0000000..89db14a
--- /dev/null
+++ b/fullscreen/style.css
@@ -0,0 +1,20 @@
+html, body {
+ margin: 0;
+ padding: 0;
+ display: table;
+ width: 100%;
+ height: 100%;
+ background: #000;
+}
+#container {
+ text-align: center;
+ display: table-cell;
+ vertical-align: middle;
+ height: 100%;
+ width: 100%;
+}
+canvas {
+ background: #333;
+ width: 100%;
+ height: 100%;
+}
\ No newline at end of file