﻿/******************************************************************************************************************************  

Revision History                                                                                                         
----------------                                                                                                          
Rev.Date 	ModifiedBy   					Description													                 
-------------------------------------------------------------------------------------------------------------------------------
20/01/2015 	    Chanikya       		Added script to Event Registration


******************************************************************************************************************************/
var totalAmount = 0;
var perTransactionCharges = 0,
    orgProcessFee = 0, //Orignial Processing Fee in %(e.g 4%)
    calProcessFee = 0, // Calculated Processing Fee (e.g (100-4)/100)
    orgAmtWithPerTC = 0, // Sum of Original Amount and Per Transaction Charges
    orignalAmount = 0,
    finalAmt = 0; //Final Amount after all calculation
var countryValue = "US", countryselected, imagePaths = [], imgPath = [];

function GetParameterValues(param) {
    var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < url.length; i++) {
        var urlparam = url[i].split('=');
        if (urlparam[0] == param) {
            return urlparam[1];
        }
    }
}
var qryTheme = '';
$.support.cors = true;
$.ajaxSetup({
    cache: false
});

function fnLoadCauseDetails() {
    if ((shortName == undefined) || (shortName == "")) {
        var url = window.location.href.split('/');
        shortName = url[url.length - 2];
    }
    var pageUrl = service + "User/GetMerchant?shortName=" + shortName;
    qryTheme = GetParameterValues("Theme");

    $("#ddlcause").kendoDropDownList({
        optionLabel: " --Select--"
    });

    $.ajax({
        type: "GET",
        url: pageUrl,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnShortnameSuccessCall,
        error: OnErrorCall
    });
}

function fnLoadStates() {

    $("#ddlstate").kendoDropDownList({
        optionLabel: "--Select--"
    });

    $.ajax({
        type: "GET",
        url: "../../../../Configurations/States.xml",
        dataType: "xml",
        success: function (xml) {
            var DonationState = $('#ddlstate');

            $(xml).find('state').each(function () {
                var name = $(this).find('name').text();
                var value = $(this).find('value').text();
                var option = $("<option>" + name + "</option>");
                option.attr("value", value);
                DonationState.append(option);
            });
            $('#ddlstate').kendoDropDownList({});

        }
    });
}

function normalizeYear(year) {
    // Century fix
    var YEARS_AHEAD = 20;
    if (year < 100) {
        var nowYear = new Date().getFullYear();
        year += Math.floor(nowYear / 100) * 100;
        if (year > nowYear + YEARS_AHEAD) {
            year -= 100;
        } else if (year <= nowYear - 100 + YEARS_AHEAD) {
            year += 100;
        }
    }
    return year;
}
function ExtractQueryString() {
    var oResult = {};
    var aQueryString = (location.search.substr(1)).split("&");

    for (var i = 0; i < aQueryString.length; i++) {
        var aTemp = aQueryString[i].split("=");
        if (aTemp[0] != "") {
            if (aTemp[1].length > 0) {
                oResult[aTemp[0]] = unescape(aTemp[1]);
            }
        }
    }
    return oResult;
}

/*Start Recurring*/
function formatDates(obj) {
    var numbers = obj.value.replace(/\D/g, ''),
        char = {
            2: ' ',
            2: ' '
        };
    obj.value = '';
    for (var i = 0; i < numbers.length; i++) {
        obj.value += (char[i] || '') + numbers[i];
    }
}

function isInArray(date, dates) {
    for (var idx = 0, length = dates.length; idx < length; idx++) {
        var d = dates[idx];
        if (date.getFullYear() == d.getFullYear() &&
            date.getMonth() == d.getMonth() &&
            date.getDate() == d.getDate()) {
            return true;
        }
    }

    return false;
}
/*End Recurring*/
$(document).ready(function () {
    //$.session.clear();
    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\[ (file://[/)").replace(/[\]]/, "\\] (file://]/)");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
        return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    DonationRefID = getParameterByName("donationrefid");
    $.session.set("donationPageRefId", DonationRefID);
    /*Begin Address auto populate - Google API */
    initialize("txtaddress");
    $("#txtaddress").attr('placeholder', '');
    autoCntrlID = "txtaddress";
    cnrlIdAddr1 = 'txtaddress';
    cntrlObj = { txtcity: "txtcity",
        txtstate: "txtstate",
        txtzipcode: "txtzipcode",
        ddlcountry: "ddlcountry"
    };
    componentForm = {
        locality: 'long_name',
        administrative_area_level_1: 'short_name',
        country: 'long_name',
        postal_code: 'short_name'
    };
    /*End Address auto populate - Google API */
    bindCountries();
    GetCurrentIPAddress();

    /* Load Country DropDown -to all controls - By Class name */

    function bindCountries() {

        $.ajax({
            type: "GET",
            url: "../../Configurations/CountriesList.xml",
            dataType: "xml",
            success: function (xml) {
                var ddlcountry = $('#ddlcountry');
                $(xml).find('country').each(function () {
                    var name = $(this).find('countryName').text();
                    var value = $(this).find('countryCode').text();
                    var option = $("<option>" + name + "</option>");
                    option.attr("value", value);
                    ddlcountry.append(option);
                });
            },
            error: function (xhr) {

            }
        });
    }

    /* End to Load Country DropDown -to all controls - By Class name */

    
    var validator = $("#divDonationTab").kendoValidator().data("kendoValidator");
    $("#ddlMonth").kendoDropDownList({});
    var now = new Date();
    var currMonth = now.getMonth() + 1;
    if (currMonth < 10)
        currMonth = '0' + currMonth;
    var ddlCurrentMonth = $("#ddlMonth").data("kendoDropDownList");
    ddlCurrentMonth.value(currMonth);

    $("#Donation").click(function () {
        $("#divDonationTab").show();
        $('#Donation').addClass('selected');
    });
    $(".close").click(function () {
        $('#error').hide();
    });
    //$("#divCause").hide();
    /*Start Recurring*/
    var today = new Date(),
        birthdays = [
            new Date(today.getFullYear(), today.getMonth(), 11),
            new Date(today.getFullYear(), today.getMonth() + 1, 6),
            new Date(today.getFullYear(), today.getMonth() + 1, 27),
            new Date(today.getFullYear(), today.getMonth() - 1, 3),
            new Date(today.getFullYear(), today.getMonth() - 2, 22)
        ];
    var date = new Date();
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();

    var start = $("#startdate").kendoDatePicker({
        dates: birthdays,
        min: new Date(y, m, d + 1),
        month: {
            // template for dates in month view
            content: '# if (isInArray(data.date, data.dates)) { #' +
                '<div class="birthday"></div>' +
                '# } #' +
                '#= data.value #'
        },
        footer: "Today - #=kendo.toString(data, 'd') #"
    });

    $("#startdate").bind("focus", function () {
        $(this).data("kendoDatePicker").open();
    });

    $("#startdate").data("kendoDatePicker").value(new Date(y, m + 1, d));
    $("#startdate").data("kendoDatePicker")
        .dateView.calendar.element
        .width(300);

    var d = new Date();
    var currentyear = d.getFullYear();
    //var i=1;
    for (var i = 0; i <= 9; i++) {
        var year = currentyear + i;
        $("#ddlYear").append('<option value="' + year + '">' + year + '</option>');
    }
    $("#ddlYear").kendoDropDownList({

    });


    $("#Company").hide();

    /*Change event for the organization change*/
    $('#chkIsOrganization').bind('change', function () {

        if (($('#chkIsOrganization')[0].checked) == true) {
            $("#Company").show();
            $("#txtcompanyName").attr("required", "required");
        } else {
            $('#txtcompanyName').val("");
            $("#Company").hide();
            $("#txtcompanyName").removeAttr("required");
        }

    });


    $('#recurring').bind('change', function () {

        if (($('#recurring')[0].checked) == true) {
            //$("#divRecurringInfo").show();
            $("#startdate").attr("required", "required");
        } else {
            //$("#divRecurringInfo").hide();
            $("#startdate").removeAttr("required");
        }

    });

    if (($('#recurring')[0].checked) == true) {
        //$("#divRecurringInfo").show();
        $("#startdate").attr("required", "required");
    } else {
        // $("#divRecurringInfo").hide();
        $("#startdate").removeAttr("required");
    }
    /*End Recurring*/
    var validatordonationamt = $('#divDonationTab').kendoValidator({
        rules: {
            emptyValidation1: function (cntrl) {
                if (cntrl.attr('id') == 'txtAmount') {
                    if ($('#txtAmount').val() == "") {
                        return false;
                    }
                }

                return true;
            },
            elengthValidation: function (cntrl) {

                if (cntrl.attr('id') == 'txtAmount') {
                    if ($('#txtAmount').val() <= 0) {
                        return false;
                    }
                }

                return true;
            }
        },
        messages: {

            elengthValidation: "Amount should be greater than 0",
            emptyValidation1: "Please enter valid cause amount"
        }
    }).data("kendoValidator");


    validator = $('#frmDonation').kendoValidator({
        rules: {
            //implement your custom date validation
            lengthValidation: function (cntrl) {

                if (cntrl.attr('id') == 'ddlMonth') {

                    var expdatenew = ($('#ddlMonth').val() + "/" + ($('#ddlYear').val().substring(2, $('#ddlYear').val().length)));

                    var match = expdatenew.match(/^\s*(0?[1-9]|1[0-2])\/(\d\d|\d{4})\s*$/);
                    var exp = new Date(normalizeYear(1 * match[2]), 1 * match[1] - 1, 1).valueOf();
                    var now = new Date();
                    var currMonth = new Date(now.getFullYear(), now.getMonth(), 1).valueOf();
                    if (exp < currMonth) {
                        return false;
                    } else {
                        return true;
                    };
                }
                return true;
            },


            monthlengthValidation: function (cntrl) {

                if (cntrl.attr('id') == 'ddlYear') {

                    var expdatenew = ($('#ddlMonth').val() + "/" + ($('#ddlYear').val().substring(2, $('#ddlYear').val().length)));

                    var match = expdatenew.match(/^\s*(0?[1-9]|1[0-2])\/(\d\d|\d{4})\s*$/);
                    var exp = new Date(normalizeYear(1 * match[2]), 1 * match[1] - 1, 1).valueOf();
                    var now = new Date();
                    var currMonth = new Date(now.getFullYear(), now.getMonth(), 1).valueOf();
                    if (exp < currMonth) {
                        return false;
                    } else {
                        return true;
                    };
                }
                return true;
            }

        },

        messages: {

            lengthValidation: "Please enter valid expiration date",
            monthlengthValidation: "Please enter valid expiration date"

        }
    }).data("kendoValidator");


    if ((shortName == undefined) || (shortName == null)) {
        window.location = "Unauthorized.aspx";
        return false;
    }
    var oData = ExtractQueryString();
    shortName = oData.sn;
    var pagerefid = oData.pagerefid;
    var causeId = oData.causeid;
    var amount = oData.amount;
    $.session.remove("causeId");
    $.session.remove("amount");
    if (pagerefid != "" && pagerefid != null && pagerefid != undefined) {
        $.session.remove("pagerefid");
        $.session.set("pagerefid", pagerefid);
    }
    if (causeId != "" && causeId != null && causeId != undefined) {
        $.session.set("causeId", causeId);
        if (amount != "" && amount != null && amount != undefined) {
            $.session.set("amount", amount);
        }
    }

    $("#ddlamount").kendoDropDownList({
        optionLabel: "--Select--"
    });

    fnLoadCauseDetails(); //Load Cause details in Donation/Pledge tab
    fnLoadStates(); // Load State values in Donation/Pledge tab
    $("#txtAmount").format({
        format: '###.00',
        precision: 2,
        allow_negative: false,
        autofix: true
    });
    $("#txtcvv,#txtacnumber,#txtpayments,#exdate").format({
        precision: 0,
        autofix: true
    });
    var ua = navigator.userAgent.toLowerCase();
    var isAndroid = ua.indexOf("android") > -1;
    if (!isAndroid) {
        $('#txtphnumber').mask("999-999-9999");
    }

    $('#txtphnumber').blur(function () {
        if (!isAndroid) {
            $('#txtphnumber').mask("999-999-9999");
        } else {
            var obj = $('#txtphnumber').val().replace(/(\d{3})\-?(\d{3})\-?(\d{4})/, '$1-$2-$3');
            $('#txtphnumber').val('');
            $('#txtphnumber').val(obj);
            document.getElementById("txtphnumber").focus();
            document.getElementById("txtphnumber").blur();
        }
    });


    $("#txtAmount,#txtcvv").keydown(function (e) {
        // Allow: backspace, delete, tab, escape, enter and .
        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
        // Allow: Ctrl+A, Command+A
            (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
        // Allow: home, end, left, right, down, up
            (e.keyCode >= 35 && e.keyCode <= 40)) {
            // let it happen, don't do anything
            return;
        }
        // Ensure that it is a number and stop the keypress
        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
            e.preventDefault();
        }
    });

    $("#txtacnumber").keyup(function (e) {
        var regex = /^\d+(\.\d{0,2})?$/g;
        if (!regex.test(this.value)) {
            this.value = '';
        }
    });
    $("#txtacnumber").format({
        format: '###.00',
        precision: 2,
        allow_negative: false,
        autofix: true
    });

    $('#txtacnumber').load(function () {
        $('#txtacnumber').contents().find('input#txtacnumber').bind('change', function (e) {
            bindProcessingFee();
        });
    });

    var ddlValidateAmount = $("#ddlamount").kendoValidator().data("kendoValidator");
    $('#ddlamount').focusout(function () {

        $("#spnAmount").show();

    });

    //Function Donation DropdownCause change
    $("#ddlcause").change(function () {
        var causeid = $(this).val();
        $("#txtAmount").removeAttr("required");
        var validatoramount = $("#txtAmount").kendoValidator().data("kendoValidator");
        if (!validatoramount.validate()) {
            return false;
        }
        $("#txtAmount").attr("required", "required");

        $('#divAmountValue').hide();
        $('#divAmountField').hide();
        $('#divAmount').empty();

        var merchantid = $.session.get("merchantid");
        var token = $.session.get("token");
        var pageUrl = service + "MM/GetCauseById?merchantId=" + merchantid + "&token=" + token + "&causeID=" + causeid;
        var validateAmount = $("#ddlamount").kendoValidator().data("kendoValidator");
        //  validator.validate();
        $("#spnAmount").hide();
        $("#gridAmount").hide();
        $("#ddlamount").removeAttr("required");
        if (causeid != '') {
            $.session.set("causeid", causeid);
            $.ajax({
                type: "GET",
                url: pageUrl,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: OnCauseSuccessCall,
                error: OnErrorCall
            });

        } else {
            $("#hlkSection").hide();
            $("#gridAmount").hide();
            var frequencyval = [{
                text: "",
                value: ""
            }];
            $(".custAmount").hide();
            $("#txtAmount").val("");

        }

    });
    var btnSubmit = $('#btnSubmit').contents().find('#btnSubmit')

    /* Avoid Empty Spaces in Textbox/Textarea */
    $('input').change(function () {
        var dest = $(this);
        dest.val(dest.val().trim());
    });
    $('textarea').change(function () {
        var dest = $(this);
        dest.val(dest.val().trim());
    });



});
//End Function document.ready

function OnShortnameSuccessCall(response) {
    $.session.set("merchantid", response.MerchantID);
    $.session.set("token", response.Token);
    if (response.IsDoubleDonationEnabled) {
        $("#divDD").show();
    }
    else {
        $("#divDD").hide();
    }
    if (qryTheme != undefined) {
        if (qryTheme.indexOf("#") != -1) {
            qryTheme = qryTheme.substring(0, qryTheme.indexOf("#"));
        }
        if (response.ThemeName != qryTheme) {
            window.location = "Unauthorized.aspx";
            return;
        }
    }
    $.session.set("processFee", response.ProcessingFee);
    orgProcessFee = response.ProcessingFee;
    calProcessFee = (100 - parseFloat(response.ProcessingFee)) / 100;
    //Per Transaction Charges
    if (response.IsPerTxnCharge) {
        perTransactionCharges = 0;
    } else {
        perTransactionCharges = parseFloat(response.PerTxnFee);
    }
    var searchtext = "Active";
    var serviceurl = service + "MM/GetCause?merchantId=" + response.MerchantID + "&token=" + response.Token + "&searchText=" + searchtext + "&sortColumn=Status" + "&causeType=1";
    $.ajax({
        type: "GET",
        url: serviceurl,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccessCall,
        error: OnErrorCall
    });

    if (($.session.get("causeId") != "undefined") && ($.session.get("causeId") != undefined)) {
        var ddlCause = $("#ddlcause").data("kendoDropDownList");
        causeid = $.session.get("causeId");
        ddlCause.value(causeid);

        $('#ddlcause').trigger('change');
        $.session.set("amount", $.session.get("amount"));

    }
    GetPageDetails();
}

function OnSuccessCall(response) {

    var causeList = response.CauseList;
    var cause = $("#ddlcause").kendoDropDownList({
        dataTextField: "CauseName",
        dataValueField: "CauseID",
        dataSource: causeList
    }).data("kendoDropDownList");

    var ddlCause = $("#ddlcause").data("kendoDropDownList");
    causeid = $.session.get("causeId");
    if (causeid != undefined) {
        ddlCause.value(causeid);
        if (ddlCause.value() == "") {
            alert('Cause has been deactivated, please select another cause to donate.');
        }
    }

    $('#ddlcause').trigger('change');
    $.session.set("amount", $.session.get("amount"));

}

function OnErrorCall(xhr) {
    $('#btnSubmit').removeAttr('disabled');
    var errorstatus = $(".status");
    var jsonResponse = JSON.parse(xhr.responseText);
    if (xhr.status == 400) {
        var error = "";
        if (xhr.responseJSON != undefined) {
            var msglength = xhr.responseJSON.ResponseMessage
            for (var i = 0; i < msglength.length; i++) {
                error = error + "<li>" + xhr.responseJSON.ResponseMessage[i] + "</li>";
                error = error.replace("account", "credit card");
            }
            $("#error").show();
            var isMob = navigator.userAgent.match(/(iPod|iPhone|iPad|Android)/);
            if (isMob) {
                window.scrollTo(100, 100) // first value for left offset, second value for top offset
            } else {
                $(document).scrollTop($("#top").offset().top);
            }
            var errormsg = $("#error");
            errorstatus.html(error).removeClass("valid").addClass("invalid");
            setTimeout(function () {
                errormsg.slideUp('slow');
            }, 2000);
        }
        else if (jsonResponse != undefined) {
            var msglength = jsonResponse.ResponseMessage
            for (var i = 0; i < msglength.length; i++) {
                error = error + "<li>" + jsonResponse.ResponseMessage[i] + "</li>";
                error = error.replace("account", "credit card");
            }
            $("#error").show();
            $(document).scrollTop($("#top").offset().top);
            var errormsg = $("#error");
            errorstatus.html(error).removeClass("valid").addClass("invalid");
            setTimeout(function () {
                errormsg.slideUp('slow');
            }, 2000);
        }
        else {
            var error = "<li>" + xhr.statusText + "</li>";
            $("#error").show();
            $(document).scrollTop($("#top").offset().top);
            var errormsg = $("#error");
            errorstatus.html(error).removeClass("valid").addClass("invalid");
            setTimeout(function () {
                errormsg.slideUp('slow');
            }, 2000);
        }
    } else {
        var error = "<li>" + xhr.statusText + "</li>";
        $("#error").show();
        var errormsg = $("#error");
        $(document).scrollTop($("#top").offset().top);
        errorstatus.html(error).removeClass("valid").addClass("invalid");
        setTimeout(function () {
            errormsg.slideUp('slow');
        }, 2000);
    }
}

//function Donation - OnCauseChange
function OnCauseSuccessCall(response) {
    if (response.PaymentCategories.length > 0) {
        $("#hlkSection").show();
    } else {
        $("#hlkSection").hide();
    }
    $("#txtDescription").text(response.CauseDescription);

    AmountBind(response.PaymentCategories);

    $("#hlkSection").click(function () {
        var causeid = $.session.get("causeid");
        var merchantid = $.session.get("merchantid");
        var token = $.session.get("token");
        var pageUrl = service + "MM/GetCauseById?merchantId=" + merchantid + "&token=" + token + "&causeID=" + causeid;
        if (causeid != '') {
            $.ajax({
                type: "GET",
                url: pageUrl,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: OnCauseAmountCall,
                error: OnErrorCall
            });
        }
    });

    $("#panelbar").kendoPanelBar({
        expandMode: "double"
    });
}

function OnCauseAmountCall(response) {
    $("#gridAmount").show();

    $("#gridAmount").kendoGrid({
        dataSource: response.PaymentCategories,
        create: {
            cache: false
        },
        scrollable: {
            virtual: false
        },
        columns: [{
            field: "PaymentAmount",
            title: "Amount",
            width: "30%",
            htmlencode: "true"
        }, {
            field: "PaymentDescription",
            title: "Description",
            width: "70%",
            htmlencode: "true",
            encoded: "encoded"
        }]
    });
}

function ClickAmount(args) {
    totalAmount = 0;

    $("#spnTotalAmount").text('');

    if (args.value == "Other") {

        $('#txtAmount').val('');
    } else {
        $('#txtAmount').val('');
        orignalAmount = args.value;
    }

    if (args.value != "Other") {
        $("#txtAmount").removeAttr("required");
        var validatoramount = $("#txtAmount").kendoValidator().data("kendoValidator");
        if (!validatoramount.validate()) {
            return false;
        }
    } else {
        $("#txtAmount").attr("required", "required");
        var validatoramount = $("#txtAmount").kendoValidator().data("kendoValidator");

    }
    if (args.value == "Other") {
        $("#spnTotalAmount").text('');
    } else {
        bindProcessingFee();
    }
}
//Common Function to Bind Cause amount -  Donation & Pledge
function AmountBind(response) {

    $('#divAmountValue').show();
    $('#divAmountField').show();
    $('#divAmount').empty();
    for (i = 0; i < response.length; i++) {
        var amountText = "";
        var causeDesc = "";
        causeDesc = response[i].PaymentDescription;
        if (response[i].PaymentAmount == "Other") {
            amountText = response[i].PaymentAmount
        } else {
            amountText = "$" + response[i].PaymentAmount
        }
        $('#divOtherAmount').hide();
        if (i == 0) {
            var radioBtnclk = $(('<input type="radio" name="rbtnAmount" required id="rbtnAmount" style="vertical-align: middle;" class="amntlbls pd-m-r-xsmall pd-radio pd-f-l radiobox" value=' + response[i].PaymentAmount +
                ' onclick="ClickAmount(this);" checked="checked">&nbsp') + amountText + ('&nbsp&nbsp&nbsp</input>'));
            var radioBtn = $(('<div style="white-space: nowrap; float: left; width: 100%;margin-bottom:5px;" ><label style="float: left;" class="amntlbls pd-clickable pd-m-r-xsmall pd-m-mt-vsmall pd-m-t-vsmall pd-f-l"><input type="radio" style="vertical-align: middle;" name="rbtnAmount" required id="rbtnAmount" value=' + response[i].PaymentAmount +
                ' onclick="ClickAmount(this);" checked="checked" class="pd-m-r-xsmall pd-radio pd-f-l radiobox">&nbsp;') + amountText + ('&nbsp;&nbsp;&nbsp;</input></label><label class="amntlbls pd-clickable pd-m-r-xsmall pd-m-mt-vsmall pd-m-t-vsmall pd-f-l" style="white-space: normal ! important; width: 64%;float:left;margin-top: 0px;">' + causeDesc + '</label></div><br>'));
            ClickAmount(radioBtnclk[0]);
        } else if (amountText == "Other") {
            $('#divOtherAmount').show();
        } else {
            if (response[i].IsDefaultAmount == "True") {
                var radioBtnclk = $(('<input type="radio" name="rbtnAmount" required id="rbtnAmount" style="vertical-align: middle;" class="amntlbls pd-m-r-xsmall pd-radio pd-f-l radiobox" value=' + response[i].PaymentAmount +
              ' onclick="ClickAmount(this);" checked="checked">&nbsp') + amountText + ('&nbsp&nbsp&nbsp</input>'));
                var radioBtn = $(('<div style="white-space: nowrap; float: left; width: 100%;margin-bottom:5px;" ><label style="float: left;" class="amntlbls pd-clickable pd-m-r-xsmall pd-m-mt-vsmall pd-m-t-vsmall pd-f-l"><input type="radio" style="vertical-align: middle;" class="pd-m-r-xsmall pd-radio pd-f-l radiobox" name="rbtnAmount" required id="rbtnAmount" value=' + response[i].PaymentAmount +
              ' onclick="ClickAmount(this);"checked="checked">&nbsp;') + amountText + ('&nbsp;&nbsp;&nbsp;</input></label><label class="amntlbls pd-clickable pd-m-r-xsmall pd-m-mt-vsmall pd-m-t-vsmall pd-f-l" style="white-space: normal ! important; width: 64%;float:left;margin-top: 0px;">' + causeDesc + '</label></div><br>'));
                ClickAmount(radioBtnclk[0]);
            } else {
                var radioBtn = $(('<div style="white-space: nowrap; float: left; width: 100%;margin-bottom:5px;" ><label style="float: left;" class="amntlbls pd-clickable pd-m-r-xsmall pd-m-mt-vsmall pd-m-t-vsmall pd-f-l"><input type="radio" style="vertical-align: middle;" class="pd-m-r-xsmall pd-radio pd-f-l radiobox" name="rbtnAmount" required id="rbtnAmount" value=' + response[i].PaymentAmount +
                ' onclick="ClickAmount(this);">&nbsp;') + amountText + ('&nbsp;&nbsp;&nbsp;</input></label><label class="amntlbls pd-clickable pd-m-r-xsmall pd-m-mt-vsmall pd-m-t-vsmall pd-f-l" style="white-space: normal ! important; width: 64%;float:left;margin-top: 0px;">' + causeDesc + '</label></div><br>'));
            }
        }
        radioBtn.appendTo('#divAmount');
    }
}

function fnDecimalDigits(figure, decimals) {
    if (!decimals) decimals = 2;
    var d = Math.pow(10, decimals);
    return ((parseInt((figure * d).toFixed(decimals))) / d).toFixed(decimals);
};

//To get creditcard type
function GetCardType(number) {
    // visa
    var re = new RegExp("^4");
    if (number.match(re) != null)
        return "Visa";

    // Mastercard 
    // Updated for Mastercard 2017 BINs expansion
    if (/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/.test(number))
        return "Mastercard";

    // AMEX
    re = new RegExp("^3[47]");
    if (number.match(re) != null)
        return "AMEX";

    // Discover
    //    re = new RegExp("^(6011|622(12[6-9]|1[3-9][0-   9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)");
    //    if (number.match(re) != null)
    //        return "Discover";

    // Diners
    re = new RegExp("^36");
    if (number.match(re) != null)
        return "Diners";

    // Diners - Carte Blanche
    re = new RegExp("^30[0-5]");
    if (number.match(re) != null)
        return "Diners - Carte Blanche";

    // JCB
    re = new RegExp("^35(2[89]|[3-8][0-9])");
    if (number.match(re) != null)
        return "JCB";

    // Visa Electron
    re = new RegExp("^(4026|417500|4508|4844|491(3|7))");
    if (number.match(re) != null)
        return "Visa Electron";

    return "";
}

function bindProcessingFee() {
    if ($('#chkAcceptProcessingFee').is(':checked')) {
        var input = parent.window.document.getElementById('txtacnumber').contentWindow.document.getElementById('txtacnumber');
        var cardType = GetCardType(input.value);
        if (cardType == "AMEX") {
            calProcessFee = (100 - (parseFloat(orgProcessFee) + 1)) / 100;
        }
        else {
            calProcessFee = (100 - parseFloat(orgProcessFee)) / 100;
        }
        if ($('#txtAmount').val() != '') {
            orignalAmount = parseFloat($('#txtAmount').val());
            orgAmtWithPerTC = fnDecimalDigits((orignalAmount + perTransactionCharges), 2);
            finalAmt = fnDecimalDigits(Math.round((orgAmtWithPerTC / calProcessFee) * Math.pow(10, 2)) / Math.pow(10, 2), 2);
        } else {
            var orgAmtWithPerTC = fnDecimalDigits((parseFloat(orignalAmount) + parseFloat(perTransactionCharges)), 2);
            finalAmt = orignalAmount == 0 ? fnDecimalDigits((0), 2) : fnDecimalDigits(Math.round((orgAmtWithPerTC / calProcessFee) * Math.pow(10, 2)) / Math.pow(10, 2), 2);
        }
    } else {
        finalAmt = (parseFloat($('#txtAmount').val()) > 0) ? fnDecimalDigits(parseFloat($('#txtAmount').val()), 2) : fnDecimalDigits(parseFloat(orignalAmount), 2);
    }
    totalAmount = finalAmt;
    var feeText = '<b>You will be charged a total of <span class="txterror">$' + finalAmt + '</span></b>';
    $("#spnTotalAmount").html(feeText);
}

$(document).ready(function () {

    $("#txtAmount").focus(function () {
        $("input[name=rbtnAmount][value='Other']").trigger('click');
        $("#txtAmount").attr("required", "required");
    });

    $("#txtAmount").change(function () {
        if ($('#txtAmount').val() != '') {
            $("#spnTotalAmount").text('');
        } else {
            $("#chkAcceptProcessingFee").attr("disabled", true);
        }
        bindProcessingFee();
    });

    $("#chkAcceptProcessingFee").click(function () {
        bindProcessingFee()
    });

    $('#pdsmasterpage').bind('dragstart', function (event) {
        event.preventDefault()
    });
});
/*****************************************************************/
function fnSetRecurringDate(selStDate, selFreq) {
    var selDay = selStDate.getDate();
    var selMonth = selStDate.getMonth() + 1;
    var selYr = selStDate.getFullYear();
    var selFormatDt = selMonth + "/" + selDay + "/" + selYr;
    str = selFormatDt.split(/\D+/);
    var RecDate;
    switch (selFreq) {
        case "1": // Weekly
            str = new Date(str[2], str[0] - 1, (parseInt(str[1]) + 7));
            break;
        case "2": // Monthly
            //(recurDate.getMonth() + 2) + "/" + recurDate.getDate() + "/" + recurDate.getFullYear();
            str = new Date(str[2], str[0] - 1, (parseInt(str[1]) + 30));
            break;
        case "3": // Yearly
            str = new Date(str[2], str[0] - 1, (parseInt(str[1]) + 365));
            break;
        case "4": //Quarterly
            str = new Date(str[2], str[0] - 1, (parseInt(str[1]) + 90));
            break;
        default:
            break;

    }
    return MMDDYYYY(str);
}

function MMDDYYYY(str) {
    var ndateArr = str.toString().split(' ');
    var Months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec';
    return (parseInt(Months.indexOf(ndateArr[1]) / 4) + 1) + '/' + ndateArr[2] + '/' + ndateArr[3];
}
function GetPageDetails() {
    merchantId = $.session.get("merchantid");
    var token = $.session.get("token");
    serviceurl = service + "MM/GetDonationPageList?merchantId=" + merchantId + "&token=" + token;
    $.ajax({
        type: "GET",
        url: serviceurl,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            var response = response.DonationPageList[0];
            var pageTitle = "Donate - " + response.PageTitle;
            $("#headertitle").text(response.PageTitle);
            document.title = pageTitle;
            $.session.set("donationPageId", response.PageID)
            $.session.set("PageTitle", pageTitle)
            $("#aWebsite").attr("href", response.Website);
            $.session.set("Websiteurl", response.Website);
            //            $("#txttitle").val(response.Title);
            //            $("#txtDescription").val(response.Description);
            if (response.FaceBookImage != null && response.FaceBookImage != "")
                imagePaths.push(response.FaceBookImage);
            if (response.DonationPageLogo != null && response.DonationPageLogo != "")
                imgPath.push(response.DonationPageLogo);
            if (imagePaths.length > 0) {
                $('#imgUploadImage').attr("src", imagePaths[0]);
                $("#divUploadImage").show();
            }
            if (imgPath.length > 0) {
                $('#imgDonationLogo').attr("src", imgPath[0]);
                $.session.set("DonationLogo", imgPath[0])
            }
        },
        error: OnErrorCall

    });
}