aboutsummaryrefslogtreecommitdiffstats
path: root/toj/jcs/sq.js
blob: 17c07c011853168cfdb6f8fd915eb8a21c06157f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
var sq = new function(){
    var that = this;
    var j_page = null;
    var sq_page = null;
    var sq_sqid = null;
    var sq_sqmodname = null;

    that.init = function(){
        j_page = $('#index_page > div.sq_page');        
        
        that.node = new vus.node('sq');         
        that.node.url_chg = function(direct,url_upart,url_dpart){
            var sqid;

            var _clean = function(){
                if(sq_page != null){
                    that.node.child_del(sq_page.node);
                }

                j_page.empty();
                j_page.removeClass(sq_sqmodname);
                index.content_empty();
                index.tab_empty();

                sq_page = null;
                sq_sqid = null;
                sq_sqmodname = null;
            };
            
            if(direct == 'in' || direct == 'same'){
                sqid = url_dpart[0];
                if(sqid == ''){
                    com.url_update('/toj/none/'); 
                    return 'stop';
                }
                sqid = parseInt(sqid);
                if(sqid == sq_sqid){
                    return 'cont';
                }

                _clean();
                that.node.child_delayset(sqid.toString());

                $.post('/toj/php/square.php',{'action':'get_sq','data':JSON.stringify({'sqid':sqid})},function(res){
                    var css;
                    var reto;

                    if(res[0] != 'E'){
                        sq_sqid = sqid;
                        reto = JSON.parse(res);
                        sq_sqmodname = reto.sqmodname;

                        css = $('<link rel="stylesheet" type="text/css" href="/toj/sqmod/' + sq_sqmodname + '/' + sq_sqmodname + '.css">');
                        $('head').append(css);
                        css.ready(function(){
                            j_page.addClass(sq_sqmodname);

                            $.get('/toj/sqmod/' + sq_sqmodname + '/' + sq_sqmodname + '.html',{},function(res){
                                j_page.html(res);
                                $.getScript('/toj/sqmod/' + sq_sqmodname + '/' + sq_sqmodname + '.js',function(script,stat,res){
                                    sq_page = new class_sq_page(sq_sqid,reto.sqname);
                                    eval('new ' + sq_sqmodname + '(sq_page,j_page)');
                                    that.node.child_set(sq_page.node);
                                });
                            });
                        });
                    }else{
                        com.url_update('/toj/none/');
                    }
                });

            }else if(direct == 'out'){
                _clean();
            }

            return 'cont';
        };
        com.vus_root.child_set(that.node);
    };
};

var class_sq_page = function(sqid,sqname){
    var that = this;

    that.sqid = sqid;
    that.sqname = sqname;
    that.node = new vus.node(sqid.toString());
};