var neededFields = new makeAnArray('firstName', 'lastName', 'make','model','year','step');
var neededDesc = new makeAnArray('your first name', 'your last name', 'your car\'s make', 'your car\'s model', 'your car\'s year', 'your step (error)');

function makeAnArray() {
        this.length = makeAnArray.arguments.length;
        for (var i = 0; this.length > i; i++) {
          	this[i+1] = makeAnArray.arguments[i]
          	}	
	}

function validInfo(obj) {
	var errMsg = '';

	// Check for the misc. required fields
for (var l = 1; neededFields.length > l; l ++) {
		if ((obj.elements[neededFields[l]].value == '') ||
			(obj.elements[neededFields[l]].value == ' ')) {
			errMsg = errMsg + 'You didn\'t enter ' + neededDesc[l] + '\n';
			}
	}

	var service = obj.service.value ;
	if (( service == '') ||
			( service == 'Select')) {
		errMsg = errMsg + 'You didn\'t select a service for your car' + '\n';
			}
			
	var month = obj.month1.value ;
	if (( month == '') ||
			( month == 'select')) {
		errMsg = errMsg + 'You didn\'t select a month for your prefered appointment' + '\n';
		}
	var day = obj.day1.value ;
	if (( day == '') ||
			( day == 'select')) {
		errMsg = errMsg + 'You didn\'t select a date for your prefered appointment' + '\n';
			}
	var time = obj.time.value ;
	if ( obj.time[0].checked || obj.time[1].checked || obj.time[2].checked )
	 { // time selected, okay
		}
	else {
		errMsg = errMsg + 'You didn\'t enter a preference for your appointment time' + '\n';
		}

	var phone = obj.homePhone.value ;
	if (( phone == '') ||
			( phone == ' ')) {
			errMsg = errMsg + 'You didn\'t enter a home phone number\n';
			}
	else {	if (!(isPhoneNumber(phone))) {
		errMsg = errMsg + 'You entered an invalid home phone number\n';
	}}	
		var phone = obj.workPhone.value ;
	if (( phone == '') ||
			( phone == ' ')) {
			errMsg = errMsg + 'You didn\'t enter a work phone number\n';
			}
	else {	if (!(isPhoneNumber(phone))) {
		errMsg = errMsg + 'You entered an invalid work phone number\n';
	}}
		var phone = obj.cellPhone.value ;
	if (( phone == '') ||
			( phone == ' ')) { // no cell phone number is okay 
			}
	else {	if (!(isPhoneNumber(phone))) {
		errMsg = errMsg + 'You entered an invalid cell phone number\n';
	}}
		var phone = obj.todayPhone.value ;
	if (( phone == '') ||
			( phone == ' ')) { // no current/today phone number is okay 
			}
	else {	if (!(isPhoneNumber(phone))) {
		errMsg = errMsg + 'You entered an invalid phone number (for today)\n';
	}}
	
	var eMail = obj.eMail.value ;
	if (( eMail == '') ||
			( eMail == ' ')) {
			errMsg = errMsg + 'You didn\'t enter an e-mail address\n';
			}
		else {
	if (!(isMailAddress(eMail))) {
		errMsg = errMsg + 'You entered an invalid e-mail address\n';
	}}	

	
	if (errMsg != '') {
		errMsg = '[ Appointment Validation ]\nUnable to process the appointment form because:\n\n' + errMsg;
		alert(errMsg);
		return false;
	} else {
		return true;
	}
}

function isPhoneNumber(n) {
   var nl = n.length;
   var goodNum = true;
   if (7 > nl) { goodNum = false; }
   for (c = 0; n.length > c; c++) {
      t = n.charAt(c);
      if (((t >= '0') && ('9' >= t) || (t == '.') || (t == ' ') || (t == '+') || (t == '-')|| (t == ')')|| (t == '(')) != true) {
	goodNum = false;
      }
   }
   if ((n == '') || (n == ' ')) { goodNum = false; }
	
   return goodNum;
}

function isMailAddress(m) {
   if ((m == '') || (m == ' ')) { return false; }
   
    var a = 1;
    var ml = m.length;

    while ((a < ml) && (m.charAt(a) != "@")) { a++ }
    if ((a >= ml) || (m.charAt(a) != "@")) {
	return false;
    } else {
	a = a + 2;
    }
    while ((ml > a) && (m.charAt(a) != ".")) { a++ }
    if ((a >= ml - 1) || (m.charAt(a) != ".")) {
	return false;
    } else {
    return true;
    }
}

//-->

