function nop(){
  return;
}

var dirty = false;
var isIE = false;
var unsavedmsg = "You have made changes on this page that have not been saved.";
function setDirty(){
  dirty = true;
}
function fldChange(ctrl){
  setDirty();
  try{
    local_fldChange(ctrl);
  } catch (err) {}
}
function checkDirty(){
  if(dirty==true){
    if(isIE){
      event.returnValue=unsavedmsg;
    }
    return(unsavedmsg);
  }
}
function xlate_su(id){
  var tgt = "/dba/xlate.jsp?id="+id;
  window.open(tgt);
}

function popnote(hdr,fld,id){
  var tgt = "/notes.jsp?hdr="+hdr+"&f="+fld+"&id="+id;
  floatLoaderFrame.location.href=tgt;
}

function pophelp(hlp,fld){
  var tgt = "/help.jsp?hlp="+hlp+"&field_id="+fld;
  floatLoaderFrame.location.href=tgt;
}

function fldttutil(el,sho){
  try{
    var children = el.parentNode.parentNode.childNodes;
    for(var i=1;i<children.length;i++){
      var cel = children[i];
      if(cel.id!=null) {
        if(cel.id.substr(0,4)=="DESC"){
          if(sho){
            cel.style.visibility="visible";
          } else {
            cel.style.visibility="hidden";
          }
        }
      }
    }
  } catch(err) {
    // ignored - no tooltip displayed
  }
}
function submit(){
    document.forms[0].submit();
}
var fldlastel;
function fldFocus(el){
    if(fldlastel){
      fldttutil(fldlastel,false);
    }
    lowerMiniCal();
    fldlastel = el;
    fldttutil(el,true);
}
function fldBlur(el){
}
var lastFloatMenu;
var lastFloatDialog;
function hideFloatMenu(){
      lastFloatMenu.innerHTML="";
      try{
        var eop = gE("eop");
        var eopx = findPosX(eop);
        var eopy = findPosY(eop);
        lastFloatMenu.style.left = ""+Math.abs(eopx)+"px";
        lastFloatMenu.style.top = ""+Math.abs(eopy)+"px";
      } catch (err) {}
      hE(lastFloatMenu);
}
function hideFloatDialog(){
      lastFloatDialog.innerHTML="";
      try{
        var eop = gE("eop");
        var eopx = findPosX(eop);
        var eopy = findPosY(eop);
        lastFloatDialog.style.left = ""+Math.abs(eopx)+"px";
        lastFloatDialog.style.top = ""+Math.abs(eopy)+"px";
      } catch (err) {}
      hE(lastFloatDialog);
}
function raiseFloatDialog(srcdiv,x,y,innerFrame,innerFrameSrc){
      var tgtdiv = gE("floatDialog");
      lastFloatDialog = tgtdiv;
      raiseFloat(srcdiv,tgtdiv,x,y,innerFrame,innerFrameSrc);
}
function raiseFloatMenu(srcdiv,x,y,innerFrame,innerFrameSrc){
      var tgtdiv = gE("floatMenu");
      lastFloatMenu = tgtdiv;
      raiseFloat(srcdiv,tgtdiv,x,y,innerFrame,innerFrameSrc);
}
function raiseFloat(srcdiv,tgtdiv,x,y,innerFrame,innerFrameSrc){
      if (typeof(x) == "undefined") x=100;
      if (typeof(y) == "undefined") y=100;
      tgtdiv.innerHTML = srcdiv.innerHTML;
      hE(tgtdiv);
      tgtdiv.style.position = "absolute";
      if(x<0){
        tgtdiv.style.right = ""+Math.abs(x)+"px";
      } else {
        tgtdiv.style.left = ""+Math.abs(x)+"px";
      }
      tgtdiv.style.top = ""+Math.abs(y)+"px";
      sE(tgtdiv);
      if (typeof(innerFrame) != "undefined"){
        document.getElementById(innerFrame).src=innerFrameSrc;
      }
}

  function chooseMiniCal(d){
    setMiniCal(d);
    lowerMiniCal();
  }

  // TODO: localize this on page load, or do localized version of js file
  var months = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
  var days = new Array("Su","Mo","Tu","We","Th","Fr","Sa");
  function setMiniCal(d){
    if(d!=ldctrl.value){
        try{
          ldctrl.value = d;
        } catch(ignored1) {  }
        try{
          ldctrl.onchange();
        } catch(ignored2) {  }
    }
    /* try{
      ldctrl.focus();
    } catch(ignored3) {  } */
  }

  var mcsd = new Date();
  function setMiniCalSavedDate(start){
    if(start.match(/\d+\/\d+\/\d+/)){
      mcsd = new Date(start);
    }
  }

  function reDrawMiniCal(start){
    var td = new Date();
    var d = new Date(mcsd);
    if(start.match(/\d+\/\d+\/\d+/)){
      d = new Date(start);
    }
    var tdd=td.getDate();
    var tdm=td.getMonth();
    if(tdd<10){
      tdd="0"+(tdd);
    }
    var dtdm=1+tdm;
    if(dtdm<10){
      dtdm="0"+(dtdm);
    }
    var tdy=td.getYear();
    if(tdy<200){
        tdy=tdy+1900;
    }
    var sdd=mcsd.getDate();
    var sdm=mcsd.getMonth();
    var sdy=mcsd.getYear();
    if(sdy<200){
        sdy=sdy+1900;
    }
    var im = d.getMonth();
    var weeks = new Array(6);
    var w=0;
    for(w=0;w<6;w++){
      weeks[w] = new Array(7);
    }
    var dm=1;
    nw=0;
    for(dm=1;dm<=31;dm++){
      d.setDate(dm);
      var dw = d.getDay();		//current day of week 0-6
      var m = d.getMonth();		//current month 0-11
      if(m!=im){
        break;
      }
      weeks[nw][dw] = dm;
      if(dw==6){
        nw++;
      }
    }
    var y = d.getYear();
    if(y<200){
      y=y+1900;
    }
    py=y-1;
    ny=y+1;
    actm=im+1;
    /*
    pm=actm-1;
    if(pm==0){
      pm=12;py=y-1;
    }
    nm=actm+1;
    if(nm==13){
      nm=1;ny=y+1;
    }
    */
    var aim = ""+(im+1);
    if(actm<10){
      aim="0"+(im+1);
    }
    var ms=" class='mo_sm'";
    var mw=" class='mo_smw'";
    var ctx="<table id='caltbl'"+ms+">";
    ctx=ctx+"<tr><th colspan='7'"+ms+">";
    ctx=ctx+"<a href=\"javascript:window.parent.reDrawMiniCal('"+py+"/"+actm+"/01');\""+ms+">";;
    ctx=ctx+"&lt;</a> &#160;";
    ctx=ctx+y;
    ctx=ctx+"&#160; <a href=\"javascript:window.parent.reDrawMiniCal('"+ny+"/"+actm+"/01');\""+ms+">";;
    ctx=ctx+"&gt;</a>";
    ctx=ctx+"</th></tr>";
    ctx=ctx+"<tr><td colspan='7'>";
    ctx=ctx+"<table><tr>";
    for(drwm=0;drwm<=5;drwm++){
        if(drwm==im){
          ctx=ctx+"<td style='border: 1px solid #aa4444'"+ms+">";
        } else {
          ctx=ctx+"<td "+ms+">";
        }
        ctx=ctx+"<a href=\"javascript:window.parent.reDrawMiniCal('"+y+"/"+(drwm+1)+"/01');\""+ms+">";;
        ctx=ctx+months[drwm];
        ctx=ctx+"</a></td>";
    }
    ctx=ctx+"</tr><tr>";
    for(drwm=6;drwm<=11;drwm++){
        if(drwm==im){
          ctx=ctx+"<td style='border: 1px solid #aa4444'"+ms+">";
        } else {
          ctx=ctx+"<td "+ms+">";
        }
        ctx=ctx+"<a href=\"javascript:window.parent.reDrawMiniCal('"+y+"/"+(drwm+1)+"/01');\""+ms+">";;
        ctx=ctx+months[drwm];
        ctx=ctx+"</a></td>";
    }
    ctx=ctx+"</tr>";
    ctx=ctx+"</table>";
    ctx=ctx+"</td></tr>";
    for(w=0;w<=nw;w++){
      ctx=ctx+"<tr"+ms+">";
      var dw = 0;
      for(dw=0;dw<=6;dw++){
        var sty = mw;
        if((dw>0)&&(dw<6)){
          sty = ms;
        }
        ctx=ctx+"<td "+sty;
        var dd = weeks[w][dw];
        var xsty="";
        if((tdd==dd)&&(tdm==im)&&(tdy==y)){
            xsty=xsty+";border-color: #aa4444";
        }
        if((sdd==dd)&&(sdm==im)&&(sdy==y)){
            xsty=xsty+";background: #ffff77";
        }
        if(xsty!=""){
          ctx=ctx+" style='"+xsty.substr(1)+"'";
        }
        ctx=ctx+">";
        if(""+dd!="undefined"){
          var add = ""+dd;
          if(dd<10){
            add="0"+dd;
          }
          ctx=ctx+"<a href=\"javascript:window.parent.chooseMiniCal('"+y+"/"+aim+"/"+add+"');\""+ms+">";
          ctx=ctx+weeks[w][dw];
          ctx=ctx+"</a>";
        }
        ctx=ctx+"</td>";
      }
      ctx=ctx+"</tr>";
    }
    ctx=ctx+"<tr><td colspan='7' style='text-align:right'>";
    ctx=ctx+"<table><tr>";
    ctx=ctx+"<td "+ms+">";
    ctx=ctx+"<a href=\"javascript:window.parent.chooseMiniCal('"+tdy+"/"+dtdm+"/"+tdd+"');\""+ms+">";;
    ctx=ctx+"Today";
    ctx=ctx+"</a></td>";
    ctx=ctx+"<td "+ms+">";
    ctx=ctx+"<a href=\"javascript:window.parent.lowerMiniCal();\""+ms+">";;
    ctx=ctx+"Close";
    ctx=ctx+"</a></td>";
    ctx=ctx+"</tr>";
    ctx=ctx+"</table>";
    ctx=ctx+"</td></tr>";
    ctx=ctx+"</table>";
    var mf = gE("minicalframe");
    var mc = gE("minical");
    var dc = mf.contentWindow.document.body;
    dc.innerHTML = ctx;
    var dcc = mf.contentWindow.document.getElementById('caltbl');
    sW(mf,dcc.clientWidth);
    sH(mf,dcc.clientHeight);
    sW(mc,dcc.clientWidth);
    sH(mc,dcc.clientHeight);
  }
  var ldctrl;
  function raiseMiniCal(ctrl){
    ldctrl = ctrl;
    if(ctrl.value=='yyyy/mm/dd'){
        ctrl.value='';
    }
    setMiniCalSavedDate(ctrl.value);
    var mc = gE("minical");
    reDrawMiniCal(ctrl.value);
    sX(mc,findPosX(ctrl));
    sY(mc,findPosY(ctrl)+36);
    sE(mc);
  }
  function lowerMiniCalEl(){
    var mce = gE("minical");
    try{
      var eop = gE("eop");
      var eopx = findPosX(eop);
      var eopy = findPosY(eop);
      mce.style.left = ""+Math.abs(eopx)+"px";
      mce.style.top = ""+Math.abs(eopy)+"px";
      var mcf = gE("minicalframe");
      sW(mcf,"1px");
      sH(mcf,"1px");
      sW(mce,"1px");
      sH(mce,"1px");
    } catch (err) {}
    hE(gE("minical"));
  }
  function lowerMiniCal(){
    lowerMiniCalEl();
    mcsd = new Date();
  }
  function fldValidateDate(ctrl){
    if(ctrl.value==''){
      return;
    }
    if(ctrl.value=='yyyy/mm/dd'){
      return;
    }
    if(!ctrl.value.match(/\d\d\d\d\/\d+\/\d+/)){
      alert("Invalid date format ["+ctrl.value+"].  Please enter yyyy/mm/dd.");
      return false;
    }
    fldChange(ctrl);
  }
  function blurDate(ctrl){
    if(ctrl.value==''){
        ctrl.value='yyyy/mm/dd';
    }
  }
  var actrlname = "";
  function attach_direct(ctrlname,intake){
    actrlname = ctrlname;
    ctrl = gE("f"+ctrlname);
    var mf = gE("minicalframe");
    var mc = gE("minical");
    var dc = mf.contentWindow.document.body;
    dc.innerHTML =
      "<div id='factrl' style='width: 400px;'><div class=\"dialog_title\">Attach File</div>" +
      "<form method=\"post\" enctype=\"multipart/form-data\" action=\""+intake+"&ctrlname="+ctrlname+"\">" +
      "<div class=\"dialog_body\"><input type=\"file\" size=\"40\" name=\"attached_file\"><p/>"+
      "Description:<br/><input type=\"text\" size=\"40\" name=\"description\"></div>" +
      "<div class=\"dialog_buttons\"><span class=\"admin\" onclick=\"document.forms[0].submit()\">Upload Now</span> &#160;" +
      "<span class=\"admin\" onclick=\"window.parent.lower_attach()\">Cancel</span></div>" +
      "</form></div>";
    var dcc = gE("minicalframe").contentWindow.document.getElementById('factrl');
    sW(mf,dcc.clientWidth);
    sH(mf,dcc.clientHeight);
    sW(mc,dcc.clientWidth);
    sH(mc,dcc.clientHeight);
    sX(mc,findPosX(ctrl));
    sY(mc,findPosY(ctrl)+36);
    sE(mc);
  }
  function attach(ctrlname){
    attach_direct(ctrlname,"/graphics/intake.jsp?a=a");
  }
  function attachM(ctrlname){
    attach_direct(ctrlname,"/graphics/intakeM.jsp");
  }
  function lower_attach(){
    lowerMiniCalEl();
  }
  function attach_done_m(){
    lower_attach();
  }
  function attach_done(result){
    ctrl = gE("f"+actrlname);
    ctrl.value = result;
    lower_attach();
  }

var lastxtab;
function xtab_rpto(){
  var ptrxtab=gE('xtabptr');
  ptrxtab.style.left=(32+findPosX(lastxtab))+"px";
  ptrxtab.style.top=(32+findPosY(lastxtab))+"px";
}
function xtab_pto(sxtab){
  lastxtab = sxtab;
  lastxtab.style.background='#ffffc0';
  xtab_rpto()
  window.onresize=xtab_rpto;
}
