東工大生必見??

東工大ポータルにログインするGreasemonkeyスクリプト書きました。
てきとーな作りだからバグがあるかも。
気づいたらコメントくれるとありがたいです。

// ==UserScript==
// @name           Titech Login
// @namespace      http://d.hatena.ne.jp/gifnksm/
// @description    東工大ポータルにログインします
// @include        https://portal1.nap.gsic.titech.ac.jp/GetAccess2/Login*
// ==/UserScript==

new function() {
    var student_num = "05B00000";
    var password = "hogehoge";
    var matrix = {
      A:"AAAAAAA",
      B:"AAAAAAA",
      C:"AAAAAAA",
      D:"AAAAAAA",
      E:"AAAAAAA",
      F:"AAAAAAA", 
      G:"AAAAAAA", 
      H:"AAAAAAA", 
      I:"AAAAAAA", 
      J:"AAAAAAA"
    }
    if(/GetAccess2\/Login/.test(location.href)) {
        new function() {
            var inputs = document.getElementsByTagName("input");
            for(var i=0; i<inputs.length; i++) {
                if(inputs[i].name == "usr_name")
                    inputs[i].value = student_num;
                if(inputs[i].name == "usr_password")
                    inputs[i].value = password;
            }
            var forms = unsafeWindow.document.getElementsByTagName("form");
            for(i=0; i<forms.length; i++) {
                if(forms[i].name == "login") {
                    unsafeWindow.idgisSetRedirectionCookie(forms[i]);
                    forms[i].submit();
                }
            }
        }
    }
    if(/GetAccess2\/IdgisIdentityGuardChallengeResponseInput\.jsp/.test(location.href)) {
        new function() {
            var inputs = document.getElementsByTagName("input");
            for(var i=0; i<inputs.length; i++) {
                if(inputs[i].name == "cell") {
                    if(inputs[i].parentNode.innerHTML.match(/\[([A-J])([1-7])\]/)) {
                        inputs[i].value = matrix[RegExp.$1].charAt(RegExp.$2-1);
                    }
                }
            }
            var forms = unsafeWindow.document.getElementsByTagName("form");
            for(i=0; i<forms.length; i++) {
                if(forms[i].name == "entrustform")
                    forms[i].submit();
            }
        }
    }
}