var RESULTMAP = {0:'AC',1:'WA',2:'TLE',3:'MLE',4:'RF',5:'RE',6:'CE',7:'ERR',100:'WAIT'};
var USER_PER_USER = 0x00000001;
var USER_PER_PROCREATOR = 0x00000002;
var USER_PER_PROADMIN = 0x00000004;
var USER_LEVEL_USER = 0x00000001;
var USER_LEVEL_PROCREATOR = 0x00000003;
var USER_LEVEL_PROADMIN = 0x00000007;
var USER_LEVEL_ADMIN = 0x0000ffff;
var USER_LEVEL_SUPERADMIN = -1;
var __extend = function(child,parent){
child.prototype.__super = parent;
};
var common = {
page_list:new Array(),
url_prev:null,
url_curr:null,
mbox_curr:null,
mbox_defer:null,
init:function(){
var i;
var url;
var urlpart;
urlpart = location.href.split('?');
if(urlpart[0].search(/\/$/) == -1){
url = urlpart[0] + '/';
if(urlpart.length > 1){
url = url + '?';
for(i = 1;i < urlpart.length;i++){
url = url + urlpart[i];
}
}
window.history.replaceState(null,document.title,url);
}
common.url_curr = location.href;
$(document).on('click','a',function(e){
common.pushurl($(this).attr('href'));
return false;
});
$(document).on('keyup',function(e){
if(e.which == 27){
common.hidembox(false);
}
});
},
exheight:function(){
var i;
var es;
var extop;
var exbottom;
var j_e;
var j_parent;
es = $('[exheight=true]');
for(i = 0;i < es.length;i++){
j_e = $(es[i]);
if((extop = j_e.attr('extop')) == undefined){
extop = j_e.css('top').match(/(.+)px/)[1];
}
if((exbottom = j_e.attr('exbottom')) == undefined){
exbottom = 0;
}
extop = parseInt(extop);
exbottom = parseInt(exbottom);
j_e.css('height',($(window).height() - (extop + exbottom) + 'px'));
}
},
getcookie:function(){
var ret;
var i;
var part;
var subpart;
ret = new Array();
part = document.cookie.split(';');
for(i = 0;i < part.length;i++){
part[i] = part[i].replace(/\+/g,' ');
subpart = part[i].split('=');
ret[decodeURIComponent(subpart[0])] = decodeURIComponent(subpart[1]);
}
return ret;
},
getdate:function(str){
var part;
part = str.match(/(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/);
return new Date(part[1],parseInt(part[2]) - 1,part[3],part[4],part[5],part[6],0);
},
getdatestring:function(date,secflag){
var month;
var day;
var hr;
var min;
var sec;
month = date.getMonth() + 1;
if(month < 10){
month = '0' + month;
}
day = date.getDate();
if(day < 10){
day = '0' + day;
}
hr = date.getHours();
if(hr < 10){
hr = '0' + hr;
}
min = date.getMinutes();
if(min < 10){
min = '0' + min;
}
if(secflag == true){
sec = date.getSeconds();
if(sec < 10){
sec = '0' + sec;
}
return date.getFullYear() + '-' + month + '-' + day + ' ' + hr + ':' + min + ':' + sec;
}else{
return date.getFullYear() + '-' + month + '-' + day + ' ' + hr + ':' + min;
}
},
getlang:function(value){
var i;
var ret;
var langlist = ['C++','JAVA','Pascal'];
ret = new Array;
i = 0;
while(value > 0){
if((value & 1) == 1){
ret.push(langlist[i]);
}
value = value >> 1;
}
return ret;
},
geturlpart:function(url){
if(url == undefined){
return location.href.match(/toj\/(.*)/)[1].split('/');
}else{
return url.match(/toj\/(.*)/)[1].split('/');
}
},
pushurl:function(url){
common.url_prev = location.href;
window.history.pushState(null,document.title,url);
common.url_curr = location.href;
common.page_urlchange();
},
replaceurl:function(url){
window.history.replaceState(null,document.title,url);
common.url_curr = location.href;
},
prevurl:function(notpagename){
if(common.url_prev == null || common.geturlpart(common.url_prev)[0] == notpagename){
common.pushurl('/toj/home/');
}else{
common.pushurl(common.url_prev);
}
},
page_urlchange:function(){
var urlpart;
var pagename;
var pagename_prev;
if(arguments.callee.reentrant == true){
arguments.callee.hasnext = true;
return;
}else{
arguments.callee.reentrant = true;
arguments.callee.hasnext = true;
}
while(arguments.callee.hasnext){
arguments.callee.hasnext = false;
if(common.mbox_curr != null){
common.hidembox(false);
}
urlpart = common.geturlpart();
pagename = urlpart[0];
if(pagename == ''){
common.replaceurl('/toj/home/');
common.page_urlchange();
continue;
}else if(!(pagename in common.page_list)){
common.replaceurl('/toj/none/');
common.page_urlchange();
continue;
}
if(common.url_prev != null){
pagename_prev = common.geturlpart(common.url_prev)[0];
if(pagename == pagename_prev){
common.page_list[pagename].urlchange('same');
}else{
if(pagename_prev in common.page_list){
common.page_list[pagename_prev].urlchange('out');
}
common.page_list[pagename].urlchange('in');
}
}else{
common.page_list[pagename].urlchange('in');
}
}
arguments.callee.reentrant = false;
},
addpage:function(pagename,pageobj){
common.page_list[pagename] = pageobj;
},
removepage:function(pagename){
delete common.page_list[pagename];
},
showmbox:function(mboxobj){
common.mbox_curr = mboxobj;
mboxobj.switchchange('in');
common.mbox_defer = $.Deferred();
return common.mbox_defer.promise();
},
hidembox:function(done){
if(common.mbox_curr != null){
common.mbox_curr.switchchange('out');
common.mbox_curr = null;
if(done == true){
common.mbox_defer.resolve();
}else{
common.mbox_defer.reject();
}
}
}
};
var class_common_page = function(){
var that = this;
that.tab_list = Array();
that.tabname_curr = null;
that.urlchange = function(direct){};
that.fadein = function(j_e){
j_e.stop().fadeIn('fast');
};
that.fadeout = function(j_e){
j_e.stop().hide();
};
that.tab_urlchange = function(tabname){
if(arguments.callee.reentrant == true){
arguments.callee.hasnext = true;
return;
}else{
arguments.callee.reentrant = true;
arguments.callee.hasnext = true;
}
while(arguments.callee.hasnext){
arguments.callee.hasnext = false;
if(tabname == null){
if(that.tabname_curr in that.tab_list){
index.lltab(that.tabname_curr);
that.tab_list[that.tabname_curr].urlchange('out');
}
that.tab_list = new Array();
that.tabname_curr = null;
continue;
}
if(!(tabname in that.tab_list)){
common.replaceurl('/toj/none/');
common.page_urlchange();
return;
}
if(tabname == that.tabname_curr){
that.tab_list[tabname].urlchange('same');
}else{
if(that.tabname_curr in that.tab_list){
index.lltab(that.tabname_curr);
that.tab_list[that.tabname_curr].urlchange('out');
}
that.tabname_curr = tabname;
index.hltab(tabname);
that.tab_list[tabname].urlchange('in');
}
}
arguments.callee.reentrant = false;
};
that.addtab = function(tabname,tabobj){
that.tab_list[tabname] = tabobj;
};
that.removetab = function(tabname){
delete that.tab_list[tabname];
};
};
var class_common_tab = function(paobj){
var that = this;
that.paobj = paobj;
that.urlchange = function(direct){};
that.fadein = function(j_e){
j_e.stop().fadeIn('fast');
};
that.fadeout = function(j_e){
j_e.stop().hide();
};
};
var class_common_mbox = function(paobj){
var that = this;
that.paobj = paobj;
that.switchchange = function(direct){};
that.fadein = function(j_e){
j_e.stop().show();
index.showmask();
};
that.fadeout = function(j_e){
index.hidemask();
j_e.stop().hide();
};
}