﻿
function GetMyPortals() {
    var now = new Date();
    $.post(
		"/paymentportalajax/GetMyPortals/" + now.getMilliseconds(),
	    function (data) {
	        var objdata = data;
	        if (objdata.error) {
	            //alert(objdata.error);
	        }
	        else {
	            PopulateMyPortals(data);
	        }
	    },
	    "json"
    );
}
function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
    num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}
function PopulateMyPortals(objdata) {    
    $("#MyPortalList").html("");
    var tblRow = "<div>My Pay Portals ";
    $.each(objdata, function (i, portal) {
        tblRow += "<a href='/" + portal.URLSlug + "'>" + portal.Title + "</a>  ";
    });
    $("#MyPortalList").html(tblRow + "</div>");
}
var pymntspageno = 0;
var totalrecs = 0;
function GetPaymentComments(isAdmin, page) {
    var now = new Date();
    var pgnotmmp = pymntspageno;
    pymntspageno += page;
    if (((((pymntspageno * 5) - 4) <= totalrecs) && pymntspageno > 0) || totalrecs == 0) {
        $("#isloadingpaymentlist").show();
        $.post(
		"/paymentportalajax/GetPaymentComments/" + pymntspageno,
	    function (data) {
	        var objdata = data;
	        if (objdata.error) {
	            //alert(objdata.error);
	        }
	        else {
	            PopulatePaymentComments(data, isAdmin, pymntspageno, false);
	        }
	    },
	    "json"
    );
    }
    else {
        pymntspageno = pgnotmmp;
    }
}

function PopulatePaymentComments(objdata, isAdmin, page, isStandard) {
    totalrecs = objdata.total;
    var pageno = page;
    $("#PaymentList").html("");

    var tblRow = "<div><h2>Recent Payments And Comments</h2></div>";
    tblRow += "<div><table><tr>";
    tblRow += "<th align='left' width='170px'>Payment Date</th>";
    if (isAdmin) {
        tblRow += "<th align='left' width='100px'>Payer Name</th>";
    }
    else {
        tblRow += "<th align='left' width='100px'>Paid To</th>";
    }
    tblRow += "<th align='left' width='80px'>Amount</th>";
    tblRow += "<th align='left' width='60px'></th>";
    tblRow += "<th align='left' width='300px'>Last Comment</th>";
    tblRow += "</tr></table></div>";
    var paymentsExist = false;
    var i = 0;
    var portalnames = "", portalslugs = "", portalIds = "";
    var cssClass;
    $.each(objdata.pymnts, function (i, payment) {
        if (payment.PaymentDate != undefined) {
            paymentsExist = true;
            var paymentDate = jsonParseDate(payment.PaymentDate);
            if (i % 2 == 0) { cssClass = "even"; } else { cssClass = "odd"; }
            tblRow += "<div id='" + payment.PaymentID + "' class='" + cssClass + "'>"
            tblRow += "<table><tr>";
            tblRow += "<td valign='top' width='170px' class='PaymentDate'>";
            tblRow += getCalendarDate(paymentDate) + " " + getClockTime(paymentDate);
            tblRow += "</td><td width='100px'>";
            if (isAdmin) {
                if (payment.Last4CC != null) {
                    tblRow += payment.PayerFirstName + " " + payment.PayerLastName;
                }
                else {
                    tblRow += payment.ACHName;
                }
            }
            else {
                tblRow += "<a href=/" + payment.PortalURLSlug + ">" + payment.PortalName + "</a>";
            }
            tblRow += "</td><td width='80px'>";
            tblRow += formatCurrency(payment.Amount);

            tblRow += "</td><td class='PaymentDate' width='60px'>";
            tblRow += "<a href='javascript:void(0);' onclick='ViewEditComments(" + payment.PaymentID + ")'>View/Post Comments</a>";

            tblRow += "</td><td width='300px'>";
            if (payment.Comments.length > 0) {
                tblRow += payment.Comments[0].Body;
            }
            tblRow += "</td></tr></table>";
            tblRow += "</div>";
            i += 1;

            if (portalIds.indexOf(payment.PayOnlinePortalID) == -1) {
                if (portalslugs.length == 0) {
                    portalslugs += payment.PortalURLSlug;
                    portalnames += payment.PortalName;
                    portalIds += payment.PayOnlinePortalID;
                }
                else {
                    portalslugs += "," + payment.PortalURLSlug;
                    portalnames += "," + payment.PortalName;
                    portalIds += "," + payment.PayOnlinePortalID;
                }
            }
        }
    });
    var portals = portalnames.split(",");
    var portallinks = portalslugs.split(",");
    var headerrow = "<div>My Payment Portals";
    $.each(portals, function (i, portal) {
        headerrow += "&nbsp;<a href='/" + portallinks[i] + "'>" + portal + "</a>";
    });
    headerrow += "</div>";

    if (!paymentsExist) {
        headerrow = "";
        tblRow += "<div>You do not yet have any payments applied.</div>";
    }
    var pagerrow = "<div>Showing <span id='from'></span>-<span id='to'></span>";
    pagerrow += " of <span id='total'>" + totalrecs + "</span>";
    if (isStandard) {
        pagerrow += " <a href='javascript:void(0);' onclick='GetStandardPaymentComments(" + isAdmin + ", " + paymentsportalid + ",-1)'>Prev</a> ";
        pagerrow += "<a href='javascript:void(0);' onclick='GetStandardPaymentComments(" + isAdmin + "," + paymentsportalid + ",1)'>Next</a></div>";
    }
    else {
        pagerrow += " <a href='javascript:void(0);' onclick='GetPaymentComments(" + isAdmin + ", -1)'>Prev</a> ";
        pagerrow += "<a href='javascript:void(0);' onclick='GetPaymentComments(" + isAdmin + ",1)'>Next</a></div>";
    }
    tblRow += pagerrow;
    tblRow += "<div class='isloading-container'><div id='isloadingpaymentlist' class='altlangisloading'>&nbsp;</div></div>";
    $("#PaymentList").html(tblRow);
    $("#isloadingpaymentlist").hide();
    SetPagingPayments(page, totalrecs);
}
function SetPagingPayments(pageno, totalrecs) {
    var pgnotmp = pageno;
    var startval = 0, endval = 0;
    if (pgnotmp > 1) {
        pgnotmp = (pageno * 5);
        startval = pgnotmp - 4;
        endval = pgnotmp;
    }
    else {
        startval = pgnotmp;
        endval = pgnotmp + 4;
    }
    $('#from').html(startval);
    if (endval > totalrecs) {
        $('#to').html(totalrecs);
    }
    else {
        $('#to').html(endval);
    }

    $('#total').html(totalrecs);
}
function ViewEditComments(paymentId) {
    var now = new Date();
    //update parameters
    $('#payments-comments').jqm({
        ajax: '/mvccmsModal/PaymentComment/' + paymentId + "/" + now.getMilliseconds()
    });
    //open modal
    $('#payments-comments').jqmShow();
}
function ViewEditInvoiceComments(invoiceId) {
    var now = new Date();
    //update parameters
    $('#payments-comments').jqm({
        ajax: '/mvccmsModal/InvoiceComment/' + invoiceId + "/" + now.getMilliseconds()
    });
    //open modal
    $('#payments-comments').jqmShow();
}
function InvoiceCommentReply() {
    var now = new Date();
    var invoiceId = $('#InvoiceId').val();
    var body = $('#InvoiceComment-Body').val();

    var data = { InvoiceID: invoiceId, Body: body }
    var encoded = JSON.stringify(data);
    $.post(
	    "/paymentportalajax/AddInvoiceComment/" + now.getMilliseconds(),
	    { data: encoded },
	    function (data) {
	        if (data.error) {
	            alert(data.error);
	        }
	        else {
	            var addedDate = jsonParseDate(data.AddedDate);
	            var tblRow = "<tr><td>" + data.UserName + "-" + getCalendarDate(addedDate) + " " + getClockTime(addedDate) + "<br>" + body + "</td></tr>";
	            $("#Invoice-comments").append(tblRow);
	            $("#Invoicecomment-body").val("");
	            $("#nocommentlabel").fadeOut();
	        }
	    },
	    "json"
    );
}
function PaymentCommentReply() {
    var now = new Date();
    var paymentId = $('#paymentId').val();
    var body = $('#PaymentComment-Body').val();

    var data = { PaymentID: paymentId, Body: body }
    var encoded = JSON.stringify(data);
    $.post(
	    "/paymentportalajax/AddPaymentComment/" + now.getMilliseconds(),
	    { data: encoded },
	    function (data) {
	        if (data.error) {
	            alert(data.error);
	        }
	        else {
	            var addedDate = jsonParseDate(data.AddedDate);
	            var tblRow = "<tr><td>" + data.UserName + "-" + getCalendarDate(addedDate) + " " + getClockTime(addedDate) + "<br>" + body + "</td></tr>";
	            $("#payment-comments").append(tblRow);
	            $("#PaymentComment-Body").val("");
	            $("#nocommentlabel").fadeOut();
	        }
	    },
	    "json"
    );
}


