//#############################
//#  Copyright 2004-2008 Kimball Jensen
//#  Kimball's eCommerce Software (KES_v4_0)
//#  Version 2.0 November 12, 2005
//#  Version 3.0 August 09, 2006
//#  Version 3.1 October 01, 2006
//#  Version 4.0 July 26, 2008
//#    significant changes in v4 include mushoo, improved ppbin, no double payments, helpdesk client, ctm
//#
//#############################
//# PATCHES / ENHANCEMENTS:
//#
//#
//#
//#############################
//#
//# USER REQUESTED CHANGES:
//#
//#
//#############################

  var windowprops = "width=600,height=650,location=no,menubar=no,directories=no,toolbar=no,scrollbars=yes,resizable=yes,status=no";
  var couponHelp = "Please enter your coupon, promotional, or discount code. Once you enter the code, click the 'Redeem' button to verify and apply your discount. The shopping cart page will reload with the discount applied.";
  var undefined;
  var i;
  var f;
  var tm;
  var sig;
  var vcount = 0;
  
  function openThis(file) {
    open(file,"aside",windowprops);    
  }

  function escapeText () {
    document.activity_form.note.value = escape (document.activity_form.note.value);
  }

  function escapeText2 () {
//    document.ccForm.note.value = escape (document.ccForm.note.value);
//    document.ccForm.instructions.value = escape (document.ccForm.instructions.value);
  }

function charAlert(e) {
    var maxlength = 150;
    if(e.value.length > maxlength) {
        e.value= e.value.substring(0,maxlength)
        e.blur()
        alert("Please limit your message to 150 characters or less.")
    }

}

function validateSig(theForm)
{
    if (tm != undefined) {
        theForm.tm.value = tm;
    } else {
        if (vcount == 1) {
            window.location = "/cgi-bin/gateway.cgi?verb=show&amp;page=programErrorPage";
            return false;
        }
        alert ("Unable to comply; required system variable 'TM' missing\n\nTry reloading this screen");
        vcount++;
        return false;
    }
    if (sig != undefined) {
        theForm.sig.value = sig;
    } else {
        if (vcount == 1) {
            window.location = "/cgi-bin/gateway.cgi?verb=show&amp;page=programErrorPage";
            return false;
        }
        alert ("Unable to comply; required system variable 'SIG' missing\n\nTry reloading this screen");
        vcount++;
        return false;
    }
    return true;
}

function validState(formField,fieldLabel)
{
    var result = true;
    if (formField.value == "")
    {
        alert ('Please select the appropriate state');
        formField.focus();
        result = false;
    }
    return result;
}

  function isEmailAddr(email)
  {
    var result = false;
    var theStr = new String(email);
    var index = theStr.indexOf("@");
    if (index > 0)
    {
      var pindex = theStr.indexOf(".",index);
      if ((pindex > index+1) && (theStr.length > pindex+1))
      result = true;
    }
    return result;
  }
  
  function validRequired(formField,fieldLabel,msgBox)
  {
      var result = true;
      if (formField.value == "")
      {
        try
        {
            document.getElementById(msgBox).firstChild.innerHTML = "Please enter a value for the \""+fieldLabel+"\" field.";
            document.getElementById(msgBox).firstChild.className = "aj_red";
        }
        catch (err)
        {
            alert('Please enter a value for the "' + fieldLabel +'" field.');
        }
        formField.focus();
        result = false;
      }
      
      return result;
  }
  
  function allDigits(str)
  {
      return inValidCharSet(str,"0123456789");
  }
  
  function inValidCharSet(str,charset)
  {
      var result = true;
  
      // Note: doesn't use regular expressions to avoid early Mac browser bugs    
      for (var i=0;i<str.length;i++)
          if (charset.indexOf(str.substr(i,1))<0)
          {
              result = false;
              break;
          }
      
      return result;
  }
  
  function inForbiddenCharSet(formField, fieldLabel, charset, msgBox)
  {
    var result = false;
    var badChar = "";
    for (var i=0;i<formField.value.length;i++)
        if (!(charset.indexOf(formField.value.substr(i,1))<0))
        {
            result = true;
            badChar = formField.value.substr(i,1);
            if (badChar == " ")
                badChar = "space character";
            try
            {
                document.getElementById(msgBox).firstChild.innerHTML = 'The "'+fieldLabel+'" field cannot contain the following character:  \n'+badChar;
                document.getElementById(msgBox).firstChild.className = "aj_red";
            }
            catch (err) {
                alert ('The "'+fieldLabel+'" field cannot contain the following character:  \n'+badChar);
            }
            formField.focus();
            break;
        }
     return result;
  }

  function validEmail(formField,fieldLabel,required,msgBox)
  {
      var result = true;
      var badChar = "";
      if (required && !validRequired(formField,fieldLabel,msgBox))
          result = false;
  
      if (result && (formField.value.length > 0) && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
      {
            if (badChar == " ")
                badChar = "space character";
            try
            {
                document.getElementById(msgBox).firstChild.innerHTML = "Please enter a complete email address in the form: yourname\@yourdomain.com";
                document.getElementById(msgBox).firstChild.className = "aj_red";
            }
            catch (err) {
                alert("Please enter a complete email address in the form: yourname\@yourdomain.com");
            }
            formField.focus();
            result = false;
      }
     
    return result;
  }
  
  function validEmail_dupeCheck(formField,fieldLabel,formField2,fieldLabel2,required,msgBox)
  {
      var result = true;
      if (required && !validRequired(formField,fieldLabel,msgBox))
          result = false;
  
      if (result && (formField.value != formField2.value) )
      {
            try
            {
//                    document.getElementById(msgBox).firstChild.innerHTML = result+"<br />"+formField.value+" and "+formField2.value+"<br />The email addresses you supplied are not the same.<br />Please review the email addresses and fix the incorrect one.";
                document.getElementById(msgBox).firstChild.innerHTML = "The email addresses you supplied are not the same.<br />Please review the email addresses and fix the incorrect one.";
                document.getElementById(msgBox).firstChild.className = "aj_red";
            }
            catch (err) {
                alert("The email addresses you supplied are not the same.\n\nPlease review the email addresses and fix the incorrect one.");
            }
            formField2.focus();
            result = false;
      }
     
    return result;
  }
  
  function validNum(formField,fieldLabel,required,digitCount,msgBox)
  {
      var result = true;
      if (required && !validRequired(formField,fieldLabel,msgBox))
          result = false;
  
       if (result)
       {
           if ((!allDigits(formField.value)) || ((formField.value.length > 0) && !(formField.value.length == digitCount)))
           {
              try
              {
                  document.getElementById(msgBox).firstChild.innerHTML = 'Please enter a valid number for the "' + fieldLabel +'" field.';
                  document.getElementById(msgBox).firstChild.className = "aj_red";
              }
              catch (err) {
                  alert('Please enter a valid number for the "' + fieldLabel +'" field.');
              }
              formField.focus();        
              result = false;
          }
      } 
      
      return result;
  }

  function validInt(formField,fieldLabel,required)
  {
      var result = true;
  
      if (required && !validRequired(formField,fieldLabel))
          result = false;
    
       if (result)
       {
//           var num = parseInt(formField.value,10);
           var num = formField.value.toString();
           if ((isNaN(num)) || (!allDigits(formField.value)) || (formField.value < 1))
           {
               alert('Please enter a number for the "' + fieldLabel +'" field.');
              formField.focus();        
              result = false;
          }
      } 
      
      return result;
  }
  
  
  function validDate(formField,fieldLabel,required)
  {
      var result = true;
  
      if (required && !validRequired(formField,fieldLabel))
          result = false;
    
       if (result)
       {
           var elems = formField.value.split("/");
           
           result = (elems.length == 3); // should be three components
           
           if (result)
           {
               var month = parseInt(elems[0],10);
               var day = parseInt(elems[1],10);
               var year = parseInt(elems[2],10);
               result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
                       allDigits(elems[1]) && (day > 0) && (day < 32) &&
                       allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
           }
           
            if (!result)
           {
               alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
              formField.focus();        
          }
      } 
      
      return result;
  }
  
function validateEmailAddys(theForm,ea1,ea2)
{
    var e1 = eval ("document.getElementById('"+ea1+"')");
    var e2 = eval ("document.getElementById('"+ea2+"')");

    if (e1) {
      if ((!validEmail(e1, "Email address", true)) || (inForbiddenCharSet(e1, "Email address", "\'\"\$\% ,"))) {
        return false;
    }
  } else {
    alert ("Field Missing");
    return false;
  }
    if ((e1) && (e2)) {
      if (!validEmail_dupeCheck(e1, "Email address", e2, "Second email address", true)) {
        return false;
    }
  } else {
    alert ("Field Missing");
    return false;
  }
  return true;
}

  

