function isDate(dateStr) {

    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat); // is the format ok?

    if (matchArray == null) {
        alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy. ("+dateStr+")");
        document.register.Month.focus();
        fObj.submitbutton.disabled=false;
        count=0;
        return false;
    }

    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[5];

    if (month < 1 || month > 12) { // check month range
    	fObj.submitbutton.disabled=false;
        count=0;
        alert("Month must be between 1 and 12.");
        return false;
    }

    if (day < 1 || day > 31) {
    	fObj.submitbutton.disabled=false;
        count=0;
        alert("Day must be between 1 and 31.");
        return false;
    }

    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    	fObj.submitbutton.disabled=false;
        count=0;
        alert("Month "+month+" doesn't have 31 days!")
        return false;
    }

    if (month == 2) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {
        	fObj.submitbutton.disabled=false;
	        count=0;
            alert("February " + year + " doesn't have " + day + " days!");
            return false;
        }
    }
    return true; // date is valid
}


function validate(form) {
	fObj=document.register;
	
	if (fObj.Name.value == "") {
	fObj.submitbutton.disabled=false;
    count=0;
	alert("Please enter your name.");
	fObj.Name.focus();
	return false	
	}
	if (fObj.Address.value == "") {
	fObj.submitbutton.disabled=false;
    count=0;
	alert("Please enter your address.");
	fObj.Address.focus();
	return false	
	}
	if (fObj.City.value == "") {
	fObj.submitbutton.disabled=false;
    count=0;
	alert("Please enter your city.");
	fObj.City.focus();
	return false	
	}
	if (fObj.City.value == "") {
	fObj.submitbutton.disabled=false;
    count=0;
	alert("Please enter your city.");
	fObj.City.focus();
	return false	
	}
	if (fObj.State.options[0].selected) {
	alert("Please choose a state.");
	fObj.submitbutton.disabled=false;
    count=0;
	fObj.State.focus();
	return false	
	}
	if (fObj.Zip.value == "") {
	fObj.submitbutton.disabled=false;
    count=0;
	alert("Please enter your zip code.");
	fObj.Zip.focus();
	return false	
	}
	if (fObj.Contact.options[0].selected) {
	fObj.submitbutton.disabled=false;
    count=0;
	alert("Please choose a contact method.");
	fObj.Contact.focus();
	return false	
	}
	if ((fObj.Contact.options[1].selected || fObj.Contact.options[2].selected) && fObj.email.value == "") {
	alert("Please enter your email address.");
	fObj.submitbutton.disabled=false;
    count=0;
	fObj.email.focus();
	return false	
	}
	if ((fObj.Contact.options[3].selected || fObj.Contact.options[4].selected) && fObj.Phone.value == "") {
	alert("Please enter your phone number.");
	fObj.submitbutton.disabled=false;
    count=0;
	fObj.Phone.focus();
	return false	
	}
	if(fObj.email.value.indexOf(".") == -1 || fObj.email.value.indexOf("@") == -1 || fObj.email.value.indexOf(" ") != -1) { 
		fObj.submitbutton.disabled=false;
	    count=0;
		alert("Email is a required field. It does not appear to be valid. \n Please check your email address.");
		fObj.email.focus();
		return false; }
	
	Month = fObj.Month.options[fObj.Month.selectedIndex].value;
	Day = fObj.Day.options[fObj.Day.selectedIndex].value;
	Year = fObj.Year.options[fObj.Year.selectedIndex].value;
	wedDate = ""+Month+"/"+Day+"/"+Year+""
	
	if (isDate(wedDate) == false) {
	return false
	}
	Month = Month - 1
	var wedding = new Date(Year,Month,Day);
	function y2k(number) { return (number < 1000) ? number + 1900 : number; }

	var now = new Date();
    var today = new Date(now.getYear(),now.getMonth(),now.getDate());
    
    if (today > wedding) {
    fObj.submitbutton.disabled=false;
    count=0;
    alert("It appears that you have entered an invalid wedding date.\nPlease enter the correct date.\nIf you are unsure about your wedding date, give an approximation.");
    fObj.Month.focus();
    return false;
    }
	
}

count=0

function Disable(obj) {
	fObj=document.register;
	if(!document.layers) {
	fObj.submitbutton.disabled=true;
	return false;
	} else {
	count++
	if(count > 1) {
	alert("Please click the submit button only once.")
	return false;
	}
	}
}