/************************************************************************
 * Useful Functions
 ************************************************************************/

function validDate(dateStr) {

    var dateStringArray = dateStr.split('/');

    if (dateStringArray.length < 3)
        return false;

    var theDate = convertToDate(dateStr);

    if (isNaN(theDate.valueOf()))
        return false;

    var day = parseInt(dateStringArray[0]);
    var month = parseInt(dateStringArray[1]);

    if ((day > 29 && month == 2) || (day == 31 &&
                (month == 4 || month == 6 || month == 9 || month == 11))) {
        return false;
    }

    return true;
}

function dateExpired(dateStr) {
    var theDate = convertToDate(dateStr);
    var today = new Date();

    if (theDate.valueOf() < today.valueOf())
        return true;

    return false;
}

function convertToDate(dateStr) {
    var theDate = new Date();
    var dateStringArray = dateStr.split('/');

    theDate = new Date(dateStringArray[1] + '/' + dateStringArray[0] + '/' + dateStringArray[2]);

    return theDate;
}

function validDateRange(startDateStr, endDateStr, minRange) {
    var startDate = convertToDate(startDateStr);
    var endDate = convertToDate(endDateStr);

    var minEndDate = DateAdd("d", minRange, startDate);

    if (minEndDate.valueOf() > endDate.valueOf())
        return false;

    return true;
}

function showDetails(panel)
{
	document.getElementById(panel).style.display = "inline";
}

function hideDetails(panel)
{
	document.getElementById(panel).style.display = "none";
}

function validateMandatoryInputField(inputName, validatorName) {
    var input = document.getElementById(inputName);
    if (input.value == '')
        showDetails(validatorName);
    else
        hideDetails(validatorName);
}

function validateMandatoryCheckbox(checkboxName, validatorName) {
    var checkbox = document.getElementById(checkboxName);
    if (!checkbox.checked)
        showDetails(validatorName);
    else
        hideDetails(validatorName);
}
