  function ccValidate(f)
  {   // Validates the credit card form used in classCredit
    var errMessage="";
        var errFound=false;

    if (f.forename.value=="" || f.surname.value=="" || isblank(f.forename.value) || isblank(f.surname.value))
        {
      errMessage+="Please enter your Name\n";
          if (!errFound) {f.forename.focus(); errFound=true;}
    }

    e=f.cardNumber;
    if (e.value=="" || e.value==null || isblank(e.value))
        {
      errMessage+="Please enter your Card number\n";
          if (!errFound) {f.cardNumber.focus(); errFound=true;}
    }

    else {
          var opt=f.cardType.selectedIndex; // Get index of selected option
          var ccType=f.cardType[opt].text;  // Retrieve displayed text of selected option
          var z=IsCCNumberValid(e.value, ccType);

      if (z==0)
          {
            errMessage+="The Card number is invalid for that type\n";
            if (!errFound) {f.cardNumber.select(); errFound=true;}
          }

    }

        if (f.cardEndYear.value<f.cardStartYear.value ||(f.cardEndYear.value==f.cardStartYear.value && f.cardEndMonth.value<=f.cardStartMonth.value))
        {
          errMessage+="Card End date must be later than card Start date\n";
          if (!errFound) {f.cardEndMonth.focus(); errFound=true;}
        }

    if (errMessage!="")
        {
     alert (errMessage);
     return false;
    }
        else return true;
  }

  function IsCCNumberValid(ccNumber, cardType)
  { // Validates a credit card number for Mastercard, Visa, Amex & Diners Club
        ccNumber=ccNumber.replace(/ /g,"");  // Remove any blanks before validating
    if (ccNumber=="M1111") {return 1;}  // Value for testing
    var retval=0;
    if(cardType!=null)
    {
           if(cardType == "Mastercard"){retval = isMCRD(ccNumber);}
       else if(cardType == "Visa"){retval = isVISA(ccNumber);}
       else if(cardType == "American Express"){retval = isAMEX(ccNumber);}
       else if(cardType == "Diners Club"){retval = isDCCB(ccNumber);}
           else {retval=modTen(ccNumber);}
    }
    else
    {
       if(!retval){retval = isMCRD(ccNumber);}
       if(!retval){retval = isVISA(ccNumber);}
       if(!retval){retval = isAMEX(ccNumber);}
       if(!retval){retval = isDCCB(ccNumber);}
           if(!retval)  {retval=modTen(ccNumber);}
    }
    return retval;
  }

  function isMCRD(ccNum)
  { // Validates a Mastercard number
    var preFix = ccNum.substr( 0, 2);
    if(preFix == "51" ||
       preFix == "52" ||
       preFix == "53" ||
       preFix == "54" ||
       preFix == "55")
    {
       if(ccNum.length == 16){return  modTen(ccNum);}
    }
    else
    {
      return 0;
    }
  }

  function isVISA(ccNum)
  { // Validates a Visa number
        var preFix = ccNum.substr(0, 1);
    if(preFix == "4"){
       if(ccNum.length == 13 || ccNum.length == 16){return  modTen(ccNum);}
        }
    else
    {
       return 0;
    }
  }

  function isAMEX(ccNum)
  { // Validates an Amex number
    var preFix = ccNum.substr(0, 2);
    if(preFix == "34" || preFix == "37"){
       if(ccNum.length == 15){return  modTen(ccNum);}
           else {return 0;}
        }
    else
    {
       return 0;
    }
  }

  function isDCCB(ccNum)
  { // Validates a Diners Club number
        preFix = ccNum.substr(0, 3);
    if(preFix == "300" ||
       preFix == "301" ||
       preFix == "302" ||
       preFix == "303" ||
       preFix == "304" ||
       preFix == "305")
    {
       if(ccNum.length == 14){return  modTen(ccNum);}
       else {return 0;}
    }
        preFix = ccNum.substr(0, 2);
    if(preFix == "36" || preFix == "38"){
       if(ccNum.length == 14){
           return  modTen(ccNum);
           }
           else {return 0;}
        }
    else
    {
       return 0;
    }
  }


  function modTen(ccNum)
  { // Modulus 10 calculator used by all credit cards
        var numLen = ccNum.length;
    var tot=0;
    for(var x = numLen; x > 0; x-=2){
          var a=ccNum.substr(x - 1, 1)-0;  // Extract alternate digits as numbers
          tot=tot+a; // and add to the checksum
        }
    for(x = numLen - 1; x > 0; x-=2)
    {
       var y = (ccNum.substr(x - 1, 1)-0) * 2;  // Extract the other alternate digits as numbers, double
                                                    // and add each digit of the result to the checksum
       var z=y+"";
       if(z.length == '1'){tot+=y;}
       if(z.length == '2'){tot=tot+1; tot=tot+y-10; }
    }
        tot=tot+"";
    if(tot.substr(tot.length - 1, 1) == '0'){return 1;}
    else{return 0;}
  }

  function checkIfFull(fieldNo)
  { // Used with classCreditCard to move cursor to next part of card number entry
    // when 4 digits entered in current one
    var eName="cardNumber" + fieldNo;
        var e=getElement(eName);
        if (e.value.length<4) {return;}
        var nextField=Number(fieldNo) + 1;
        var nextName="cardNumber" + nextField;
        e=getElement(nextName);
        e.focus();
  }



  function checkDate(d,m,y)
  { // Checks for valid date in range 1/1/1900 to 31/12/2099

        if (!isNumeric(d) || !isNumeric(m) || !isNumeric(y)) {return false;}
        if (m<1 || m>12) {return false;}
        if (y<1900 || y>2099) {return false;}
    var daysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
        if (y%1000==0 ||(y%4==0 && y%100!=0)) {daysInMonth[1]=29;}
        if (d<1 || d>daysInMonth[m-1]) {return false;}
        return true;

  }


  function checkEmail(email)
  { // this checks for a valid format email address
    var pattern=/^[a-zA-Z0-9]+([.|_|-][a-zA-Z0-9]+)?[@]{1}[a-zA-Z0-9]+([.|_|-][a-zA-Z0-9]+)*[.]{1}[a-zA-Z0-9]{2,3}$/;
    var result=email.match(pattern);
    if (result==null)
      {
       return false;
      }
      else  return true;
  }


  function checkForm(f)
  {
//  alert ("Here in checkForm");
//  alert ("Name=" + f.name);

/*   To test the chosen option in a Select statement:
              var opt=f.selectname.selectedIndex;
                  var field=f.selectname.options[opt].text;

 (Can use value instead of text if the option statements have a value clause)
*/
        if (f.buttonPressed.value=="Cancel") {return true;}
    if (f.buttonPressed.value=="Delete")
        {
          if (confirm("Are you really sure you want to delete this record?"))
          {return true;}
          else {return false;}
        }
    var errMsg="";

        switch (f.name)
        {
          case "bookingForm":
        if (empty(f.contactName.value))
            {
              if (errMsg=="") {f.contactName.focus();}
          errMsg+="Please enter your Name\n";
        }

        if (empty(f.address1.value) && empty(f.address2.value))
        {
              if (errMsg=="") {f.address1.focus();}
          errMsg+="Please enter your Address\n";
        }

        if (empty(f.city.value))
        {
              if (errMsg=="") {f.city.focus();}
          errMsg+="Please enter your Town/City\n";
        }

        if (empty(f.postcode.value))
        {
              if (errMsg=="") {f.postcode.focus();}
          errMsg+="Please enter your Zip Code/Postcode\n";
        }

        if (empty(f.country.value))
        {
              if (errMsg=="") {f.country.focus();}
          errMsg+="Please enter your Country\n";
        }

        if (empty(f.phone.value))
        {
              if (errMsg=="") {f.phone.focus();}
          errMsg+="Please enter your Telephone Number\n";
        }
            else
            {
          if (!checkPhoneNo(f.phone.value))
          {
                if (errMsg=="") {f.phone.focus();}
            errMsg+="Phone Numbers must be numeric, at least 11 digits\n";
          }
            }

        if (empty(f.email.value))
        {
              if (errMsg=="") {f.email.focus();}
          errMsg+="Please enter your Email address\n";
        }
                else
                {
          if (!empty(f.email.value) && !checkEmail(f.email.value))
          {
                if (errMsg=="") {f.email.focus();}
            errMsg+="That Email address is invalid\n";
          }
                }

                var today=new Date();
                var year=today.getFullYear();
                var month=today.getMonth()+1;
                if (month<10) {month="0" + String(month);}
                var day=today.getDate();
                if (day<10) {day="0" + String(day);}
                today=String(year) + String(month) + String(day);

        var datesOK=0;
                var fromOK=false;
                var opt=f.date1FromDay.selectedIndex;
                var selectedDay=f.date1FromDay.options[opt].text;
                if (selectedDay!="DD")
                {
                  opt=f.date1FromMonth.selectedIndex;
                  var selectedMonth=f.date1FromMonth.options[opt].value;
                  opt=f.date1FromYear.selectedIndex;
                  var selectedYear=f.date1FromYear.options[opt].text;

                  if (!checkDate(selectedDay, selectedMonth, selectedYear))
                  {
                if (errMsg=="") {f.date1FromDay.focus();}
            errMsg+="The From date of your first choice is not a valid date\n";
                  }
                  else
                  {
                    fromOK=true;
                    if (selectedDay<10) {selectedDay="0" + String(selectedDay);}
                        var date1From=selectedYear + selectedMonth + selectedDay;

            if (date1From<=today)
                    {
                  if (errMsg=="") {f.date1FromDay.focus();}
              errMsg+="The Start date of your first choice is already past\n";
                    }

                  }
                  opt=f.date1ToDay.selectedIndex;
                  selectedDay=f.date1ToDay.options[opt].text;
                  if (selectedDay=="DD")
                  {
                if (errMsg=="") {f.date1ToDay.focus();}
            errMsg+="Please enter the End date for your first choice\n";
                  }
                  else
                  {
                    opt=f.date1ToMonth.selectedIndex;
                    var selectedMonth=f.date1ToMonth.options[opt].value;
                    opt=f.date1ToYear.selectedIndex;
                    var selectedYear=f.date1ToYear.options[opt].text;

                    if (!checkDate(selectedDay, selectedMonth, selectedYear))
                    {
                  if (errMsg=="") {f.date1ToDay.focus();}
              errMsg+="The End date of your first choice is not a valid date\n";
                    }
                    else
                    {
                      if (fromOK)
                          {
                            var date1To=selectedYear + selectedMonth + selectedDay;
                if (date1From>date1To)
                        {
                      if (errMsg=="") {f.date1ToDay.focus();}
                  errMsg+="The End date of your first choice is earlier than the Start date\n";
                        }
                                else {datesOK++;}
                          }
                    }
                  }
        }
                else
                {
                  opt=f.date1ToDay.selectedIndex;
                  selectedDay=f.date1ToDay.options[opt].text;
                  if (selectedDay!="DD")
                  {
                if (errMsg=="") {f.date1ToDay.focus();}
            errMsg+="Please enter the Start date for your first choice\n";
                    opt=f.date1ToMonth.selectedIndex;
                    var selectedMonth=f.date1ToMonth.options[opt].value;
                    opt=f.date1ToYear.selectedIndex;
                    var selectedYear=f.date1ToYear.options[opt].text;

                    if (!checkDate(selectedDay, selectedMonth, selectedYear))
                    {
                  if (errMsg=="") {f.date1ToDay.focus();}
              errMsg+="The End date of your first choice is not a valid date\n";
                    }
                  }
                }

                fromOK=false;
                opt=f.date2FromDay.selectedIndex;
                selectedDay=f.date2FromDay.options[opt].text;
                if (selectedDay!="DD")
                {
                  opt=f.date2FromMonth.selectedIndex;
                  selectedMonth=f.date2FromMonth.options[opt].value;
                  opt=f.date2FromYear.selectedIndex;
                  selectedYear=f.date2FromYear.options[opt].text;

                  if (!checkDate(selectedDay, selectedMonth, selectedYear))
                  {
                if (errMsg=="") {f.date2FromDay.focus();}
            errMsg+="The From date of your second choice is not a valid date\n";
                  }
                  else
                  {
                    fromOK=true;
                    if (selectedDay<10) {selectedDay="0" + String(selectedDay);}
                        var date2From=selectedYear + selectedMonth + selectedDay;

            if (date2From<=today)
                    {
                  if (errMsg=="") {f.date2FromDay.focus();}
              errMsg+="The Start date of your second choice is already past\n";
                    }
                  }
                  opt=f.date2ToDay.selectedIndex;
                  selectedDay=f.date2ToDay.options[opt].text;
                  if (selectedDay=="DD")
                  {
                if (errMsg=="") {f.date2ToDay.focus();}
            errMsg+="Please enter the End date for your second choice\n";
                  }

                  else
                  {
                    opt=f.date2ToMonth.selectedIndex;
                    selectedMonth=f.date2ToMonth.options[opt].value;
                    opt=f.date2ToYear.selectedIndex;
                    selectedYear=f.date2ToYear.options[opt].text;

                    if (!checkDate(selectedDay, selectedMonth, selectedYear))
                    {
                  if (errMsg=="") {f.date2ToDay.focus();}
              errMsg+="The End date of your second choice is not a valid date\n";
                    }
                    else
                    {
                      if (fromOK)
                          {
                            var date2To=selectedYear + selectedMonth + selectedDay;
                if (date2From>date2To)
                        {
                      if (errMsg=="") {f.date2ToDay.focus();}
                  errMsg+="The End date of your second choice is earlier than the Start date\n";
                        }
                                else {datesOK++;}
                          }
                    }
                  }
        }
                else
                {
                  opt=f.date2ToDay.selectedIndex;
                  selectedDay=f.date2ToDay.options[opt].text;
                  if (selectedDay!="DD")
                  {
                if (errMsg=="") {f.date2ToDay.focus();}
            errMsg+="Please enter the Start date for your second choice\n";
                    opt=f.date2ToMonth.selectedIndex;
                    var selectedMonth=f.date2ToMonth.options[opt].value;
                    opt=f.date2ToYear.selectedIndex;
                    var selectedYear=f.date2ToYear.options[opt].text;

                    if (!checkDate(selectedDay, selectedMonth, selectedYear))
                    {
                  if (errMsg=="") {f.date2ToDay.focus();}
              errMsg+="The End date of your second choice is not a valid date\n";
                    }
                  }
                }




                fromOK=false;
                opt=f.date3FromDay.selectedIndex;
                selectedDay=f.date3FromDay.options[opt].text;
                if (selectedDay!="DD")
                {
                  opt=f.date3FromMonth.selectedIndex;
                  selectedMonth=f.date3FromMonth.options[opt].value;
                  opt=f.date3FromYear.selectedIndex;
                  var selectedYear=f.date3FromYear.options[opt].text;

                  if (!checkDate(selectedDay, selectedMonth, selectedYear))
                  {
                if (errMsg=="") {f.date3FromDay.focus();}
            errMsg+="The From date of your third choice is not a valid date\n";
                  }
                  else
                  {
                    fromOK=true;
                    if (selectedDay<10) {selectedDay="0" + String(selectedDay);}
                        var date3From=selectedYear + selectedMonth + selectedDay;

            if (date3From<=today)
                    {
                  if (errMsg=="") {f.date3FromDay.focus();}
              errMsg+="The Start date of your third choice is already past\n";
                    }
                  }
                  opt=f.date3ToDay.selectedIndex;
                  selectedDay=f.date3ToDay.options[opt].text;
                  if (selectedDay=="DD")
                  {
                if (errMsg=="") {f.date3ToDay.focus();}
            errMsg+="Please enter the End date for your third choice\n";
                  }
                  else
                  {
                    opt=f.date3ToMonth.selectedIndex;
                    selectedMonth=f.date3ToMonth.options[opt].value;
                    opt=f.date3ToYear.selectedIndex;
                    selectedYear=f.date3ToYear.options[opt].text;

                    if (!checkDate(selectedDay, selectedMonth, selectedYear))
                    {
                  if (errMsg=="") {f.date3ToDay.focus();}
              errMsg+="The End date of your third choice is not a valid date\n";
                    }
                    else
                    {
                      if (fromOK)
                          {
                            var date3To=selectedYear + selectedMonth + selectedDay;
                if (date3From>date3To)
                        {
                      if (errMsg=="") {f.date3ToDay.focus();}
                  errMsg+="The End date of your third choice is earlier than the Start date\n";
                        }
                                else {datesOK++;}
                          }
                    }
                  }
                }
                else
                {
                  opt=f.date3ToDay.selectedIndex;
                  selectedDay=f.date3ToDay.options[opt].text;
                  if (selectedDay!="DD")
                  {
                if (errMsg=="") {f.date3ToDay.focus();}
            errMsg+="Please enter the Start date for your third choice\n";
                    opt=f.date3ToMonth.selectedIndex;
                    var selectedMonth=f.date3ToMonth.options[opt].value;
                    opt=f.date3ToYear.selectedIndex;
                    var selectedYear=f.date3ToYear.options[opt].text;

                    if (!checkDate(selectedDay, selectedMonth, selectedYear))
                    {
                  if (errMsg=="") {f.date3ToDay.focus();}
              errMsg+="The End date of your third choice is not a valid date\n";
                    }
                  }



                  if (empty(f.additionalInfo.value) && datesOK==0)
                  {
                if (errMsg=="") {f.date1ToDay.focus();}
            errMsg+="Please indicate the Dates you are interested in\n";
                  }


                }

      break;

      case "contactForm":
        if (empty (f.contactName.value))
        {
           if (errMsg=="")  {f.contactName.focus();}
           errMsg+="Please enter your Name\n";
        }

        /*
        if (empty (f.company.value))
        {
           if (errMsg=="")  {f.company.focus();}
           errMsg+="Please enter your Company Name\n";
        }


        // if (empty (f.address1.value) && empty (f.address2.value) && empty (f.address3.value))
        if (empty (f.address1.value))
        {
           if (errMsg=="")  {f.address1.focus();}
           errMsg+="Please enter your Address\n";
        }

        if (empty (f.postcode.value))
        {
           if (errMsg=="")  {f.postcode.focus();}
           errMsg+="Please enter your Postcode\n";
        }
        */
        if (empty (f.phone.value) && empty (f.email.value))
        {
           if (errMsg=="")  {f.phone.focus();}
           errMsg+="Please enter either your Telephone number or Email Address\n";
        }
        else
        {
          if (!empty (f.email.value) && !checkEmail (f.email.value))
          {
            if (errMsg=="")  {f.email.focus();}
            errMsg+="That Email address is not valid\n";
          }
        }
        /*
        if (empty (f.comments.value))
        {
           if (errMsg=="")  {f.comments.focus();}
           errMsg+="Please enter details of your Enquiry\n";
        }

        if (empty (f.spare01.value))
        {
           if (errMsg=="")  {f.spare01.focus();}
           errMsg+="Please enter your spare01\n";
        }

        if (empty (f.spare02.value))
        {
           if (errMsg=="")  {f.spare02.focus();}
           errMsg+="Please enter your spare02\n";
        }

        if (empty (f.spare03.value))
        {
           if (errMsg=="")  {f.spare03.focus();}
           errMsg+="Please enter your spare03\n";
        }

        if (empty (f.spare04.value))
        {
           if (errMsg=="")  {f.spare04.focus();}
           errMsg+="Please enter your spare04\n";
        }

        if (empty (f.spare05.value))
        {
           if (errMsg=="")  {f.spare05.focus();}
           errMsg+="Please enter your spare05\n";
        }

        if (empty (f.spare06.value))
        {
           if (errMsg=="")  {f.spare06.focus();}
           errMsg+="Please enter your spare06\n";
        }

        if (empty (f.spare07.value))
        {
           if (errMsg=="")  {f.spare07.focus();}
           errMsg+="Please enter your spare07\n";
        }

        if (empty (f.spare08.value))
        {
           if (errMsg=="")  {f.spare08.focus();}
           errMsg+="Please enter your spare08\n";
        }

        if (empty (f.spare09.value))
        {
           if (errMsg=="")  {f.spare09.focus();}
           errMsg+="Please enter your spare09\n";
        }

        if (empty (f.spare10.value))
        {
           if (errMsg=="")  {f.spare10.focus();}
           errMsg+="Please enter your spare10\n";
        }

        if (empty (f.spare11.value))
        {
           if (errMsg=="")  {f.spare11.focus();}
           errMsg+="Please enter your spare11\n";
        }

        if (empty (f.spare12.value))
        {
           if (errMsg=="")  {f.spare12.focus();}
           errMsg+="Please enter your spare12\n";
        }

        if (empty (f.spare13.value))
        {
           if (errMsg=="")  {f.spare13.focus();}
           errMsg+="Please enter your spare13\n";
        }

        if (empty (f.spare14.value))
        {
           if (errMsg=="")  {f.spare14.focus();}
           errMsg+="Please enter your spare14\n";
        }

        */
      break;

          default:
            return true;
        }

        if (errMsg!="")
        {
          alert(errMsg);
          return false;
        }
        else return true;
  }


  function checkPass(pass)
  { // This checks password is 6-12 chars, starts with a letter and contains
    // only alphanumerics

        if (pass.length<6 || pass.length>12) {return false;}
        var pattern=/^[a-zA-Z][a-zA-Z0-9]{0,11}$/;
    var result=pass.match(pattern);
    if (result==null)
      {
       return false;
      }
      else  return true;
  }

  function checkPhoneNo(phone)
  { // This checks a phone number contains at least 11 digits. It
    // ignores blanks and hyphens
        var p=phone.replace(/ |-/g,""); // Remove blanks or hyphens
        if (p.length<11 || !isNumeric(p)) {return false;}
        else {return true;}
  }

  function checkTime(h,m)
  {
    if (!isNumeric(h) || !isNumeric(m)) {return false;}
        if (h<0 || h>23) {return false;}
        if (m<0 || m>59) {return false;}
        return true;
  }

  function checkURL(URL)
  { // this checks for a valid format URL
    // NB this does not check anything beyond the basic address - ie no parameters
        var patternFormat=/^(http\:\/\/)?(www\.)?[a-zA-Z0-9]+([.|_|-][a-zA-Z0-9]+)+[.]{1}[a-zA-Z0-9]{2,3}/;
    var result=URL.match(patternFormat);
    if (result==null)
      {
       return false;
      }
      else  return true;
  }

  function empty(s)
  {
    if (s=="" || s==null || isblank(s)) {return true;}
        else {return false;}
  }

  function generateRandomNo(x, y)
  { // This function generates a random integer between x & y
    var range = y - x + 1;
    return Math.floor(Math.random() * range) + x;
  }

  function getElement(id)
  {
    if (document.getElementById) {var elmt=document.getElementById(id);}
    else
    {
      if (document.all) {var elmt=document.all[id];}
          else
          {
            if (document.layers) {var elmt=document.layers[id];}
            else elmt=false;
          }
    }
    return elmt;
  }

  function isblank (s)
  { // Returns false if field contains any non-blank chars other than new line
    for (var i=0; i<s.length; i++) {
      var c=s.charAt(i);
          if (c!=" " && c!="\n" && c!="") {
          return false;
          }
    }
    return true;
  }


  function isNumeric (number, decPlaces)
  { // This function checks for numerics with a maximum of decPlaces decimal places

    var pattern="/^[0-9]+$/";
    if (decPlaces!='0')
        { // Decimal places allowed
          var dPlaces=2;
          var strPlaces=String(decPlaces);
      var result=strPlaces.match(pattern);
          if (result)  {dPlaces=decPlaces;}
          pattern=eval("/^[0-9]+([.][0-9]{1," + dPlaces + "})?$/");
    }
        var result=number.match(pattern);
        return result;

  }


  function NewWindow(url, w, h)
  { // Opens URL w in a new window positioned top left and ensures it has the focus
    if (!w) {var wide=400;} else {wide=w;}
        if (!h) {var high=450;} else {high=h;}
        var paras="width=" + wide + ",height=" + high + "align=center, scrollbars=yes, left=0, top=0, screenx=0, screeny=0";
    var x=window.open(url, "newWindow", paras);
        x.window.focus();
  }

  function NewWindow2(url, w, h)
  { // Opens URL w in a new window positioned top left and ensures it has the focus
    if (!w) {var wide=400;} else {wide=w;}
        if (!h) {var high=450;} else {high=h;}
        var paras="width=" + wide + ",height=" + high + "align=center, scrollbars=yes, left=0, top=0, screenx=0, screeny=0";
    var x=window.open(url, "newWindow", paras);
        x.window.focus();
  }

  function validateSlashDate(ddmmyy)
  {
    var dateArray=ddmmyy.split("/");
        var d=dateArray[0];
        var m=dateArray[1];
        var y=dateArray[2];
        if (empty(d) || empty(m) || empty(y)) {return false;}
        var valid=checkDate(d, m, y);
        return valid;
  }

  function formatEmail(name, site, suffix, text, paras, className)
  {
     // <SCRIPT language="Javascript">formatEmail("name", "site", "suffix", "text", "paras", "class");</SCRIPT>
     if (empty(suffix)) {suffix="co.uk";}

     var emailAddress=name + "@" + site + "." + suffix;
     document.write ("<a href='mailto:" + emailAddress);
     if (!empty(paras)) {document.write ("?" + paras);}
     document.write ("'");
     if (!empty(className)) {document.write (" class='" + className + "'");}
     document.write (">");
     if (empty(text)) {document.write (emailAddress);} else {document.write (text);}
     document.write ("</a>\n");
  }