function v_dobsub(theForm) {

    // get todays date
    var tDate = new Date();
    var lDate = tDate.getDate();        // 1-31
    var lMonth = tDate.getMonth() + 1;  // 0-11
    var lYear = tDate.getFullYear();    // 4-digit year

    var dd = document.getElementById('date').value;
    var mm = document.getElementById('month').value;
    var year = document.getElementById('year').value;

    var pdd = null;
    var pmm = null;
    var pyear = null;
    if (document.getElementById('pdate')) {
        pdd = document.getElementById('pdate').value;
        pmm = document.getElementById('pmonth').value;
        pyear = document.getElementById('pyear').value;
    }

    if (dd == "" || mm == "" || year == "") {
        return true;
    }

    var leap=0;
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
        leap = 1;
    }

    if((mm == "04" || mm == "06" || mm == "09" || mm == "11" ) && dd == "31") {
        alert("Please select a valid date");
        return false;
    }

    if(leap != 1 && mm == 02 && dd > 28) {
        alert("Please select a valid date");
        return false;
    }

    if(leap == 1 && mm == 02 && dd > 29) {
        alert("Please select a valid date");
        return false;
    }

    // finally it cannot be a future date
    if (parseInt(year)==lYear) {
        if (parseInt(mm)>lMonth || parseInt(dd)>lDate) {
            alert("Date Of Birth connot be a future date");
            return false;
        }

        if (pdd != null) {
            return v_partnerdob(pdd, pmm, pyear);
        } else {
            return true;
        }
    } else {
        if (pdd != null) {
            return v_partnerdob(pdd, pmm, pyear);
        } else {
            return true;
        }
    }
}

function v_partnerdob(dd, mm, year) {

    // get todays date
    var tDate = new Date();
    var lDate = tDate.getDate();    // 1-31
    var lMonth = tDate.getMonth() + 1;  // 0-11
    var lYear = tDate.getFullYear();// 4-digit year

    if (dd == "" || mm == "" || year == "") {
        return true;
    }

    var leap=0;
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
        leap = 1;
    }

    if((mm == "04" || mm == "06" || mm == "09" || mm == "11" ) && dd == "31") {
        alert("Please select a valid date for partner");
        return false;
    }

    if(leap != 1 && mm == 02 && dd > 28) {
        alert("Please select a valid date for partner");
        return false;
    }

    if(leap == 1 && mm == 02 && dd > 29) {
        alert("Please select a valid date for partner");
        return false;
    }

    // finally it cannot be a future date
    if (parseInt(year)==lYear) {
        if (parseInt(mm)>lMonth || parseInt(dd)>lDate) {
            alert("Date Of Birth for partner connot be a future date");
            return false;
        }

        return true;
    } else {
        return true;
    }
}