function LTrim(str){if(str==null){return null;}for(var i=0;str.charAt(i)==" ";i++);return str.substring(i,str.length);}
function RTrim(str){if(str==null){return null;}for(var i=str.length-1;str.charAt(i)==" ";i--);return str.substring(0,i+1);}
function Trim(str){return LTrim(RTrim(str));}
/* Trim function from http://www.mattkruse.com/javascript/validations/compact_source.html*/

function IsNotNumeric(sText)
{	
	if (sText.search(/[^0-9]/) == -1)
		return false;
	else
		return true;
}

function isNotNine(sText)
{
	if (sText.length != 9)
		return true;
	else 
		return false;
}

function checkDate (sText)
{
	var ok = sText.match(/^\d{2}\/\d{2}\/\d{4}$/g);
	var ok2 = sText.match(/^\d{4}\/\d{2}\/\d{2}$/g);
	if (ok == null) {
		if (ok2 == null) {
		    return false;
		}
	} else 
		return true;
}	

function myValidator(theForm)
{
  var flag = true;

  var BID = document.getElementById('userBannerID').value;
  if (BID == "") {
	document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"Student ID\" field." + "<br />";
	flag = false;
  }
/*  if (IsNotNumeric(BID)) {
	document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a correct value for the \"Banner ID\" field." + "<br />";      
	flag = false;	
  }
  if (isNotNine(BID)) {
	document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a 9 digits for \"Banner ID\" field." + "<br />";
	flag = false;	
  } */
  
  var TN = document.getElementById('userTicketNumber').value;
  if (TN == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"Ticket Number\" field." + "<br />";
    flag = false;
  } else if (IsNotNumeric(TN)) {
	document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a NUMERIC value for the \"Ticket Number\" field." + "<br />";      
	flag = false;	
  }
  
  if (document.getElementById('userDateOfTicket').value == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"Date of Ticket\" field." + "<br />";
    flag = false;
  }
  else if (!(checkDate(document.getElementById('userDateOfTicket').value))) {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a \"Date of Ticket\" in mm/dd/yyyy format." + "<br />";
  	flag = false;
  }

  if (document.getElementById('userFirstName').value == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"First Name\" field." + "<br />";
    flag = false;
  }
   
 if (document.getElementById('userLastName').value == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"Last Name\" field." + "<br />";
    flag = false;
  }

  if (document.getElementById('userLicensePlate').value == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"License Plate\" field." + "<br />";
    flag = false;
  }

  if (document.getElementById('userLicenseState').value == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"License State\" field." + "<br />";
    flag = false;
  }

  var decalNumber = document.getElementById('userParkingDecalNum').value;
  if (decalNumber == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"Parking Decal Number\" field." + "<br />";
    flag = false;
  } else if (IsNotNumeric(decalNumber)) {
	document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a NUMERIC value for the \"Parking Decal Number\" field." + "<br />";      
	flag = false;	
  }

  var emailAddress = document.getElementById('userEmailAddress').value;
  if (emailAddress == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"Email Address\" field." + "<br />";
    flag = false;
  } else if (emailAddress.search(/^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$/) == -1) {
      document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a valid email address: \"" + emailAddress + "\" is an invalid e-mail!" + "<br />"; // this is also optional
	  flag = false;
	  //email formatting from http://www.regexplib.com
  }
  
  var phoneNum = document.getElementById('userphoneNum').value;
  if (phoneNum != ""){
  	  if (phoneNum.search (/\d{3}\-\d{3}\-\d{4}/)){
	  		document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter the \"Phone Number\" in ddd-ddd-dddd  format" + "<br />";
	  		flag = false;
	  }
  }

  if (document.getElementById('userReason').value == "")
  {
    document.getElementById('errors').innerHTML = document.getElementById('errors').innerHTML + "Please enter a value for the \"Reason\" field." + "<br />";
    flag = false;
  }
  return flag;
}

function myFormValidator(theForm) {
	document.getElementById('errors').innerHTML = "<b><u>Your submission has the following errors:</u></b><br />";
	if (myValidator(theForm)) {
		document.getElementById('theForm').submit();
	} else {
		document.getElementById('errors').style.display = "block";
	}
}		