var _curDragObj = null;
var _setLoginObj;
var _orisCookie = GenCookieList( );
var _sessChkUrl = param['CGIPrefix'] + "admin/sesschk.cgi";

/*
paramList in this function is array reference
paramList['loginUser'] is login user name
paramList['CGIPrefix'] is CGI path prefix
paramList['PagePrefix'] is static Page path prefix
paramList['helpId'] is the help id of each web page
*/
function OutPageHeader(paramList)
{
   var htmlStr;
   var queryStr;
   var queryLinkStr;
   var logoLinkStr;
   var adminLinkHtml = "";

   /* start auto-logout timer */
   if(null != _orisCookie && null != _orisCookie['ORISKEY'] && 
      32 == TrimStr(_orisCookie['ORISKEY'].split("!")[0]).length)
      window.setTimeout(ChkSess, 60000); 

   queryLinkStr = "search/qpage.cgi?act=simple"
      + ((param["tmplSetName"] != undefined && param["tmplSetName"] != "")?"&tmpl="+param["tmplSetName"]:"")
      + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"")
      + "\" target=\"_blank";
      
   if(param["MenuQueryStr"] == null)
   {
      queryStr = MSG_MENU_QUERY;
      logoLinkStr = "window.location='"
                  + param['CGIPrefix']
      + "admin/indexdb.cgi?act=list'";
   }
   else if(param["MenuQueryStr"] == "error")
   {
      param['loginUser'] == ""
      logoLinkStr = "";
      queryStr = MSG_MENU_QUERY;
   }
   else
   {
      if(null == param["logoLinkUrl"])
      {
        logoLinkStr = "window.location='" + param['CGIPrefix']
          + "search/qpage.cgi?act=simple"
          + ((param["tmplSetName"] != "")?"&tmpl="+ param["tmplSetName"]:"")
          + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"")
          + "'";          
      }
      else
      {
        logoLinkStr = "window.location='" + param["logoLinkUrl"] +"'";
      }

      if(param["MenuQueryStr"] == "simple")
      {
         queryStr = MSG_MENU_QUERY_SIMPLE;
         queryLinkStr = "search/qpage.cgi?act=simple"
                        + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"");
      }
      else
      {
         queryStr = MSG_MENU_QUERY_ADV;
         queryLinkStr = "search/qpage.cgi?act=adv"
                        + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"");
      }
      
      /* add tmpl if available */
      if(param["tmplSetName"] != undefined && param["tmplSetName"] != "")
         queryLinkStr += "&tmpl="+param["tmplSetName"];
      
      /* prepare admin link html for search, if the login user is admin level, 2006/02/20 by Howard */
      if(null != _orisCookie && null != _orisCookie['ORISKEY'] &&
         "A" == _orisCookie['ORISKEY'].split("!")[2])
         adminLinkHtml = '&nbsp;<img src="'
                       + param['PagePrefix'] +
                         'img/icon_admin.gif" alt="'
                       + MSG_MENU_ADMIN +
                         '" width="28" height="25" align="absmiddle"><a href="'
                       + paramList['CGIPrefix'] +
                         'admin/indexdb.cgi?act=list" class="top_body13">'
                       + MSG_MENU_ADMIN +
                         '</a>'
   }

   htmlStr = '<table width="100%"  border="0" cellspacing="0" cellpadding="0">\
             <tr><td height="71" background="'
           + param['PagePrefix'] +
             'img/topbg.gif"><table width="100%" height="69"  border="0"      \
             cellpadding="0" cellspacing="0"><tr><td width="13">&nbsp;</td>   \
             <td width="220" onClick="'
           + logoLinkStr +
             '"><div class="';
   
   if(param["MenuQueryStr"] == "error")
      htmlStr += 'err_logo';
   else   
      htmlStr += 'oris_logo';
      
   htmlStr += '"></div>    \
        </td><td valign="bottom"><table width="100%" border="0"	      \
        align="right" cellpadding="3" cellspacing="4"><tr>\
      <td height="40" nowrap class="top_body13"><div align="right">';

   if(TrimStr(param['loginUser']) != "")
   {
      InitGetSetLogin(paramList);

      htmlStr += MSG_HEADER_LOGIN_USER +
             '<span class="top_body13">:</span>&nbsp;<span class="top_body13" style="font-weight: bold; color: #666666;">'
           + paramList['loginUser'] +
             '&nbsp;</span><img src="'
           + param['PagePrefix'] +
             'img/icon_logout.gif" alt="'
           + MSG_MENU_LOGOUT +
             '" width="28" height="25" align="absmiddle"><a href="'
           + paramList['CGIPrefix'] +
             'admin/sessmgr.cgi?act=logout" class="top_body13">'
           + MSG_MENU_LOGOUT +
             '</a>&nbsp;<img src="'
           + param['PagePrefix'] +
             'img/icon_account.gif" alt="'
           + MSG_MENU_SET_LOGIN +
             '" width="28" height="25" align="absmiddle"><a href="#" onClick="ShowGetSetLoginForm(event, \''
           + paramList['loginUser'] +
             '\')">'
           + MSG_MENU_SET_LOGIN +
             '</a>&nbsp;';
   }

   htmlStr += '<img src="'
           + param['PagePrefix'] +
             'img/icon_search.gif" alt="'
           + MSG_MENU_QUERY +
             '" width="28" height="25" align="absmiddle"><a href="'
           + paramList['CGIPrefix'] +
             queryLinkStr + '">'
           + queryStr +
             '</a>'
   
   /* cat admin link html into header html, 2006/02/20 by Howard */
   if("" != adminLinkHtml)
      htmlStr += adminLinkHtml;

   if(null != param['helpId'] && param['helpId'].length >= 0)
      htmlStr += '&nbsp;<img src="'
                 + param['PagePrefix'] +
                 'img/icon_help.gif" alt="'
                 + MSG_MENU_HELP +
                 '" width="28" height="25" align="absmiddle"><a href="#" \
                  onClick="window.open(\''
                 + param['CGIPrefix'] +
                 'admin/help.cgi?act=show&id='
                 + param['helpId']
                 + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"")
                 + '\')">'
                 + MSG_MENU_HELP +
                 '</a>';

   htmlStr += '</div></td><td width="5" class="top_body13">&nbsp;</td></tr>    \
             </table></td></tr></table></td></tr><tr>                         \
             <td height="11" valign="top"><img src="'
           + param['PagePrefix'] +
             'img/spacer.gif" width="1" height="1"></td></tr><tr><td>';

   document.write(htmlStr);
}


/*
paramList in this function is array reference
paramList['CGIPrefix'] is CGI path prefix
paramList['PagePrefix'] is static Page path prefix
if paramList['SearchFooter'] == true, this function will
print the search footer.

*/
function OutPageFooter(paramList)
{
   var adminStr = '</td><td background="'
                + param['PagePrefix'] +
                  'img/table_right_bg.gif">&nbsp;</td></tr>                   \
                  <tr><td valign="top"><img src="'
                + param['PagePrefix'] +
                  'img/spacer.gif" width="1" height="1"></td>                 \
                  <td valign="top"><img src="'
                + param['PagePrefix'] +
                  'img/menubottom.gif" width="133" height="9"></td>          \
                  <td height="9" valign="top" background="'
                + param['PagePrefix'] +
                  'img/table_bottom.gif"><img src="'
                + param['PagePrefix'] +
                  'img/table_bottom.gif" width="2" height="9"></td>           \
                  <td valign="top"><img src="'
                + param['PagePrefix'] +
                  'img/table_right2.gif" width="7" height="9"></td></tr>      \
                  </table>';

   var htmlStr = '</td></tr><tr><td>&nbsp;</td></tr><tr><td class="copyright">      \
                 <div align="center" class="copyright">'
               + MSG_FOOTER_COPYRIGHT +
                 '</div></td></tr></table>';

   if(true != paramList['SearchFooter'])
      document.write(adminStr);
   document.write(htmlStr);
   return;
}


/*
paramList in this function is array reference
paramList['CGIPrefix'] is CGI path prefix
paramList['PagePrefix'] is static Page path prefix
*/
function OutMainMenu(paramList)
{
   var xmlconfig = param['modules'].charAt(0);
   var ldap = param['modules'].charAt(1);

   var htmlStr = '<table width="98%" border="0" cellspacing="0"               \
                 cellpadding="0"><tr><td width="13" valign="top"><img src="'
               + param['PagePrefix'] +
                 'img/spacer.gif" width="1" height="1"></td>                  \
                 <td width="133" height="12" valign="top"><img src="'
               + param['PagePrefix'] +
                 'img/menutop.gif" width="133" height="12"></td>              \
                 <td valign="top" background="'
               + param['PagePrefix'] +
                 'img/table_top.gif"><img src="'
               + param['PagePrefix'] +
                 'img/table_top.gif" width="2" height="12"></td>              \
                 <td width="7" valign="top"><img src="'
               + param['PagePrefix'] +
                 'img/table_right.gif" width="7" height="12"></td></tr>       \
                 <tr><td valign="top">&nbsp;</td>                             \
                 <td valign="top" background="'
               + param['PagePrefix'] +
                 'img/menubg.gif"><table width="100%" border="0"              \
                 cellspacing="0" cellpadding="0"><tr><td class="leftnav">     \
                 <table width="81%" border="0" align="center" cellpadding="0" \
                 cellspacing="2"><tr><td class="leftnav_head">'
               + MSG_MENU_IDX_MGR +
                 '</td></tr><tr><td class="leftnav" height="22"> ． <a href="'
               + paramList['CGIPrefix'] +
                 'admin/indexdb.cgi?act=list">'
               + MSG_MENU_IDX_LIST +
                 '</a></td></tr>';

      if((xmlconfig == "1") && (param['vertype'] == "Professional"))
      {
         htmlStr = htmlStr + '<tr><td class="leftnav" height="22"> ． <a href="'
                  + paramList['CGIPrefix'] +
                    'admin/xmlconf.cgi?act=list">'
                  + MSG_MENU_XML_LIST +
                    '</a></td></tr>';
      }

      htmlStr = htmlStr + '</table></td></tr><tr><td><img src="'
               + param['PagePrefix'] +
                 'img/menuline.gif" width="131" height="2"></td></tr><tr>     \
                 <td class="leftnav"><table width="80%" border="0"            \
                 align="center" cellpadding="0" cellspacing="2"><tr>          \
                 <td class="leftnav_head">'
               + MSG_MENU_ACCOUNT_MGR +
                 '</td></tr><tr><td class="leftnav" height="22"> ． <a href="'
               + paramList['CGIPrefix'] +
                 'admin/user.cgi?act=list">'
               + MSG_MENU_USER_MGR +
                 '</a></td></tr><tr><td class="leftnav" height="22"> ． <a href="'
               + paramList['CGIPrefix'] +
                 'admin/group.cgi?act=list">'
               + MSG_MENU_GRP_MGR +
                 '</a></td></tr>';

      if((ldap == "1") && (param['vertype'] == "Professional"))
      {
         htmlStr = htmlStr + '<tr><td class="leftnav" height="22"> ． <a href="'
                  + paramList['CGIPrefix'] +
                    'admin/accmgrmgr.cgi?act=getset">'
                  + MSG_MENU_ACCMGR_MGR +
                    '</a></td></tr>';
      }
              
      htmlStr = htmlStr + '</table></td></tr><tr><td class="leftnav"><img src="'
               + param['PagePrefix'] +
                 'img/menuline.gif" width="131" height="2"></td></tr><tr>     \
                 <td class="leftnav"><table width="80%"  border="0"           \
                 align="center" cellpadding="0" cellspacing="2"><tr>          \
                 <td class="leftnav_head">'
               + MSG_MENU_REPORT_MGR +
                 '</td></tr><tr><td class="leftnav" height="22"> ． <a href="'
               + paramList['CGIPrefix'] +
                 'admin/qtraf.cgi?act=list&dbname=sys&datetype=day">'
               + MSG_MENU_REPORT_QUERY +
                 '</a></td></tr></table></td></tr><tr>                        \
                 <td class="leftnav"><img src="'
               + param['PagePrefix'] +
                 'img/menuline.gif" width="131" height="2"></td></tr><tr>     \
                 <td class="leftnav"><table width="80%" border="0"            \
                 align="center" cellpadding="0" cellspacing="2"><tr>          \
                 <td class="leftnav_head">'
               + MSG_MENU_SYS_MGR +
                 '</td></tr><tr><td class="leftnav" height="22"> ． <a href="'
               + paramList['CGIPrefix'] +
                 'admin/sesslist.cgi?act=listsess&page=0">'
               + MSG_MENU_SYS_SET +
                 '</a></td></tr><tr><td class="leftnav" height="22"> ． <a href="'
               + paramList['CGIPrefix'] +
                 'admin/lang.cgi?act=getset">'
               + MSG_MENU_UI_SET +
                 '</a></td></tr></table></td></tr><tr>                        \
                 <td class="leftnav"><img src="'
               + param['PagePrefix'] +
                 'img/menuline.gif" width="131" height="2"></td></tr><tr>     \
                 <td class="leftnav"><table width="80%" border="0"            \
                 align="center" cellpadding="0" cellspacing="2"><tr>          \
                 <td class="leftnav_head">'
               + MSG_MENU_ASSIST_INFO +
                 '</td></tr><tr><td class="leftnav" height="22"> ． <a href="'
               + paramList['CGIPrefix'] +
                 'admin/product.cgi?act=list">'
               + MSG_MENU_PRODUCT_INFO +
                 '</a></td></tr>'
               + '<tr class="leftnav" height="22"><td> ． <a href="'
               + param['CGIPrefix'] +
               'admin/help.cgi?act=show&id=index" target="_blank">'
               + MSG_MENU_GUIDE +
                 '</a></td></tr>'
               + '</table></td></tr><tr><td class="leftnav"><br>\
                 <br></td></tr></table></td><td valign="top">';

   document.write(htmlStr);
}

function InitGetSetLogin(param)
{
   /* create drag and draw window for user getset */
   CreateGetSetLoginWindow(param);

   /* init the window */
   _setLoginObj = new Drag("handle_setlogin", "content_setlogin");
}

function CreateGetSetLoginWindow(param)
{
   var htmlStr = '<div id="handle_setlogin" \
                   style="display: none; width: 550px;">\
                  <table width="550" height="28" border="0" cellpadding="0"\
                   cellspacing="1" bgcolor="#666666">\
                  <tr>\
                  <td height="26" valign="top" background="'
                + param['PagePrefix'] +
                  'img/dialoghead_bg.gif">\
                  <table width="100%" height="26"  border="0" cellpadding="0"\
                   cellspacing="0">\
                  <tr>\
                  <td class="tdhead_w"><div align="center" class="tdhead_wb">'
                + MSG_LOGIN_SET_USER +
                  '</div></td>\
                  <td width="24"><div align="center"\
                   onClick="_setLoginObj.Hide()" style="cursor:default;">\
                  <img src="'
                + param['PagePrefix'] +
                  'img/icon_close.gif" width="18" height="18" border="0"\
                   onMouseOut="this.src=\''
                + param['PagePrefix'] + 'img/icon_close.gif\'"\
                   onMouseOver="this.src=\''
                + param['PagePrefix'] +
                  'img/icon_close_over.gif\'"></div></td>\
                  </tr>\
                  </table></td>\
                  </tr>\
                  </table>\
                  </div>\
                  <div id="content_setlogin"\
                   style="display: none; width: 550px; height: 215px;">\
                  <form name="getsetlogin">\
                  <input type="hidden" name="act" value="set">\
                  <table width="550" height="215" border="0" cellpadding="0"\
                   cellspacing="1" bgcolor="#666666">\
                  <tr>\
                  <td valign="top" bgcolor="#FFFFFF">\
                  <table width="98%" border="0" align="center" cellpadding="2"\
                   bgcolor="#FFFFFF">\
                  <tr>\
                  <td height="1" colspan="2" class="tablecont"></td>\
                  </tr>\
                  <tr>\
                  <td width="80">\
                  <div align="right" class="body13gray19">'
                + MSG_LOGIN_NAME +
                  '<span class="body13grayb">:&nbsp;</span></div></td>\
                  <td class="listmenu" id="loginUserName"></td>\
                  </tr>\
                  <tr bgcolor="#f0f0f0">\
                  <td>\
                  <div align="right" class="body13gray19">'
                + MSG_LOGIN_DESCP +
                  '<span class="body13grayb">:&nbsp;</span></div></td>\
                  <td>\
                  <input name="descp" type="text" class="listmenu" size="28" maxlength="50">\
                  </td>\
                  </tr>\
                  <tr>\
                  <td>\
                  <div align="right" class="body13gray19">'
                + MSG_LOGIN_PWD +
                  '<span class="body13grayb">:&nbsp;</span></div></td>\
                  <td>\
                  <input name="pwd" type="password" class="listmenu" maxlength="20"\
                   style="width: 120"></td>\
                  </tr>\
                  <tr bgcolor="#f0f0f0" >\
                  <td>\
                  <div align="right" class="body13gray19">'
                + MSG_LOGIN_REPWD +
                  '<span class="body13grayb">:&nbsp;</span></div></td>\
                  <td>\
                  <input name="repwd" type="password" class="listmenu" maxlength="20"\
                   style="width: 120"></td>\
                  </tr>\
                  <tr>\
                  <td><div align="right" class="body13gray19">'
                + MSG_LOGIN_LEVEL +
                  '<span class="body13grayb">:&nbsp;</span></div></td>\
                  <td class="listmenu">\
                  <input type="radio" name="l" value="admin" disabled>\
                  Admin\
                  <input id="loginUserLevel" type="radio" name="l" value="user" checked disabled>\
                  <label for="loginUserLevel">User </label></td>\
                  </tr>\
                  <tr>\
                  <td height="50" colspan="2" class="tablecont">\
                  <div align="center">                  </div>\
                  <div align="center">\
                  <table border="0" align="center" cellpadding="0" cellspacing="0">\
                  <tr>\
                  <td width="77"><TABLE width="66" cellpadding="0" cellspacing="0">\
                  <TBODY>\
                  <TR>\
                  <TD align=middle valign="middle" class="body13gray"\
                   style="BACKGROUND-IMAGE: url('
                 + param['PagePrefix'] +
                   'img/button_22.gif); CURSOR: default"\
                   onmouseover="this.style.backgroundImage=\'url('
                 + param['PagePrefix'] +
                   'img/button_22_over.gif)\'"\
                   onmouseout="this.style.backgroundImage=\'url('
                 + param['PagePrefix'] +
                   'img/button_22.gif)\'"\ onClick="ChkGetSetLoginParam()">\
                   <div align="center" class="button">'
                 + MSG_BUTTON_APPLY +
                   '</div></TD>\
                   </TR>\
                   </TBODY>\
                   </TABLE></td>\
                   <td width="77"><TABLE width="66" cellpadding="0"\
                    cellspacing="0">\
                   <TBODY>\
                   <TR>\
                   <TD align="middle" valign="middle" class="body13gray"\
                    style="BACKGROUND-IMAGE: url('
                  + param['PagePrefix'] +
                    'img/button_22.gif); CURSOR: default"\
                    onmouseover="this.style.backgroundImage=\'url('
                  + param['PagePrefix'] +
                    'img/button_22_over.gif)\'"\
                    onmouseout="this.style.backgroundImage=\'url('
                  + param['PagePrefix'] +
                    'img/button_22.gif)\'" onClick="_setLoginObj.Hide()">\
                    <div align="center" class="button">'
                  + MSG_BUTTON_CANCEL +
                    '</div></TD>\
                    </TR></TBODY></TABLE></td>\
                    </tr>\
                    </table>\
                    </div></td>\
                    </tr>\
                    </table>          </td>\
                    </tr>\
                    </table>\
                    </form>\
                    </div>';

   document.getElementsByTagName("BODY")[0].innerHTML = 
      htmlStr + document.getElementsByTagName("BODY")[0].innerHTML;
}

function ShowGetSetLoginForm(e, user, descp, level)
{
   var objForm = document.getsetlogin;
   var x = document.getElementsByTagName("BODY")[0].clientWidth / 2 - 170;
   var y = document.getElementsByTagName("BODY")[0].clientHeight / 2 - 90

   if(document.all)
      e = event;

   x = document.getElementsByTagName("BODY")[0].scrollLeft + x;
   y = document.getElementsByTagName("BODY")[0].scrollTop + y;   

   /* close the other drag windows first */
   if(null != _curDragObj)
      _curDragObj.Hide();
   _curDragObj = _setLoginObj;

   /* clear the last value in form */
   document.getElementById("loginUserName").innerHTML = user;
   objForm.descp.value = "";
   objForm.pwd.value = "     ";
   objForm.repwd.value = "     ";
   objForm.pwd.disabled = false;
   objForm.repwd.disabled = false;
   objForm.l[1].checked = true;
   objForm.l[0].disabled = true;
   objForm.l[1].disabled = true;

   if(descp != null && level != null)
   {
      objForm.descp.value = descp;
      if(level == "admin")
      {
         objForm.l[0].checked = true;
         objForm.l[1].disabled = false;
      }
   }
   else
   {
      var url = param['CGIPrefix'] + "admin/user.cgi?magno="+ Math.random();
      var data = "act=getset&u=" + XMLHTTPEscPostValue(user);
      var conn = XMLHTTPInit();
      var result = XMLHTTPSyncResult(conn, url, data);
      var varPair;

      if(null == result)
         return false;
      else if("ER" == result.substr(0, 2))
      {
         alert(ERR_GET_LOGIN_INFO);
      }
      else if("OK" == result.substr(0, 2))
      {
         result = TrimStr(result.replace(/\r/g, "")).split("\n");
         for(var i = 1; i < result.length; i++)
         {
            varPair = result[i].split('\t');
            if(varPair.length != 2)
               continue;

            switch(varPair[0])
            {
               case "userDescp":
                  objForm.descp.value = varPair[1];
                  break;

               case "userLevel":
                  if(user == "root")
                     objForm.l[0].checked = true;
                  else if(varPair[1] == "admin")
                  {
                     objForm.l[0].checked = true;
                     objForm.l[1].disabled = false;
                  }
                  break;
            }
         }
      }
      else
         return false;
   }
   
   /* if user level of login user is admin, then enable the radio button,
      Howard, 060519 */
   if(user != "root" && null != _orisCookie && null != _orisCookie['ORISKEY'] &&
      _orisCookie['ORISKEY'].charAt(_orisCookie['ORISKEY'].length-1) == 'A')
   {
      objForm.l[0].disabled = false;
      objForm.l[1].disabled = false;
   }   
   
   _setLoginObj.Move(x, y);
   _setLoginObj.Enable();
   _setLoginObj.Show();
   
   objForm.descp.focus();
   return false;
}


function ChkGetSetLoginParam()
{
   var objForm = document.getsetlogin;
   var url = param['CGIPrefix'] +
             "admin/user.cgi?magno="+ Math.random();
             
   if(objForm.pwd.value != objForm.repwd.value ||
      objForm.pwd.value.length > 20)
   {
      alert(ERR_USER_PWD_NOT_MATCH);
      return false;
   }
   var data = "act=set&u=" +
             XMLHTTPEscPostValue(document.getElementById("loginUserName").innerHTML) +
             "&descp=" + XMLHTTPEscPostValue(objForm.descp.value) + "&l=";
   if(objForm.l[0].checked)
      data += "admin";
   else
      data += "user";

   if(objForm.pwd.value == "     ")
      objForm.pwd.disabled = true;
   else
      data += "&pwd=" + XMLHTTPEscPostValue(objForm.pwd.value);
   objForm.repwd.disabled = true;

   var conn = XMLHTTPInit();
   var result = XMLHTTPSyncResult(conn, url, data);

   if(null == result || "OK\n" != result.replace(/\r/g, ""))
   {
      alert(ERR_USER_SET_FAILED);
      _setLoginObj.Hide();
      return true;
   }
   else if(location.href.indexOf("user.cgi") != -1 &&
           (location.href.indexOf("act=list") != -1 ||
           location.href.indexOf("act=search") != -1))
   {
      location.reload(true);
      return true;
   }
   else
      _setLoginObj.Hide();
   return true;
}

function ChkSess()
{
   var conn = XMLHTTPInit();
   var result = XMLHTTPSyncResult(conn, _sessChkUrl + "?magno=" + Math.random());

   if(null != result)
   {
      if(("OK\r\n" == result.substr(0, 4) || "OK\n" == result.substr(0, 3))) 
         window.setTimeout(ChkSess, 60000);
      else if(("ER\r\n" == result.substr(0, 4) || "ER\n" == result.substr(0, 3))) 
         location.href = param['CGIPrefix'] + "admin/sessmgr.cgi?act=logout";
   }
   return;
}

function IsDigitExcpChar(str, charList)
{
   if(null != charList)
      var re = new RegExp("[^0-9" + charList + "]","g");
   else
      var re = /[^0-9]/g;
   
   if(str.search(re) == -1)
      return true;
   else
      return false;
}

function IsAlphaExcpChar(str, charList)
{
   if(null != charList)
      var re = new RegExp("[^a-zA-Z" + charList + "]","g");
   else
      var re = /[^a-zA-Z]/g;
   
   if(str.search(re) == -1)
      return true;
   else
      return false;
}

function IsAlNumExcpChar(str, charList)
{
   if(null != charList)
      var re = new RegExp("[^0-9a-zA-Z" + charList + "]","g");
   else
      var re = /[^a-zA-Z]/g;
   
   if(str.search(re) == -1)
      return true;
   else
      return false;
}

