/* square state 0 => wait 1 => run 2 => past */ var user = { uid:null, level:null, username:null, nickname:null, avatar:null, aboutme:null, email:null, sq_inlist:null, loginchange:$.Callbacks(), datachange:$.Callbacks(), init:function(){ user.user_page = new class_user_page; user.login_page = new class_login_page; user.register_page = new class_register_page; $('#index_panel > [page="logout"] > a.button').off('click').on('click',function(e){ var cookie; var key; cookie = common.getcookie(); for(key in cookie){ document.cookie = key + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/toj/'; } location.href = '/toj/home/'; return false; }); user.loginchange.add(function(login){ var j_notice; var j_nickname; j_notice = $('#index_head_notice'); j_nickname = $('#index_head_nickname > a.nickname') if(login){ j_notice.show(); j_nickname.attr('href','/toj/user/' + user.uid + '/'); j_nickname.text(user.nickname); index.showpanel('logout'); index.setpanel('user','/toj/user/' + user.uid + '/','個人'); index.showpanel('user'); }else{ j_notice.hide(); j_nickname.attr('href',''); j_nickname.text(''); index.hidepanel('logout'); index.hidepanel('user'); index.setpanel('user',null,'個人'); } }); user.datachange.add(function(){ var i; var j_ul; var j_li; var sqo; var panelsq_listadd = function(j_ul,idx,sqid,sqname){ var j_li; var j_a; j_li = $(j_ul.find('li.button')[idx]); if(j_li.length == 0){ j_li = $('
  • '); j_li.hide(); j_ul.append(j_li); } j_a = j_li.find('a.button'); j_a.attr('href','/toj/sq/' + sqid + '/pro/'); j_a.text(sqname); j_li.show(); }; j_ul = $('#index_panel > ul.square_box'); j_ul.find('li.button').hide(); for(i = 0;i < user.sq_inlist.length;i++){ sqo = user.sq_inlist[i]; if(sqo.relationship != 1){ panelsq_listadd(j_ul,i,sqo.sqid,sqo.sqname); } } }); user.updatedata(true); }, updatedata:function(sync){ $.ajax({'url':'/toj/php/user.php', 'type':'POST', 'data':{'action':'view','data':JSON.stringify({'uid':null})}, 'async':!sync, 'success':function(res){ var reto; var old_uid; old_uid = user.uid; if(res[0] == 'E'){ user.uid = null; user.level = null; user.username = null; user.nickname = null; user.avatar = null; user.aboutme = null; user.email = null; user.sq_inlist = null; user.loginchange.fire(false); }else{ reto = JSON.parse(res); user.uid = reto.uid; user.level = reto.level; user.username = reto.username; user.nickname = reto.nickname; user.avatar = reto.avatar; user.aboutme = reto.aboutme; user.email = reto.email; if(old_uid != user.uid){ user.loginchange.fire(true); } $.post('/toj/php/square.php',{'action':'get_entered_sq','data':JSON.stringify({'uid':user.uid})},function(res){ var i; var reto; var ts; var sqlist; var sqo; if(res[0] == 'E'){ return; } reto = JSON.parse(res); ts = common.getdate(reto.timestamp); sqlist = reto.list; for(i = 0;i < sqlist.length;i++){ sqo = sqlist[i]; sqo.state = 1; if(sqo.start_time != null){ sqo.start_time = common.getdate(sqo.start_time); if(ts < sqo.start_time){ sqo.state = 0; } } if(sqo.end_time != null){ sqo.end_time = common.getdate(sqo.end_time); if(sqo.end_time < ts){ sqo.state = 2; } } } user.sq_inlist = sqlist; user.datachange.fire(true); }); } } }); } }; var class_user_page = function(){ var that = this; var j_page = $('#index_page > [page="user"]'); var main_tab = new class_user_main_tab(that); var edit_tab = new class_user_edit_tab(that); var mgsq_tab = new class_user_mgsq_tab(that); var mg_tab = new class_user_mg_tab(that); that.__super(); that.editsq_mbox = new class_user_editsq_mbox(that); that.uid = null; that.nickname = null; that.avatar = null; that.aboutme = null; that.urlchange = function(direct){ var uid; var _check = function(){ uid = common.geturlpart()[1]; if(uid == ''){ if(user.uid == null){ common.pushurl('/toj/none/'); return false; } uid = user.uid; common.replaceurl('/toj/user/' + uid + '/main/'); } return true; }; var _in = function(){ $.post('/toj/php/user.php',{'action':'view','data':JSON.stringify({'uid':uid})},function(res){ var reto; if(res[0] == 'E'){ common.pushurl('/toj/none/'); }else{ reto = JSON.parse(res); that.uid = reto.uid; that.nickname = reto.nickname; that.avatar = reto.avatar; that.aboutme = reto.aboutme; that.fadein(j_page); index.settitle('TOJ-使用者'); that.addtab('main',main_tab); index.addtab('main','/toj/user/' + that.uid + '/main/',that.nickname); if(uid == user.uid){ that.addtab('mgsq',mgsq_tab); index.addtab('mgsq','/toj/user/' + that.uid + '/mgsq/','你的方塊'); that.addtab('edit',edit_tab); index.addtab('edit','/toj/user/' + that.uid + '/edit/','更改資料'); if((user.level & USER_LEVEL_SUPERADMIN) == USER_LEVEL_SUPERADMIN){ that.addtab('mg',mg_tab); index.addtab('mg','/toj/user/' + that.uid + '/mg/','管理'); } } _change(); } }); }; var _out = function(){ index.emptytab(); that.fadeout(j_page); that.tab_urlchange(null); that.uid = null; }; var _change = function(){ var tabname; tabname = common.geturlpart()[2]; if(!(tabname in that.tab_list)){ tabname = 'main'; common.replaceurl('/toj/user/' + that.uid + '/main/'); } that.tab_urlchange(tabname); }; if(direct == 'in'){ if(_check()){ _in(); } }else if(direct == 'out'){ _out(); }else if(direct = 'same'){ if(_check()){ if(uid != that.uid || that.forceupdate){ that.forceupdate = false; _out(); _in(); }else{ _change(); } } } }; common.addpage('user',that); }; __extend(class_user_page,class_common_page); var class_user_main_tab = function(paobj){ var that = this; var j_tab = $('#index_page > [page="user"] > [tab="main"]'); that.__super(paobj); that.urlchange = function(direct){ if(direct == 'in'){ that.fadein(j_tab); if(user.user_page.avatar == ''){ j_tab.find('div.info_box > img.avatar').attr('src','http://i.imgur.com/ykkQD.png'); }else{ j_tab.find('div.info_box > img.avatar').attr('src',that.paobj.avatar); } j_tab.find('div.info_box > div.aboutme').text(that.paobj.aboutme); }else if(direct == 'out'){ that.fadeout(j_tab); } }; }; __extend(class_user_main_tab,class_common_tab); var class_user_edit_tab = function(paobj){ var that = this; var j_tab = $('#index_page > [page="user"] > [tab="edit"]'); that.__super(paobj); that.urlchange = function(direct){ if(direct == 'in'){ that.fadein(j_tab); j_tab.find('div.edit_box > [name="nickname"]').val(user.nickname); j_tab.find('div.edit_box > [name="avatar"]').val(user.avatar); if(user.avatar == ''){ j_tab.find('div.edit_box > img.avatar').attr('src','http://i.imgur.com/ykkQD.png'); }else{ j_tab.find('div.edit_box > img.avatar').attr('src',user.avatar); } j_tab.find('div.edit_box > [name="aboutme"]').val(user.aboutme); j_tab.find('div.edit_box > [name="email"]').val(user.email); }else if(direct == 'out'){ that.fadeout(j_tab); j_tab.find('div.edit_box > input').val(''); j_tab.find('div.edit_box > img.avatar').attr('src',null); j_tab.find('div.edit_box > div.error').text(''); } }; j_tab.find('div.edit_box > [name="avatar"]').change(function(e){ var avatar; avatar = $(this).val(); if(avatar == ''){ j_tab.find('div.edit_box > img.avatar').attr('src','http://i.imgur.com/ykkQD.png'); }else{ j_tab.find('div.edit_box > img.avatar').attr('src',avatar); }('test') }); j_tab.find('div.edit_box > button.submit').click(function(e){ var j_error; var nickname; var avatar; var aboutme; var email; var password_old; var password_new; var password_repeat; var data; j_error = j_tab.find('div.edit_box > div.error'); nickname = j_tab.find('div.edit_box > [name="nickname"]').val(); avatar = j_tab.find('div.edit_box > [name="avatar"]').val(); aboutme = j_tab.find('div.edit_box > [name="aboutme"]').val(); email = j_tab.find('div.edit_box > [name="email"]').val(); password_old = j_tab.find('div.edit_box > [name="password_old"]').val(); password_new = j_tab.find('div.edit_box > [name="password_new"]').val(); password_repeat = j_tab.find('div.edit_box > [name="password_repeat"]').val(); data = {'nickname':nickname,'avatar':avatar,'aboutme':aboutme,'email':email}; if(password_old != '' || password_new != '' || password_repeat != ''){ if(password_new != password_repeat){ j_error.text('使用者密碼不相同'); return; } data.oldpw = password_old; data.password = password_new; } $.post('/toj/php/user.php',{'action':'update','data':JSON.stringify(data)},function(res){ if(res[0] == 'E'){ switch(res){ case 'Epassword_too_short': j_error.text('使用者密碼太短'); break; case 'Epassword_too_long': j_error.text('使用者密碼太長'); break; case 'Enickname_too_short': j_error.text('暱稱太短'); break; case 'Enickname_too_long': j_error.text('暱稱太長'); break; case 'Eold_password_not_match': j_error.text('舊使用者密碼錯誤'); break; case 'Eempty_email': j_error.text('電子郵件不能爲空'); break; case 'Eemail_too_long': j_error.text('電子郵件太長'); break; default: j_error.text('更新錯誤'); break; } }else{ user.updatedata(true); that.paobj.forceupdate = true; common.pushurl('/toj/user/' + user.uid + '/main/'); } }); }); j_tab.find('div.edit_box > button.cancel').click(function(e){ common.pushurl('/toj/user/' + user.uid + '/main/'); }); }; __extend(class_user_edit_tab,class_common_tab); var class_user_mgsq_tab = function(paobj){ var that = this; var j_tab = $('#index_page > [page="user"] > [tab="mgsq"]'); var sq_join = function(sqid){ $.post('/toj/php/square.php',{'action':'add_user','data':JSON.stringify({'uid':user.uid,'sqid':sqid})},function(res){ if(res[0] != 'E'){ sq_update(); } }); }; var sq_quit = function(sqid){ $.post('/toj/php/square.php',{'action':'delete_user','data':JSON.stringify({'uid':user.uid,'sqid':sqid})},function(res){ if(res[0] != 'E'){ sq_update(); } }); }; var sq_listset = function(j_item,sqo){ var j_info; var j_data; var j_a; var j_button; j_info = j_item.find('div.info'); j_data = j_item.find('div.data'); j_data.empty(); j_item.attr('sqid',sqo.sqid); j_a = j_info.find('span.name > a'); j_a.attr('href','/toj/sq/' + sqo.sqid + '/pro/'); j_a.text(sqo.sqname); if(sqo.end_time == null){ j_info.find('span.time').text(''); }else{ j_info.find('span.time').text(common.getdatestring(sqo.start_time,false) + ' > ' + common.getdatestring(sqo.end_time,false)); } if(sqo.relationship == 3 || (user.level & USER_LEVEL_SUPERADMIN) == USER_LEVEL_SUPERADMIN){ j_button = $(''); j_button.on('click',function(e){ that.paobj.editsq_mbox.init('edit',sqo); common.showmbox(that.paobj.editsq_mbox).done(sq_update); return false; }); j_data.append(j_button); } j_button = $(''); if(sqo.relationship == 0){ if(sqo.publicity == 2 && (user.level & USER_LEVEL_SUPERADMIN) != USER_LEVEL_SUPERADMIN){ j_button.text('申請'); }else{ j_button.text('加入'); } j_button.off('click').on('click',function(e){ sq_join(sqo.sqid); return false; }); }else{ if(sqo.relationship == 1 && (user.level & USER_LEVEL_SUPERADMIN) != USER_LEVEL_SUPERADMIN){ j_button.text('取消申請'); }else{ j_button.text('退出'); } j_button.on('click',function(e){ sq_quit(sqo.sqid); return false; }); } j_data.append(j_button); j_item.off('click').on('click',function(e){ if(j_data.is(':visible')){ j_item.removeClass('item_s'); j_data.stop().fadeTo(100,0).slideUp('fast'); }else{ j_item.addClass('item_s'); j_data.stop().css('opacity',1).slideDown('fast'); } }); }; var sq_listnew = function(sqo){ var j_item; var j_info; var j_data; j_item = $('
    '); j_info = $('
    '); j_item.append(j_info); j_data = $('
    '); j_item.append(j_data); sq_listset(j_item,sqo); return j_item; }; var sq_update = function(){ var _updatelist = function(j_list,sqlist){ var i; var j; var j_divs; var j_last; var j_item; var oldhash; j_divs = j_list.children('div.item'); oldhash = new Array(); for(i = 0;i < j_divs.length;i++){ oldhash[$(j_divs[i]).attr('sqid')] = i; } j = 0; j_last = null; for(i = 0;i < sqlist.length;i++){ sqo = sqlist[i]; if(sqo.sqid in oldhash){ for(;j < oldhash[sqo.sqid];j++){ j_item = $(j_divs[j]); j_item.stop().fadeTo(100,0).slideUp('fast',function(){$(this).remove();}); } j_item = $(j_divs[j]); j++; sq_listset(j_item,sqo); j_last = j_item; }else{ j_item = sq_listnew(sqo); j_item.hide(); if(j_last == null){ j_list.prepend(j_item); j_item.css('opacity',0).slideDown('fast').fadeTo(100,1); }else{ j_item.insertAfter(j_last); j_item.css('opacity',0).slideDown('fast').fadeTo(100,1); } j_last = j_item; } } for(;j < j_divs.length;j++){ j_item = $(j_divs[j]); j_item.stop().fadeTo(100,0).slideUp('fast',function(){$(this).remove();}); } }; user.datachange.add(function(){ var i; var sqo; var sqwait; var sqrun; var sqpast; var j_wait; var j_run; var j_past; user.datachange.remove(arguments.callee); sqwait = new Array(); sqrun = new Array(); sqpast = new Array(); for(i = 0;i < user.sq_inlist.length;i++){ sqo = user.sq_inlist[i]; switch(sqo.state){ case 0: sqwait.push(sqo); break; case 1: sqrun.push(sqo); break; case 2: sqpast.push(sqo); break; }; } j_wait = j_tab.find('div.in_box > div.wait'); j_run = j_tab.find('div.in_box > div.run'); j_past = j_tab.find('div.in_box > div.past'); _updatelist(j_wait,sqwait); _updatelist(j_run,sqrun); _updatelist(j_past,sqpast); }); user.updatedata(false); $.post('/toj/php/square.php',{'action':'get_available_sq','data':null},function(res){ var i; var reto; var ts; var sqlist; var sqo; var sqwait; var sqrun; var sqpast; var j_wait; var j_run; var j_past; if(res[0] == 'E'){ return; } reto = JSON.parse(res); ts = common.getdate(reto.timestamp); sqlist = reto.list; sqwait = new Array(); sqrun = new Array(); sqpast = new Array(); for(i = 0;i < sqlist.length;i++){ sqo = sqlist[i]; sqo.relationship = 0; sqo.state = 1; if(sqo.start_time != null){ sqo.start_time = common.getdate(sqo.start_time); if(ts < sqo.start_time){ sqo.state = 0; } } if(sqo.end_time != null){ sqo.end_time = common.getdate(sqo.end_time); if(sqo.end_time < ts){ sqo.state = 2; } } switch(sqo.state){ case 0: sqwait.push(sqo); break; case 1: sqrun.push(sqo); break; case 2: sqpast.push(sqo); break; } } j_wait = j_tab.find('div.out_box > div.wait'); j_run = j_tab.find('div.out_box > div.run'); j_past = j_tab.find('div.out_box > div.past'); _updatelist(j_wait,sqwait); _updatelist(j_run,sqrun); _updatelist(j_past,sqpast); }); } that.__super(paobj); that.urlchange = function(direct){ if(direct == 'in'){ that.fadein(j_tab); sq_update(); }else if(direct == 'out'){ that.fadeout(j_tab); j_tab.find('div.in_box > div > div').remove(); j_tab.find('div.out_box > div > div').remove(); } }; }; __extend(class_user_mgsq_tab,class_common_tab); var class_user_mg_tab = function(paobj){ var that = this; var j_tab = $('#index_page > [page="user"] > [tab="mg"]'); that.__super(paobj); that.urlchange = function(direct){ if(direct == 'in'){ that.fadein(j_tab); }else if(direct == 'out'){ that.fadeout(j_tab); } }; j_tab.find('button.newsq').on('click',function(e){ that.paobj.editsq_mbox.init('new'); common.showmbox(that.paobj.editsq_mbox); }); }; __extend(class_user_mg_tab,class_common_tab); var class_user_editsq_mbox = function(paobj){ var that = this; var j_mbox = $('#index_mask > div.user_mask > div.editsq_mbox'); var action = null; var sqid; that.__super(paobj); that.init = function(act,sqo){ action = act; if(action == 'edit'){ sqid = sqo.sqid; console.log(sqo); j_mbox.find('[name="sqname"]').val(sqo.sqname); j_mbox.find('[name="sqmodname"]').val(sqo.sqmodname); j_mbox.find('[name="publicity"]').val(sqo.publicity); if(sqo.end_time == null){ j_mbox.find('[name="infinite"]').val(1); }else{ j_mbox.find('[name="infinite"]').val(2); j_mbox.find('div.time').show(); j_mbox.find('[name="s_year"]').val(sqo.start_time.getFullYear()); j_mbox.find('[name="s_month"]').val(sqo.start_time.getMonth() + 1); j_mbox.find('[name="s_day"]').val(sqo.start_time.getDate()); j_mbox.find('[name="s_hr"]').val(sqo.start_time.getHours()); j_mbox.find('[name="s_min"]').val(sqo.start_time.getMinutes()); j_mbox.find('[name="e_year"]').val(sqo.end_time.getFullYear()); j_mbox.find('[name="e_month"]').val(sqo.end_time.getMonth() + 1); j_mbox.find('[name="e_day"]').val(sqo.end_time.getDate()); j_mbox.find('[name="e_hr"]').val(sqo.end_time.getHours()); j_mbox.find('[name="e_min"]').val(sqo.end_time.getMinutes()); } j_mbox.find('button.delete').show(); } }; that.switchchange = function(direct){ if(direct == 'in'){ that.fadein(j_mbox); }else if(direct == 'out'){ that.fadeout(j_mbox); j_mbox.find('input').val(''); j_mbox.find('[name="publicity"]').val(3); j_mbox.find('[name="infinite"]').val(1); j_mbox.find('div.time').hide(); j_mbox.find('button.delete').hide(); j_mbox.find('div.error').text(''); } }; j_mbox.find('[name="infinite"]').on('change',function(e){ if($(this).val() == 1){ j_mbox.find('div.time').hide(); }else{ j_mbox.find('div.time').show(); } }); j_mbox.find('button.delete').on('click',function(e){ if(confirm('確定刪除方塊?')){ $.post('/toj/php/square.php',{'action':'delete_sq','data':JSON.stringify({'sqid':sqid})},function(res){ var j_error; if(res[0] == 'E'){ j_error = j_mbox.find('div.error'); switch(res){ case 'Eno_login': j_error.text('未登入'); case 'Epermission_denied': j_error.text('權限不足'); break; default: j_error.text('其他錯誤'); break; } }else{ common.hidembox(true); } }); } }); j_mbox.find('button.submit').on('click',function(e){ var sqname; var sqmodname; var publicity; var start_time; var end_time; var j_error; sqname = j_mbox.find('[name="sqname"]').val(); sqmodname = j_mbox.find('[name="sqmodname"]').val(); publicity = parseInt(j_mbox.find('[name="publicity"]').val()); if(j_mbox.find('[name="infinite"]').val() == 1){ start_time = null; end_time = null; }else{ start_time = j_mbox.find('[name="s_year"]').val() + '-' + j_mbox.find('[name="s_month"]').val() + '-' + j_mbox.find('[name="s_day"]').val() + ' ' + j_mbox.find('[name="s_hr"]').val() + ':' + j_mbox.find('[name="s_min"]').val(); end_time = j_mbox.find('[name="e_year"]').val() + '-' + j_mbox.find('[name="e_month"]').val() + '-' + j_mbox.find('[name="e_day"]').val() + ' ' + j_mbox.find('[name="e_hr"]').val() + ':' + j_mbox.find('[name="e_min"]').val(); } j_error = j_mbox.find('div.error'); if(action == 'new'){ $.post('/toj/php/square.php',{'action':'add_sq','data':JSON.stringify({'sqname':sqname,'sqmodname':sqmodname,'publicity':publicity,'start_time':start_time,'end_time':end_time})},function(res){ if(res[0] == 'E'){ switch(res){ case 'Eno_login': j_error.text('未登入'); case 'Epermission_denied': j_error.text('權限不足'); break; case 'Esqname_too_short': j_error.text('方塊名稱太短'); break; case 'Esqname_too_long': j_error.text('方塊名稱太長'); break; case 'Esqmodname_empty': j_error.text('模組名稱不能爲空'); break; default: j_error.text('其他錯誤'); break; } }else{ common.hidembox(true); } }); }else if(action == 'edit'){ $.post('/toj/php/square.php',{'action':'edit_sq','data':JSON.stringify({'sqid':sqid,'sqname':sqname,'sqmodname':sqmodname,'publicity':publicity,'start_time':start_time,'end_time':end_time})},function(res){ if(res[0] == 'E'){ switch(res){ case 'Eno_login': j_error.text('未登入'); case 'Epermission_denied': j_error.text('權限不足'); break; case 'Esqname_too_short': j_error.text('方塊名稱太短'); break; case 'Esqname_too_long': j_error.text('方塊名稱太長'); break; default: j_error.text('其他錯誤'); break; } }else{ user.updatedata(false); common.hidembox(true); } }); } }); j_mbox.find('button.cancel').on('click',function(e){ common.hidembox(false); }); }; __extend(class_user_editsq_mbox,class_common_mbox); var class_login_page = function(){ var that = this; var j_page = $('#index_page > [page="login"]'); that.__super(); that.urlchange = function(direct){ if(direct == 'in'){ that.fadein(j_page); index.settitle('TOJ-登入'); j_page.find('div.login_box [name="username"]').focus(); }else if(direct == 'out'){ that.fadeout(j_page); j_page.find('div.login_box > div.error').text(''); j_page.find('div.login_box > input').val(''); } }; j_page.find('div.login_box > input').keypress(function(e){ if(e.which == 13){ j_page.find('div.login_box > button').click(); } }); j_page.find('div.login_box > button').click(function(e){ var j_error; var username; var password; var data; j_error = j_page.find('div.login_box > div.error'); username = j_page.find('div.login_box [name="username"]').val(); password = j_page.find('div.login_box [name="password"]').val(); if(username == '' || password == ''){ j_error.text('欄位不可為空'); return; } data = {'username':username,'password':password}; $.post('/toj/php/user.php',{'action':'login','data':JSON.stringify(data)},function(res){ if(res[0] == 'E'){ j_error.text('登入錯誤'); }else{ user.updatedata(true); common.prevurl('register'); } }); }); user.loginchange.add(function(login){ if(login){ that.urlchange('out'); common.removepage('login'); index.hidepanel('login'); }else{ common.addpage('login',that); index.showpanel('login'); } }); }; __extend(class_login_page,class_common_page); var class_register_page = function(){ var that = this; var j_page = $('#index_page > [page="register"]'); that.__super(); that.urlchange = function(direct){ if(direct == 'in'){ that.fadein(j_page); index.settitle('TOJ-註冊'); j_page.find('div.register_box [name="username"]').focus(); }else if(direct == 'out'){ that.fadeout(j_page); j_page.find('div.register_box > div.error').text(''); j_page.find('div.register_box > div.register_box > input').val(''); j_page.find('div.register_box > div.register_box > div.cover').show(); } }; j_page.find('div.register_box > input').keypress(function(e){ if(e.which == 13){ j_page.find('div.register_box > button').click(); } }); j_page.find('div.register_box > button').click(function(e){ var j_error; var username; var password; var password_repeat; var nickname; var email; var data; j_error = j_page.find('div.register_box > div.error'); username = j_page.find('div.register_box [name="username"]').val(); password = j_page.find('div.register_box [name="password"]').val(); password_repeat = j_page.find('div.register_box [name="password_repeat"]').val(); nickname = j_page.find('div.register_box [name="nickname"]').val(); email = j_page.find('div.register_box [name="email"]').val(); if(username == '' || password == '' || password_repeat == '' || nickname == '' || email == ''){ j_error.text('欄位不可為空'); return; } if(password != password_repeat){ j_error.text('使用者密碼不相同'); return; } data = {'username':username,'password':password,'nickname':nickname,'email':email}; $.post('/toj/php/user.php',{'action':'register','data':JSON.stringify(data)},function(res){ if(res[0] == 'E'){ switch(res){ case 'Eusername_too_short': j_error.text('使用者名稱太短'); break; case 'Eusername_too_long': j_error.text('使用者名稱太長'); break; case 'Epassword_too_short': j_error.text('使用者密碼太短'); break; case 'Epassword_too_long': j_error.text('使用者密碼太長'); break; case 'Enickname_too_short': j_error.text('暱稱太短'); break; case 'Enickname_too_long': j_error.text('暱稱太長'); break; case 'Eusername_exists': j_error.text('使用者名稱已存在'); break; case 'Eempty_email': j_error.text('電子郵件不能爲空'); break; case 'Eemail_too_long': j_error.text('電子郵件太長'); break; default: j_error.text('註冊錯誤'); break; } }else{ user.updatedata(true); common.prevurl('login'); } }); }); user.loginchange.add(function(login){ if(login){ that.urlchange('out'); common.removepage('register'); index.hidepanel('register'); }else{ common.addpage('register',that); index.showpanel('register'); } }); }; __extend(class_register_page,class_common_page);