API Docs for: 0.0.2
Show:

File: Framework\Common.js

/**
 * AtlantisEngine.js a lightweight JavaScript game engine.
 *
 * @module Atlantis
 * @submodule Framework
 * @namespace Atlantis
 */

var Atlantis = window.Atlantis || {};

Atlantis.events = {
    ContentPreloading: "atlantis.preloading",
    ResolutionChanged: "atlantis.graphics.resize"
};

/**
 * Ajax method for POST and GET calls.
 * @method ajax
 * @exemple Atlantis.ajax({ url: http://foo.php, data: "level_id=2&layer=3", method: "GET", async: false, success: myCallback });
 */
Atlantis.ajax = function(parameters) {
    var params = parameters || {};
    var url = parameters.url;
    var callback = parameters.success || function () {};
    var xhr;
    
    if (typeof(WinJS) !== "undefined") {
        WinJS.xhr({ url: url }).then(callback);
    }
    else {
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        }
        else {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }

        if (params.method === "POST") {
            xhr.open("POST", url, params.async);
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    callback(xhr.responseText);
                }
            };
            xhr.send(params.data);
        }
        else {
            var gUrl = params.data ? ([url, "?", params.data].join("")) : url;
            
            xhr.open("GET", gUrl, params.async);
            xhr.onreadystatechange = function() { 
                if(xhr.readyState == 4) {
                    callback(xhr.responseText);
                }    
            };
            xhr.send(null);
        }
    }
};

/**
 * An event notifier. If the event doesn't exists it created and stored.
 * @method notify
 * @param {String} name The name of the event to emit.
 * @param {Object} params An object to emit with the event.
 */
Atlantis.notify = function (name, params) {
    var event = document.createEvent("HTMLEvents");
    event.initEvent(name, true, false);
    
    if (params instanceof Object) {
        for(var i in params) {
            event[i] = params[i];
        }
    }

    document.dispatchEvent(event);
};

Atlantis.isMobileDevice = function () {
	return navigator.userAgent.match(/Android|iPhone|iPad|iPod|BlackBerry|Windows Phone/i);
};

Atlantis._createProperty = function (object, property, fn0, fn1) {
    Object.defineProperty(object, property, {
        get: fn0,
        set: fn1,
        enumerable: true,
        configurable: true
    });
}