function Validate (){
    if (document.SupportRequest.FirstName.value==""){
	alert ('Please enter your first name');
	document.SupportRequest.FirstName.focus();
	return false;
    }
    if (document.SupportRequest.LastName.value==""){
	alert ('Please enter your last name');
	document.SupportRequest.LastName.focus();
	return false;
    }
    if (document.SupportRequest.Email.value==""){
	alert ('Please enter your e-mail address');
	document.SupportRequest.Email.focus();
	return false;
    }
    if (document.SupportRequest.Product.value==""){
	alert ('Please select a product type');
	document.SupportRequest.Product.focus();
	return false;
    }
    if (document.SupportRequest.Query.value==""){
	alert ('Please select an inquiry type');
	document.SupportRequest.Query.focus();
	return false;
    }
    if (document.SupportRequest.Year.value!="" || document.SupportRequest.Month.value!="" || document.SupportRequest.Day.value!="") {
	if(document.SupportRequest.Day.value=="") {
	    alert ('Please enter the day of purchase');
	    document.SupportRequest.Day.focus();
	    return false;
	}
	if(document.SupportRequest.Month.value=="") {
	    alert ('Please enter the month of purchase');
	    document.SupportRequest.Month.focus();
	    return false;
	}
	if(document.SupportRequest.Year.value=="") {
	    alert ('Please enter the year of purchase');
	    document.SupportRequest.Year.focus();
	    return false;
	}
	var year = "00" + document.SupportRequest.Year.value;
	year = year.substr(year.length-2);
	if (year.charAt(0)=="0") {
	    year = "20" + year;
	} else {
	    year = "19" + year;
	}
	var month = "00" + document.SupportRequest.Month.value;
	month = month.substr(month.length-2);
	var day = "00" + document.SupportRequest.Day.value;
	day = day.substr(day.length-2);
	if(datevalidate(day + "-" + month + "-" + year)){
	    document.SupportRequest.PurchaseDate.value = year + "-" + month + "-" + day;
	} else {
	    alert ('Please reenter the date of purchase');
	    document.SupportRequest.Month.focus();
	    return false;
	}
    }
    return true;
}

// This function validates a date and returns true or false 
function datevalidate(vdate)
{
	var err = false;
	var check = false;
	if (vdate.charAt(2) == "-" && vdate.charAt(5) == "-" && vdate.length == 10) 
	{
		check = true;
		// Check the day is a number.
		for (var i = 0; i < 2; i++)
			{ var dt = vdate.substring(i, i+1); if (dt < "0" || "9" < dt) err = true;}
		// Check the month is a number.
		for (var i = 3; i < 5; i++)
			{ var dt = vdate.substring(i, i+1); if (dt < "0" || "9" < dt) err = true;}
		// Check the year is a number.
		for (var i = 6; i < 10; i++)
			{ var dt = vdate.substring(i, i+1); if (dt < "0" || "9" < dt) err = true;}
		// set variables.
		if (err==false)
		{
			day=eval(vdate.substring(0,2));
			month=eval(vdate.substring(3,5));	
			cntry=eval(vdate.substring(6,8));
			year=eval(vdate.substring(8,10));
			cnyr=eval(vdate.substring(6,10));
  	 	 
			// check that month is between 1 & 12.
			if (month <= 0 || month>=13)
				{ err = true; }
			// check that day is right depending on month.
			if ( month==2 && ((cnyr/400)==parseInt(cnyr/400)) )
			   { if (day<=0 || day>29) err=true; }
			else 
			   {
			       if ( month==2 && ((cnyr/100)==parseInt(cnyr/100)) )
				       { if (day<=0 || day>28) err=true;}
			       else 
			           {
			               if ( month==2 && ((cnyr/4)==parseInt(cnyr/4)) )
				               { if (day<=0 || day>29) err=true; }
				         }
				 }
			if ( month==2 && ((cnyr/4)!=parseInt(cnyr/4)) )
				{ if (day<=0 || day>28) err=true; }
			if ( month==4 || month==6 || month==9 || month==11 )
				{ if (day<=0 || day>30) err=true; }
			if ( month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12 )
				{ if (day<=0 || day>31) err=true; }
		 }	
       if (err==true)
		    {return false;}
	}  
	else
	{
		return false;
	}
		
	return true;
} 

