// This function sorts the entity lists

function sortBy(theForm, target) {

    if (theForm.sortBy.value == target) {

        if (theForm.sortDirection.value == 'ASC') {

            theForm.sortDirection.value = 'DESC';

	} else {

	    theForm.sortDirection.value = 'ASC';

	}

    } else {

        theForm.sortDirection.value = 'ASC';

    }



    theForm.sortBy.value=target;

    theForm.submit();

}



function textCounter( field, countfield, maxlimit ) {

    if ( field.value.length > maxlimit ) {

        field.value = field.value.substring( 0, maxlimit );

        field.blur();

        field.focus();

        return false;

    } else {

        if (countfield != null) {

        countfield.value = maxlimit - field.value.length;

        }

    }

}



function getSelectedRadio(buttonGroup) {

   // returns the array number of the selected radio button or -1 if no button is selected

   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)

      for (var i=0; i<buttonGroup.length; i++) {

         if (buttonGroup[i].checked) {

            return i

         }

      }

   } else {

      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero

   }

   // if we get to this point, no radio button is selected

   return -1;

} // Ends the "getSelectedRadio" function



function getSelectedRadioValue(buttonGroup) {

   // returns the value of the selected radio button or "" if no button is selected

   var i = getSelectedRadio(buttonGroup);

   if (i == -1) {

      return "";

   } else {

      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)

         return buttonGroup[i].value;

      } else { // The button group is just the one button, and it is checked

         return buttonGroup.value;

      }

   }

} // Ends the "getSelectedRadioValue" function



function textCounter(field, countfield, maxlimit) {

  if (field.value.length > maxlimit) {

     field.value = field.value.substring(0, maxlimit);

  } else {

    countfield.value = maxlimit - field.value.length;

  }

}



function getDate(field, format) {

  var newDate = new Date();

  if (format.toLowerCase() == 'yyyy-mm-dd') {

    month = field.value.substring(5,7);

    if (month.charAt(0) == "0") {

      month = month.charAt(1);

    }

    

    day = field.value.substring(8,10);

    if (day.charAt(0) == "0") {

      day = day.charAt(1);

    }

        

    newDate.setMonth(parseInt(month)-1);

    newDate.setDate(parseInt(day));    

    newDate.setYear(parseInt(field.value.substring(0,4)));

  } else if (format.toLowerCase() == 'mm/dd/yyyy') {

    month = field.value.substring(0,2);

    if (month.charAt(0) == "0") {

      month = month.charAt(1);

    }

    day = field.value.substring(3,5);

    if (day.charAt(0) == "0") {

      day = day.charAt(1);

    }    

    newDate.setMonth(parseInt(month)-1);

    newDate.setDate(parseInt(day));

    newDate.setYear(parseInt(field.value.substring(6,10)));

  }

  return newDate;

}



// Determines the number of days between two dates.

function daysBetween(date1, date2) {

  diff = Math.abs(date1.getTime() - date2.getTime());

  days = Math.floor(diff/(1000 * 60 * 60 * 24));

  return days;

}



// Accepts a non-negative currency value

function isCurrency(field) {

  result = false;

  if (field.value == '' || field.value == null) {

    return result;

  }

  //regexp = new RegExp('^[-]?([1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|\.[0-9]{1,2})$');

  regexp = new RegExp('^([1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|\.[0-9]{1,2})$');

  result = regexp.test(field.value);

  return result;

}



function datesEqual(date1,date2) {

  return result = date1.getMonth() == date2.getMonth() && date1.getDate() == date2.getDate()

    && date1.getYear() == date2.getYear();

}



function checkAll(field) {

	for(i = 0; i < field.length; i++)

		field[i].checked = true;

}



function uncheckAll(field) {

	for(i = 0; i < field.length; i++)

		field[i].checked = false;

}
