// Form Utils
// REQUIRES: utils.js

// Globals
var MSG_ENTER_COUPONCODE = "Please enter a valid coupon code.";
var MSG_ENTER_EMAIL = "Please enter an email address.";
var MSG_ENTER_NAME_FIRST = "Please enter your first name.";
var MSG_ENTER_NAME_LAST = "Please enter your last name.";
var MSG_ENTER_MESSAGE = "Please enter a message.";
var MSG_SELECT_FIXTURE = "Please select an option from the dropdown box.";


/**
 * Strip leading/trailing whitespace from value
 */
function trimField( oField ) {

  oField.value = oField.value.replace(/^\s*|\s*$/g, '');
}


/**
 * Strip leading/trailing whitespace from value
 */
function validateField( oForm, sFieldName, sErrorMsg, bLowerCase ) {

  var bIsValid = true;

	if (oForm.elements[sFieldName].tagName != 'SELECT') {
		
		trimField(oForm.elements[sFieldName]);
		
		if (bLowerCase) {
			
			oForm.elements[sFieldName].value = oForm.elements[sFieldName].value.toLowerCase();
		}
		
		if (oForm.elements[sFieldName].value == "") {
	
			bIsValid = false;
		}
	
	} else {
		
		if (oForm.elements[sFieldName].selectedIndex == 0) {

			bIsValid = false;
		}
	}
	
  if (!bIsValid) {
	
		alert(sErrorMsg);
		oForm.elements[sFieldName].focus();
		
		return false;
	
	} else {
	
		return true;
	}
}


/**
 * Intercept submit attempt to preprocess form
 */
function checkValidateForm( event, oForm ) {
	
  if ((event.keyCode && event.keyCode == 13) || (event.which && event.which == 13)) {
		
    //validateForm(oForm);

    return false;
  }

  return true;
}


/**
 * Validate form
 */
function validateForm( oForm ) {

	switch(oForm.id) {

		case FORM_NAME_ADDTOCART : 
		  if (oForm.elements['os0']) { if (!validateField(oForm, 'os0', MSG_SELECT_FIXTURE)) { return } }
			oForm.submit();
		  break;
		
		case FORM_NAME_ORDER_CANCEL : 
		case FORM_NAME_ORDER_STATUS : 
      if (!validateField(oForm, 'name_first', MSG_ENTER_NAME_FIRST)) { return }
      if (!validateField(oForm, 'name_last', MSG_ENTER_NAME_LAST)) { return }
      if (!validateField(oForm, 'email', MSG_ENTER_EMAIL)) { return }
			oForm.submit();
		  break;
		
		case FORM_NAME_CONTACT : 
		case FORM_NAME_ORDER_CUSTOM : 
      if (!validateField(oForm, 'name_first', MSG_ENTER_NAME_FIRST)) { return }
      if (!validateField(oForm, 'name_last', MSG_ENTER_NAME_LAST)) { return }
      if (!validateField(oForm, 'email', MSG_ENTER_EMAIL)) { return }
      if (!validateField(oForm, 'message', MSG_ENTER_MESSAGE)) { return }
			oForm.submit();
		  break;

		case FORM_NAME_COUPON : 
      if (!validateField(oForm, 'cpn', MSG_ENTER_COUPONCODE, true)) { return }
			oForm.submit();
		  break;
	}
}

