﻿var prefix = 'ctl00_ContentPlaceHolder1_';

String.prototype.trim=function(){
    return this.replace(/^\s*|\s*$/g,'');
}

function isAdult()
{
    return (document.getElementById(prefix + 'rbAdultOnSiteFullWeekLeadership').checked ||
            document.getElementById(prefix + 'rbAdultOnSiteFullWeekAssistant').checked ||
            document.getElementById(prefix + 'rbAdultOnSitePartWeekAssistant').checked);
}

function enableDisableRadioButtons(rbClicked)
{
    if (rbClicked.checked)
    {
        switch (rbClicked)
        {
            case (document.getElementById(prefix + 'rbAdultOnSiteFullWeekLeadership')):
                uncheckAdultFullTimeAssistant();
                uncheckAdultPartTimeAssistant();
                uncheckTeen();
            case (document.getElementById(prefix + 'rbAdultOnSiteFullWeekAssistant')):
                uncheckAdultFullTimeLeadership();
                uncheckAdultPartTimeAssistant();
                uncheckTeen();
            case (document.getElementById(prefix + 'rbAdultOnSitePartWeekAssistant')):
                uncheckAdultFullTimeLeadership();
                uncheckAdultFullTimeAssistant();
                uncheckTeen();
            case (document.getElementById(prefix + 'rbTeen')):
                uncheckAdultFullTimeLeadership();
                uncheckAdultFullTimeAssistant();
                uncheckAdultPartTimeAssistant();
        }
    }
}

function uncheckAdultFullTimeLeadership()
{
    document.getElementById(prefix + 'rbPreschoolClassroomLeader').checked = false;
    document.getElementById(prefix + 'rbElementaryGroupLeader').checked = false;
    document.getElementById(prefix + 'rbCoreCommittee').checked = false;
}

function uncheckAdultFullTimeAssistant()
{
    document.getElementById(prefix + 'rbAdultPreschoolAssistant').checked = false;
    document.getElementById(prefix + 'rbAdultPreschoolCrafts').checked = false;
    document.getElementById(prefix + 'rbAdultElementaryCrafts').checked = false;
    document.getElementById(prefix + 'rbAdultPreschoolMusic').checked = false;
    document.getElementById(prefix + 'rbAdultElementaryMusic').checked = false;
    document.getElementById(prefix + 'rbAdultActingAndDrama').checked = false;
    document.getElementById(prefix + 'rbAdultSnacks').checked = false;
    document.getElementById(prefix + 'rbAdultProvideChildcare').checked = false;   
}

function uncheckAdultPartTimeAssistant()
{
    document.getElementById(prefix + 'chkPartWeekMonday').checked = false;
    document.getElementById(prefix + 'chkPartWeekTuesday').checked = false;
    document.getElementById(prefix + 'chkPartWeekWednesday').checked = false;
    document.getElementById(prefix + 'chkPartWeekThursday').checked = false;
    document.getElementById(prefix + 'chkPartWeekFriday').checked = false;
    document.getElementById(prefix + 'rbPartTimePreschoolCrafts').checked = false;
    document.getElementById(prefix + 'rbPartTimeElementaryCrafts').checked = false;
    document.getElementById(prefix + 'rbPartTimePrepareServeSnacks').checked = false;
    document.getElementById(prefix + 'rbPartTimeProvideChildcare').checked = false;
}

function uncheckTeen()
{
        document.getElementById(prefix + 'rbTeenPreschoolAssistant1').checked = false;
        document.getElementById(prefix + 'rbTeenPreschoolAssistant2').checked = false;
        document.getElementById(prefix + 'rbTeenElementaryAssistant1').checked = false;
        document.getElementById(prefix + 'rbTeenElementaryAssistant2').checked = false;
        document.getElementById(prefix + 'rbTeenActingDrama1').checked = false;
        document.getElementById(prefix + 'rbTeenActingDrama2').checked = false;
        document.getElementById(prefix + 'rbTeenPreschoolCrafts1').checked = false;
        document.getElementById(prefix + 'rbTeenPreschoolCrafts2').checked = false;
        document.getElementById(prefix + 'rbTeenElementaryCrafts1').checked = false;
        document.getElementById(prefix + 'rbTeenElementaryCrafts2').checked = false;
        document.getElementById(prefix + 'rbTeenPrepareServeSnacks1').checked = false;
        document.getElementById(prefix + 'rbTeenPrepareServeSnacks2').checked = false;
        document.getElementById(prefix + 'rbTeenPreschoolMusic1').checked = false;
        document.getElementById(prefix + 'rbTeenPreschoolMusic2').checked = false;
        document.getElementById(prefix + 'rbTeenElementaryMusic1').checked = false;
        document.getElementById(prefix + 'rbTeenElementaryMusic2').checked = false;
        document.getElementById(prefix + 'rbTeenProvideChildcare1').checked = false;
        document.getElementById(prefix + 'rbTeenProvideChildcare2').checked = false;
}

function validateVolunteerName(source, args)
{
    var strName = document.getElementById(prefix + 'txtVolunteerName').value.trim();
    args.IsValid = (strName.indexOf(' ') > -1);
}

function validateVolunteerAddress(source, args)
{
    var strAddress = document.getElementById(prefix + 'txtVolunteerStreetAddress').value.trim();
    args.IsValid = (strAddress.indexOf(' ') > -1);
}

//function validateVolunteer(source, args)
//{
//    args.IsValid = (document.getElementById(prefix + 'rbAdultOnSiteFullWeekLeadership').checked ||
//                    document.getElementById(prefix + 'rbAdultOnSiteFullWeekAssistant').checked ||
//                    document.getElementById(prefix + 'rbAdultOnSitePartWeekAssistant').checked ||
//                    document.getElementById(prefix + 'rbTeen').checked ||
//                    document.getElementById(prefix + 'chkPreWork').checked);
//}

function validateWorkWithVolunteer(source, args)
{
    args.IsValid = (document.getElementById(prefix + 'txtWorkWithVolunteer').value != '' || !document.getElementById(prefix + 'chkWorkWithVolunteer').checked);
}

function validateWorkWithChild(source, args)
{
    args.IsValid = (document.getElementById(prefix + 'txtWorkWithChild').value != '' || !document.getElementById(prefix + 'chkWorkWithChild').checked);
}

function validateOtherRequests(source, args)
{
    args.IsValid = (document.getElementById(prefix + 'txtOtherRequests').value != '' || !document.getElementById(prefix + 'chkOtherRequests').checked);
}

function validateAdultFullWeekLeadership(source, args)
{
    var checkbox = document.getElementById(prefix + 'rbAdultOnSiteFullWeekLeadership');
    if (checkbox.checked)
    {
        args.IsValid = (document.getElementById(prefix + 'rbPreschoolClassroomLeader').checked ||
                        document.getElementById(prefix + 'rbElementaryGroupLeader').checked ||
                        document.getElementById(prefix + 'rbCoreCommittee').checked);
    }
    else
    {
        args.IsValid = true;
    }
}

function validateAdultFullWeekAssistant(source, args)
{
    var checkbox = document.getElementById(prefix + 'rbAdultOnSiteFullWeekAssistant');
    if (checkbox.checked)
    {
        args.IsValid = (document.getElementById(prefix + 'rbAdultPreschoolAssistant').checked ||
                        document.getElementById(prefix + 'rbAdultPreschoolCrafts').checked ||
                        document.getElementById(prefix + 'rbAdultElementaryCrafts').checked ||
                        document.getElementById(prefix + 'rbAdultPreschoolMusic').checked ||
                        document.getElementById(prefix + 'rbAdultElementaryMusic').checked ||
                        document.getElementById(prefix + 'rbAdultActingAndDrama').checked ||
                        document.getElementById(prefix + 'rbAdultSnacks').checked ||
                        document.getElementById(prefix + 'rbAdultProvideChildcare').checked);
    }
    else
    {
        args.IsValid = true;
    }
}

function validateAdultPartWeekAssistant(source, args)
{
    var checkbox = document.getElementById(prefix + 'rbAdultOnSitePartWeekAssistant');
    if (checkbox.checked)
    {
        args.IsValid = (document.getElementById(prefix + 'rbPartTimePreschoolCrafts').checked ||
                        document.getElementById(prefix + 'rbPartTimeElementaryCrafts').checked ||
                        document.getElementById(prefix + 'rbPartTimePrepareServeSnacks').checked ||
                        document.getElementById(prefix + 'rbPartTimeProvideChildcare').checked);
    }
    else
    {
        args.IsValid = true;
    }
}

function validatePartTimeDays(source, args)
{
    var checkbox = document.getElementById(prefix + 'rbAdultOnSitePartWeekAssistant');
    if (checkbox.checked)
    {
        var checkCount = 0;
        if (document.getElementById(prefix + 'chkPartWeekMonday').checked) checkCount++;
        if (document.getElementById(prefix + 'chkPartWeekTuesday').checked) checkCount++;
        if (document.getElementById(prefix + 'chkPartWeekWednesday').checked) checkCount++;
        if (document.getElementById(prefix + 'chkPartWeekThursday').checked) checkCount++;
        if (document.getElementById(prefix + 'chkPartWeekFriday').checked) checkCount++;
        args.IsValid = (checkCount >= 2);
    }
    else
    {
        args.IsValid = true;
    }
}

function validateTeen(source, args)
{
    var checkbox = document.getElementById(prefix + 'rbTeen');
    if (checkbox.checked)
    {
        args.IsValid = ((document.getElementById(prefix + 'rbTeenPreschoolAssistant1').checked ||
                         document.getElementById(prefix + 'rbTeenElementaryAssistant1').checked ||
                         document.getElementById(prefix + 'rbTeenActingDrama1').checked ||
                         document.getElementById(prefix + 'rbTeenPreschoolCrafts1').checked ||
                         document.getElementById(prefix + 'rbTeenElementaryCrafts1').checked ||
                         document.getElementById(prefix + 'rbTeenPrepareServeSnacks1').checked ||
                         document.getElementById(prefix + 'rbTeenPreschoolMusic1').checked ||
                         document.getElementById(prefix + 'rbTeenElementaryMusic1').checked ||
                         document.getElementById(prefix + 'rbTeenProvideChildcare1').checked) &&
                        (document.getElementById(prefix + 'rbTeenPreschoolAssistant2').checked ||
                         document.getElementById(prefix + 'rbTeenElementaryAssistant2').checked ||
                         document.getElementById(prefix + 'rbTeenActingDrama2').checked ||
                         document.getElementById(prefix + 'rbTeenPreschoolCrafts2').checked ||
                         document.getElementById(prefix + 'rbTeenElementaryCrafts2').checked ||
                         document.getElementById(prefix + 'rbTeenPrepareServeSnacks2').checked ||
                         document.getElementById(prefix + 'rbTeenPreschoolMusic2').checked ||
                         document.getElementById(prefix + 'rbTeenElementaryMusic2').checked ||
                         document.getElementById(prefix + 'rbTeenProvideChildcare2').checked));
    }
    else
    {
        args.IsValid = true;
    }
}

//function validateChildcareChildrenCompleteness(source, args)
//{
//    //If name or DOB is filled out, both must be filled out.
//    var pnl = document.getElementById(prefix + 'pnlChildren');
//    var pnlChild = pnl.firstChild;
//    var valid = true;
//    var childsNameGiven = false;
//    var childsDOBGiven = false;
//    while (document.getElementById(prefix + 'chkChildcareDuring').checked && pnlChild != null)
//    {
//        if (pnlChild.nodeType == 1)
//        {
//            var divChild = pnlChild.firstChild;
//            while (divChild != null)
//            {
//                if (divChild.nodeType == 1 && divChild.name.substr(divChild.name.length - 7, 7) == 'txtName' && divChild.value != '' && divChild.value != null)
//                {
//                    childsNameGiven = true;
//                }
//                else if (divChild.nodeType == 1 && divChild.name.substr(divChild.name.length - 6, 6) == 'txtDOB' && divChild.value != '' && divChild.value != null)
//                {
//                    childsDOBGiven = true;
//                }
//                divChild = divChild.nextSibling;
//            }
//        }
//        pnlChild = pnlChild.nextSibling;
//    }
//    valid = (childsNameGiven == childsDOBGiven); //Either both true or both false
//    args.IsValid = valid;
//}

//function validateChildcareChildrenDOB(source, args)
//{
//    //Make sure DOB is a valid date
//    var pnl = document.getElementById(prefix + 'pnlChildren');
//    var pnlChild = pnl.firstChild;
//    var valid = true;
//    while (document.getElementById(prefix + 'chkChildcareBeforeAfter').checked && pnlChild != null && valid)
//    {
//        if (pnlChild.nodeType == 1)
//        {
//            var divChild = pnlChild.firstChild;
//            while (divChild != null && valid)
//            {
//                if (divChild.nodeType == 1 && divChild.name.substr(divChild.name.length - 6, 6) == 'txtDOB' && divChild.value != '' && divChild.value != null)
//                {
//                    var DOB = Date.parse(divChild.value);
//                    if (isNaN(DOB) || DOB > new Date())
//                    {
//                        valid = false;
//                    }  
//                }
//                divChild = divChild.nextSibling;
//            }
//        }
//        pnlChild = pnlChild.nextSibling;
//    }
//    args.IsValid = valid;  
//}

//function validateChildcareChildrenAge(source, args)
//{
//    var pnl = document.getElementById(prefix + 'pnlChildren');
//    var pnlChild = pnl.firstChild;
//    var valid = true;
//    while (document.getElementById(prefix + 'chkChildcareBeforeAfter').checked && pnlChild != null && valid)
//    {
//        if (pnlChild.nodeType == 1)
//        {
//            var divChild = pnlChild.firstChild;
//            while (divChild != null && valid)
//            {
//                if (divChild.nodeType == 1 && divChild.name.substr(divChild.name.length - 6, 6) == 'txtDOB' && divChild.value != '' && divChild.value != null)
//                {
//                    var DOB = Date.parse(divChild.value);
//                    if (DOB < Date.parse('1/1/2005'))
//                    {
//                        valid = false;
//                    }
//                }
//                divChild = divChild.nextSibling;
//            }
//        }
//        pnlChild = pnlChild.nextSibling;
//    }
//    args.IsValid = valid;
//}

function getBaseID(node)
{
    // Get the base portion of node's ID
    var strID = node.id;
    var chunks = strID.split('_');
    chunks.pop();
    return chunks.join('_');
}

function isChildsNameFilledIn(node)
{
    var txt = document.getElementById(getBaseID(node) + '_txtChildFName');
    var txt2 = document.getElementById(getBaseID(node) + '_txtChildFName');
    return (txt.value != null && txt.value != '' && txt2.value != null && txt2.value != '');
}

function validateFamilyAddress(source, args)
{
    var strAddress = document.getElementById(getBaseID(source) + '_txtFamilyStreetAddress').value.trim();
    args.IsValid = (strAddress.indexOf(' ') > -1);
}

function validateDOBComplete(source, args)
{
    if (isChildsNameFilledIn(source))
    {
        var txt = document.getElementById(getBaseID(source) + '_txtDOB');
        args.IsValid = (txt.value != null && txt.value != '');
    }
    else
    {
        args.IsValid = true;
    }
}

function validateDOB(source, args)
{
    if (isChildsNameFilledIn(source))
    {
        var txt = document.getElementById(getBaseID(source) + '_txtDOB');
        if (txt.value != null && txt.value != '')
        {
            var DOB = Date.parse(txt.value);
            args.IsValid = (!isNaN(DOB) && DOB < Date.parse('1/1/2007'));
        }
        else
        {
            args.IsValid = true;
        }
    }
    else
    {
        args.IsValid = true;
    }
}

function validateGrade(source, args)
{
    if (isChildsNameFilledIn(source))
    {
        args.IsValid = false;
        var rb = document.getElementById(getBaseID(source) + '_rblGrade_0');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rblGrade_1');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rblGrade_2');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rblGrade_3');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rblGrade_4');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rblGrade_5');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rblGrade_6');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rblGrade_7');
        if (rb.checked) args.IsValid = true;
    }
    else
    {
        args.IsValid = true; // Always valid if the user didn't even attempt to fill out this section
    }
}

function validateSize(source, args)
{
    // source is the validator span
    // source.parentNode is a TD
    // the size area is one of the siblings of this TD named 'sizeArea'
    if (isChildsNameFilledIn(source))
    {
        args.IsValid = false;
        var rb = document.getElementById(getBaseID(source) + '_rbChildSmall');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rbChildMedium');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rbChildLarge');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rbAdultSmall');
        if (rb.checked) args.IsValid = true;
        rb = document.getElementById(getBaseID(source) + '_rbAdultMedium');
        if (rb.checked) args.IsValid = true;
    }
    else
    {
        args.IsValid = true; // Always valid if the user didn't even attempt to fill out this section
    }
}

function validateChild1(source, args)
{
    args.IsValid = isChildsNameFilledIn(source);
}

function childToRegister(chk)
{
    if (chk.checked)
    {
        document.getElementById(prefix + 'chkPayingOnline').checked = true;
    }
}

function noChildToRegister(chk)
{
    if (chk.checked)
    {
        document.getElementById(prefix + 'chkPayingOnline').checked = false;
        document.getElementById(prefix + 'chkChildcareBeforeAfter').checked = false;
    }
}