/* Common utility functions */

function isBlank(testStr)
{
	if(testStr.length == 0)
	{
		return true;
	}
   for(var i = 0; i<= testStr.length-1; i++)
   {
   	if(testStr.charAt(i) != " ")
    	{  
    		return false
    	}
    	return true
   }
}

function isInteger (s)
{
   var i;

   if (isEmpty(s))
   if (isInteger.arguments.length == 1) return 0;
   else return (isInteger.arguments[1] == true);

   for (i = 0; i < s.length; i++)
   {
      var c = s.charAt(i);

      if (!isDigit(c)) return false;
   }

   return true;
}
   
function isEmpty(s)
{
	return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
   return ((c >= "0") && (c <= "9"))
}


// This function adds a dash after the 7th and 3rd position to display a regular domestic phone number entry
function AddDashes(theobject)
{
	var len =theobject.value.length;
	if(len == 3 || len == 7)
	{
		theobject.value = theobject.value + "-";
	}
}

// This function formats a text input box into the standard dd/mm/yyyy pattern
function FormatDateText(theobject)
{
	var len =theobject.value.length;
	if(len == 2 || len == 3)
	{
		theobject.value = theobject.value + "/";
	}
}

function validateEmail(email)
{
	var atsignPos = email.indexOf("@", 0);
	
	if (atsignPos == -1)
	{
		alert("Please enter your email, Missing Asterisk(@)")
		return false
	}
	if (email.indexOf(".", atsignPos)  == -1)
	{
		alert("Please enter your email, Missing Domain after @")
		return false
	}
  	return true
}
// This function is used to change lower to upper case for the Input text
function cUpper(cObj)
{
cObj.value=cObj.value.toUpperCase();
}

function clearScreen(formObj)
{
	//Clear all input text fields on the form
	for(var i=0; i< formObj.length; i++) {
		if(formObj.elements[i].type == 'text')	{
			formObj.elements[i].value = '';
		}
		if(formObj.elements[i].type == 'textarea')	{
			formObj.elements[i].value = '';
		}
		if(formObj.elements[i].type == 'checkbox')	{
			formObj.elements[i].checked = false;
		}
		if(formObj.elements[i].type == 'radio')	{
			formObj.elements[i].checked = false;
		}
		
		if(formObj.id == 'custSearch')	{
			formObj.cboStatus.value = '';
			formObj.puState.value = '';
			formObj.delState.value = '';
		}
			
		if(formObj.id == 'createCustAcct')	{
			formObj.country.value = '';
			formObj.state.value = '';
		}		
		
		if(formObj.id == 'createAcct')	{
			formObj.country.value = '';
			formObj.state.value = '';
			formObj.brokerMc.value = 0;
			formObj.carrierMc.value = 0;
			formObj.tractNum.value = 0;
			formObj.trailNum.value = 0;
			formObj.trailSize.value = 0;
			formObj.ohlCarr[0].checked = true;
		}
		
		if(formObj.id == 'searchForm')	{
			formObj.availDt.value = '';
			formObj.weight.value = '';
			formObj.origState6.value = '';
			formObj.destState6.value = '';
			formObj.origCity6.value = '';			
			formObj.destCity6.value = '';		
			formObj.srchEqType.value = '';
			document.getElementById('searchRes').innerHTML = '';
			//Only remove cities if populated..takes a long time if alot			
			//if(formObj.origCity6.options.length > 0)
			//{
			//	var i;
				//for(i=formObj.origCity6.options.length-1;i>=1;i--)
			//	{
				//formObj.origCity6.remove(i);
				//}
			//}
			
		}
		
	}
			
}

function isValidDate(date)
{
	var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
	
   var matches = date.match(RegExPattern);

   if (matches == null)
   {
   	return false;
   }
   return true;
}

function checkdate(dateVal) 
{
	if (chkdate(dateVal) == false) 
	{
		return false;
	}
	else {
		return true;
	}
}

function chkdate(dateVal) 
{
	var strDatestyle = "US"; //United States date style
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array(12);
		
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	
	//strDate = datefield.value;
	strDate = dateVal;
	
	if (strDate.length < 1) {
		return true;
	}
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
	{
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
				err = 1;
				return false;
			}
			else {
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
	   }
	}
	
	if (booFound == false) {
		if (strDate.length>5) {
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
	   }
	}
	
	if (strYear.length == 2) {
		strYear = '20' + strYear;
	}
	// US style
	if (strDatestyle == "US") {
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
	}
	
	intday = parseInt(strDay, 10);
	
	if (isNaN(intday)) {
		err = 2;
		return false;
	}
	
	intMonth = parseInt(strMonth, 10);
	
	if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
	   	}
		}
		if (isNaN(intMonth)) {
			err = 3;
			return false;
	   }
	}
	
	intYear = parseInt(strYear, 10);
	
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	
	if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
	}
	
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		
		if (LeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		}
		else {
			if (intday > 28) {
				err = 10;
				return false;
			}
		}
	}
	
	return true;
}
	
function LeapYear(intYear) {
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) { return true; }
	}
	else {
		if ((intYear % 4) == 0) { return true; }
	}
	
	return false;
}


