function groupOptionClicked(obj, egcGUID, egpGUID) {

    var grp = egcGUID.toUpperCase() + '~' + egpGUID.toUpperCase();
    var list = document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value.toUpperCase();
    
    if (obj.checked) {

        if (document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value.length > 0) {
            document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value += ',';
        }
        document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value += grp;
    }
    else {
        document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value = list.replace(grp, "");
        list = document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value;
        if (list.indexOf(',,') >= 0) {
            document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value = list.replace(',,', ',');
            list = document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value;
        }
        if (list.substring(0, 1) == ',') {
            document.getElementById('ctl00_ContentPlaceHolder1_hSelectedGroups').value = list.substring(1);
        }
    }
}

function printOfflineDonation() {
    window.open('OfflineDonation.aspx?page_GUID=' + document.getElementById('ctl00_ContentPlaceHolder1_hPageGUID').value);
}
function pledgeTemplateClicked(obj, pltGUID) {

    document.getElementById('ctl00_ContentPlaceHolder1_hPledgeTemplate').value = pltGUID;
    if (document.getElementById('divPledgeTemplateOther')) {
        document.getElementById('divPledgeTemplateOther').style.display = 'none';
    }
}

function pledgeTemplateOtherClicked() {
    if (document.getElementById('divPledgeTemplateOther')) {
        document.getElementById('divPledgeTemplateOther').style.display = 'block';

        otherPledgeAmtPerClicked();
    }
}

function otherPledgeAmtPerClicked() {
    if (document.getElementById('rbtOtherPledge_Amount').checked == true) {
        document.getElementById('spanOtherPledgeValue').innerHTML = 'Amount ($):';
        document.getElementById('spanOtherPledgePercentSign').style.visibility = 'hidden';
    }
    else {
        document.getElementById('spanOtherPledgeValue').innerHTML = 'Percentage:';
        document.getElementById('spanOtherPledgePercentSign').style.visibility = '';
    }
}

function validateBeforeSave() {

    submitButtonEnabled(false);
    // credit card validation - duration date
    var ccSelected = false;
    if (document.getElementById('ctl00_ContentPlaceHolder1_rbtDonationOption_CreditCard'))
    {
        ccSelected = document.getElementById('ctl00_ContentPlaceHolder1_rbtDonationOption_CreditCard').checked;
    }

    if (document.getElementById('ctl00_ContentPlaceHolder1_hStaticDisplay').value == 'TRUE' ||
        ccSelected) {
        if (document.getElementById('ctl00_ContentPlaceHolder1_ddlCCDuration')) {
            var ddlDuration = document.getElementById('ctl00_ContentPlaceHolder1_ddlCCDuration');
            var durOpt = ddlDuration.options[ddlDuration.selectedIndex].text;
            if (durOpt.toUpperCase() == 'SPECIFIC DATE') {
                var durDate = document.getElementById('ctl00_ContentPlaceHolder1_txtCreditCard_DurationDate').value.replace(/^\s+|\s+$/, '');
                if (durDate == '') {
                    alert('Missing contribution duration date');
                    submitButtonEnabled(true);
                    return false;
                }
                else {
                    if (isDateOK(durDate) == false) {
                        alert('Invalid contribution duration date');
                        submitButtonEnabled(true);
                        return false;
                    }
                }
            }
        }
    }

    var pledgeSelected = false;
    if (document.getElementById('ctl00_ContentPlaceHolder1_rbtDonationOption_Pledge')) {
        pledgeSelected = document.getElementById('ctl00_ContentPlaceHolder1_rbtDonationOption_Pledge').checked;
    }

    if (document.getElementById('ctl00_ContentPlaceHolder1_hStaticDisplay').value == 'TRUE' ||
        pledgeSelected) {
        
        if (document.getElementById('ctl00_ContentPlaceHolder1_rbtPledgeTemplate_Other')) {
            if (document.getElementById('ctl00_ContentPlaceHolder1_rbtPledgeTemplate_Other').checked == true) {

                var ddlRec = document.getElementById('ddlOtherPledgeRecurrence');

                document.getElementById('ctl00_ContentPlaceHolder1_hPledgeTemplate').value = 'OTHER~' +
            document.getElementById('txtOtherPledgeValue').value.replace(/^\s+|\s+$/, '') + '~' +
            document.getElementById('rbtOtherPledge_Amount').checked + '~' +
            ddlRec.options[ddlRec.selectedIndex].value;
            }
        }

        var lOtherPT = false;
        if (document.getElementById('ctl00_ContentPlaceHolder1_hRequiresPledgeTemplate')) {
            if (document.getElementById('ctl00_ContentPlaceHolder1_hRequiresPledgeTemplate').value == 'TRUE') {
                if (document.getElementById('ctl00_ContentPlaceHolder1_hPledgeTemplate').value.replace(/^\s+|\s+$/, '') != '') {

                    if (document.getElementById('ctl00_ContentPlaceHolder1_rbtPledgeTemplate_Other')) {
                        if (document.getElementById('ctl00_ContentPlaceHolder1_rbtPledgeTemplate_Other').checked == true) {
                            lOtherPT = validateOtherPledgeTemplate();

                            if (lOtherPT == false) {
                                submitButtonEnabled(true);
                                return false;
                            }
                        }
                    }
                }
                else {
                    submitButtonEnabled(true);
                    return false;
                }
            }
            else {
                if (document.getElementById('ctl00_ContentPlaceHolder1_rbtPledgeTemplate_Other')) {
                    if (document.getElementById('ctl00_ContentPlaceHolder1_rbtPledgeTemplate_Other').checked == true) {
                        lOtherPT = validateOtherPledgeTemplate();
                        if (lOtherPT == false) {
                            submitButtonEnabled(true);
                            return false;
                        }
                    }
                }
            }
        }

        // confirm pledge template
        if (document.getElementById('ctl00_ContentPlaceHolder1_cbxPledgeProgramConfirm')) {
            if (document.getElementById('ctl00_ContentPlaceHolder1_hPledgeTemplate').value.replace(/^\s+|\s+$/, '') != '') {
                if (document.getElementById('ctl00_ContentPlaceHolder1_cbxPledgeProgramConfirm').checked == false) {
                    alert('To complete your contribution please check the box to confirm the amount you would like deducted from payroll.');
                    submitButtonEnabled(true);
                    return false;
                }
            }
        }
    }

    // CAPTCHA
    if (document.getElementById('ctl00_ContentPlaceHolder1_hCaptchaUsed').value.replace(/^\s+|\s+$/, '') == 'TRUE') {
        if (document.getElementById('ctl00_ContentPlaceHolder1_txtCaptchaText').value.replace(/^\s+|\s+$/, '') == '') {
            alert('Please enter the security code first.');
            document.getElementById('ctl00_ContentPlaceHolder1_txtCaptchaText').focus();
            submitButtonEnabled(true);
            return false;
        }
    }

    // parameters to validate
    var paramObj = getParamObj();

    var urlPath = document.getElementById("ctl00_ContentPlaceHolder1_hBaseURL").value;
    Sys.Net.WebServiceProxy.invoke('..' + urlPath + '/WebForm/wsWebForm.asmx', 'ServerValidate',
        false, paramObj, ServerValidate_Callback, null, null, -1);
    return false;
}
function getParamObj() {
    var pObj = new Object();
    pObj.firstName = document.getElementById('ctl00_ContentPlaceHolder1_txtFName').value.replace(/^\s+|\s+$/, '');
    pObj.lastName = document.getElementById('ctl00_ContentPlaceHolder1_txtLName').value.replace(/^\s+|\s+$/, '');
    pObj.lastName = document.getElementById('ctl00_ContentPlaceHolder1_txtLName').value.replace(/^\s+|\s+$/, '');
    pObj.address1 = '';
    if (document.getElementById('ctl00_ContentPlaceHolder1_txtAddress1')) {
        pObj.address1 = document.getElementById('ctl00_ContentPlaceHolder1_txtAddress1').value.replace(/^\s+|\s+$/, '');
    }
    pObj.address2 = '';
    if (document.getElementById('ctl00_ContentPlaceHolder1_txtAddress2')) {
        pObj.address2 = document.getElementById('ctl00_ContentPlaceHolder1_txtAddress2').value.replace(/^\s+|\s+$/, '');
    }
    pObj.city = '';
    if (document.getElementById('ctl00_ContentPlaceHolder1_txtCity')) {
        pObj.city = document.getElementById('ctl00_ContentPlaceHolder1_txtCity').value.replace(/^\s+|\s+$/, '');
    }
    pObj.state = '';
    if (document.getElementById('ctl00_ContentPlaceHolder1_ddlState')) {
        var ddlState = document.getElementById('ctl00_ContentPlaceHolder1_ddlState');
        pObj.state = ddlState.options[ddlState.selectedIndex].value;
    }
    pObj.zip = '';
    if (document.getElementById('ctl00_ContentPlaceHolder1_txtZip')) {
        pObj.zip = document.getElementById('ctl00_ContentPlaceHolder1_txtZip').value.replace(/^\s+|\s+$/, '');
    }
    pObj.ccNumber = '';
    if (document.getElementById('ctl00_ContentPlaceHolder1_txtCCCardNumber')) {
        pObj.ccNumber = document.getElementById('ctl00_ContentPlaceHolder1_txtCCCardNumber').value.replace(/^\s+|\s+$/, '');
    }
    pObj.amount = '';
    if (document.getElementById('ctl00_ContentPlaceHolder1_txtCCAmount')) {
        pObj.amount = document.getElementById('ctl00_ContentPlaceHolder1_txtCCAmount').value.replace(/^\s+|\s+$/, '');
    }
    
    pObj.OkToSubmitDupeDonation = document.getElementById('hDuplicateDonationOK').value.replace(/^\s+|\s+$/, '');
    return pObj;
}
function ServerValidate_Callback(res) {

    if (res.length > 0) {
        if (res[0].ErrorMsg == "ERROR-INVALIDCCNUM") {
            submitButtonEnabled(true);
            alert("Invalid credit card number.");
        }
        else if (res[0].ErrorMsg == 'DUPLICATEDONATION') {

            var conMsg = 'It seems that you already made some contributions today. Click OK if you would like to make another one, otherwise click cancel.\r\n';
            for (var i = 0; i < res.length; i++) {
                conMsg += res[i].Amount + ' - ' + res[i].ContributionType + ' at ' + res[i].ContributionTime + '\r\n';
            }
            if (confirm(conMsg) == true) {
                document.getElementById('hDuplicateDonationOK').value = 'TRUE';
                // re-call the validation function again
                validateBeforeSave();
            }
            else {
                submitButtonEnabled(true);
            }
        }
        else {
            submitButtonEnabled(true);
            alert(res[0].ErrorMsg);
        }
    }
    else {
        document.getElementById('hDuplicateDonationOK').value = 'FALSE';
        disableValidationIfNeccessary();
        if (Page_ClientValidate() == true) {
            document.getElementById('ctl00_ContentPlaceHolder1_hSubmitForm').value = 'TRUE';
            showProcessingBox();
            __doPostBack("", "")
        }
        else {
            submitButtonEnabled(true);
        }
    }
    return false;
}

function submitButtonEnabled(lEnable) {
    document.getElementById('ctl00_ContentPlaceHolder1_btnSubmit').disabled = !lEnable;
}

function disableValidationIfNeccessary() {
    
    // Credit card validators
    var ccSelected = false;
    if (document.getElementById('ctl00_ContentPlaceHolder1_rbtDonationOption_CreditCard'))
    {
        ccSelected = document.getElementById('ctl00_ContentPlaceHolder1_rbtDonationOption_CreditCard').checked;
    }

    if (document.getElementById('ctl00_ContentPlaceHolder1_hStaticDisplay').value == 'TRUE' ||
        ccSelected) {
        enableCCValidators(true);
    }
    else {
        enableCCValidators(false);
    }
}
function enableCCValidators(lEnable) {

    if (document.getElementById('ctl00_ContentPlaceHolder1_rfvCCAmount')) {
        ValidatorEnable(document.getElementById('ctl00_ContentPlaceHolder1_rfvCCAmount'), lEnable);
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_rfvCCNumber')) {
        ValidatorEnable(document.getElementById('ctl00_ContentPlaceHolder1_rfvCCNumber'), lEnable);
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_rfvCCEmployer')) {
        ValidatorEnable(document.getElementById('ctl00_ContentPlaceHolder1_rfvCCEmployer'), lEnable);
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_rfvCCOccupation')) {
        ValidatorEnable(document.getElementById('ctl00_ContentPlaceHolder1_rfvCCOccupation'), lEnable);
    }
}

function validateOtherPledgeTemplate() {
    var val = document.getElementById('txtOtherPledgeValue').value.replace(/^\s+|\s+$/, '');
    if (val == '') {
        if (document.getElementById('rbtOtherPledge_Amount').checked == true) {
            alert('Please select a pledge amount first.');
        }
        else {
            alert('Please select a pledge percentage first.');
        }
        document.getElementById('txtOtherPledgeValue').focus();
        return false;
    }
    else {
        if (isNaN(val)) {
            if (document.getElementById('rbtOtherPledge_Amount').checked == true) {
                alert('Pledge amount must be a numeric value.');
            }
            else {
                alert('Pledge percentage must be a numeric value.');
            }
            document.getElementById('txtOtherPledgeValue').focus();
            return false;
        }
        else {
            if (document.getElementById('rbtOtherPledge_Amount').checked == false) {
                if (parseFloat(val) > 100) {
                    alert('Pledge percentage must be 100 or less.');
                    return false;
                }
            }
        }
    }
    return true;
}

function CCDurationChanged() {
    var recDDL = document.getElementById('ctl00_ContentPlaceHolder1_ddlCCRecurrence');
    if (recDDL) {
        if (recDDL.options[recDDL.selectedIndex].text.toUpperCase() == 'ONE TIME') {
            document.getElementById('ctl00_ContentPlaceHolder1_trCCDuration').style.display = 'none';
        }
        else {
            document.getElementById('ctl00_ContentPlaceHolder1_trCCDuration').style.display = 'block';
        }
    }
}

function showHideDurationDate() {
    document.getElementById('divCreditCard_DurationDate').style.display = 'none';
    if (document.getElementById('ctl00_ContentPlaceHolder1_ddlCCDuration')) {
        var ddlDuration = document.getElementById('ctl00_ContentPlaceHolder1_ddlCCDuration');
        var opt = ddlDuration.options[ddlDuration.selectedIndex].text.toUpperCase();
        if (opt.indexOf("SPECIFIC") >= 0) {
            document.getElementById('divCreditCard_DurationDate').style.display = 'block';
        }
    }
}


function showCreditCardSection() {
    document.getElementById('ctl00_ContentPlaceHolder1_btnSubmit').style.display = 'block';
    if (document.getElementById('ctl00_ContentPlaceHolder1_divCaptcha')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divCaptcha').style.display = 'block';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram').style.display = 'none';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard').style.display = 'block';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation').style.display = 'none';
    }
    CCDurationChanged();
}
function showOfflineDonationSection() {

    document.getElementById('ctl00_ContentPlaceHolder1_btnSubmit').style.display = 'none';
    if (document.getElementById('ctl00_ContentPlaceHolder1_divCaptcha')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divCaptcha').style.display = 'none';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram').style.display = 'none';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard').style.display = 'none';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation').style.display = 'block';
    }
}
function showPledgeSection() {
    document.getElementById('ctl00_ContentPlaceHolder1_btnSubmit').style.display = 'block';
    if (document.getElementById('ctl00_ContentPlaceHolder1_divCaptcha')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divCaptcha').style.display = 'block';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram').style.display = 'block';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard').style.display = 'none';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation').style.display = 'none';
    }
}
function hideAllDonationSections() {
    if (document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divPledgeProgram').style.display = 'none';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divCreditCard').style.display = 'none';
    }
    if (document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation')) {
        document.getElementById('ctl00_ContentPlaceHolder1_divOfflineDonation').style.display = 'none';
    }
}

function showProcessingBox() {
    document.getElementById('pleaseWaitScreen').style.visibility = 'visible';
}
