function
msdb(scriptName, db, tname, isOnlyDB)
{
 this.scriptName = scriptName ;
 this.db = db ;
 this.tname = tname ;
 this.isOnlyDB = isOnlyDB ;
 this.ieMenuIsV = 0;
 this.iuFailed = false ;
 this.uFailedId = 0;
 this.isChange = false;
 this.isNew = false;
 this.changeVisitCtl = 0;
 this.rows = new Array();
 this.failedNew = new Array();
 this.colnames = new Array();
 this.coltypes = new Array();
 this.ajax = null;
 this.ajaxPkValue = null;
 this.currentRow = -1;
 this.isIE = ( document.all ) ? true : false ;
 return(this);
}
function
msdbRandom()
{
 return(Math.round(Math.random()*1000));
}
function
msdbCmdStr(action, args)
{
 var tnameCmd;
 if ( msdbTop.tname != '' )
  tname = msdbTop.tname ;
 else
  tname = 'msdbNoTable' ;
 ;
 if ( msdbTop.isOnlyDB == 1 )
  dbArg = "";
 else
  dbArg = "/" + msdbTop.db ;
 if ( action == '' )
  act = '';
 else if ( action == 'msdbDelete' )
  act = '?msdbEA=msdbDelete' ;
 else
  act = '/' + 'msdbEA' + '/' + action ;
 if ( args != '')
  if ( action == 'msdbDelete' )
   args = "&" + args ;
  else
   args = "?" + args ;
 loc = msdbTop.scriptName
  + dbArg
  + '/' + tname
  + act
  + args
  ;
 return(loc);
}
function
msdbCmd(action, args)
{
 ;
 loc = msdbCmdStr(action, args);
 location = loc ;
}
function
msdbRow2string(r)
{
 var i, s;
 s = "" ;
 for(i=0;i<r.length;i++)
  if ( i == 0 )
   s += r[i] ;
  else
   s += "-" + r[i] ;
 return(s);
}
function
msdbRow(msdbPkval)
{
 ;
 this.msdbPkval = msdbPkval;
 this.row = new Array();
 return(this);
}
function
msdbSaveMouse(e)
{
 if ( msdbTop.isIE ) {
  if ( ! event ) {
   alert("Can not save Iexplorer mouse position");
   return;
  }
  msdbTop.mouseX = event.clientX;
  msdbTop.mouseY = event.clientY;
 } else {
  msdbTop.mouseX = e.pageX;
  msdbTop.mouseY = e.pageY;
 }
 ;
}
function
msdbFalse()
{
 ;
 return(false);
}
function
msdbNoOp()
{
 ;
 i = 1 ;
}
function
msdbDateStr(d)
{
 ;
 if ( d == 0 )
  return("");
 mName = new Array('', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
      'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
 s = "" + d;
 m = Number(s.substr(4, 2));
 d = Number(s.substr(6, 2));
 y = Number(s.substr(0, 4));
 ret =
  mName[m] + " " +
  d + " " +
  y + " "
  ;
 return(ret);
}
function
msdbAlert()
{
 ;
 s = "";
 for(i=1;i<arguments.length;i++) {
  s += arguments[i] + ": " + arguments[i+1];
  i++;
  if ( i != arguments.length-1 )
   s += ' -- ' ;
 }
 alert(arguments[0] + '>>> ' + s);
}
function
msdbAlertForm(f)
{
 ;
 s = "Form Name=" + f.name + "\n" ;
 for(i=0;i<f.length;i++)
  s += '\tf[' + i + '] : ' + f[i].name + ' = ' + f[i].value + "\n" ;
 alert(s);
}
function
msdbBack()
{
 ;
 window.history.back();
}
function
msdbIsHebLetter(l)
{
 ;
 if ( l >= 'A' && l <= 'Z' || l == '_' )
  return(true);
 return(false);
}
function
msdbHebLetter(l)
{
 ;
 if ( msdbIsHebLetter(l) == false )
  return(l);
 jstr = 'ret = hebLetter' + l + '.innerHTML ; ' ;
 eval(jstr);
 return(ret);
}
function
msdbFindRow(msdbPkval)
{
 var d, i;
 ;
 ;
 d = msdbTop.rows;
 for(i=0;i<d.length;i++) {
  if ( d[i].msdbPkval == msdbPkval ) {
   msdbTop.currentRow = i;
   return(d[i].row);
  }
 }
 return(null);
}
function
msdbFillForm(msdbPkval)
{
 var r, f, i, jstr;
 ;
 ;
 f = document.forms['changeForm'] ;
 r = msdbFindRow(msdbPkval);
 if ( r == null ) {
  alert("msdbNewOrChange: Can not find data to change.");
  return;
 }
 for(i=0;i<r.length;i++) {
  s = r[i];
  jstr = 'f.' + msdbTop.colnames[i] + '.value =  s ; ' ;
  eval(jstr);
 }
}
function
msdbNewOrChange(msdbPkval)
{
 var f, dw, dh, field0, jstr, x, y;
 var sl, st;
 ;
 ;
 if ( msdbTop.changeVisitCtl != 1 || msdbTop.iuFailed != 1 || msdbTop.uFailedId != msdbPkval )
  msdbFillForm(msdbPkval)
 document.getElementById("changeId").style.visibility = 'visible' ;
 msdbSetDialogVisibility("changeId", 1);
 dw = document.getElementById("changeId").offsetWidth ;
 if ( msdbTop.isIE ) {
  sl = msdbScrollLeft();
  st = msdbScrollTop();
 } else {
  sl = st = 0;
 }
 x = sl + msdbTop.mouseX - dw - 40 ;
 if ( x < 4 )
  x = 4 ;
 y = st + msdbTop.mouseY - 12 ;
 if ( y < 4 )
  y = 4 ;
 ;
 msdbPlaceDialog('changeId', x, y);
}
function
msdbHideSearch()
{
 ;
 msdbHideDialog('searchId');
}
function
msdbSearch()
{
 ;
 ;
 msdbSaveMouse();
 f = document.forms['searchForm'] ;
 msdbShowDialog('searchId');
 dw = searchId.offsetWidth ;
 dh = searchId.offsetHeight ;
 x = msdbScrollLeft() + msdbTop.mouseX - dw - 40 ;
 if ( x < 4 )
  x = 4 ;
 y = msdbScrollTop() + msdbTop.mouseY - 12 ;
 if ( y < 4 )
  y = 4 ;
 msdbPlaceDialog('searchId', x, y);
}
function
msdbChange(msdbPkval)
{
 var msdbAreaId ;
 document.getElementById("changeId").className = 'changeClass' ;
 f = document.forms['changeForm'] ;
 f.msdbEA.value = "msdbUpdate" ;
 f.msdbPkval.value = msdbPkval ;
 msdbTop.isChange = true ;
 msdbTop.changeVisitCtl++;
 msdbNewOrChange(msdbPkval);
 msdbTop.changeVisitCtl++;
}
function
msdbNew(msdbPkval)
{
 msdbTop.isNew = true ;
 document.getElementById("changeId").className = 'newClass' ;
 f = document.forms['changeForm'] ;
 f.msdbEA.value = "msdbInsert" ;
 msdbNewOrChange(msdbPkval);
}
function
msdbDelete(msdbPkval)
{
 var r;
 ;
 r = msdbFindRow(msdbPkval);
 if ( ! confirm("Are you Sure you want to Discard this entry\n(" + msdbRow2string(r) + ") ?"))
  return;
 args = "&msdbPkval=" + msdbPkval ;
 msdbCmd('msdbDelete', args);
}
function
msdbHideChange()
{
 ;
 msdbTop.isChange = false ;
 msdbTop.isNew = false ;
 msdbHideDialog('changeId');
}
function
msdbSubmitChange()
{
 var f;
 ;
 msdbTop.isChange = false ;
 msdbTop.isNew = false ;
 f = document.forms['changeForm'] ;
 if ( f.msdbEA.value == 'msdbUpdate' ) {
  if ( msdbJsChangeViaAjax() ) {
   msdbHideDialog('changeId');
   return(false);
  }
 }
 msdbHideDialog('changeId');
 return(true);
}
function
isNonAscii(s)
{
 var i, c, len, intc, u8;
 len = s.length;
 for(i=0;i<len;i++) {
  c = s.charCodeAt(i);
  if ( c > 127 ) {
   return(true);
  }
 }
 return(false);
}
function
msdbEscape(v)
{
 var i, c, hc, cc, ret;
 if ( ! isNonAscii(v) )
  return(escape(v));
 var ret = "";
 for (var i = 0; i < v.length; i++) {
  var cc = v.charCodeAt(i);
  var c = v.charAt(i);
  if (cc < 128) {
   ret += escape(c);
   continue;
  }
  ret += c ;
 }
 return(ret);
}
function
msdbConstructFormArgs(f)
{
 var n, v, nv, ev, args;
 var uv;
 args = "";
 for(i=0; i<f.elements.length; i++) {
  n = f.elements[i].name ;
  v = f.elements[i].value;
  if ( n == "msdbEA" )
   continue;
  ev = msdbEscape(v);
  if ( ev == null)
   return(null);
  nv = n + "=" + ev ;
  if ( args == "" )
   args = nv ;
  else
   args += "&" + nv ;
 }
 return(args);
}
function
msdbJsChangeViaAjax()
{
 var f, url, args;
 var ajax;
 var pkValue;
 f = document.forms['changeForm'] ;
 pkValue = f.msdbPkval.value;
 msdbTop.ajaxPkValue = pkValue;
 msdbFindRow(msdbTop.ajaxPkValue);
 args = msdbConstructFormArgs(f);
 if ( args == null )
  return(false);
 args += "&currentRow=" + msdbTop.currentRow ;
 url = msdbCmdStr('msdbChangeViaAjax', "&Ajax=");
 if ( (msdbTop.ajax = msdbGetAjax()) == null )
  return(false);
 msdbTop.ajax.open("POST", url, true);
 msdbTop.ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 msdbTop.ajax.setRequestHeader("Content-length", args.length);
 msdbTop.ajax.setRequestHeader("Connection", "close");
 msdbTop.ajax.onreadystatechange = msdbJsChangeAjaxStateChange ;
 msdbTop.ajax.send(args);
 return(true);
}
function
msdbAjUpdateCells(pkValue)
{
 var colnames, elementIdName, elementId;
 var oldRow;
 var isChange;
 isChange = false;
 colnames = msdbTop.colnames;
 oldRow = msdbTop.rows[msdbTop.currentRow].row ;
 for(i=0;i<colnames.length;i++) {
  elementIdName = "R" + msdbTop.ajaxPkValue + "C" + colnames[i];
  elementId = document.getElementById(elementIdName);
  if ( ! elementId )
   continue;
  oldCellData = oldRow[i];
  newCellData = msdbTop.ajaxRow.row[i];
  newCellText = msdbTop.ajaxTextRow[i];
  if ( oldCellData != newCellData ) {
   isChange = true;
   msdbTop.rows[msdbTop.currentRow][i] = newCellData ;
   elementId.innerHTML = "<FONT COLOR=GREEN>" + newCellText + "</FONT>";
   msdbTop.rows[msdbTop.currentRow].row[i] = newCellData ;
  }
 }
 if ( ! isChange )
  document.getElementById("msdbMsgArea").innerHTML = ("msdb.jss" + ": " + 639 + ": " + 0 + ": " + "Ajax Succeeded: Notihng Changed for row id " + msdbTop.currentRow);
}
function
msdbJsChangeAjaxStateChange()
{
 var isError;
 var element, elementIdName, oldInner;
 if ( msdbTop.ajax.readyState != 4 && msdbTop.ajax.readyState != "complete" ) {
  return;
 }
 isError = msdbTop.ajax.responseText.substr(0, 4);
 if ( isError == 'Ajax') {
  document.getElementById("msdbMsgArea").innerHTML = (msdbTop.ajax.responseText.substring(4, 1000));
  return;
 }
 if ( msdbTop.ajaxPkValue == null ) {
  document.getElementById("msdbMsgArea").innerHTML = ("Failed:\n" + msdbTop.ajax.responseText) ;
  return;
 }
 eval(msdbTop.ajax.responseText);
 msdbAjUpdateCells(msdbTop.ajaxPkValue);
 document.getElementById("msdbMsgArea").innerHTML = ("");
 msdbTop.ajaxPkValue = null;
}
function
msdbGetAjax()
{
 var xmlHttp;
 try {
  xmlHttp=new XMLHttpRequest();
 } catch (e) {
  try {
   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
   } catch (e) {
    alert("Your browser does not support AJAX!");
    return null;
   }
  }
 }
 return(xmlHttp);
}
function msdbShowImg(screenImg)
{
 src = screenImg.src;
 var img = new Image();
 img.src = src ;
 var height = img.height + 16;
 var width = img.width + 16;
 window.open(src, "msdbShowImg", "scrollbars=no,menubar=no,location=no,status=no,toolbar=no,width="+width+",height="+height);
}
