function checkData() {
	var f = window.document.contact;
	var errorMsg = "";

	if (f.title.value == "") {
		errorMsg += "Please enter a Title\n";
	}
	if (f.firstname.value == "") {
		errorMsg += "Please enter a First Name\n";
	}
	if (f.lastname.value == "") {
		errorMsg += "Please enter a Last Name\n";
	}
	if (f.phone.value == "") {
		errorMsg += "Please enter a Phone Number\n";
	}
	if (f.email.value == "") {
		errorMsg += "Please enter an Email Address\n";
	}

	if (errorMsg != "") {
		alert(errorMsg);
		return false;
	}
	return true;
}

function validate() { // validate phone, fax and email fields
  if (checkData()) {
  	if (cAutoCheckTelNum(window.document.contact.phone)) { // if true
  	if (cAutoCheckTelNum(window.document.contact.fax)) { // if true
  	if (cAutoCheckEmail(window.document.contact.email)) { // if true
  	return true;
  	} else {
  		return false;
  	}
  	} else {
  		return false;
  	}
  	} else {
  		return false;
  	}
  } else {
  	return false;
  }
}

function validate(dogQty) {
	var t1 = window.document.mainform.numberOfDogs.value;
	var t2 = window.document.mainform.largeDogQty.value;
	var t3 = window.document.mainform.smallDogQty.value;
	if (dogQty > 1) {
		if (cCheckCollars(t1,t2,t3)) {
			return true;
		}	else { 
			return false;
		} // end if
	} else { // skip check, as it's a 1 dog sys
	return true;
	}
} // end function


  function checkPaymentData() {
  	var f = window.document.pDetails;
  	var errorMsg = "";

  	if (f.title.value == "") {
  		errorMsg += "Please enter a Title\n";
  	}
  	if (f.firstname.value == "") {
  		errorMsg += "Please enter a First Name\n";
  	}
  	if (f.lastname.value == "") {
  		errorMsg += "Please enter a Last Name\n";
  	}
  	if (f.address.value == "") {
  		errorMsg += "Please enter an Address\n";
  	}
  	if (f.city.value == "") {
  		errorMsg += "Please enter a Town or City\n";
  	}
  	if (f.zipcode.value == "") {
  		errorMsg += "Please enter a Zip / Postal Code\n";
  	}
  	if (f.country.value == "") {
  		errorMsg += "Please enter a Country Name\n";
  	}
  	if (f.phone.value == "") {
  		errorMsg += "Please enter a Phone Number\n";
  	}
  	if (f.email.value == "") {
  		errorMsg += "Please enter an Email Address\n";
  	}
  	if (errorMsg != "") {
  		alert(errorMsg);
  		return false;
  	}
  	return true;
  }

function validatePayment() { // mandatory data, validate phone, fax and email fields
  if (checkPaymentData()) {
  	if (cAutoCheckTelNum(window.document.pDetails.phone)) { // if true
  	if (cAutoCheckTelNum(window.document.pDetails.fax)) { // if true
  	if (cAutoCheckEmail(window.document.pDetails.email)) { // if true
  	return true;
  	} else {
  		return false;
  	}
  	} else {
  		return false;
  	}
  	} else {
  		return false;
  	}
  } else {
  	return false;
  }
}

function UpdateQty(item, cartId) 
{
  	//alert("cart id = " + cartId);
  	newQty = item.options[item.selectedIndex].text;
  	document.location.href = 'cart.php?action=update_item&cartId='+ cartId +'&itemQty='+newQty;
} // end UpdateOty function

// Function to check qty of collars match number of dogs for the system selected
function cCheckCollars(numberOfDogs, largeCollarQty, smallCollarQty) {
  var numLarge = new Number(largeCollarQty);
  var numSmall = new Number(smallCollarQty);
  var totalCollars = numLarge + numSmall;
  if (totalCollars != numberOfDogs) {
    alert("Collar quantities selected must total " + numberOfDogs + ", the number of dogs for this system.");
    window.document.mainform.largeDogQty.focus();
    return false;
  }
  return true;
}

// Function to check email
function cCheckEmail(param) {
  var emailFilter=/^.+@.+\..+$/;
  var error = '';
  if (!(emailFilter.test(param))) {
    return 'is not a valid email address.';
  }
  return '';
}

function cAutoCheckEmail(formField) {
  var value = String(cTrim(formField.value));
  // set trimmed value back
  formField.value = value;
  if (value == '') return false;
  var error = cCheckEmail(value);
  if (error != '') {
    alert("Value entered (" + value + ") " + error);
    cSetFocusAndSelectOnField(formField);
    return false;
  }
  return true;
}

//Removes leading and trailing white space from a string
function cTrim( s ){
  if ((null==s) || (''==s)) return '';
  var patt = new RegExp( "^ *(.*[^ ]) *$" );
  var parse = s.match( patt );
  if (parse==null) return '';
  return parse[1];
}

// Function to set focus on a field
function cSetFocusAndSelectOnField(field) {
  field.select();
  field.focus();
}

// Function to check telephone number
function cAutoCheckTelNum(formField) {
  var value = cTrim(formField.value);
  // set trimmed value back
  formField.value = value;
  var error = cCheckTelNum(value);
  if (error != '') {
    alert("Value entered " + error);
    cSetFocusAndSelectOnField(formField);
    return false;
  }
  return true;
}

function cCheckTelNum(param) {
  //strip out acceptable non-numeric characters
  var stripped = param.replace(/[\(\)\.\-\ ]/g, '');
  var error = "contained invalid characters";
  // fail if there is a non numeric char
  var re = /[^0-9+ ]/;
  var res = re.exec(stripped);
  if (res==null) return '';
  return error + '(' + res + ')';
}
