diff options
Diffstat (limited to 'client/assets/javascripts/app.js')
| -rw-r--r-- | client/assets/javascripts/app.js | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/client/assets/javascripts/app.js b/client/assets/javascripts/app.js new file mode 100644 index 0000000..1f7fc7d --- /dev/null +++ b/client/assets/javascripts/app.js @@ -0,0 +1,119 @@ + +var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)); +var is_ipad = (navigator.userAgent.match(/iPad/i)); +var is_android = (navigator.userAgent.match(/Android/i)) +var is_mobile = is_iphone || is_ipad || is_android; + +if (is_mobile) { + window.location.href = "mobile.html" +} +else if ($.browser.msie || ! has3d()) { + window.location.href = "error.html" +} + +var scene, + cam, + map; + +var viewHeight = window.viewHeight || 150 + +var app = new function(){} +app.dragging = false + +app.init = function () { + + var mainbox, + coords, + box, size, + floor, + movements + + scene = new MX.Scene().addTo('#scene') + scene.width = window.innerWidth + scene.height = window.innerHeight + scene.perspective = window.innerHeight + + window.onresize = function () { + scene.width = window.innerWidth + scene.height = window.innerHeight + scene.perspective = window.innerHeight + scene.update() + } + + cam = scene.camera + cam.y = viewHeight + + app.tube = new Tube () + + if (MX.Map) map = app.map = new MX.Map() + + movements = app.movements = new MX.Movements(cam, viewHeight) + movements.init() + + function animate (t) { + requestAnimationFrame(animate) + environment.update(t) + window.path && path.update(t) + movements.update() + scene.update() + } + + window.inAnimation = true + + var loader = new Loader(function(){ + $("#loader").hide() + window.environment && window.environment.init() + window.editor && window.editor.init() + window.path && window.path.init() + animate() + }) + + // loader.preloadImages([]) + loader.ready() +} + +app.on = function(){ + app.tube.on.apply(app.tube, arguments) +} + +app.off = function(){ + app.tube.off.apply(app.tube, arguments) +} + +app.position = function(obj){ + return { + x: obj.x, + y: obj.y, + z: obj.z, + rotationX: obj.rotationX, + rotationY: obj.rotationY + } +} + +var share = { + init: function(){ + share.bind() + }, + bind: function(){ + $("#facebook").click(share.facebook) + $("#twitter").click(share.twitter) + }, + url: "http://vvalls.com/", + facebook_msg: "", + twitter_msg: "", + openLink: function (url) { + window.open(url, "_blank"); + }, + facebook: function () { + var url = "https://www.facebook.com/share.php?u=" + encodeURIComponent(share.url) + "&t=" + encodeURIComponent(share.facebook_msg); + share.openLink(url); + return false; + }, + twitter: function () { + var url = "https://twitter.com/home?status=" + encodeURIComponent(share.url + " " + share.twitter_msg); + share.openLink(url); + return false; + } +} + +document.addEventListener('DOMContentLoaded', app.init) |
