
//Taken from http://www.suite101.com/article.cfm/javascript/59611
function isValidDate(strDate){
    var parsedDate = strDate.split ("/");
    if (parsedDate.length != 3) {
	return false;
    }
    var day, month, year;
    year = parsedDate[2];
    month = parsedDate[0] - 1; /*Months start from zero*/
    day = parsedDate[1];

    
    var objDate = new Date (year, month, day);
    /*
    alert("year: " + objDate.getFullYear() + ", " + year + "\n" +
	  "month: " + objDate.getMonth() + ", " + month + "\n" +
	  "day: " + objDate.getDate() + ", " + day + "\n");
    */

    
    if (month != objDate.getMonth()) return false;
    if (day != objDate.getDate()) return false;
    if (year != objDate.getFullYear()) return false;
    
    return true;

}

function fieldNotEmpty(fieldstr){
    if(fieldstr==null || fieldstr==""){
	return false;
    }
    else{
	return true;
    }

}

function isNum(numfield){
    var NUM_RE = /\d+/;
    if(NUM_RE.test(numfield)){
	return true;
    }
    else{
	return false;
    }

}

function validateForm()
{
   
    var startDate = document.forms["event_form"]["startdate"];
    if(!isValidDate(startDate.value)){
	alert("Start Date is not valid. Please use MM/DD/YYYY format.");
	startDate.focus();
	return false;
    }

    var title = document.forms["event_form"]["title"];
    if(!fieldNotEmpty(title.value)){
	alert("Please enter an event title.");
	title.focus();
	return false;
    }

    var numVolunteers = document.forms["event_form"]["volsneeded"];
    if(!isNum(numVolunteers.value)){
	alert("Please enter a number in the volunteers field.");
	numVolunteers.focus();
	return false;
    }

    var i = 0;
    var anyChecked = false;
    //If we are editing an event, there will be no checkboxes and no enddate
    if(!document.forms["event_form"]["day[]"]){
	return true;
    }
    for(i = 0; i < 7; i++){	
	if(document.forms["event_form"]["day[]"][i].checked){
	    anyChecked = true;
	}
    }

    var endDate = document.forms["event_form"]["enddate"];
    if(fieldNotEmpty(endDate.value) || anyChecked){
	if(!isValidDate(endDate.value)){
	    alert("End Date is not valid. Please use MM/DD/YYYY format.");
	    endDate.focus();
	    return false;
	}
    }

    return true;
}
