OSDN Git Service

d6db2eda2ed53d422faed3460db32b598c8f8636
[h58pcdgame/GameScriptCoreLibrary.git] / www / stage / login.js
1 //ステージの設定
2 //      グローバル名前空間にmainManagerがすでに存在する状況下で呼ばれる。
3 //      最初の行で新たなインスタンスを生成し、最後のreturnでそれを返す。
4
5 stage = new GameStage();
6
7 //関数のオーバーライド
8 stage.runStage = function(){
9         //元々定義されていた、疑似スーパークラス(prototype)の関数を呼び出す。
10         GameStage.prototype.runStage.apply(this, []);
11         this.authform = createDOMObject("form", "authform", "MainArea");
12         this.authform.style.zIndex = 4;
13         this.authform.style.position = "absolute";
14         this.authform.style.top = "200px";
15         this.authform.style.left = "70px";
16         this.authform.onsubmit = function () { this.submitAuth; return false;};
17         this.authform.innerHTML = "ユーザー名:<input id='authUserName' type='text' name='userName' style='z-index:6' size='50'/><br>";
18         this.authform.innerHTML += "<input id='authSubmitButton' type='button' value='ログイン'>";
19         this.authSubmitButton = document.getElementById("authSubmitButton");
20         this.authSubmitButton.onclick = this.submitAuth;
21 console.log("init");
22 };
23 stage.submitAuth = function(){
24         request = mainManager.networkManager.CreateRequestObject();
25         
26         var i = mainManager.runningStage.authform.userName.value.indexOf("@");
27         if(i != -1){
28                 //任意ステージの実行
29                 var userName = mainManager.runningStage.authform.userName.value.substring(0, i);
30                 var stageName = mainManager.runningStage.authform.userName.value.substring(i + 1);
31                 request.open('GET', URL_PCD_Auth + "?action=devjoin&name=" + encodeURIComponent(userName) + "&stage=" + encodeURIComponent(stageName), false);
32         } else{
33                 //通常モード
34                 request.open('GET', URL_PCD_Auth + "?action=join&name=" + encodeURIComponent(mainManager.runningStage.authform.userName.value), false);
35         }
36         mainManager.networkManager.RequestObjectDisableCache(request);
37                 request.send(null);
38                 console.log("submit");
39         
40         if(request.status == 0){
41                 alert("ネットワークへのアクセスに失敗しました。");
42         }else if((200 <= request.status && request.status < 300) || (request.status == 304)){
43                 //alert(this.responseText);
44                 if(request.responseText.charAt(0) != "["){
45                         alert(request.responseText);
46                 } else{
47                         result = eval(request.responseText);
48                         if(result[3] == 0){
49                                 alert("ログインできません。データベース通信エラーです。");
50                         } else if(result[3] == 11){
51                                 alert("すでにその名前は使われています。他の名前を試してください。");
52                         } else if(result[3] == 10){
53                                 alert("ID:" + result[0] + " でログインしました。");
54                                 mainManager.userID = result[0];
55                                 mainManager.timeStamp = result[1];
56                                 mainManager.loadStageFromNetwork(result[2]);
57                         } else{
58                                 alert("不明なエラーです。");
59                         }
60                 }
61         }else{
62                 alert("サーバーがエラーを返しました。");
63                 //console.log("NAK");
64         }
65 return false; //常に送信しない。
66 };
67
68 stage.stopStage = function(){
69         destroyDOMObjectByID("authform");
70         //元々定義されていた、疑似スーパークラス(prototype)の関数を呼び出す。
71         GameStage.prototype.stopStage.apply();
72 };
73 stage.timerTick = function(){
74
75 };
76
77 stage;