function LTrim( str )
{
   if ( !str ) return( str );

   var whitespace = " \t\n\r";

   if ( whitespace.indexOf( str.charAt(0) ) != -1)
      {
      var j=0, i = str.length;
      while ( j < i && whitespace.indexOf( str.charAt(j) ) != -1) j++;
      str = str.substring( j, i );
      }
   return( str );
}

/*-------------------------------------------------------------------------*/

function RTrim( str )
{
   if ( !str ) return( str );

   var whitespace = " \t\n\r";

   if ( whitespace.indexOf( str.charAt( str.length-1 ) ) != -1 )
      {
      var i = str.length - 1;
      while ( i >= 0 && whitespace.indexOf( str.charAt(i) ) != -1 ) i--;
      str = str.substring( 0, i+1 );
      }
   return( str );
}

/*-------------------------------------------------------------------------*/

function Trim(str)
{
   return ( RTrim( LTrim( str ) ) );
}

/*-------------------------------------------------------------------------*/

function CharCount( sStr, sChr )
{
   var nPos, nCnt = 0;

   if ( sChr != "" )
      {
      while ( (nPos = sStr.indexOf( sChr )) != -1 )
         {
         nCnt++;
         sStr = sStr.substr( nPos + 1 );
         }
      }
   return( nCnt );
}

/*-------------------------------------------------------------------------*/

function StrRep( sSource, sFind, sReplace )
{
   if( sSource && sFind != sReplace )
      {
      var nFindLen    = sFind.length;
      var nReplaceLen = sReplace.length;
      var nPos        = 0;

      while ( (nPos = sSource.indexOf( sFind, nPos )) != -1 )
         {
         sSource = sSource.substr( 0, nPos ) + sReplace + sSource.substr( nPos + nFindLen );
         nPos += nReplaceLen;
         }
      }
   return( sSource );
}

/*-------------------------------------------------------------------------*/

function stripAlpha( sStr )
{
   var i = 0;
   var digitString = "";

   if ( !sStr || sStr.length == 0 ) return( sStr );

   for ( i = 0; i < sStr.length; i++ )
      {
      var thisChar = sStr.charAt( i );
      if ( thisChar >= '0' && thisChar <= '9' && thisChar != ' ' ) digitString += thisChar;
      }
   return( digitString );
}       

//----------------------------------------------------------------------------

function StripChars( sStr, sChr )
{
   var sRes = "";

   if ( !sStr ) return( sStr );

   for ( var i = 0; i < sStr.length; i++ )
      {
      var cChr = sStr.charAt( i );
      if ( sChr.indexOf( cChr ) == -1 ) sRes += cChr;
      }
   return( sRes );
}       

//----------------------------------------------------------------------------

function isValidInput( sStr, sValid, bReq )
{
   if ( !sStr ) sStr = "";
   if( !sStr.length && bReq ) return( false );

   if ( sValid == "ALL" ) return( true );

   for ( var i=0; i < sStr.length; i++ )
      if ( sValid.indexOf( sStr.substr( i, 1 ) ) == -1 ) return( false );

   return( true );
}

//----------------------------------------------------------------------------

function SetValidClassName( obCtrl, bValid, sClass, sEClass )
{
   if ( obCtrl.type == "radio" )
      {
      var obParent = document.forms[0];

      for ( var i=0; i < obParent.elements.length; i++ )        
         {
         if (obParent.elements[i].type == "radio" && obParent.elements[i].name == obCtrl.name ) 
            {
            if ( bValid  && sClass  ) obParent.elements[i].className = sClass;
            if ( !bValid && sEClass ) obParent.elements[i].className = sEClass;
            }
         }
      }
   else
      {
      if ( bValid  && sClass  ) obCtrl.className = sClass;
      if ( !bValid && sEClass ) obCtrl.className = sEClass;
      }
}

//----------------------------------------------------------------------------

function isValidInputCtrl( sCtrl, sValid, bReq, sClass, sEClass, bNoZero )
{
  var bValid = isValidInput( GetControlValue( sCtrl, null, null, bNoZero ), sValid, bReq );
  
  SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

  return( bValid );
}

//----------------------------------------------------------------------------

function isValidAlpha( sStr, bReq )
{
   return( isValidInput( sStr, " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", bReq ));
}       

//----------------------------------------------------------------------------

function isValidDigit( sStr, bReq, bNoZero )
{
   return( isValidInput( sStr, "1234567890", bReq ));
}       

//----------------------------------------------------------------------------

function isValidDigitCtrl( sCtrl, bReq, sClass, sEClass, bNoZero )
{
   var bValid = isValidDigit( GetControlValue( sCtrl, null, null, bNoZero ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}       

//----------------------------------------------------------------------------

function isValidInteger( sStr, bReq )
{
   if ( !sStr ) return( bReq ? false : true );
   if ( sStr.indexOf( "-" ) > 0 ) return( false);

   var aCommas = sStr.split( "," );

   for ( var i = 1; i < aCommas.length; i++ )
      {
      if ( aCommas[i].length != 3 ) return( false );
      }

   return( isValidDigit( StrRep( sStr, ",", ""), bReq ));
}       

//----------------------------------------------------------------------------

function isValidIntegerCtrl( sCtrl, bReq, sClass, sEClass, bNoZero )
{
   var bValid = isValidInteger( GetControlValue( sCtrl, null, null, bNoZero ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}       

//----------------------------------------------------------------------------

function isValidDecimal( sStr, bReq )
{
   if ( !sStr ) return( bReq ? false : true );

   if ( CharCount( sStr, "." ) > 1 ) return( false );
   if ( sStr.indexOf( "-" ) > 0 ) return( false);

   var nPos = sStr.indexOf( "." );
   var sExp = "";

   if ( nPos >= 0 )
      {
      var sExp = sStr.substr( nPos + 1 );
      if ( sExp.length > 2 ) return( false );
      sStr = sStr.substr( 0, nPos );
      }

   if ( bReq && sStr == "" && sExp == "" ) return( false );
   return( isValidInteger( sStr, false ) && isValidInteger( sExp, false ) );
}       

//----------------------------------------------------------------------------

function isValidDecimalCtrl( sCtrl, bReq, sClass, sEClass, bNoZero )
{
   var bValid = isValidDecimal( GetControlValue( sCtrl, null, null, bNoZero ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}       

//----------------------------------------------------------------------------

function isValidCurrency( sCur, bReq, bNoZero )
{
  if ( !sCur ) sCur = "";
  return ( isValidDecimal( StrRep( sCur, "$", "" ), bReq ));
}

//----------------------------------------------------------------------------

function isValidCurrencyCtrl( sCtrl, bReq, sClass, sEClass, bNoZero )
{
   var bValid = isValidCurrency( GetControlValue( sCtrl, null, null, bNoZero ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}

//----------------------------------------------------------------------------

function isValidSymbol( sStr, bReq )
{
   return( isValidInput( sStr, " ~`!@#$%^&*()_-=+{}[]|\\:;\"'<>,.?/\x08", bReq ));
}       

//----------------------------------------------------------------------------

function _isValidEmail( emailStr )
{
   var checkTLD     = 1;
   var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
   var emailPat     = /^(.+)@(.+)$/;
   var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
   var validChars   = "\[^\\s" + specialChars + "\]";
   var quotedUser   = "(\"[^\"]*\")";
   var ipDomainPat  = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
   var atom         = validChars + '+';
   var word         = "(" + atom + "|" + quotedUser + ")";
   var userPat      = new RegExp( "^" + word + "(\\." + word + ")*$" );
   var domainPat    = new RegExp( "^" + atom + "(\\." + atom +")*$" );

   var matchArray = emailStr.toLowerCase().match( emailPat );

   if ( matchArray == null)
      {
      //alert("Email address seems incorrect (check @ and .'s)");
      return( false );
      }

   var user   = matchArray[1];
   var domain = matchArray[2];

   for ( var i=0; i<user.length; i++ )
      {
      if ( user.charCodeAt(i) > 127 )
         {
         //alert("Ths username contains invalid characters.");
         return( false );
         }
      }

   for ( var i=0; i<domain.length; i++ )
      {
      if ( domain.charCodeAt(i) > 127 )
         {
         //alert("Ths domain name contains invalid characters.");
         return( false );
         }
      }

   if ( user.match( userPat ) == null )
      {
      //alert("The username doesn't seem to be valid.");
      return( false );
      }

   var IPArray = domain.match( ipDomainPat );
   if ( IPArray != null )
      {
      for ( var i=1; i<=4; i++ )
         {
         if ( IPArray[i] > 255 )
            {
            //alert("Destination IP address is invalid!");
            return( false );
            }
         }
      return( true );
      }

   var atomPat = new RegExp( "^" + atom + "$" );
   var domArr  = domain.split( "." );
   var len     = domArr.length;

   for (var i=0; i<len; i++ )
      {
      if ( domArr[i].search( atomPat ) == -1 )
         {
         //alert("The domain name does not seem to be valid.");
         return( false );
         }
      }

   if ( checkTLD && domArr[domArr.length-1].length != 2 && domArr[domArr.length-1].search(knownDomsPat) == -1 )
      {
      //alert("The address must end in a well-known domain or two letter " + "country.");
      return( false );
      }

   if ( len < 2 )
      {
      //alert("This address is missing a hostname!");
      return( false );
      }

   return( true );
}

//----------------------------------------------------------------------------

function isValidEmail( str, bReq )
{
   if ( !str ) return( bReq ? false : true );

   return( _isValidEmail( str ) ? isValidInput( str, "ALL", bReq ) : false );
}        

//----------------------------------------------------------------------------

function isValidEmailCtrl( sCtrl, bReq, sClass, sEClass )
{
   var bValid = isValidEmail( GetControlValue( sCtrl, null, null ), bReq );
 
   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );
   
   return( bValid );
}        

//----------------------------------------------------------------------------

function isValidURL( str, bReq )
{
   if ( !str ) return( bReq ? false : true );
   
   var lstr = str.length;
   var ldot = str.lastIndexOf( "." );
   var bRes = true;

   if ( !bReq && lstr == 0 ) return( true );

   if ( ldot == -1 || ldot > lstr - 3  || str.lastIndexOf( "." ) < lstr - 5 ) bRes = false;
   if ( str.indexOf( "." ) == 0 || str.indexOf( " " ) != -1 ) bRes = false;

   return( bRes ? isValidInput( str, "ALL", bReq ) : bRes );
}        

//----------------------------------------------------------------------------

function isValidURLCtrl( sCtrl, bReq, sClass, sEClass )
{
   var bValid = isValidURL( GetControlValue( sCtrl, null, null ), bReq );
 
   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );
   
   return( bValid );
}        

//----------------------------------------------------------------------------

function isValidPhone( sPhone, bReq )
{
  if( !sPhone ) return( bReq ? false : true );

  sPhone = StripChars( sPhone, "()- " );
  if ( bReq ) { if ( sPhone.length != 10 ) return( false ); }
  else if ( sPhone.length > 0 && sPhone.length != 10 ) return( false );

  return( isValidDigit( sPhone, false ));
}

//----------------------------------------------------------------------------

function isValidPhoneCtrl( sCtrl, bReq, sClass, sEClass )
{
   var bValid = isValidPhone( GetControlValue( sCtrl ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}

//----------------------------------------------------------------------------

function isValidZIP( sZIP, bReq, sType )
{
  if ( !sZIP ) return( bReq ? false : true );

  sZIP = StripChars( sZIP, " -" );

  sZIP = sZIP ? sZIP : "";

  if ( sZIP.length != 0 && sZIP.length != 5 && sZIP.length != 6 && sZIP.length != 9 ) return( false );
  if ( sZIP.length != 0 && sZIP.length != 5 && sZIP.length != 9 && sType == "US" ) return( false );
  if ( sZIP.length != 0 && sZIP.length != 6 && sType == "CAN" ) return( false );

  if ( bReq && sZIP.length == 0 ) return( false );

  if ( sZIP.length == 5 || sZIP.length == 9 ) return ( isValidDigit( sZIP, bReq ));

  var sAlpha = sZIP.charAt(0) + sZIP.charAt(2) + sZIP.charAt(4);
  var sDigit = sZIP.charAt(1) + sZIP.charAt(3) + sZIP.charAt(5);

  return( isValidAlpha( sAlpha, false ) && isValidDigit( sDigit, false ) );
}

//----------------------------------------------------------------------------

function isValidQSZIP( sZIP, bReq )
{
  var bCAN = true, nMaxLen = 6;

  if ( !sZIP ) return( bReq ? false : true );

  sZIP = StripChars( sZIP, " -" );

  sZIP = sZIP ? sZIP : "";

  if ( ( bReq && sZIP.length == 0 ) || sZIP.length < 3 ) return( false );

  var sAlpha = sZIP.charAt(0) + sZIP.charAt(2);
  var sDigit = sZIP.charAt(1);

  if ( !isValidAlpha( sAlpha, false ) )
     {
     bCAN = false;
     nMaxLen = 5;
     sAlpha="";
     sDigit += sZIP.charAt(0) + sZIP.charAt(2);
     }
  
  if ( sZIP.length > 3 ) sDigit += sZIP.charAt(3);
  if ( sZIP.length > 4 )
     {
     if ( bCAN ) sAlpha += sZIP.charAt(4);
     else sDigit += sZIP.charAt(4);
     }
  if ( sZIP.length > 5 ) sDigit += sZIP.charAt(5);

  return( ( sZIP.length <= nMaxLen ) && isValidAlpha( sAlpha, false ) && isValidDigit( sDigit, false ) );
}

//----------------------------------------------------------------------------

function isValidZIPCtrl( sCtrl, bReq, sClass, sEClass, sType )
{
   var bValid = isValidZIP( GetControlValue( sCtrl ), bReq, sType );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}

//----------------------------------------------------------------------------

function isValidQSZIPCtrl( sCtrl, bReq, sClass, sEClass )
{
   var bValid = isValidQSZIP( GetControlValue( sCtrl ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}

//----------------------------------------------------------------------------

function isValidCCNum( sNum, bReq )
{
  if ( !sNum ) return( bReq ? false : true );

  if ( bReq ) { if ( sNum.length < 15 ) return( false ); }
  else if ( sNum.length > 0 && sNum.length < 15 ) return( false );
  return ( isValidDigit( sNum, bReq ));
}

//----------------------------------------------------------------------------

function isValidCCNumCtrl( sCtrl, bReq, sClass, sEClass )
{
   var bValid = isValidCCNum( GetControlValue( sCtrl, null, null ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}

//----------------------------------------------------------------------------

function isValidText( sText, bReq )
{
   return( isValidInput( sText, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
1234567890\
 ~`!@#$%^&*()_-=+{}[]|\\:;\"'<>,.?/\
\x0D\x0A\x08", bReq ));
}       

//----------------------------------------------------------------------------

function isValidTextCtrl( sCtrl, bReq, sClass, sEClass, bNoZero )
{
   var bValid = isValidText( GetControlValue( sCtrl, null, null, bNoZero ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}

//----------------------------------------------------------------------------

function isValidDate( strDate, bReq )
{
   var bResult = false;
	
   if ( !strDate ) return( bReq ? false : true );

   if ( !isValidInput( strDate, "0123456789/", bReq )) return( false );

   if ( strDate == "" ) return( true );
   var dt_elems = strDate.split( "/" ); 
   if( dt_elems.length == 3) 
      {
      if ( dt_elems[2].length < 5 )
         {
         var nMonth, nDay, nYear;

         if ( dt_elems[0].charAt(0) == '0' ) dt_elems[0] = dt_elems[0].substr(1);
         nMonth = parseInt( dt_elems[0], 10 );

         if ( dt_elems[1].charAt(0) == '0' ) dt_elems[1] = dt_elems[1].substr(1);
         nDay = parseInt( dt_elems[1], 10 );

         nYear = parseInt( dt_elems[2], 10 );
         if ( nYear < 100 ) nYear += 2000;

         if ( nMonth > 0 && nMonth < 13 && nDay > 0 )
            {
            if ( nMonth == 2 )
               {
               if ( nYear % 4 == 0 )
                  {
                  if ( nDay <= 29 ) bResult = true;
                  }
               else
                  {
                  if ( nDay <= 28 ) bResult = true;
                  }
               }
            else if( nMonth == 4 || nMonth == 6 || nMonth == 9 || nMonth == 11 )
               {
               if ( nDay <= 30 ) bResult = true;
               }
            else if ( nDay <= 31 ) bResult = true;
            }
         }
      }
   return ( bResult );
}

//----------------------------------------------------------------------------

function isValidDateCtrl( sCtrl, bReq, sClass, sEClass )
{
   var bValid = isValidDate( GetControlValue( sCtrl ), bReq );

   SetValidClassName( GetControl( sCtrl ), bValid, sClass, sEClass );

   return( bValid );
}

//----------------------------------------------------------------------------

function GetControl( sName )
{
   var obCtrl = null;

   for( var i=0; i < document.forms[0].elements.length; i++ )
      {
      if ( document.forms[0].elements[i] != null )
         {
         if ( document.forms[0].elements[i].name == sName )
            {
            obCtrl = document.forms[0].elements[i];
            break;              
            }
         }
      }
   return( obCtrl );
}

//----------------------------------------------------------------------------

function GetControlValue( sName, sClass, sEClass, bNoZero )
{
   var obCtrl = GetControl( sName ), Ret = null;

   if ( !obCtrl )
      {
      alert( "GetControlValue error: Object '" + sName + "' not found");
      return( false );
      }

   if ( obCtrl.type == "radio" )
      {
      var obParent = document.forms[0];

      for ( var i=0; i < obParent.elements.length; i++ )        
         {
         if (obParent.elements[i].type == "radio" && obParent.elements[i].name == obCtrl.name) 
            {
            if ( obParent.elements[i].checked )
               {                 
               Ret = obParent.elements[i].value;
               break;
               }
            }
         }
      }
   else if ( obCtrl.type == "select" || obCtrl.type == "select-one")
      {    
      if ( obCtrl.selectedIndex != -1 )
         Ret = obCtrl.options[obCtrl.selectedIndex].value;
      }
   else if ( obCtrl.type == "select-multiple" )
      {
      for ( var i=0; i < obCtrl.length; i++ )
         {
         if ( obCtrl.options[i].selected )
            {                
            if ( !Ret ) Ret = "";
            if ( Ret != "" ) Ret += ", ";
            Ret += obCtrl.options[i].value;
            }
         }
      }
   else if ( obCtrl.type == "text" || obCtrl.type == "textarea" || obCtrl.type == "hidden" || obCtrl.type == "password" || obCtrl.type == "file" )
      {
      Ret = "" + obCtrl.value;
      var len = parseInt( Ret.length, 10 );
      if ( len > 0 )
         {
         for ( var i=len-1; i >= 0; i-- )
            {
            if ( Ret.charAt(i) != " " ) break;
            }
         if ( i > -1 ) Ret = Ret.substring( 0, i+1 );
         }
      }
   else if ( obCtrl.type == "checkbox" )
      {
      if ( obCtrl.checked ) Ret = "on";
      }

   else alert( "GetControlValue error: Unknown object type '" + obCtrl.type + "'" );

   if ( Ret )
      {
      Ret = Trim( Ret );
      if ( Ret.toString() == ""  || ( bNoZero && parseFloat( Ret ) == 0 ) ) Ret = null;
      }
   if ( sClass || sEClass ) SetValidClassName( obCtrl, Ret ? true : false, sClass, sEClass );
   return( Ret );
}

//----------------------------------------------------------------------------

function SetControlValue( sName, sValue, bNoWarn )
{
   var obCtrl = GetControl( sName );

   if ( !obCtrl )
      {
      if( !bNoWarn ) alert( "SetControlValue error: Object '" + sName + "' not found");
      return( null );
      }

   if ( obCtrl.type == "file" ) return( obCtrl );

   if ( obCtrl.type == "text" || obCtrl.type == "textarea" || obCtrl.type == "hidden" || obCtrl.type == "password" || obCtrl.type == "file" ) obCtrl.value = sValue;
   else if ( obCtrl.type == "select-one" )
      {
      for( var i=0; i < obCtrl.options.length; i++ )
         {
         if ( obCtrl.options[i].value == sValue )
            {
            obCtrl.selectedIndex = i;
            break;
            }
         }
      }
   else if ( obCtrl.type == "select-multiple" )
      {
      var aOpt = sValue.split( ", " );
      for( var i=0; i < obCtrl.options.length; i++ )
         {
         for ( var j=0; j<aOpt.length; j++ )
            {
            if ( obCtrl.options[i].value == aOpt[j] ) obCtrl.options[i].selected = true;
            }
         }
      }
   else if ( obCtrl.type == "radio" )
      {
      var obParent = document.forms[0];

      for ( var i=0; i < obParent.elements.length; i++ )
         {
         if ( obParent.elements[i].type == "radio" && obParent.elements[i].name == sName ) 
            {
            if ( obParent.elements[i].value == sValue || obParent.elements[i].value.toString() == ( sValue.toString() == "True" ? "1" : "0" ) )
               {
               obParent.elements[i].checked = true;
               break;
               }
            else obParent.elements[i].checked = false;           
            }
         }
      }
   else if ( obCtrl.type == "checkbox")
      {
      if ( typeof( sValue ) == "string" )
         {
         sValue = sValue.toLowerCase();
         if ( sValue == "true" || sValue == "on" || sValue == "yes" || sValue == "y" ) obCtrl.checked = true;
         else if ( sValue == "" || sValue == "false" || sValue == "off" || sValue == "no" || sValue == "n" ) obCtrl.checked = false;
         }
      else
         {
         var nValue = parseInt( sValue, 10 );
         if ( isNaN( nValue )) nValue = 0;
         if ( nValue == 0 ) obCtrl.checked = false;
         else obCtrl.checked = true;
         }
      }
   else alert("SetControlValue error: Unknown object type '" + obCtrl.type +"'" );

   return( obCtrl );
}

//----------------------------------------------------------------------------

function SetMonthControlValue( sName, sVal )
{
   if ( sVal != "" && parseInt( sVal, 10 ) < 10 ) sVal = "0" + sVal;
   return( SetControlValue( sName, sVal ));
}

//----------------------------------------------------------------------------

function SetYearControlValue( sName, sVal )
{
   if ( sVal != "" && parseInt( sVal, 10 ) < 100 ) sVal = "20" + sVal;
   return( SetControlValue( sName, sVal ));
}

//----------------------------------------------------------------------------

function SetControlFocus( sName )
{
   var obCtrl = GetControl( sName );

   if ( !obCtrl )
      {
      alert( "SetControlFocus error: Object '" + sName + "' not found");
      return( false );
      }

   obCtrl.focus();

   return( obCtrl );
}

//----------------------------------------------------------------------------

function SelectControl( sName )
{
   var obCtrl = GetControl( sName );

   if ( !obCtrl )
      {
      alert( "SelectControl error: Object '" + sName + "' not found");
      return( false );
      }

   obCtrl.select();

   return( obCtrl );
}

//----------------------------------------------------------------------------

function EnableControl( sName, bEnable )
{
   var obCtrl = GetControl( sName );

   if ( !obCtrl )
      {
      alert( "EnableControl error: Object '" + sName + "' not found");
      return( false );
      }

   obCtrl.disabled = !bEnable;

   return( obCtrl );
}

//----------------------------------------------------------------------------

function SetControlClass( sName, sClass )
{
   var obCtrl = GetControl( sName );

   if ( !obCtrl )
      {
      alert( "SetControlClass error: Object '" + sName + "' not found");
      return( false );
      }

   obCtrl.className = sClass;

   return( obCtrl );
}

//----------------------------------------------------------------------------

function IsIE()
{
   if( navigator.userAgent && navigator.userAgent.indexOf( "MSIE" ) >= 0 ) return( true );
   return( false );
}

//----------------------------------------------------------------------------

function OnDefaultSubmit()
{
   return( false );
}

//----------------------------------------------------------------------------

function SubmitByEnter( e )
{
   var key;

   if( IsIE() ) key = window.event.keyCode;
   else key = e.which;
   if( key == 13 ) OnSubmit();
}

//----------------------------------------------------------------------------

function EnableSubmitControl( sCtrl )
{
   GetControl( sCtrl ).onkeypress = SubmitByEnter;
}

//----------------------------------------------------------------------------

function EnableSubmitControls()
{
   var obCtrl = null, nCnt = 0;

   for( var i=0; i < document.forms[0].elements.length; i++ )
      {
      obCtrl = document.forms[0].elements[i];
      if ( obCtrl )
         {
         if ( obCtrl.name != "qsZIP" && (obCtrl.type == "text" || obCtrl.type == "password" || obCtrl.type == "file" || obCtrl.type == "checkbox" || obCtrl.type == "radio" ) )
            {
            obCtrl.onkeypress = SubmitByEnter;
            nCnt++;
            }
         }
      }
   return( nCnt );
}

//----------------------------------------------------------------------------

function Href( sPage )
{
   return( "/Default.asp?_LINK_=" + sPage );
}

//----------------------------------------------------------------------------
