﻿var objPayPal = {

    // REPLACE THESE VARIABLES

    formID: 'form3732',
    email: 'sswdevelopment@sbcglobal.net',
    productName: 'Mass Cards',
    productID: 'MassCards',
    returnURL: 'http://www.salesiansisterswest.org',
    recurringPeriod: 'M',
    totalField: '#form3732 input[name=fldAmount]',
    fieldPrefix: 'fldOption',

    // DO NOT CHANGE THESE VARIABLES

    total: 0,
    optionValues: [],
    onceURL: 'https://www.paypal.com/xclick/business=**EMAIL**&item_name=**PRODUCTNAME**&item_number=**PRODUCTID**&amount=**TOTAL**&return=**RETURNURL**',
    recurringURL: 'https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=**EMAIL**&lc=US&item_name=**PRODUCTNAME**&no_note=1&no_shipping=2&a3=**TOTAL**&currency_code=USD&src=1&p3=1&t3=**RECURRINGPERIOD**&sra=1&bn=PP%2dSubscriptionsBF%3abtn_subscribeCC_LG%2egif%3aNonHosted&return=**RETURNURL**',

    // SYSTEM FUNCTIONS

    setValue: function (vFieldName, vFieldValue) {
        if (objPayPal.optionValues[vFieldName] != undefined) {
            objPayPal.optionCount = objPayPal.optionCount + 1;
        }
        objPayPal.optionValues[vFieldName] = vFieldValue;
        objPayPal.recalculate();
    },

    recalculate: function () {
        objPayPal.total = 0;
        for (vKey in objPayPal.optionValues) {
            if (objPayPal.optionValues[vKey] != undefined) {
                objPayPal.total = eval(objPayPal.total) + eval(objPayPal.optionValues[vKey]);
            }
        }
        $(objPayPal.totalField).val(objPayPal.formatCurrency(objPayPal.total));
    },

    submitPayment: function (vType) {
        switch (vType) {
            case 'once':
                objPayPal.onceURL = objPayPal.onceURL.replace('**EMAIL**', escape(objPayPal.email));
                objPayPal.onceURL = objPayPal.onceURL.replace('**PRODUCTNAME**', escape(objPayPal.productName));
                objPayPal.onceURL = objPayPal.onceURL.replace('**PRODUCTID**', escape(objPayPal.productID));
                objPayPal.onceURL = objPayPal.onceURL.replace('**RETURNURL**', escape(objPayPal.returnURL));
                objPayPal.onceURL = objPayPal.onceURL.replace('**TOTAL**', escape($(objPayPal.totalField).val()));
                window.open(objPayPal.onceURL, 'PayPalOnce');
                break;
            case 'recurring':
                objPayPal.recurringURL = objPayPal.recurringURL.replace('**EMAIL**', escape(objPayPal.email));
                objPayPal.recurringURL = objPayPal.recurringURL.replace('**PRODUCTNAME**', escape(objPayPal.productName));
                objPayPal.recurringURL = objPayPal.recurringURL.replace('**PRODUCTID**', escape(objPayPal.productID));
                objPayPal.recurringURL = objPayPal.recurringURL.replace('**RETURNURL**', escape(objPayPal.returnURL));
                objPayPal.recurringURL = objPayPal.recurringURL.replace('**RECURRINGPERIOD**', escape(objPayPal.recurringPeriod));
                objPayPal.recurringURL = objPayPal.recurringURL.replace('**TOTAL**', escape($(objPayPal.totalField).val()));
                window.open(objPayPal.recurringURL, 'PayPalRecurring');
                break;
            default:
                alert('Invalid Payment Type (' + vType + ')');
        }
        $('#' + objPayPal.formID)[0].onsubmit();
    },

    formatCurrency: function(num) {
        num = isNaN(num) || num === '' || num === null ? 0.00 : num;    
        return parseFloat(num).toFixed(2);
    }

}


