function validate_form() {


var startdate = "";
var stopdate = "";
var todaydate = "";

var messagebeg = "Please enter the following REQUIRED FIELDS \non the Form before submitting:\n\n";
var message1 = "\tAccount Name\n";
var message2 = "\tValid Contact Email Address\n";
var message4 = "\tValid Stop Date\n";
var message5 = "\tValid Start Date\n";
var message6 = "\tStart - Stop Action\n";
var messageend = "\nto assist Clarendon Newsagency in changing your delivery status. ";
var messageall = "";
var err = 0;
var msg1 = 0;
var msg2 = 0;
var msg4 = 0;
var msg5 = 0;
var msg6 = 0;

  validity = true; // assume valid
  if (!check_name(document.deliveryform.elements["realname"].value))
        { validity = false;  msg1 = 1; err = 1; }
  if (!check_email(document.deliveryform.elements["email"].value))
        { validity = false;  msg2 = 1; err = 1; }
  if (!check_stop(document.deliveryform.elements["Stop YEAR"].value,document.deliveryform.elements["Stop MONTH"].value,document.deliveryform.elements["Stop DAY"].value))
        { validity = false;  msg4 = 1; err = 1; }
  if (!check_start(document.deliveryform.elements["Start YEAR"].value,document.deliveryform.elements["Start MONTH"].value,document.deliveryform.elements["Start DAY"].value))
        { validity = false;  msg5 = 1; err = 1; }
  if (!check_action())
        { validity = false;  msg6 = 1; err = 1; }
  if (validity)
        {if (confirm ('You have selected to submit your form.  \n\nIf you want to submit it - press OK.  \nIf you want to continue completing your form - press Cancel')) 
           {setnull(); return true} else {return false}};


  if (err == 1)
     {
       messageall = messageall + messagebeg;
       if (msg1 == 1)
           {
       messageall = messageall + message1;
           }
       if (msg2 == 1)
           {
       messageall = messageall + message2;
           }
       if (msg4 == 1)
           {
       messageall = messageall + message4;
           }
       if (msg5 == 1)
           {
       messageall = messageall + message5;
           }
       if (msg6 == 1)
           {
       messageall = messageall + message6;
           }
       messageall = messageall + messageend;
       alert (messageall);
     }

  return validity;
}





function check_email(address) {
  if ((address == "")
    || (address.indexOf ('@') == -1)
    || (address.indexOf ('.') == -1))
           {
      return false;
           }
  return true;
}


function check_name(name2) {
  if (name2 == "")
           {
      return false;
           }
  return true;
}


function check_stop(stopyear,stopmmm,stopdd) 
{

todaydate = get_today();

if ((document.deliveryform.elements["STOP / START"][0].checked) || (document.deliveryform.elements["STOP / START"][1].checked))
    {
    if ((stopyear == "") || (stopmmm == "") ||  (stopdd == "")) 
        {
        alert ("You have selected a Stop-Restart or Stop action,\nSo you need to set the Stop Date fields.\nPlease enter a valid Stop Date.");
        return false;
        }

    stopmonth = correct_month(stopmmm);


    var spddn = eval(stopdd * 1);
    if (spddn < 10)
        {
        stopday = correct_date(spddn);
        }
    else
        {
        stopday = spddn;
        }
		

    stopdate = (stopyear.toString()) + (stopmonth.toString()) + (stopday.toString());

		
    if (todaydate >= stopdate)
        {
        alert ("Your selected Stop Date is not greater than Today\'s Date.\nPlease correct the Stop Date");
        return false;
        }
    else
        {
        return true;
        }
    }
else
    {
    if ((stopyear == "") || (stopmmm == "") ||  (stopdd == "")) 
        {
        return true;
        }
    else
        {
        alert ("You have not selected a Stop/Restart or Stop action,\nSo you don't need to set the Stop Date fields.\n\nThese fields have been reset.\n\nIf you really do want to set the Stop Dates, then select a different Action button");
        document.deliveryform.elements["Stop MONTH"].selectedIndex = -1;
        document.deliveryform.elements["Stop DAY"].selectedIndex = -1;
        document.deliveryform.elements["Stop YEAR"].selectedIndex = -1;
        stopyear == ""
				stopmmm == ""
				stopdd == ""
				return true;
        }
    }
}


function check_start(startyear,startmmm,startdd) 
{

if ((document.deliveryform.elements["STOP / START"][0].checked) || (document.deliveryform.elements["STOP / START"][2].checked))
    {
    if ((startyear == "") || (startmmm == "") ||  (startdd == "")) 
        {
        alert ("You have selected a Stop/Restart or Start action,\nSo you need to set the Start Date fields.\nPlease enter a valid Start Date.");
        return false;
        }


    startmonth = correct_month(startmmm);

		
    var stddn = eval(startdd * 1);
    if (stddn < 10)
        {
        startday = correct_date(stddn);
        }
    else
        {
        startday = stddn;
        }
		

    startdate = (startyear.toString()) + (startmonth.toString()) + (startday.toString());


    if (todaydate >= startdate)
        {
        alert ("Your selected Start Date is not greater than Today's Date.\nPlease correct the Start Date");
        return false;
        }
    else
        {
        if (document.deliveryform.elements["STOP / START"][0].checked)
            {
            if (stopdate >= startdate)
                {
                alert ("Your selected Start Date is not greater than your selected Stop Date.\nPlease correct either your Stop or Start Dates");
                return false;
                }
            else
                {
                return true;
                }
            }
        else
            {
            return true;
						}
        
        }
    }
else
    {
    if ((startyear == "") || (startmmm == "") ||  (startdd == "")) 
        {
		return true;
        }
    else
        {
    alert ("You have not selected a Stop/Restart or Start action,\nSo you don't need to set the Start Date fields.\n\nThese fields have been reset.\n\nIf you really do want to set the Start Dates, then select a different Action button");
    document.deliveryform.elements["Start MONTH"].selectedIndex = -1;
    document.deliveryform.elements["Start DAY"].selectedIndex = -1;
    document.deliveryform.elements["Start YEAR"].selectedIndex = -1;
    startyear == ""
    startmmm == ""
    startdd == ""
		return true;
        }
    }
}




function check_action() 
{
if (document.deliveryform.elements["STOP / START"][0].checked)
    {
    return true;
    }
if (document.deliveryform.elements["STOP / START"][1].checked)
    {
    return true;
    }
if (document.deliveryform.elements["STOP / START"][2].checked)
    {
    return true;
    }
return false;
}


function correct_date(xx) 
{
var yy = "";

    if (xx == "1")
          {
          yy = "01";
          }
    if (xx == "2")
          {
          yy = "02";
          }
    if (xx == "3")
           {
          yy = "03";
          }
    if (xx == "4")
          {
          yy = "04";
          }
    if (xx == "5")
          {
          yy = "05";
          }
    if (xx == "6")
          {
          yy = "06";
          }
    if (xx == "7")
          {
          yy = "07";
          }
    if (xx == "8")
          {
          yy = "08";
          }
    if (xx == "9")
          {
          yy = "09";
          }
return (yy);
}



function correct_month(mo) 
{
var mm = "";

    if (mo == "Jan")
          {
          mm = "01";
          }
    if (mo == "Feb")
          {
          mm = "02";
          }
    if (mo == "Mar")
           {
          mm = "03";
          }
    if (mo == "Apr")
          {
          mm = "04";
          }
    if (mo == "May")
          {
          mm = "05";
          }
    if (mo == "Jun")
          {
          mm = "06";
          }
    if (mo == "Jul")
          {
          mm = "07";
          }
    if (mo == "Aug")
          {
          mm = "08";
          }
    if (mo == "Sep")
          {
          mm = "09";
          }
    if (mo == "Oct")
          {
          mm = "10";
          }
    if (mo == "Nov")
          {
          mm = "11";
          }
    if (mo == "Dec")
          {
          mm = "12";
          }
return (mm);
}



function get_today()
{

var today = new Date ();
var todaymm = today.getMonth()+1;
var todaydd = today.getDate();
var todayyear = today.getFullYear();

var tymmn = eval(todaymm * 1);
if (tymmn < 10)
    {
    var todaymonth = correct_date(tymmn);
    }
else
    {
    var todaymonth = tymmn;
    }


var tyddn = eval(todaydd * 1);
if (tyddn < 10)
    {
    var todayday = correct_date(tyddn);
    }
else
    {
    var todayday = tyddn;
    }

var thisdate = (todayyear.toString()) + (todaymonth.toString()) + (todayday.toString());

return (thisdate);
}


