function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

  function eliminateWS(s) {
    var WS = /^[\s]+/;	
    var newStr = s.replace(WS,"");                   //<-- Trim any leading whitespace

    while (newStr.charAt(newStr.length-1) == " ") {
      newStr = newStr.slice(0,-1);                   //<-- Trim any trailing whitespace
    }
    return newStr;                                   //<-- Update the value in the form field
  }
  
  function isEmpty(s) {		
    s = eliminateWS(s);
    return ((s == null) || (s.length == 0));        //<-- If it's empty, return true;		
  }

	function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
	obj.value=obj.value.substring(0,mlength)
	}

  /*-------------------- MAIN FUNCTION --------------------*/
  
  function validateFrm(frm) {
  
  	var errMsg = "";


	if (frm.nonEmp[0].checked == false && frm.nonEmp[1].checked == false ) {
      errMsg = "\n Will non-employee be staying in room?" + errMsg;
	}

	if ( isEmpty(frm.nightsOcc.value) ) {
      errMsg = "\n Lodging - # of Occupants" + errMsg;
      frm.nightsOcc.focus();
    }
    
	if ( isEmpty(frm.nightsNum.value) ) {
      errMsg = "\n Lodging - # of Nights" + errMsg;
      frm.nightsNum.focus();
    }
    
	if (frm.destAirShuttle[0].checked == false && frm.destAirShuttle[1].checked == false ) {
      errMsg = "\n Shuttle at Destination Airport?" + errMsg;
	}

	if (frm.airShuttle[0].checked == false && frm.airShuttle[1].checked == false ) {
      errMsg = "\n Shuttle to Departing Airport?" + errMsg;
	}

	if (frm.rentalVeh[0].checked == false && frm.rentalVeh[1].checked == false ) {
      errMsg = "\n Rental vehicle?" + errMsg;
	}

	if (frm.univVeh[0].checked == false && frm.univVeh[1].checked == false ) {
      errMsg = "\n University vehicle?" + errMsg;
	}

	if (frm.persVeh[0].checked == false && frm.persVeh[1].checked == false ) {
      errMsg = "\n Using personal vehicle?" + errMsg;
	}

	if (frm.travelWarning[0].checked == false && frm.travelWarning[1].checked == false ) {
      errMsg = "\n Travel Warning?" + errMsg;
	}

	if ( isEmpty(frm.dest1Depart.value) ) {
      errMsg = "\n Destination 1 Departure Date/Time" + errMsg;
      frm.dest1Depart.focus();
    }

	if ( isEmpty(frm.dest1.value) ) {
      errMsg = "\n Destination 1" + errMsg;
      frm.dest1.focus();
    }
    
	if (frm.personalTime[0].checked == false && frm.personalTime[1].checked == false ) {
      errMsg = "\n Personal Time Included?" + errMsg;
	}

	if ( isEmpty(frm.bizDateTimeEnd.value) ) {
      errMsg = "\n Date and Time Official Business ends" + errMsg;
      frm.bizDateTimeEnd.focus();
    }
    
	if ( isEmpty(frm.bizDateTimeBegin.value) ) {
      errMsg = "\n Date and Time Official Business begins" + errMsg;
      frm.bizDateTimeBegin.focus();
    }
    
	if ( isEmpty(frm.returnDateTime.value) ) {
      errMsg = "\n Return Date/Time" + errMsg;
      frm.returnDateTime.focus();
    }
    
	if ( isEmpty(frm.departDateTime.value) ) {
      errMsg = "\n Departure Date/Time" + errMsg;
      frm.departDateTime.focus();
    }
    
	if (frm.spsFunds[0].checked == false && frm.spsFunds[1].checked == false ) {
      errMsg = "\n SPS Funds?" + errMsg;
	}

	if (frm.federalFunds[0].checked == false && frm.federalFunds[1].checked == false ) {
      errMsg = "\n Federal Funds?" + errMsg;
	}

    if ( isEmpty(frm.costCenter.value) || isNaN(frm.costCenter.value) || (frm.costCenter.value.length < 10) ) {
      errMsg = "\n Cost Center (must be 10 numeric characters)" + errMsg;
      frm.costCenter.focus();
    }
		
    if ( isEmpty(frm.fund.value) || isNaN(frm.fund.value) || (frm.fund.value.length < 8) ) {
      errMsg = "\n Fund (must be 8 numeric characters)" + errMsg;
      frm.fund.focus();
    }
		
	if (frm.blanketTravel[0].checked == false && frm.blanketTravel[1].checked == false ) {
      errMsg = "\n Blanket Travel Approval for this Trip?" + errMsg;
	}

	if (frm.inStateTAL[0].checked == false && frm.inStateTAL[1].checked == false ) {
      errMsg = "\n In-State Travel Approval Letter?" + errMsg;
	}

	if (frm.nonResident[0].checked == false && frm.nonResident[1].checked == false ) {
      errMsg = "\n Non-Resident?" + errMsg;
	}

    if ( isEmpty(frm.orgUnitNum.value) || isNaN(frm.orgUnitNum.value) || (frm.orgUnitNum.value.length < 8) ) {
      errMsg = "\n Org Unit Number (must be 8 numeric characters)" + errMsg;
      frm.orgUnitNum.focus();
    }
		
    if ( isEmpty(frm.orgUnitName.value) ) {
      errMsg = "\n Org Unit Name" + errMsg;
      frm.orgUnitName.focus();
    }
    
    if ( isEmpty(frm.purpose.value) ) {
      errMsg = "\n Purpose of Travel" + errMsg;
      frm.purpose.focus();
    }
    
    if ( isEmpty(frm.phone.value) || (frm.phone.value.length < 5) ) {
      errMsg = "\n Traveler Phone (must be 5-11 numeric characters)" + errMsg;
      frm.phone.focus();
    }
		
    if ( isEmpty(frm.email.value) ) {
      errMsg = "\n Requestor E-mail" + errMsg;
      frm.email.focus();
    }
    
	if ( isEmpty(frm.name.value) ) {
      errMsg = "\n Traveler Name" + errMsg;
      frm.name.focus();
    }
    
    if (!(isEmpty(errMsg))) {
      errMsg =  "The following fields are required:\n" + errMsg;							
      alert (errMsg);
      return false;
    }
    frm.subject.value = "Travel Request Form"; 
    return true;    
  }
