// ASP/PHP Web Aplication Builder (http://www.webapplicationbuilder.com)
// © City Business Logic, 2002-2005 - All Rights Reserved

var winPopup = null;
var iGlobalDateFormat = 0;
var bGlobalIncTime = 0;
var bGlobalOnlyTime = 0;
var iErrors = 0;

function enterField(inputField)
{
   if (inputField && inputField.style)
   {
     inputField.style.background='#FEFDE0';
   }
}

function exitField(inputField)
{
   if (inputField && inputField.style)
   {
     inputField.style.background='#FFFFFF'
   }
}

function ValidateKey(inputField,event,valueType,charAllowed,caseDesired)
{
   var key = -1;
   if (window.event) 
   {
      var key = event.keyCode; 
   }
   else if(event.which) 
   {
      var key = event.which; 
   }

   if ((key==-1) || (key==8) || (key==38) || (key==39))
   {
      return true;
   }

   if (valueType=='a') 
   {
     var allowed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ :;,.?!£$%^&*()_+-*{}@~<>&"\'';
   }
   else if (valueType=='n')
   {
     var allowed='0123456789.-';
   }
   else if (valueType=='i')
   {
     var allowed='0123456789-';
   }
   else if (valueType=='s')
   {
      if (charAllowed=='Normal')
      {
        valueType='';
      }
      else
      {
         var allowed=charAllowed;
      }
   }
   if (valueType!='')
   {
      if (key!=13)
      {
         if (allowed.indexOf(String.fromCharCode(key))==-1)
         {
            key=0;
         }
      }
   }

   if (valueType=='n'||valueType=='i')
   {
      if (key==46)
      {
         if (inputField.value.indexOf('.')>-1)
         {
            key=0;
         }
      }
   }

   if (caseDesired=='u')
   {
      var newkey=String.fromCharCode(key).toUpperCase();
      key=newkey.charCodeAt(0);
   }
   else if (caseDesired=='l')
   {
      var newkey=String.fromCharCode(key).toLowerCase();
      key=newkey.charCodeAt(0);
   }

   if (key==0)
   {
      return false;
   }
   else
   {
      return true;
   }
}

function doReturn(event,frmName)
{
   if (window.event) 
   {
      var key = event.keyCode; 
   }
   else if(event.which) 
   {
      var key = event.which; 
   }

   if (key==13)
   {
      var frmMain = document.forms[frmName];
      if (frmMain)
      {
         frmMain.submit();
      }
   }
}

function ValidateField(inputField,minLength,iIndex)
{
   // Check that text field meets minimum selected length.  

   if (!inputField)
   {
       return true;
   }
   if (inputField.type=='hidden')
   {
       return true;
   }

   if (inputField.value.length<minLength)
   {
      setError(iIndex,'This field must be at least '+minLength+' characters long');
      exitField(inputField);
      return false;
   }
   else
   {
      setError(iIndex,'');
      exitField(inputField);
      return true;
   }
   
}

function ValidateNumber(inputField,decPlaces,minValue,maxValue,isCompulsory,iIndex)
{
   // Check that number meets specified criteria

   if (!inputField)
   {
       return true;
   }
   if (inputField.type=='hidden')
   {
       return true;
   }
   if ((minValue!=0||maxValue!=0))
   {
      if (inputField.value<minValue)
      {
         setError(iIndex,'Minimum value allowed is: '+minValue);
         exitField(inputField);
         return false;
      }
      else if (inputField.value>maxValue)
      {
         setError(iIndex,'This value must be less than or equal to '+maxValue);
         exitField(inputField);
         return false;
      }
   }

   if (isCompulsory==0)
   {
      setError(iIndex,'');
      exitField(inputField);
      return true;
   }
   if (inputField.value=='')
   {
      setError(iIndex,'This value must be specified.');
      exitField(inputField);
      return false;
   }

   var decimalpos=inputField.value.indexOf('.');
   var fieldlen=inputField.value.length;
   if (decimalpos>0)
   {
      if ((decPlaces+1)<(fieldlen-decimalpos))
      {
        setError(iIndex,'Only '+decPlaces+' decimal places allowed!');
        exitField(inputField);
        return false;
      }
   }
   setError(iIndex,'');
   exitField(inputField);
   return true;
}

function ValidateSearchNumber(f1,f2,f3,f4)
{
   if (!f1)
   {
       return true;
   }
   if (f1.value=='')
   {
      exitField(f1);
      return true;
   }
   else
   {
      return ValidateNumber(f1,f2,f3,f4);
   }
}

function ValidateDateTime(inputField,dateFormat,allowEmpty,iIndex)
{
   // Check that date/time meets specified criteria

   if (!inputField)
   {
       return true;
   }
   if (inputField.type=='hidden')
   {
       return true;
   }
   if ((allowEmpty==0) & (inputField.value.length==0))
   {
     exitField(inputField);
     return true;
   }
   if (inputField.value.length<12)
   {
      setError(iIndex,'Please enter date/time in format shown');
      exitField(inputField);
      return false;
   }

   if (dateFormat==1)
   {
      var dd=inputField.value.substring(0,2);
      var mm=inputField.value.substring(2,4);
      var yy=inputField.value.substring(4,8);
   }
   else if (dateFormat==0)
   {
      var mm=inputField.value.substring(0,2);
      var dd=inputField.value.substring(2,4);
      var yy=inputField.value.substring(4,8);
   }
   else if (dateFormat==2)
   {
      var yy=inputField.value.substring(0,4);
      var mm=inputField.value.substring(4,6);
      var dd=inputField.value.substring(6,8);
   }

   if (dd>31)
   {
      setError(iIndex,'Day value must not be larger than 31!');
      exitField(inputField);
      return false;
   }
   if (mm>12)
   {
      setError(iIndex,'Month must not be larger than 12!');
      exitField(inputField);
      return false;
   }
   if (dd==31)
   {
      if (mm==4||mm==6||mm==9||mm==11)
      {
         setError(iIndex,'There is no 31st in Month '+mm);
         exitField(inputField);
         return false;
      }
   }
   if (mm==2)
   {
      if (dd>29)
      {
         setError(iIndex,'There are not '+dd+' days in February!');
         exitField(inputField);
         return false;
      }
      if (dd==29)
      {
         if (yy%4!=0)
         {
            setError(iIndex,'There are not 29 days in February of that year!');
            exitField(inputField);
            return false;
         }
      }
   }

   var hh=inputField.value.substring(8,10);
   var mm=inputField.value.substring(10,12);
   if (hh>23)
   {
      setError(iIndex,'[%M21%]!');
      exitField(inputField);
      return false;
   }
   if (mm>59)
   {
      setError(iIndex,'Minutes can not be larger than 59!');
      exitField(inputField);
      return false;
   }
   setError(iIndex,'');
   exitField(inputField);
   return true;
}

function ValidateDate(inputField,dateFormat,allowEmpty,iIndex)
{
   // Check that date meets specified criteria

   if (!inputField)
   {
       return true;
   }
   if (inputField.type=='hidden')
   {
       return true;
   }
   if ((allowEmpty==0) & (inputField.value.length==0))
   {
     exitField(inputField);
     return true;
   }
   if (inputField.value.length<8)
   {
      setError(iIndex,'Please enter date/time in format shown');
      exitField(inputField);
      return false;
   }

   if (dateFormat==1)
   {
      var dd=inputField.value.substring(0,2);
      var mm=inputField.value.substring(2,4);
      var yy=inputField.value.substring(4,8);
   }
   else if (dateFormat==0)
   {
      var mm=inputField.value.substring(0,2);
      var dd=inputField.value.substring(2,4);
      var yy=inputField.value.substring(4,8);
   }
   else if (dateFormat==2)
   {
      var yy=inputField.value.substring(0,4);
      var mm=inputField.value.substring(4,6);
      var dd=inputField.value.substring(6,8);
   }

   if (dd>31)
   {
      setError(iIndex,'Day value must not be larger than 31!');
      exitField(inputField);
      return false;
   }
   if (mm>12)
   {
      setError(iIndex,'Month must not be larger than 12!');
      exitField(inputField);
      return false;
   }
   if (dd==31)
   {
      if (mm==4||mm==6||mm==9||mm==11)
      {
         setError(iIndex,'There is no 31st in Month '+mm);
         exitField(inputField);
         return false;
      }
   }
   if (mm==2)
   {
      if (dd>29)
      {
         setError(iIndex,'There are not '+dd+' days in February"!');
         exitField(inputField);
         return false;
      }
      if (dd==29)
      {
         if (yy%4!=0)
         {
            setError(iIndex,'There are not 29 days in February of that year!!');
            exitField(inputField);
            return false;
         }
      }
   }
   setError(iIndex,'');
   exitField(inputField);
   return true;
}

function ValidateTime(inputField,timeFormat,allowEmpty,iIndex)
{
   // Check that time meets specified criteria

   if (!inputField)
   {
       return true;
   }
   if (inputField.type=='hidden')
   {
       return true;
   }
   if ((allowEmpty==0) & (inputField.value.length==0))
   {
     exitField(inputField);
     return true;
   }
   if (inputField.value.length<4)
   {
      setError(iIndex,'Please enter time in format HHMM');
      exitField(inputField);
      return false;
   }

   var hh=inputField.value.substring(0,2);
   var mm=inputField.value.substring(2,4);
   if (hh>23)
   {
      setError(iIndex,'Hours can not be larger than 23');
      exitField(inputField);
      return false;
   }
   if (mm>59)
   {
      setError(iIndex,'Minutes can not be larger than 59');
      exitField(inputField);
      return false;
   }
   setError(iIndex,'');
   exitField(inputField);
   return true;
}

function processClick(f1,f2,f3,f4)
{
   if (f1.checked)
   {
     f2.value=f3;
   }
   else
   {
     f2.value=f4;
   }
   return true;
}

function lineOn(f1)
{
  f1.className="lineOn"
}

function lineOff(f1)
{
  f1.className="lineOff"
}

function highlightRow(f1)
{
  if (selRow==f1)
  {
     return false;
  }
  f1.className="gridHighlight"
}

function revertRow(f1)
{
  if (selRow==f1)
  {
     return false;
  }
  if (f1.id.charAt(0)=='A')
  {
     f1.className="gridRowA"
  }
  else
  {
     f1.className="gridRowB"
  }
}

function revertRowNC(f1)
{
  if (f1.id.charAt(0)=='A')
  {
     f1.className="gridRowA";
  }
  else
  {
     f1.className="gridRowB";
  }
}

function selectRow(rowName)
{
   if (selRow)
   {
      revertRowNC(selRow);
   }
   selRow=rowName;
   rowName.className="gridSelected";
}

function showRow()
{
   if (!selRow)
   {
      return false;
   }
   selectRow(selRow);
}

function addRecord(dataPage)
{
   if (winPopup)
   {
      var frmAdd=document.forms['frmAdd'];
      frmAdd.target=winPopup.name;
      frmAdd.action=dataPage;
      frmAdd.submit();
      showPopup();
   }
   else
   {
      var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
      editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
      var frmAdd=document.forms['frmAdd'];
      frmAdd.target="editWindow";
      frmAdd.action=dataPage;
      frmAdd.submit();
      editWindow.focus();
   }
   return true;
}

function editSelectedRecord()
{
   if (!selRow)
   {
      alert('Please select record!');
      return false;
   }

   var dMode = document.forms['frmMain'].elements['mode'];
   dMode.value='edit';
   var f105 = document.forms['frmMain'].elements['f105where'];
   var fLookup = document.getElementById('f105where'+selRow.id.substring(4,10));
   f105.value=fLookup.value;

   if (parent.winPopup)
   {
      var frmMain=document.forms['frmMain'];
      frmMain.target=parent.winPopup.name;
      frmMain.submit();
      showParentPopup();
   }
   else
   {
      var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
      editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
      var frmMain=document.forms['frmMain'];
      frmMain.target="editWindow";
      frmMain.submit();
      editWindow.focus();
   }
   return true;
}

function deleteSelectedRecord()
{
   var sWHERE = "";
   iCount = 0;
   var chks = document.getElementsByTagName('input');
   for (var i=0; i<chks.length; i++)
   {
       if (chks[i].getAttribute('type')=='checkbox') 
       {		
          if (chks[i].checked)			
          {
             if (sWHERE!="")
             {
                sWHERE += ' OR ';
             }
             sWHERE += "(" + chks[i].value + ")";
             iCount ++;
          }
       }
   }

   if ((iCount==0) && (!selRow))
   {
      alert('Please select record!');
      return false;
   }

   var result
   if (iCount==1)
   {
      result = confirm("Are you sure that you wish to delete this record?");
   }
   else if (iCount>1)
   {
      result = confirm("Are you sure that you wish to delete these " + iCount + " records?");
   }
   else
   {
      result = confirm("Are you sure that you wish to delete this record?");
      sWHERE = document.getElementById('f105where'+selRow.id.substring(4,10)).value;
   }

   if (result)
   {

      var dMode = document.forms['frmMain'].elements['mode'];
      dMode.value='delete';
      var f105 = document.forms['frmMain'].elements['f105where'];
      f105.value=sWHERE;

      if (parent.winPopup)
      {
         var frmMain=document.forms['frmMain'];
         frmMain.target=parent.winPopup.name;
         frmMain.submit();
         showParentPopup();
      }
      else
      {
         var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
         editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
         var frmMain=document.forms['frmMain'];
         frmMain.target="editWindow";
         frmMain.submit();
         editWindow.focus();
      }
   }
   return true;
}

function editDeleteRecord(F1)
{
   if (F1=='a')
   {
      var dMode = document.forms['frmMain'].elements['mode'];
      dMode.value='add';
      if (winPopup)
      {
         var frmMain=document.forms['frmMain'];
         frmMain.target='winPopup'+swinLevel;
         frmMain.submit();
         showPopup();
      }
      else
      {
         var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
         editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
         var frmMain=document.forms['frmMain'];
         frmMain.submit();
         editWindow.focus();
      }
      return true;
   }

   if (!selRow)
   {
      alert('Please select record!');
      return false;
   }

   var f105 = document.forms['frmMain'].elements['f105where'];
   var fLookup = document.getElementById('f105where'+selRow.id.substring(4,10));
   f105.value=fLookup.value;

   if (F1=='e')
   {
      var dMode = document.forms['frmMain'].elements['mode'];
      dMode.value='edit';
      if (winPopup)
      {
         var frmMain=document.forms['frmMain'];
         frmMain.target='winPopup'+swinLevel;
         frmMain.submit();
         showPopup();
      }
      else
      {
        var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
        editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
        var frmMain=document.forms['frmMain'];
        frmMain.submit();
        editWindow.focus();
      }
      return true;
   }
   else
   {
      var result
      result = confirm("Are you sure that you wish to delete this record?");
      if (result)
      {
         var dMode = document.forms['frmMain'].elements['mode'];
         dMode.value='delete';
         if (winPopup)
         {
            var frmMain=document.forms['frmMain'];
            frmMain.target='winPopup'+swinLevel;
            frmMain.submit();
            showPopup();
         }
         else
         {
            var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
            editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
            var frmMain=document.forms['frmMain'];
            frmMain.submit();
            editWindow.focus();
         }
         return true;
      }
   }
   return true;
}

function editDeleteRecord2(F1)
{
   if (F1=='a')
   {
      var dMode = document.forms['frmMain'].elements['mode'];
      dMode.value='add';
      if (winPopup)
      {
         var frmLaunch=document.forms['frmLaunch'];
         frmLaunch.target='winPopup'+swinLevel;
         frmLaunch.submit();
         winPopup.style.visibility='visible';
      }
      else
      {
         var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
         editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
         var frmLaunch=document.forms['frmLaunch'];
         editWindow.focus();
      }
      return true;
   }

   if (F1=='e')
   {
      var dMode = document.forms['frmMain'].elements['mode'];
      dMode.value='edit';
      if (winPopup)
      {
         var frmLaunch=document.forms['frmLaunch'];
         frmLaunch.target='winPopup'+swinLevel;
         frmLaunch.submit();
         winPopup.style.visibility='visible';
      }
      else
      {
         var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
         editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
         var frmLaunch=document.forms['frmLaunch'];
         frmLaunch.submit();
         editWindow.focus();
      }
      return true;
   }
   else
   {
      var result
      result = confirm("Are you sure that you wish to delete this record?");
      if (result)
      {
         var dMode = document.forms['frmMain'].elements['mode'];
         dMode.value='delete';
         if (winPopup)
         {
            var frmLaunch=document.forms['frmLaunch'];
            frmLaunch.target='winPopup'+swinLevel;
            frmLaunch.submit();
            winPopup.style.visibility='visible';
         }
         else
         {
            var editWindow=window.open('blank.htm','editWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
            editWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
            var frmLaunch=document.forms['frmLaunch'];
            frmLaunch.submit();
            editWindow.focus();
         }
         return true;
      }
   }
   return true;
}

function findRecordBase (f1,f2,f3,f4,currentField,f6)
{
    var frmMain=document.forms['frmMain'];
    lstField = frmMain.elements['list' + currentField];
    if (lstField)
    {
       lstField.style.display='none';
    }

    var frmFind=document.forms['frmFindRecord'];
    frmFind.action=f1;
    frmFind.refFieldName.value=f2; 
    frmFind.refReturnFieldCode.value=f3; 
    frmFind.refReturnFieldDesc.value=f4; 
    frmFind.refUpdateField.value=currentField; 
    frmFind.refError.value=f6;
    return findRecord();
}

function findRecord()
{
   if (winPopup)
   {
      var frmFind=document.forms["frmFindRecord"];
      frmFind.target='winPopup'+swinLevel;
      frmFind.submit();
      showPopup();
   }
   else
   {
      var searchWindow = window.open('blank.htm','_searchWindow','width=800,height=600,scrollbars=yes,resizable=1,toolbar=no,status=0,menubar=false');
      searchWindow.moveTo((screen.width-700)/2,(screen.height-500)/2);
      var frmFind=document.forms["frmFindRecord"];
      frmFind.target='_searchWindow';
      frmFind.submit();
      searchWindow.focus();
   }
   return true;
}

function redrawDropdown (f1,f2)
{
    var frmRedraw=document.forms['frmRedrawDropdown'];
    frmRedraw.dropdownFieldRef.value=f1; 
    frmRedraw.dropdownFieldValue.value=f2; 
    return doRedraw();
}

function doRedraw()
{
   var frmRedraw=document.forms['frmRedrawDropdown'];
   frmRedraw.target='_hiddenWindow';
   frmRedraw.submit();
   return true;
}

function registerVerify (codeField,descField,codeInput,inDescField,inputField)
{
   var frmVerify=document.forms['frmFindRecord'];
   frmVerify.action="verify.asp";
   frmVerify.refReturnFieldCode.value=codeField; 
   frmVerify.refReturnFieldDesc.value=descField; 
   frmVerify.refUpdateField.value=codeInput; 
   frmVerify.refField.value=inDescField;
   if (inDescField==0)
   { 
     frmVerify.refCodeValue.value=inputField.value; 
   }
   else
   {
     frmVerify.refDescValue.value=inputField.value; 
   }
   return true;
}

function checkVerify (codeField,descField,codeInput,lookupTable,isTextField,inDescField,inputField,iIndex)
{
   var bFound = 0;
   var frmMain=document.forms['frmMain'];
   lstField = frmMain.elements['list' + codeInput];
   if (lstField)
   {
      bFound = 1;
   }

   if (bFound != 0)
   {

      var frmVerify=document.forms['frmFindRecord'];
      var iSame = 0;
      frmVerify.action="verify.asp";
      frmVerify.refReturnFieldCode.value=codeField; 
      frmVerify.refReturnFieldDesc.value=descField; 
      frmVerify.refUpdateField.value=codeInput;
      frmVerify.refTable.value=lookupTable;
      frmVerify.refField.value=inDescField;
      frmVerify.refDataType.value=isTextField;
      frmVerify.refError.value=iIndex;
      if (codeInput.value=='')
      {
          return false;
      }
      if (inDescField==0)
      { 
         if (frmVerify.refCodeValue.value!=inputField.value)
         {
            iSame = 1;
         }
         frmVerify.refCodeValue.value=inputField.value; 
      }
      else
      {
         if (frmVerify.refDescValue.value!=inputField.value)
         {
            iSame = 1;
         }
         frmVerify.refDescValue.value=inputField.value;
      }
      if (iSame == 1) 
      {
         frmVerify.target='_verifyWindow';
         return findVerify();
      }
   }
}

function confirmFind(codeInput,descInput,errorNumber)
{
  if (!selRow)
  {
     alert('Please select record!');
     return false;
  }
  else
  { 
     if (parent.winPopup)
     {
         if (codeInput)
         {
           var codeField = document.getElementById('IDField'+selRow.id.substring(4,10));        
           codeInput.value=codeField.value;
           if (codeInput.type!='hidden')
           {
              codeInput.focus();
           }
           else
           {
              descInput.focus();
           }
         }
           
         if (descInput)
         {
           var descField = document.getElementById('DescField'+selRow.id.substring(4,10));
           descInput.value=descField.value;
           descInput.focus();
         }
         parent.setError(errorNumber,'');
         parent.windowClose();
     }
     else
     {
        if (1==1)
        {
          
           if (codeInput)
           {
             var codeField = document.getElementById('IDField'+selRow.id.substring(4,10));        
             codeInput.value=codeField.value;
             if (codeInput.type!='hidden')
             {
                codeInput.focus();
             }
             else
             {
                descInput.focus();
             }
           }
           
           if (descInput)
           {
             var descField = document.getElementById('DescField'+selRow.id.substring(4,10));
             descInput.value=descField.value;
             descInput.focus();
           }
           parent.setError(errorNumber,'');
           parent.windowClose();
        }
     }
  }
}

function findVerify()
{
   var frmFind=document.getElementById("frmFindRecord");
   frmFind.target='_hiddenWindow';
   frmFind.submit();
   return true;
}

function showOutline(f1)
{
   f1.className="menubuttonGreyRaised"
}

function removeOutline(f1)
{
   f1.className="menubuttonGrey"
}

function doStatus(f1)
{
   window.status=f1;
}

function checkRadio(f1,f2)
{
   if ((f2.length==2) || (f2.length==3))
   {
      if (f1.value=='')
      {
         f2[0].checked=true;
      }
      else if (f2[0].checked==true)
      {
         f2[1].checked=true;
      }
   }
   else if (f2.length==4)
   {
      if (f1.value=='')
      {
         f2[0].checked=true;
      }
      else if (f2[0].checked==true)
      {
         f2[2].checked=true;
      }
   } 
   else if (f2.length==6)
   {
      if (f1.value=='')
      {
         f2[0].checked=true;
      }
      else if (f2[0].checked==true)
      {
         f2[3].checked=true;
      }
   } 
}

function refreshParentWindow()
{
   if ((parent) && (parent.winPopup))
   {
      var frmMain=parent.document.forms['frmMain'];
      frmMain.submit();
      windowClose();
   }
   else
   {
       if (window.opener)
       {
         var frmMain=window.opener.parent.document.forms['frmMain'];
         frmMain.submit();
         self.focus();
         windowClose();
       }
   }
}

function positionPopup()
{
   winPopup = document.getElementById('winPopup'+swinLevel);
   if (winPopup)
   {     
     if (winPopup.style.visibility!='hidden')
     {
        winPopup.style.width='100%'; 
        winPopup.style.height='100%';
     }
     else
     {
        winPopup.style.width=0;
        winPopup.style.height=0;
        winPopup.style.left=0;
        winPopup.style.top=0;
     }
   }
}

function hideParentScrollbar()
{
   if (parent.winPopup)
   {
       parent.document.body.style.overflow='hidden';
   }
}

function hidePopup()
{
   if (winPopup)
   {     
     winPopup.style.width=0;
     winPopup.style.height=0;
     winPopup.style.left=0;
     winPopup.style.top=0;
     winPopup.style.visibility='hidden';
     winPopup.src='';
     document.body.style.overflow='auto';
     var tblMain = document.getElementById('tblMain');
     if (tblMain)
     {
         tblMain.style.visibility='visible';
     }
     var fraGrid = document.getElementById('fraGrid');
     if (fraGrid)
     {
         fraGrid.style.visibility='visible';
     }
   }
}
 
function showParentPopup()
{
   if (parent.winPopup)
   {     
     parent.winPopup.style.width='100%'; 
     parent.winPopup.style.height='100%';
     parent.winPopup.style.visibility='visible';
     var tblMain = parent.document.getElementById('tblMain');
     if (tblMain)
     {
         tblMain.style.visibility='hidden';
     }
     var fraGrid = parent.document.getElementById('fraGrid');
     if (fraGrid)
     {
         fraGrid.style.visibility='hidden';
     }
     if (parent.winPopup.focus)
     {
        parent.winPopup.focus();
     }
   }
}
 
function showPopup()
{
   if (winPopup)
   {     
     winPopup.style.width='100%'; 
     winPopup.style.height='100%'; 
     winPopup.style.visibility='visible';
     var tblMain = document.getElementById('tblMain');
     if (tblMain)
     {
         tblMain.style.visibility='hidden';
     }
     var fraGrid = document.getElementById('fraGrid');
     if (fraGrid)
     {
         fraGrid.style.visibility='hidden';
     }
     if (winPopup.focus)
     {
        winPopup.focus();
     }
   }
}

function windowClose()
{
   if (parent.winPopup)
   {       
      parent.hidePopup();
   }
   else
   {
      window.close();
   }
}

function getMainWindow(f1)
{
   if (winPopup)
   {
      var frmMain = parent.document.forms['frmMain'];
      var f2 = frmMain.elements[f1];
   }
   else
   {
      var frmMain = window.opener.document.forms['frmMain'];
      var f2 = frmMain.elements[f1];
   }
   return f2;
}

function checkRefresh()
{
   if ((parent) && (parent.winPopup))
   {
      var frmMain=parent.document.forms['frmMain'];
      frmMain.submit();
   }
   else
   {
      if (1==1) 
      {
         var frmMain=window.opener.parent.document.forms['frmMain'];
         frmMain.submit();
         self.focus();
      }
   }
   windowClose();
}

function nothing(){}

function verifyInput_allNumbers( theInput )
{
   var str = "0123456789";
   var n = theInput.length;
   var itMatches = 0;

   for (var i=0;i<n;i++)
   {
       itMatches = 0;
       for (var j=0;j<str.length;j++)
       {
         if ( theInput.charAt(i) == str.charAt(j) )
         {
            itMatches=1;
         }
       }

       if (itMatches==0)
       {
           i=n;
       }
   }

   if ( itMatches == 0 )
   {
      return false;
   }
   else
   {
      return true;
   }

}

function parseInput( theInput , dFormat , lngDT )
{
   if (dFormat == 0)
   {
        iiMonth = (theInput.substring(0,2)*1)-1;
        iiDay = theInput.substring(2,4)*1;
        iiYear = theInput.substring(4,8)*1;
   }
   if (dFormat == 1)
   {
        iiDay = theInput.substring(0,2)*1;
        iiMonth = (theInput.substring(2,4)*1)-1;
        iiYear = theInput.substring(4,8)*1;
   }
   if (dFormat == 2)
   {
        iiYear = theInput.substring(0,4)*1;
        iiMonth = (theInput.substring(4,6)*1)-1;
        iiDay = theInput.substring(6,8)*1;
   }

   if (lngDT == 2)
   {
        iiHour = theInput.substring(8,10)*1;
        iiMinute = theInput.substring(10,12)*1;
        sTodayIs = "Now";
   }
   else
   {
        sTodayIs = "Today";
   }

   if ( verifyInput_DateTime( iiDay, iiMonth, iiYear, iiHour, iiMinute )==0 )
   {
      setTimeNow();
   }
}

function verifyInput_DateTime( iiDay, iiMonth, iiYear, iiHour, iiMinute )
{
   returnBoolean = 0;
   iVal = parseInt(iiMonth,10);
   var num = ++iVal;

   switch ( num )
   {
       case  1:
       case  3:
       case  5:
       case  7:
       case  8:
       case 10:
       case 12:

       if (iiDay<=31)
       {
          returnBoolean = 1;
       }
       break;

       case  4:
       case  6:
       case  9:
       case 11:

       if (iiDay<=30)
       {
          returnBoolean = 1;
       }
       break;

       case  2:

       if (isLeapYear(iiYear))
       {
           if (iiDay<=29)
           {
              returnBoolean = 1;
           }
       }
       else
       {
           if (iiDay<=28)
           {
              returnBoolean = 1;
           }
       }
       break;
   }

   if (iiHour!="")
   {
      if (iiHour>23||iiMinute>59)
      {
        returnBoolean = 0;
      }
   }
   return returnBoolean;
}

function setTimeNow()
{
   d = new Date();
   iiDay = d.getDate();
   iiMonth = d.getMonth();
   iiYear = d.getYear();
   iiHour = d.getHours();
   iiMinute = d.getMinutes();
}

function onafterload_c( iiDay, iiMonth, iiYear, iiHour, iiMinute )
{
   iSelDay = iiDay;
   iMonth = iiMonth;
   iYear = iiYear;
   iHour = iiHour;
   iMinute = iiMinute;
   clearAllDays();
   setCurrentDate(iYear, iMonth, iSelDay, iHour, iMinute);
}

function onafterload(iNextMonthDayPressed)
{
   setCurrentDate(iYear, iMonth, iNextMonthDayPressed, iHour, iMinute);
}

function controlAndOpen_calendar(theObj,dFormat)
{
   if ( document.getElementById('calendar').style.visibility == 'hidden' )
   {
      showCalendar(theObj,'txtDate',dFormat);
   }
   else
   {
      hideCalendar();
   }
}

function controlAndOpen_DropDown(num)
{
   if (num==0)
   {
      if (isOpen_DropDownMonth == 1)
      {
         popDownYear(0);
         popUpMonth();
      }
      else
      {
         popDownMonth(0);
      }
   }
   else
   {
      if (isOpen_DropDownYear == 1)
      {
         popDownMonth(1);
         popUpYear();
      }
      else
      {
         popDownYear(1);
      }
   }
}

function isLeapYear(y)
{
   return (y%4!=0) ? false : (y%100!=0) ? true : (y%400!=0) ? false : true;
}

function addDay(iDay)
{
   if(iMaxY==6)
      {iMaxY = 0; iMaxX++;}
   else
      iMaxY ++;
   document.getElementById("cell_" + iMaxX + "_" + iMaxY).innerHTML = String(iDay);
   document.getElementById("cell_" + iMaxX + "_" + iMaxY).onclick = function(){tdclick(this)};
}

function makeDaySelected(iDay)
{
   for(var x=0; x<=5; x++)
      for(var y=0; y<=6; y++)
      {
         if(document.getElementById("cell_" + x + "_" + y).style.color=="")
            if(document.getElementById("cell_" + x + "_" + y).innerHTML==String(iDay))
               document.getElementById("cell_" + x + "_" + y).style.backgroundColor = "#FFAAFF";
      }
}

function getDaysNumberForMonth(iMonth, iYear)
{
   switch (iMonth+1)
   {
      case  1:
      case  3:
      case  5:
      case  7:
      case  8:
      case 10:
      case 12:
         return(31);
         break;
      case  4:
      case  6:
      case  9:
      case 11:
         return(30);
         break;
      case  2:
         if (isLeapYear(iYear))
            return(29)
         else
            return(28);
         break;
   }
}

function checkToday()
{
   if((todayDate.getUTCFullYear() == iYear)&&
      (todayDate.getUTCMonth()+1 == monthName[iMonth]))
   {
      for(var x=0; x<=5; x++)
         for(var y=0; y<=6; y++)
            if((document.getElementById("cell_" + x + "_" + y).innerHTML == String(todayDate.getUTCDate()))&&(document.getElementById("cell_" + x + "_" + y).style.color != "gray"))
            {
               document.getElementById("cell_" + x + "_" + y).innerHTML += "<img src='./images/select.gif'>";
               break;
            }
   }
}

function gotoToday()
{
   d = new Date();
   d.setUTCMonth(todayDate.getUTCMonth());
   d.setUTCFullYear(todayDate.getUTCFullYear());
   iSelDay = d.getUTCDate();
   iMonth = d.getUTCMonth();
   iYear = d.getUTCFullYear();
   iHour = d.getHours();
   iMinute = d.getMinutes();
   clearAllDays();
   onafterload(todayDate.getUTCDate());
}

function fnShowPic(obj, mode)
{
   if (mode == 1)
      document.getElementById(obj).style.filter=''
   else
      document.getElementById(obj).style.filter='gray(), alpha(opacity=50)';
}

function setCurrentDate(iYear, iMonth, iDay, iHour, iMinute)
{
   var s;
   var iLastDayOfMonth;
   var tempDateObj = new Date();
   document.getElementById("spanMonth").innerHTML = "&nbsp;" +   monthName[iMonth] + "&nbsp;<IMG id='changeMonth' style='filter: gray(), alpha(opacity=50);' SRC='./images/dropcal.gif' BORDER=0 onmouseover='fnShowPic(\"changeMonth\",1)' onmouseout='fnShowPic(\"changeMonth\",0)'>";
   document.getElementById("spanYear").innerHTML =                         "&nbsp;<IMG id='changeYear' style='filter: gray(), alpha(opacity=50);' SRC='./images/dropcal2.gif' BORDER=0 onmouseover='fnShowPic(\"changeYear\",1)' onmouseout='fnShowPic(\"changeYear\",0)'>" + "&nbsp;" + iYear;
   crossMonthObj=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth   : document.selectMonth;
   crossYearObj=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear;
   tempDateObj.setUTCFullYear(iYear, iMonth, 1);
   iLastDayOfMonth = getDaysNumberForMonth(iMonth, iYear);
   document.getElementById("txtToday").innerHTML = "<img src=\"./images/select.gif\"><b><FONT size=1>" + sTodayIs + "</FONT></b>";
   document.getElementById("txtToday").onclick = function(){gotoToday()};
   var iDisabledDayBefore = 0;
   var iPrevMonth;
   var iPrevYear = iYear;
   var iDaysInPrevMonth;
   if(tempDateObj.getUTCDay()>0)
      for(var x=0; x<tempDateObj.getUTCDay(); x++)
      {
         iDisabledDayBefore++;
      }
   switch (iMonth)
   {
      case 0:
         iPrevMonth = 11;
         iPrevYear--;
         break;
      default:
         iPrevMonth = iMonth-1;
         break;
   }
   iDaysInPrevMonth = getDaysNumberForMonth(iPrevMonth, iPrevYear);
   var arrTemp = new Array();

   if(tempDateObj.getUTCDay()>0)
   {
      for(var i=iDaysInPrevMonth-iDisabledDayBefore+1; i<=iDaysInPrevMonth;i++)
      {
         arrTemp[arrTemp.length] = i;
      }
      for(var x=0; x<tempDateObj.getUTCDay(); x++)
      {
         document.getElementById("cell_0_" + x).innerHTML = arrTemp[x];
         document.getElementById("cell_0_" + x).onclick = function(){changeDate(2, this)};
         document.getElementById("cell_0_" + x).style.color = "gray";
         iMaxY++;
      }
   }
   else
   {
      for(var i=iDaysInPrevMonth-6; i<=iDaysInPrevMonth;i++)
      {
         arrTemp[arrTemp.length] = i;
      }
      for(var x=0; x<=6; x++)
      {
         document.getElementById("cell_0_" + x).innerHTML = arrTemp[x];
         document.getElementById("cell_0_" + x).onclick = function(){changeDate(2, this)};
         document.getElementById("cell_0_" + x).style.color = "gray";
      }

      iMaxX++;
      iMaxY = 0;
   }

   document.getElementById("cell_" + iMaxX + "_" + iMaxY).innerHTML = "1";
   document.getElementById("cell_" + iMaxX + "_" + iMaxY).onclick = function(){tdclick(this)};

   for(var iCurrentDay = 2; iCurrentDay <= iLastDayOfMonth; iCurrentDay++)
   {
      addDay(iCurrentDay)
   }
   makeDaySelected(iDay);

   var iNextDays = 1;
   for(var i=iMaxY+1; i<=6; i++)
   {
      document.getElementById("cell_" + iMaxX + "_" + i).innerHTML = iNextDays;
      document.getElementById("cell_" + iMaxX + "_" + i).onclick = function(){changeDate(3, this)};
      document.getElementById("cell_" + iMaxX + "_" + i).style.color = "gray";
      iNextDays++;
   }
   if(iMaxX<5)
   {
      iMaxX++;
      iMaxY=0;
      for(var i=iMaxY; i<=6; i++)
      {
         document.getElementById("cell_" + iMaxX + "_" + i).innerHTML = iNextDays;
         document.getElementById("cell_" + iMaxX + "_" + i).onclick = function(){changeDate(3, this)};
         document.getElementById("cell_" + iMaxX + "_" + i).style.color = "gray";
         iNextDays++;
      }
   }
   bIsLoaded = true;

   if (sTodayIs.indexOf("Now")!=-1)
   {

      if(iHour<10){
         self.document.frmCalendar.txt_hh.value="0"+iHour;
      }
      else{
         self.document.frmCalendar.txt_hh.value=iHour;
      }

      if(iMinute<10){
         self.document.frmCalendar.txt_mm.value="0"+iMinute;
      }
      else{
         self.document.frmCalendar.txt_mm.value=iMinute;
      }

      self.document.frmCalendar.txt_hh.focus();
   }
   else
   {
      self.document.frmCalendar.txt_hh.value="";
      self.document.frmCalendar.txt_mm.value="";
   }
   checkToday();
}


function changeDate(mode, obj)
{
   var iNextMonthDayPressed = null;
   if(bIsLoaded)
   {
      switch (mode)
      {
         case 0:
            d.setUTCMonth(obj);
            break;
         case 1:
            d.setUTCFullYear(obj);
            break;
         case 2:
            if(obj != null) iNextMonthDayPressed = obj.innerHTML;
            switch (d.getUTCMonth())
            {
               case 0:
                  d.setUTCMonth(11);
                  d.setUTCFullYear(d.getUTCFullYear()-1);
                  break;
               default:
                  d.setUTCMonth(d.getUTCMonth()-1);
                  break;
            }
            break;
         case 3:
            if(obj != null) iNextMonthDayPressed = obj.innerHTML;
            switch (d.getUTCMonth())
            {
               case 11:
                  d.setUTCMonth(0);
                  d.setUTCFullYear(d.getUTCFullYear()+1);
                  break;
               default:
                  d.setUTCMonth((d.getUTCMonth()+1));
                  break;
            }
            break;
      }
      iMonth = d.getUTCMonth();
      iYear = d.getUTCFullYear();
      clearAllDays();
      iSelDay = iNextMonthDayPressed;
      onafterload(iNextMonthDayPressed);
   }
}

function clearAllDays()
{
   setAllCellsNoColor();
   for(var x=0; x<=5; x++)
      for(var y=0; y<=6; y++)
      {
         document.getElementById("cell_" + x + "_" + y).innerHTML = "";
         document.getElementById("cell_" + x + "_" + y).onclick = "";
         document.getElementById("cell_" + x + "_" + y).style.color = "";
         document.getElementById("cell_" + x + "_" + y).background = "";
      }
   iMaxX = 0;
   iMaxY = 0;
}

function setAllCellsNoColor()
{
   for(var x=0; x<=5; x++)
      for(var y=0; y<=6; y++)
      {
         document.getElementById("cell_" + x + "_" + y).style.backgroundColor = "";
      }
}

function tdclick(obj)
{
   setAllCellsNoColor()
   if(obj.innerHTML!="")
   {
      obj.style.backgroundColor = "#FFAAFF";
      iSelDay = obj.innerHTML;
   }
   fnRetVal();hideCalendar();
}

function fnRetVal()
{
   var retval = "";
   var sSeparator, hourSeparator, separatorBoth;
   var data = document.frmCalendar;
   sSeparator = "";
   hourSeparator = "";
   separatorBoth = "";
   if(iSelDay==null) iSelDay=0;
   var sMonth = String(iMonth+1);
   var sSelDay = iSelDay;
   if(String(iMonth+1).length==1) sMonth = "0" + sMonth;
   if(String(sSelDay).length==1) sSelDay = "0" + sSelDay;
   var sHH = document.getElementById("txt_hh").value+"";
   var sMM = document.getElementById("txt_mm").value+"";

   if ( !(sHH.indexOf(" ")!=-1 || sHH.indexOf("  ")!=-1 || sMM.indexOf(" ")!=-1 || sMM.indexOf("  ")!=-1) ){
      if(sHH.length==1)
      {
         sHH="0"+sHH;
      }

      if(sMM.length==1)
      {
         sMM="0"+sMM;
      }
   }
   else
   {
      sHH="";
      sMM="";
   }
   switch (lngFormat+(lngDT*100))
   {
      case 0:
         if(iSelDay!=0)
            retval += sMonth + sSeparator + sSelDay + sSeparator + iYear;
         else
            retval = -1;
         break;
      case 1:
         if(iSelDay!=0)
            retval += sSelDay + sSeparator + sMonth + sSeparator + iYear;
         else
            retval = -1;
         break;
      case 2:
         if(iSelDay!=0)
            retval += iYear + sSeparator + sMonth + sSeparator + sSelDay;
         else
            retval = -1;
         break;

      case 200:
         if(iSelDay!=0)
            retval += sMonth + sSeparator + sSelDay + sSeparator + iYear  + separatorBoth + sHH + hourSeparator + sMM;
         else
            retval = -1;
         break;
      case 201:
         if(iSelDay!=0)
            retval += sSelDay + sSeparator + sMonth + sSeparator + iYear + separatorBoth + sHH + hourSeparator + sMM;
         else
            retval = -1;
         break;
      case 202:
         if(iSelDay!=0)
            retval += iYear + sSeparator + sMonth + sSeparator + sSelDay + separatorBoth + sHH + hourSeparator + sMM;
         else
            retval = -1;
         break;
   }
   if(retval!=-1) 
   {
       if ((retval.length<12) && (lngDT==2))
       {
          while (retval.length<12)
          {
             retval = retval + '0';
          }
       }
       document.getElementById(objRetName).value = retval;
       displayDate(objRetName+'Display',objRetName,iGlobalDateFormat,bGlobalIncTime,bGlobalOnlyTime)
   }
}

function hideElement( elmID, overDiv )
{
   if(ie)
   {
      for( i = 0; i < document.all.tags(elmID).length; i++ )
      {
         obj = document.all.tags(elmID)[i];
         if( !obj || !obj.offsetParent )   continue;
         objLeft = obj.offsetLeft;
         objTop = obj.offsetTop;
         objParent = obj.offsetParent;
       while( objParent.tagName.toUpperCase() != "BODY" )
         {
            objLeft += objParent.offsetLeft;
            objTop  += objParent.offsetTop;
            objParent = objParent.offsetParent;
         }
       objHeight = obj.offsetHeight;
         objWidth = obj.offsetWidth;
       if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
         else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
         else if( overDiv.offsetTop >= ( objTop + objHeight ));
         else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
         else
         {
            if(obj.id!="selMonth"&&obj.id!="selYear") obj.style.visibility = "hidden";
         }
      }
   }
}

function swapImage(srcImg, destImg)
{
   if (ie)   { document.getElementById(srcImg).setAttribute("src",imgDir + destImg) }
}

function showElement( elmID )
{
   if(ie)
   {
      for( i = 0; i < document.all.tags(elmID).length; i++ )
      {
         obj = document.all.tags( elmID )[i];
       if( !obj || !obj.offsetParent ) continue;
          obj.style.visibility = "";
      }
   }
}

function showCalendar(obj, RetName, dFormat)
{
   isOpen_calendar = -isOpen_calendar;
   var leftpos = 0;
   var toppos = 0;
   aTag = new Object(obj);
   lngFormat = (dFormat % 100);
   lngDT = Math.floor(dFormat / 100);
   objRetName = RetName;

   if (lngDT==2) document.getElementById("div_time").style.display = "block";
   var crossobj = document.getElementById("calendar").style;

   do
   {
      aTag = aTag.offsetParent;
      if (aTag)
      {
         leftpos += aTag.offsetLeft;
         toppos += aTag.offsetTop;
      }
   }
   while ((aTag) && (aTag.tagName!="BODY"));

   crossobj.left =   fixedX==-1 ? obj.offsetLeft + leftpos :   fixedX;
   crossobj.top = fixedY==-1 ? obj.offsetTop + toppos + obj.offsetHeight +2 : fixedY;
   crossobj.visibility=(dom||ie)? "visible" : "show";
   hideElement( 'SELECT', document.getElementById("calendar") );
   hideElement( 'APPLET', document.getElementById("calendar") );

   var inputField = document.getElementById(RetName);
   var theInput = inputField.value;

   if (theInput!="")
   {
      if ( (theInput.length==8||theInput.length==12) && verifyInput_allNumbers( theInput ) )
      {
         parseInput( theInput, lngFormat, lngDT );
      }
      else
      {
         setTimeNow();
      }
      onafterload_c( iiDay, iiMonth, iiYear, iiHour, iiMinute );
   }
   else
   {
      sTodayIs = "Today";
   }
}

function hideCalendar()
{
   isOpen_calendar = -isOpen_calendar;
   showElement( 'select' );
   showElement( 'APPLET' );
   crossMonthObj.visibility = "hidden";
   crossYearObj.visibility = "hidden";
   document.getElementById("calendar").style.visibility = "hidden";
}

function constructMonth()
{
   popDownYear(0);
   document.onselectstart=new Function ("return false")

   if (!monthConstructed)
   {
      sHTML =   ""
      for (i=0; i<12;   i++)
      {
         sName =   monthName[i];
         if (i==iMonth)
         {
            sName =   "<B>" +   sName +   "</B>"
         }
         sHTML += "<tr><td id='m" + i + "' style='cursor:default' onmouseout='this.style.backgroundColor=\"\";this.style.color=\"black\"' onclick='monthConstructed=false;monthSelected=" + i + ";popDownMonth(0);event.cancelBubble=true;changeDate(0, " + i + ");'>&nbsp;" + sName + "&nbsp;</td></tr>"
      }
      document.getElementById("selectMonth").innerHTML = "<table style='font-family:verdana; font-size:9px; border-width:1; border-style:solid; border-color:#000080;' bgcolor='#FFFFFF' cellspacing=0 onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownMonth(1)\",100)' " + sHTML + "</table>"
      monthConstructed=true
   }
}

function popUpMonth()
{
   isOpen_DropDownMonth=-1;
   var crossobj1 = document.getElementById("spanMonth");
   constructMonth()
   crossMonthObj.visibility = (dom||ie)? "visible" : "show";
   crossMonthObj.left = parseInt(crossobj1.offsetWidth,10);
   crossMonthObj.top = parseInt(crossobj1.offsetHeight,10);
   hideElement( 'select', document.getElementById("selectMonth") );
   hideElement( 'APPLET', document.getElementById("selectMonth") );
   fnShowPic("changeMonth",1);
}

function popDownMonth(fromWhere)
{
   if (fromWhere==1)
   {
      document.onselectstart=new Function ("return false");
   }
   else
   {
      document.onselectstart=new Function ("return true");
   }
   isOpen_DropDownMonth=1;
   crossMonthObj.visibility = "hidden";
   fnShowPic("changeMonth",0);
}

function incYear()
{
   for   (i=0; i<7; i++)
   {
      newYear   = (i+nStartingYear)+1
      if (newYear==iYear)
         txtYear = "&nbsp;<B>" + newYear + "</B>&nbsp;"
      else
         txtYear = "&nbsp;" + newYear + "&nbsp;";
      document.getElementById("y"+i).innerHTML = txtYear;
   }
   nStartingYear ++;
   bShow=true
}

function incYear10()
{
   for (i=0; i<7; i++)
   {
      newYear   = (i+nStartingYear)+10;
      if (newYear==iYear)
         txtYear = "&nbsp;<B>" + newYear + "</B>&nbsp;"
      else
         txtYear = "&nbsp;" + newYear + "&nbsp;";
      document.getElementById("y"+i).innerHTML = txtYear;
   }
   nStartingYear = nStartingYear + 10;
   bShow=true
}

function decYear()
{
   for (i=0; i<7; i++)
   {
      newYear = (i+nStartingYear)-1;
      if (newYear == iYear)
         txtYear = "&nbsp;<B>" + newYear + "</B>&nbsp;"
      else
         txtYear = "&nbsp;" + newYear + "&nbsp;"
      document.getElementById("y"+i).innerHTML = txtYear;
   }
   nStartingYear --;
   bShow=true
}

function decYear10()
{
   for (i=0; i<7; i++)
   {
      newYear = (i+nStartingYear)-5;
      if (newYear==iYear)
         txtYear = "&nbsp;<B>" + newYear + "</B>&nbsp;"
      else
         txtYear = "&nbsp;" + newYear + "&nbsp;"
      document.getElementById("y"+i).innerHTML = txtYear;
   }
   nStartingYear = nStartingYear - 5;
   bShow=true
}

function selectYear(nYear)
{
   yearSelected = parseInt(nYear+nStartingYear,10);
   yearConstructed = false;
   popDownYear(1);
   changeDate(1,yearSelected);
}

function popDownYear(fromWhere)
{
   if (fromWhere==0)
   {
      document.onselectstart=new Function ("return false");
   }
   else
   {
      document.onselectstart=new Function ("return true");
   }
   isOpen_DropDownYear=1;
   crossYearObj.visibility= "hidden";
}

function constructYear()
{
   popDownMonth(1);
   sHTML =   "";
   if (!yearConstructed)
   {
      sHTML =   "<tr><td align='center' style='cursor:default' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-1</td>" +
      "<td align='center' style='cursor:default' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear10()\",1)' onmouseup='clearInterval(intervalID1)'>-10</td></tr>"
      j =   0;
      nStartingYear = iYear-3;
      for   (i=(iYear-3); i<=(iYear+3); i++)
      {
         sName =   i;
         if (i==iYear)
         {
            sName =   "<B>" +   sName +   "</B>";
         }
         sHTML += "<tr><td colspan=2 id='y" + j + "' style='cursor:default' onmouseout='this.style.backgroundColor=\"\";this.style.color=\"black\"' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>";
         j ++;
      }
      sHTML += "<tr><td align='center' style='cursor:default' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'   onmouseup='clearInterval(intervalID2)'>+1</td>" +
         "<td align='center' style='cursor:default' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear10()\",1)'   onmouseup='clearInterval(intervalID2)'>+10</td></tr>"
      document.getElementById("selectYear").innerHTML   = "<table style='font-family:verdana; font-size:9px; border-width:1; border-style:solid; border-color:#000080;' bgcolor='#FFFFFF' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear(1)\",100)' cellspacing=0>" + sHTML + "</table>"
      yearConstructed   = true;
   }
}

function popUpYear()
{
   isOpen_DropDownYear=-1;
   var crossobj2 = document.getElementById("spanYear");
   var leftOffset;
   constructYear();
   crossYearObj.visibility = (dom||ie)? "visible" : "show";
   leftOffset = parseInt(crossobj2.offsetWidth,10) + document.getElementById("spanYear").offsetLeft;
   if (ie)
   {
      leftOffset += 6;
   }
   crossYearObj.left = parseInt(crossobj2.offsetWidth,10) + 65;
   crossYearObj.top = parseInt(crossobj2.offsetHeight,10);
}

if(document.all && !document.getElementById)
{
   document.getElementById = function(id)
   {
      return document.all[id];
   }
}

var selRow;
var isOpen_calendar = 1;
var isOpen_DropDownMonth = 1;
var isOpen_DropDownYear = 1;

var iiDay = "";
var iiMonth = "";
var iiYear = "";
var iiHour = "";
var iiMinute = "";

var fixedX = -1
var fixedY = -1
var imgDir = "images"
var monthConstructed = false;
var yearConstructed = false;

var yearSelected;
var crossMonthObj, crossYearObj;
var intervalID1,timeoutID2,intervalID2,timeoutID1;
var nStartingYear;

var iMinYear = 1900;
var iMaxYear = 2100;
var iMaxX = 0;
var iMaxY = 0;
var bIsLoaded = false;
var iSelDay = 0;

var lngFormat = 1;
var lngDT = 0;
var objRetName;

var d = new Date();
var iMonth = d.getMonth();
var iYear = d.getFullYear();
var iHour = d.getHours();
var iMinute = d.getMinutes();
var todayDate = new Date();
var sTodayIs = "Today";

var ie=document.all;
var dom=document.getElementById;

var monthName = new Array("January","February","March","April","May","June","July","August","September","October","November","December")

document.write(""+

   "<div onclick='bShow=true' id='calendar' style='z-index:+999;position:absolute;visibility:hidden;'>"+
   "<FORM name=\"frmCalendar\" method=\"post\">" +
   "<TABLE width=180 cellSpacing=0 cellPadding=0 border=0 style='BORDER-RIGHT: #a0a0a0 1px solid; BORDER-TOP: #a0a0a0 1px solid; FONT-SIZE: 11px; BORDER-LEFT: #a0a0a0 1px solid; BORDER-BOTTOM: #a0a0a0 1px solid; FONT-FAMILY: arial' align=center valign=middle bgColor=white>" +
   "<TR>"+
      "<TD align=left class=\"buttons\" onclick=\"changeDate(2, null);\" onmouseover=\"document.getElementById('arL').style.filter='';\" onmouseout=\"document.getElementById('arL').style.filter='gray(), alpha(opacity=50)';\">&nbsp;&nbsp;<img id='arL' style=\"filter: 'gray(), alpha(opacity=50)'\" src='./images/left.gif'></TD>"+
       "<TD width=150><span id='spanMonth' style='cursor:pointer' onmouseover='fnShowPic(\"changeMonth\",1);window.status=\"Click to select a month.\"' onmouseout='fnShowPic(\"changeMonth\",0);window.status=\"\"' onclick='controlAndOpen_DropDown(0)'></span>&nbsp;<div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;'></div></TD>"+
      "<TD nowrap><span id='spanYear' style='cursor:pointer' onmouseover='fnShowPic(\"changeYear\",1);window.status=\"Click to select a year.\"' onmouseout='fnShowPic(\"changeYear\",0);window.status=\"\"' onclick='controlAndOpen_DropDown(1)'></span><div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>&nbsp;</TD>"+
      "<TD nowrap class=\"buttons\" onclick=\"changeDate(3, null);\" onmouseover=\"document.getElementById('arR').style.filter='';\" onmouseout=\"document.getElementById('arR').style.filter='gray(), alpha(opacity=50)';\"><img id='arR' style=\"filter: 'gray(), alpha(opacity=50)'\" src='./images/right.gif'>&nbsp;</TD>"+
   "</TR>"+
   "<TR>"+
      "<TD colspan=4>"+
      "<TABLE style=\"WIDTH: 100%\" cellSpacing=0 cellPadding=0 width=\"100%\" align=center border=0>"+
      "<TR>"+
         "<TD class=\"weekend\">SU</TD>"+
         "<TD class=\"dayofweek\">MO</TD>"+
         "<TD class=\"dayofweek\">TU</TD>"+
         "<TD class=\"dayofweek\">WE</TD>"+
         "<TD class=\"dayofweek\">TH</TD>"+
         "<TD class=\"dayofweek\">FR</TD>"+
         "<TD class=\"weekend\">SA</TD>"+
      "</TR>"+
      "<TR>"+
         "<TD colspan=7><HR></TD>"+
      "</TR>");

for(var a = 0; a <=5; a++)
{
   document.write(""+"<TR id=\"cell_" + String(a) + "\">");
   for(var b = 0; b<=6; b++)
   {
      document.write("<TD id=\"cell_" + String(a) + "_" + String(b) + "\" class=\"alldays\" onmouseover=\"this.className='alldaysup'\" onmouseout=\"this.className='alldays'\" onclick=\"tdclick(this)\"></TD>");
   }
   document.write("</TR>");
}

document.write("</TABLE></TD></TR></TABLE><TABLE width=180 cellSpacing=0 cellPadding=0 border=0 style='BORDER-RIGHT: #a0a0a0 1px solid; BORDER-TOP: #a0a0a0 1px solid; FONT-SIZE: 11px; BORDER-LEFT: #a0a0a0 1px solid; BORDER-BOTTOM: #a0a0a0 1px solid; FONT-FAMILY: arial' align=center valign=middle bgColor=white>" +
   "<TR><TD colspan=2><div id=\"txtToday\" style='cursor:default'></div><div id='div_time' style='display:none'>HH<input type='text' class='hhmm' id='txt_hh' size='1' maxlength='2' onkeyup='if(isNaN(this.value)||this.value>23||this.value<0) this.value=\"\"' onchange='if(isNaN(this.value)||this.value>23||this.value<0) this.value=\"\"'>MM<input type='text' class='hhmm' id='txt_mm' size='1' maxlength='2' onkeyup='if(isNaN(this.value)||this.value>59||this.value<0) this.value=\"\"' onchange='if(isNaN(this.value)||this.value>59||this.value<0)  this.value=\"\"'></div></TD>"+
   "<TD class=\"alldays\"></TD><TD class=\"alldays\"><span onclick=\"hideCalendar();\" id='img_2'>cancel</span></TD>"+   "</TR></TABLE></FORM></DIV>");

onafterload(null);

var scrollElement, topAnchor;
function bodyScroll () 
{
   if (typeof(pMenu) != 'undefined')
   {
      scrollElement.style.pixelTop=document.body.scrollTop+topAnchor;
      if (pMenu)
      {
         pMenu.position();
      }
   }
}

function stayOnTop(element, top) 
{
   if (!(typeof(element)==undefined) && !(element==undefined)) 
   {
      scrollElement = element;
      topAnchor = top;
      scrollElement.style.position = 'relative';
      window.onscroll = bodyScroll;
      bodyScroll();
   }
}

function padNumericString(sValue,iLen)
{
	for (var iCount = sValue.length; iCount<iLen; iCount++)
	{
		sValue = '0' + sValue;
	}
	return sValue;
}

function checkDate(txtDate,txtHiddenDate,iFormat,bIncludeTime,bTimeOnly)
{
	// Find Date Field and evaluate value.  
	// iFormat = 0 : mm/dd/yyyy
	// iFormat = 1 : dd/mm/yyyy
	// iFormat = 2 : yyyy/mm/dd

	var dtField = document.getElementById(txtDate);
	var dtHiddenField = document.getElementById(txtHiddenDate);
	if ((dtField) && (dtField.value!=''))
	{
		// Get value from textbox.  
		var dtValue = dtField.value.toUpperCase();

		// replace month name with numerical representation
		dtValue = dtValue.replace('JAN','01');
		dtValue = dtValue.replace('FEB','02');
		dtValue = dtValue.replace('MAR','03');
		dtValue = dtValue.replace('APR','04');
		dtValue = dtValue.replace('MAY','05');
		dtValue = dtValue.replace('JUN','06');
		dtValue = dtValue.replace('JUL','07');
		dtValue = dtValue.replace('AUG','08');
		dtValue = dtValue.replace('SEP','09');
		dtValue = dtValue.replace('OCT','10');
		dtValue = dtValue.replace('NOV','11');
		dtValue = dtValue.replace('DEC','12');

		// Set Max Chars for each date/time section.  
		var arrMaxChar = new Array();
		var arrValue = new Array();
		arrValue[1] = '';
		arrValue[2] = '';
		arrValue[3] = '';
		arrValue[4] = '';
		arrValue[5] = '';
		if ((iFormat==0) || (iFormat==1))
		{
			arrMaxChar[1] = 2;
			arrMaxChar[2] = 2;
			arrMaxChar[3] = 4;
		}
		else
		{
			arrMaxChar[1] = 4;
			arrMaxChar[2] = 2;
			arrMaxChar[3] = 2;
		}
		if (iFormat==0)
		{
			var iMonth = 1;
			var iDate = 2;
			var iYear = 3;
		}
		else if (iFormat==1)
		{
			var iMonth = 2;
			var iDate = 1;
			var iYear = 3;
		}
		else if (iFormat==2)
		{
			var iMonth = 2;
			var iDate = 3;
			var iYear = 1;
		}
		if (bIncludeTime==1)
		{
			arrMaxChar[4] = 2;
			arrMaxChar[5] = 2;
		}
		else
		{
			arrMaxChar[4] = 0;
			arrMaxChar[5] = 0;
		}
		if (bTimeOnly==1)
		{
			arrMaxChar[1] = 2;
			arrMaxChar[2] = 2;
			arrMaxChar[3] = 0;
			arrMaxChar[4] = 0;
			arrMaxChar[5] = 0;
		}

		// Store digit blocks in an array.  
		var iArrayPointer = 0;
		var iDigitCount = 0;
		var sDigits = '';
		for (var iCount=0; iCount<=dtValue.length; iCount++)
		{
			// Find out if character is numeric.  
			var iChar = dtValue.charAt(iCount);
			if ((iChar>='0') && (iChar<='9'))
			{
				// Digit found, so add to current string.  
				sDigits = sDigits + iChar;
				iDigitCount ++;
				if (iDigitCount==arrMaxChar[iArrayPointer+1])
				{
					// Reached max character limit for this component
					// So assume next digit is related to next component.  
					iArrayPointer ++;
					arrValue[iArrayPointer] = sDigits;
					iDigitCount = 0;
					sDigits = '';					
				}
			}
			else
			{
				if (sDigits!='')
				{
					// If there is a current value, assume this character is a delimiter
					iArrayPointer ++;
					arrValue[iArrayPointer] = sDigits;
					iDigitCount = 0;
					sDigits = '';
				}
			}
		}

		// Check components are in range.  
		if (bTimeOnly==0)
		{
			iHour = 4;
			iMins = 5;
			if (arrValue[iYear]=='')
			{
				var sNow = new Date(); 
				arrValue[iYear]=sNow.getFullYear();
			}
			if (parseInt(arrValue[iYear],10)<1)
			{
				arrValue[iYear] = '01';
			}
			if ((parseInt(arrValue[iDate],10)<1) || (arrValue[iDate]==''))
			{
				arrValue[iDate] = '01';
			}
			if ((parseInt(arrValue[iMonth],10)<1) || (arrValue[iMonth]==''))
			{
				var sNow = new Date(); 
				arrValue[iMonth]=sNow.getMonth()+'';
			}
			if (parseInt(arrValue[iDate],10)>31)
			{
				arrValue[iDate] = '31';
			}
			if (parseInt(arrValue[iMonth],10)>12)
			{
				arrValue[iMonth] = '12';
			}
		}
		else
		{
			iHour = 1;
			iMins = 2;
		}
		if (parseInt(arrValue[iHour],10)>23)
		{
			arrValue[iHour] = '00';
		}
		if (parseInt(arrValue[iMins],10)>59)
		{
			arrValue[iMins] = '00';
		}

		if (bTimeOnly==0)
		{

			if (parseInt(arrValue[iDate],10)>28)
			{
				// Check if valid for this month ...
				if ((arrValue[iDate]=='31') && ((arrValue[iMonth]==2) || (arrValue[iMonth]==4) || (arrValue[iMonth]==6) || (arrValue[iMonth]==9) || (arrValue[iMonth]==11)))
				{
					arrValue[iDate] = '30';
				}
				if (arrValue[iMonth]==2)
				{
					arrValue[iDate] = '29';
					if (((arrValue[iYear] % 4)!=0) || ((arrValue[iYear] % 2000)==0))
					{
						arrValue[iDate] = '28';
					}
				}
			}
		}

		// Now pad out individual components
		var iMax = arrValue.length-1;
		if (iMax>5)
		{
			iMax = 5;
		}
		for (var iCount = 1; iCount<=iMax; iCount++)
		{
			if ((arrMaxChar[iCount]==4) && (arrValue[iCount]<100))
			{
				// If 2 digit year then add 2000.  
				arrValue[iCount] = parseInt(arrValue[iCount],10) + 2000;
			}
			arrValue[iCount] = padNumericString(arrValue[iCount],arrMaxChar[iCount]);
		}


		// Write Date to hidden field
		var dValue = '';
		if (bTimeOnly==0)
		{
			dValue = arrValue[1] + arrValue[2] + arrValue[3];
		}
		if (bIncludeTime==1)
		{
			dValue = dValue + arrValue[iHour] + arrValue[iMins] + '';
		}
		dtHiddenField.value = dValue;
	}
	if ((dtField) && (dtField.value==''))
	{
		dtHiddenField.value = '';
	}
	displayDate(txtDate,txtHiddenDate,iFormat,bIncludeTime,bTimeOnly);
}

function displayDate(txtDate,txtHiddenDate,iFormat,bIncludeTime,bTimeOnly)
{
	var dtField = document.getElementById(txtDate);
	var dtHiddenField = document.getElementById(txtHiddenDate);
	var dValue1 = '';
	var dValue2 = '';
	var dValue3 = '';
	var dValue4 = '';
	if ((dtHiddenField) && (dtHiddenField.value!=''))
	{
		// Get value from hidden textbox and seperate into components

		var dtValue = dtHiddenField.value;
		if (bTimeOnly==0)
		{
			if (iFormat==0)
			{
				var iMonth=dtValue.substring(0,2);
				var iDay=dtValue.substring(2,4);
				var iYear=dtValue.substring(4,8);
			}
			else if (iFormat==1)
			{
				var iDay=dtValue.substring(0,2);
				var iMonth=dtValue.substring(2,4);
				var iYear=dtValue.substring(4,8);
			}
			else if (iFormat==2)
			{
				var iYear=dtValue.substring(0,4);
				var iMonth=dtValue.substring(4,6);
				var iDay=dtValue.substring(6,8);
			}
			if (bIncludeTime==1)
			{
				var iHour=dtValue.substring(8,10);
				var iMins=dtValue.substring(10,12);
			}


			// Display Value
			if (iDay==1)
			{
				dValue1 = '1st';
			}
			else if (iDay==2)
			{
				dValue1 = '2nd';
			}
			else if (iDay==3)
			{
				dValue1 = '3rd';
			}
			else if (iDay==21)
			{
				dValue1 = '21st';
			}
			else if (iDay==22)
			{
				dValue1 = '22nd';
			}
			else if (iDay==23)
			{
				dValue1 = '23rd';
			}
			else if (iDay==31)
			{
				dValue1 = '31st';
			}
			else
			{
				dValue1 = iDay + 'th';
			}

			var arrMonth = new Array();
			arrMonth[1] = 'January';
			arrMonth[2] = 'February';
			arrMonth[3] = 'March';
			arrMonth[4] = 'April';
			arrMonth[5] = 'May';
			arrMonth[6] = 'June';
			arrMonth[7] = 'July';
			arrMonth[8] = 'August';
			arrMonth[9] = 'September';
			arrMonth[10] = 'October';
			arrMonth[11] = 'November';
			arrMonth[12] = 'December';
		
			dValue2 = arrMonth[parseInt(iMonth,10)] + ''
			dValue3 = iYear;
		}
		else
		{
			var iHour=dtValue.substring(0,2);
			var iMins=dtValue.substring(2,4);

		}
		if (bIncludeTime==1)
		{
			if (bTimeOnly==0)
			{
				dValue4 = '[' + iHour + ':' + iMins + ']';
			}
			else
			{
				dValue4 = iHour + ':' + iMins + '';
			}
		}
		if (iFormat==0)
		{
			dtField.value = dValue2 + ' ' + dValue1 + ' ' + dValue3 + ' ' + dValue4;
		}
		else  if (iFormat==1)
		{
			dtField.value = dValue1 + ' ' + dValue2 + ' ' + dValue3 + ' ' + dValue4;
		}
		else  if (iFormat==2)
		{
			dtField.value = dValue3 + ' ' + dValue2 + ' ' + dValue1 + ' ' + dValue4;
		}
	}
	else
	{
		if ((dtField) && (dtHiddenField.value!=''))
		{
			dtField.value='';
		}
	}
}

function hasOptions(obj)
{
   if(obj!=null && obj.options!=null)
   {
      return true;
   }
   return false;
}

function sortSelect(obj)
{
   var o = new Array();
   if(!hasOptions(obj))
   {
      return;
   }
   for(var i=0;i<obj.options.length;i++)
   {
      o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
   }
   if(o.length==0){return;}o = o.sort(function(a,b)
   {
      if((a.text+"") <(b.text+""))
      {
         return -1;
      }
      if((a.text+"") >(b.text+""))
      {
         return 1;
      }
      return 0;
    });
    for(var i=0;i<o.length;i++)
    {
       obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
    }
}

function moveSelectedOptions(from,to,hfrom,hto)
{
   for(var i=0;i<from.options.length;i++)
   {
      var o = from.options[i];
      if(o.selected)
      {
         if(!hasOptions(to))
         {
            var index = 0;
         }
         else
         {
            var index=to.options.length;
         }
         to.options[index] = new Option( o.text, o.value, false, false);
         var sFromValue=hfrom.value;
         var sToValue=hto.value;
         sFromValue=sFromValue.replace(', '+o.value+' ','');
         sToValue=sToValue + ', '+o.value + ' ';
         hfrom.value=sFromValue;
         hto.value=sToValue;
      }
   }
   for(var i=(from.options.length-1);i>=0;i--)
   {
      var o = from.options[i];
      if(o.selected)
      {
         from.options[i] = null;
      }
   }
   if((arguments.length<3) ||(arguments[2]==true))
   {
      sortSelect(to);
   }
   from.selectedIndex = -1;to.selectedIndex = -1;
}

function doDrop(inputField,suggestionList,minLength,maxMatches,lookupTable,idField,descField,iMode)
{
        // iMode: 0 = do contains match.  1 = do begins with match.  
	if ((inputField.value=='') || (inputField.value.length<minLength))
 	{
	        suggestionList.style.display='none';
	}
	else
	{
	        suggestionList.style.display='block';
	        suggestionList.options[0] = null;
		var fraLookup = document.getElementById('fra'+inputField.name);
		fraLookup.src='getMatches.asp?match=' + inputField.value + '&maxMatches=' + maxMatches + '&lookupTable=' + lookupTable + '&idField=' + idField + '&descField=' + descField + '&iMode=' + iMode + '&suggestionList=' + suggestionList.name;
	}
}

function selValue(descField,listField,intField,iIndex)
{
        if (listField.selectedIndex!=-1)
        {
            // Need to cancel lookup script.  
            var frmMain = document.forms['frmMain'];
            var iElem=0;
            for (var i=0; i<frmMain.elements.length; i++)
            {
                 if (frmMain.elements[i].name=='txtisSet')
                 {
                     iElem++;
                     if (iElem==iIndex)          
                     {
                         frmMain.elements[i].value='1';
                     }
                 }
            }

	    descField.value=listField.options[listField.selectedIndex].text;
   	    listField.style.display='none';
	    intField.value=listField.options[listField.selectedIndex].value;
            setError(iIndex,'');
        }
}

function setError(iIndex,sText)
{
	if (sText!='')
	{
		iErrors++;
	}
	var iElem = -1;
        var divs = document.getElementsByTagName('div');
	for (var i=0; i<divs.length; i++)
	{
		var div = divs[i];
		if (div.id=='divError')
		{
			iElem ++;
			if (iIndex==iElem)
                        {
		              if (sText!='')
		              {
				div.innerHTML=sText;
		                div.style.display='block';
		              }
		              else
		              {
				div.innerHTML='';
		                div.style.display='none';
		              }
			}
		}
	}
}

function submitForm()
{
   iErrors=0;
   var frmMain=document.forms['frmMain'];
   for (var i=0; i<frmMain.elements.length; i++)
   {
       currentControl = frmMain.elements[i];
       if (currentControl.onblur)
       {
          currentControl.onblur();
       }
   }

   if (iErrors==0)
   {
      frmMain.submit();
   }
   else
   {
      alert('Please correct errors before proceeding!');
      return false;
   }
}

function setSearchAction(iAction)
{
  var frmMain=document.forms['frmMain'];
  var txtMainAction=document.getElementById("txtMainAction"); 
  txtMainAction.value = iAction;
  searchAction();
}

function autoSearch()
{
  var tabNavigator=document.getElementById("tabNavigator");
  if (tabNavigator)
  {
     tabNavigator.innerHTML='';
     tabNavigator.style.display='block';
  }
  var frmMain=document.forms['frmMain'];
  frmMain.target='fraGrid';
  frmMain.action='grid.asp';
  frmMain.txtPageNumber.value='1';
  frmMain.submit();
  var fraGrid=document.getElementById('fraGrid');
  if (fraGrid)
  {
     fraGrid.style.display='block';
  }
  return false;
}

function searchAction()
{
   var InWindow = document.forms['frmMain'].elements['InWindow'];
   InWindow.value='1';

   var frmMain=document.forms['frmMain'];
   var txtMainAction=document.getElementById("txtMainAction"); 

   var iErrors=0;
   for (var i=0; i<frmMain.elements.length; i++)
   {
      if (frmMain.elements[i].name=='divError')
      {
        if (frmMain.elements[i].innerHTML!='')
        {
            iErrors++;
        }
      }
   }

   if (iErrors==0)
   {
     var iAction=txtMainAction.value;
 
    if (iAction==0) // Search
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='1';

         var tabNavigator=document.getElementById("tabNavigator");
         if (tabNavigator)
         {
            tabNavigator.innerHTML='';
            tabNavigator.style.display='block';
         }
         var frmMain=document.forms['frmMain'];
         frmMain.target='fraGrid';
         frmMain.action='grid.asp';
         frmMain.txtPageNumber.value='1';
         frmMain.submit();
         var fraGrid=document.getElementById("fraGrid");   
         if (fraGrid)
         {
            fraGrid.style.display='block';
         }
         return false;
     }
     else if (iAction==1) // Add a Search Condition
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='0';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_self';
         frmMain.action='search.asp';
         frmMain.submit();
         return false;
     }
     else if (iAction==2) // Remove a Search Condition
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='0';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_self';
         frmMain.action='search.asp';
         frmMain.submit();
         return true;
     }
     else if (iAction==3) // Add an Order By Item
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='0';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_self';
         frmMain.action='search.asp';
         frmMain.submit();
         return true;
     }
     else if (iAction==4) // Remove an Order By Item
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='0';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_self';
         frmMain.action='search.asp';
         frmMain.submit();
         return true;
     }
     else if (iAction==5) // Search
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='1';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_self';
         frmMain.action='search.asp';
         frmMain.submit();
         return true;
     }
     else if (iAction==6) // Export
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='1';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_hiddenWindow';
         frmMain.action='csv.asp';
         frmMain.txtPageNumber.value='1';
         frmMain.submit();
         return false;
     }
     else if (iAction==7) // Report Format
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='1';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_self';
         frmMain.action='search.asp';
         frmMain.submit();
         return true;
     }
     else if (iAction==8) // Print
     {
         var InWindow = document.forms['frmMain'].elements['InWindow'];
         InWindow.value='1';

         var frmMain=document.forms['frmMain'];
         frmMain.target='_hiddenWindow';
         frmMain.action='grid.asp';
         frmMain.submit();
         return false;
     }
     else
     {
        return false;
     }
   }
   else
   {
       alert('Please correct errors before proceeding!');
       return false;
   }
}

function dataFeeder(iAction,iRow,iValue)
{
   var frmFeeder=document.getElementById("frmFeeder");
   var txtFeederAction=document.getElementById("txtFeederAction"); 
   var txtFeedRow=document.getElementById("txtFeedRow"); 
   var txtSelectedField=document.getElementById("txtSelectedField"); 
   
   if (iAction==1)  // Field Selected
   {
      txtFeederAction.value=iAction;
      txtFeedRow.value=iRow;
      txtSelectedField.value=iValue
      frmFeeder.submit();
   }
}

function updateOrderBy(iValue1A,iValue1B,iValue2A,iValue2B,iValue3A,iValue3B)
{
   var frmFeeder=document.getElementById("frmFeeder");
   var txtFeederAction=document.getElementById("txtFeederAction"); 
   var txtValue1A=document.getElementById("txtValue1A"); 
   var txtValue1B=document.getElementById("txtValue1B"); 
   var txtValue2A=document.getElementById("txtValue2A"); 
   var txtValue2B=document.getElementById("txtValue2B"); 
   var txtValue3A=document.getElementById("txtValue3A"); 
   var txtValue3B=document.getElementById("txtValue3B"); 
   
   txtFeederAction.value=2;
   txtValue1A.value=iValue1A;
   txtValue1B.value=iValue1B;
   txtValue2A.value=iValue2A;
   txtValue2B.value=iValue2B;
   txtValue3A.value=iValue3A;
   txtValue3B.value=iValue3B;
   frmFeeder.submit();
}

function showMenu(mnuItem,btnPos,rowPos)
{
   var btnPos=document.getElementById(btnPos);
   var rowPos=document.getElementById(rowPos);
   var mnuAdd=document.getElementById("mnuAdd");
   var mnuSearch=document.getElementById("mnuSearch");

   if (mnuItem==1)
   {
       mnuAdd.style.left=parseInt(btnPos.offsetLeft,10)+parseInt(rowPos.offsetLeft,10);
       mnuAdd.style.display='block';
       mnuSearch.style.display='none';
   }
   else if (mnuItem==2)
   {
       mnuSearch.style.left=parseInt(btnPos.offsetLeft,10)+parseInt(rowPos.offsetLeft,10);
       mnuAdd.style.display='none';
       mnuSearch.style.display='block';
   }
   else
   {
       mnuAdd.style.display='none';
       mnuSearch.style.display='none';
   }
}

function closeMenus()
{
   if (navigator.appName=='Microsoft Internet Explorer')
   {
       showMenu(0,0,0);
   }
}

function doMenu(mnuIndex,mnuItem)
{
   var mnuAdd=parent.document.getElementById("mnuAdd");
   var mnuSearch=parent.document.getElementById("mnuSearch");

   if (mnuIndex==1)
   {
      if (mnuItem==-1)
      {
           mnuAdd.style.display='none';
      }
      else
      {
         top.location='datapage' + mnuItem + '.asp';
      }
   }
   else
   {
      if (mnuItem==-1)
      {
           mnuSearch.style.display='none';
      }
      else
      {
         top.location='search.asp?table=' + mnuItem;
      }
   }
} 

function setDirty()
{
   var fraGrid=document.getElementById("fraGrid");   
   if (fraGrid)
   {
      fraGrid.style.display='none';
   }
   var tabNavigator=document.getElementById("tabNavigator");   
   if (tabNavigator)
   {
      tabNavigator.style.display='none';
   }
   var isDirty=document.getElementById("txtIsDirty");   
   if (isDirty)
   {
      isDirty.value='1';
   }
}

function doSort(btn,sCaption,iField)
{
   var frmMain = parent.document.forms['frmMain']
   var selOrder1=frmMain.elements['selOrder1'];
   var selOrder2=frmMain.elements['selOrder2'];
   var selOrder3=frmMain.elements['selOrder3'];
   var selDirection1=frmMain.elements['selDirection1'];
   var selDirection2=frmMain.elements['selDirection2'];
   var selDirection3=frmMain.elements['selDirection3'];

   // If field already ordered, change to Descending.  
   if (selOrder1.value == iField)
   {
      if (selDirection1.value == '0')
      {
          selDirection1.value = '1';
      }
      else
      {
          selOrder1.value = selOrder2.value;
          selOrder2.value = selOrder3.value;
          selOrder3.value = '';
          selDirection1.value = selDirection2.value;
          selDirection2.value = selDirection3.value;
          selDirection3.value = '0';
      }
   }
   else if (selOrder2.value == iField)
   {
      if (selDirection2.value == '0')
      {
          selDirection2.value = '1';
      }
      else
      {
          selOrder2.value = selOrder3.value;
          selOrder3.value = '';
          selDirection2.value = selDirection3.value;
          selDirection3.value = '0';
      }
   }
   else if (selOrder3.value == iField)
   {
      if (selDirection3.value == '0')
      {
          selDirection3.value = '1';
      }
      else
      {
          selOrder3.value = '';
          selDirection3.value = '0';
      }
   }
   else // Try to add to fields.  
   {
      if (selOrder1.value == '')
      {
          selOrder1.value = iField;
          selDirection1.value = '0';
      }
      else if (selOrder2.value == '')
      {
          selOrder2.value = iField;
          selDirection2.value = '0';
      }
      else if (selOrder3.value == '')
      {
          selOrder3.value = iField;
          selDirection3.value = '0';
      }
      else
      {
          alert('A maximum of 3 fields can be used for ordering.  Please deselect one');
      }
   }
   parent.setSearchAction(0);
}

function selectAll(btnSelect)
{
   if ((btnSelect.tag == 0) || (btnSelect.tag == undefined))
   {
      btnSelect.tag = 1;
      var bSet = true;
   }
   else
   {
      btnSelect.tag = 0;
      var bSet = false;
   }

   chkBoxes = document.getElementsByTagName("input");
   for (var i=0; i<chkBoxes.length; i++) 
   {
       chkBox = chkBoxes[i];
       if (chkBox.type=="checkbox")
       {
          chkBox.checked = bSet;
       }
   }
}
