function object(o) {
    var f = object.f,
        i,
        len,
        n,
        prop;
    f.prototype = o;
    n = new f();
    for (i = 1, len = arguments.length; i < len; ++i)
        for (prop in arguments[i]) n[prop] = arguments[i][prop];
    return n;
}

object.f = function () {};

var tyrano = {};
tyrano.plugin = {};

tyrano.core = {
    base: null,

    options: {
        width: 0,
        height: 0,
        onComplete: function () {},
    },

    status: {
        loaded_plugin: 0,
    },

    init: function (options) {
        var that = this;

        this.base = object(tyrano.base);
        this.base.init(this);

        this.config = window.config;

        //スクリプトをロードして、そのオブジェクトを作成
        //alert("wwwww");
        that.loadModule();
    },

    //プラグインのロード処理
    loadPlugins: function (array_src, call_back) {
        var that = this;

        var count_src = 0;

        for (var i = 0; i < array_src.length; i++) {
            $.getScript(
                "./tyrano/plugins/" + array_src[i] + "/" + array_src[i] + ".js",
                function () {
                    count_src++;

                    if (count_src == array_src.length) {
                        if (call_back) {
                            call_back(array_src);
                        }
                    }
                },
            );
        }
    },

    loadModule: function () {
        var that = this;
        var array_src = ["kag"];

        for (var i = 0; i < array_src.length; i++) {
            var _name = array_src[i];
            this[_name] = object(tyrano.plugin[_name]);
            //操作を委譲
            this[_name].tyrano = this;
            this[_name].init();
        }

        this.completeLoad();
    },

    //
    completeLoad: function () {
        //console.log(plugin_name);

        //読み込み対象のプラグイン数分実行されたらビルド処理へ
        this.build();
    },

    //ローディング完了、システムを組み上げていきます
    build: function () {},

    get: function (mark) {
        return $(mark);
    },

    test: function () {
        //alert("tyrano test");
    },
};

var TYRANO = object(tyrano.core);
window.TYRANO = TYRANO;

if (!("console" in window)) {
    window.console = {};
    window.console.log = function (str) {
        return str;
    };
}

$(function () {
    //画面をノベル用に構築していくみたいな
    //yunagi.init();
    //DOM構築完了後の初期化
    //yunagi.init_loaded();
    TYRANO.init();
});
