<!-- hide

var compare_flags = new Array;

function compare_click(theBox)
    {
    if (theBox.checked)
        { compare_flags[theBox.value] = 1; }
        else
        { compare_flags[theBox.value] = 0; }
    }

function compare_save(theForm)
    {
    var compare_data = '';
    var c = null;
    for (c in compare_flags)
        {
        if (compare_flags[c])
            {
            compare_data += c + ',';
            }
        }
    theForm.PartList.value = compare_data;
    if (compare_data != "") return true;
    alert("You must choose some products to compare!");
    return false;
    }


function visit(url) { document.location.href = url; }

function checkEmail (strng)
    {
    var error = "";
    if (strng == "") { error = "You must provide an email address"; }
    var emailFilter=/^.+@.+\..{2,4}$/;
    if (!(emailFilter.test(strng)))
        {
        error = "You must provide a valid email address";
        }
    else
        {
        var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/;
        if (strng.match(illegalChars))
            {
            error = "The email address contains illegal characters";
            }
        }
    return error;
    }

function checkPassword (strng)
    {
    var error = "";
    if (strng == "") { error = "Please enter a password"; }
    var illegalChars = /[\W_]/; // allow only letters and numbers
    if (strng.length < 6)
        {
        error = "Your password must be least 6 characters";
        }
    else if (illegalChars.test(strng))
        {
        error = "Your password contains illegal characters";
        }
    return error;
    }

function check_EmailPassword(frm)
    {
    var error = "";
    error = checkEmail(frm.Email.value);
    if (error != "")
        {
        alert(error);
        frm.Email.focus();
        frm.Email.select();
        return false;
        }
    error = checkPassword(frm.Password.value);
    if (error != "")
        {
        alert(error);
        frm.Password.focus();
        frm.Password.select();
        return false;
        }
    return true;
    }

function check_Email(frm)
    {
    var error = "";
    error = checkEmail(frm.Email.value);
    if (error != "")
        {
        alert(error);
        frm.Email.focus();
        frm.Email.select();
        return false;
        }
    return true;
    }

function check_Passwords(frm)
    {
    var error = "";
    error = checkPassword(frm.PW1.value);
    if (error != "")
        {
        alert(error);
        frm.PW1.focus();
        frm.PW1.select();
        return false;
        }
    if (frm.PW1.value != frm.PW2.value)
        {
        alert("Your passwords do not match");
        frm.PW1.focus();
        frm.PW1.select();
        return false;
        }
    return true;
    }

function check_CardDetails(frm)
    {
    var cardDate = 0;
    var isValid = false;
    var error = "";
    if (!frm.PaymentTypeID.value)
        {
        alert('You must choose a card type');
        frm.PaymentTypeID.focus();
        return false;
        }
    isValid = check_CreditCard(frm.CardNumber.value,frm.PaymentTypeID.value)
    if (!isValid)
        {
        alert('Your card number is invalid');
        frm.CardNumber.focus();
        frm.CardNumber.select();
        return false;
        }
    if (frm.StartM.value && frm.StartY.value)
        {
        cardDate = parseInt (frm.StartY.value + frm.StartM.value);
        }
        else
        {
        cardDate = 0;
        }
    if (cardDate > frm.thismonth.value)
        {
        alert('Your card start date is invalid');
        frm.StartM.focus();
        return false;
        }
    if (frm.EndM.value && frm.EndY.value)
        {
        cardDate = parseInt (frm.EndY.value + frm.EndM.value);
        }
        else
        {
        cardDate = 0;
        }
    if (cardDate < frm.thismonth.value)
        {
        alert('Your card expiry date is invalid');
        frm.EndM.focus();
        return false;
        }
    if ( ((frm.PaymentTypeID.value == 5) || (frm.PaymentTypeID.value == 3)) && (!frm.SwitchIssue.value) )
        {
        alert('You must enter an issue number for this card type');
        frm.SwitchIssue.focus();
        return false;
        }
    if ( ((frm.PaymentTypeID.value == 4) || (frm.PaymentTypeID.value == 2) || (frm.PaymentTypeID.value == 1)) && (!frm.SecurityNumber.value) )
        {
        alert('You must enter the security number for this card type');
        frm.SecurityNumber.focus();
        return false;
        }
    return true;
    }

function check_NewForm(frm)
    {
    var cardDate = 0;
    var isValid = false;
    var error = "";
    if (frm.FirstName.value.length < 2)
        {
        alert('You must provide a first name');
        frm.FirstName.focus();
        frm.FirstName.select();
        return false;
        }
    if (frm.Surname.value.length < 2)
        {
        alert('You must provide a last name');
        frm.Surname.focus();
        frm.Surname.select();
        return false;
        }
    if (frm.Address1.value.length < 2)
        {
        alert('You must provide a full address');
        frm.Address1.focus();
        frm.Address1.select();
        return false;
        }
    if (frm.Town.value.length < 2)
        {
        alert('You must provide a full address');
        frm.Town.focus();
        frm.Town.select();
        return false;
        }
    if (frm.County.value.length < 2)
        {
        alert('You must provide a full address');
        frm.County.focus();
        frm.County.select();
        return false;
        }
    if (frm.PhoneNumber.value.length < 8)
        {
        alert('You must provide a full national telephone number');
        frm.PhoneNumber.focus();
        frm.PhoneNumber.select();
        return false;
        }
    error = checkEmail(frm.EmailAddress.value);
    if (error != "")
        {
        alert(error);
        frm.EmailAddress.focus();
        frm.EmailAddress.select();
        return false;
        }
    if (!frm.PaymentTypeID.value)
        {
        alert('You must choose a card type');
        frm.PaymentTypeID.focus();
        return false;
        }
    isValid = check_CreditCard(frm.CardNumber.value,frm.PaymentTypeID.value)
    if (!isValid)
        {
        alert('Your card number is invalid');
        frm.CardNumber.focus();
        frm.CardNumber.select();
        return false;
        }
    if (frm.StartM.value && frm.StartY.value)
        {
        cardDate = parseInt (frm.StartY.value + frm.StartM.value);
        }
        else
        {
        cardDate = 0;
        }
    if (cardDate > frm.thismonth.value)
        {
        alert('Your card start date is invalid');
        frm.StartM.focus();
        return false;
        }
    if (frm.EndM.value && frm.EndY.value)
        {
        cardDate = parseInt (frm.EndY.value + frm.EndM.value);
        }
        else
        {
        cardDate = 0;
        }
    if (cardDate < frm.thismonth.value)
        {
        alert('Your card expiry date is invalid');
        frm.EndM.focus();
        return false;
        }
    if ( (frm.PaymentTypeID.value == 5) && (!frm.SwitchIssue.value) )
        {
        alert('You must enter an issue number for this card type');
        frm.SwitchIssue.focus();
        return false;
        }
    if ( ((frm.PaymentTypeID.value == 4) || (frm.PaymentTypeID.value == 2) || (frm.PaymentTypeID.value == 1)) && (!frm.SecurityNumber.value) )
        {
        alert('You must enter the security number for this card type');
        frm.SecurityNumber.focus();
        return false;
        }
    return true;
    }

function check_CreditCard(cardNumber,cardType)
{
  var isValid = false;
  var ccCheckRegExp = /[^\d -]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/[^0-9]/g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "7": // Electron
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^4(5|8|9)/;
        break;
      case "6": // JCB
        lengthIsValid = (cardNumberLength == 15 || cardNumberLength == 16);
        prefixRegExp = /^(35|21|18)/;
        break;
      case "5": // SOLO
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 18 || cardNumberLength == 19);
        prefixRegExp = /^(63|67)/;
        break;
      case "4": // AMEX
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;
      case "3": // Switch
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 18 || cardNumberLength == 19);
        prefixRegExp = /^(49|56|63|67)/;
        break;
      case "2": // Master Card
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;
      case "1": // VISA
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;
      default:
        prefixRegExp = /^$/;
        alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; digitCounter >= 0; digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0; productDigitCounter < numberProduct.length; productDigitCounter++)
      {
        checkSumTotal += parseInt(numberProduct.charAt(productDigitCounter));
      }
    }

    isValid = (checkSumTotal % 10 == 0);
  }

  return isValid;
}

function checksearch(frm)
    {
    if (frm.SearchString.value == "")
        {
        alert('You must enter a search string');
        frm.SearchString.focus();
        return false;
        }
    return true;
    }











        function expand(section)
            {
            if (eval(section).style.display=='none')
                {
                eval(section).style.display='';
                }
            else
                {
                eval(section).style.display='none';
                }
            }

        function openwin(url,wintype,winheight,winwidth)
            {
            //Default sizes for window
            if (winheight==null) winheight='280';
            if (winwidth==null) winwidth='350';

            //give prod info windows a handle unique(ish) to the sku/qlink
            var WinID = 0
            if (url.charCodeAt)
                for(iLoop=0;iLoop<url.length;iLoop++)
                    WinID += url.charCodeAt(iLoop);

            window.name="mainwin"

            if (wintype=="cvvwin") window.open(url,WinID, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=425,height=275');
            if (wintype=="surveywin") window.open(url,WinID, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=600,height=600');
            if (wintype=="prodwin") window.open(url,WinID, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=470,height=540');
            if (wintype=="assocwin") window.open(url,'assocwin', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=470,height=540');
            if (wintype=="mfrwin") window.open(url, wintype, 'toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1');
            if (wintype=="pricewin") window.open(url, wintype, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=300,height=100');
            if (wintype=="infowin") window.open(url, wintype, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=300,height=100');
            if (wintype=="linkwin") window.open(url, wintype, 'toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1');
            if (wintype=="helpwin") window.open(url, wintype, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+winwidth+',height='+winheight);
            if (wintype=="mailwin") window.open(url, wintype, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+winwidth+',height='+winheight);
            if (wintype=="ODwin") window.open(url, wintype, 'toolbar=0,location=1,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width='+winwidth+',height='+winheight);
            }

// -->
