// License: LGPL-3.0-or-later
require('../../../components/date_range_picker')
require('../../../common/panels_layout')
require('./tour')
require('../../../common/restful_resource')
require('../../../refunds/create')
require('../../supporters/get_name')
require('./payment_details')
require('../../../components/tables/filtering/apply_filter')('payments')
require('../../../common/ajax/get_campaign_and_event_names_and_ids')(app.nonprofit_id)
require('../../supporters/index/import')
var format = require('../../../common/format')

appl.def('format', require('../../../common/format'))

appl.def('payments.index', function() {
	appl.def('loading', true)
	appl.ajax.index('payments').then(function(resp) {
		appl.def('loading', false)
		if(appl.payments.query.page > 1) {
			var main_panel = document.querySelector('.mainPanel')
			main_panel.scrollTop = main_panel.scrollHeight
		}
	})
})


appl.def('payments.clear_search_if_deleted', function(val) {
	if(val === '') {
		appl.def('payments.query', {search: '', page: 1})
		appl.payments.index()
	}
})


appl.def("payments", {
	query: {page: 1},
	concat_data: true
})

appl.def('filter_count', 0)

if(window.location.search)
	ajax_from_params()
else
	appl.payments.index()


appl.def('payments.toggle_panel', function(id, el){
	var tr = el.parentNode

	if(tr.hasAttribute('data-selected')) {
		appl.close_side_panel()
		tr.removeAttribute('data-selected','')
	} else {
		appl.ajax_payment_details.fetch(id)
		$('.mainPanel').find('tr').removeAttr('data-selected')
		tr.setAttribute('data-selected','')
		var path =  window.location.pathname + "?pid=" + id
		window.history.pushState({},'payment id', path)
	}
})


appl.def('readable_kind', function(kind, el) {
	if(kind === "Donation") return "One-Time Donation"
  else if(kind === "OffsitePayment") return "Offsite Donation"
  else if(kind === "Ticket") return "Ticket Purchase"
  else return format.camelToWords(kind)
})


appl.def('kind_icon_class', function(kind) {
	if(kind === "Donation") return "fa-heart"
	if(kind === "OffsitePayment") return "fa-money"
	if(kind === "RecurringDonation") return "fa-refresh"
	if(kind === "Ticket") return "fa-ticket"
	if(kind === "Refund") return "fa-rotate-left"
})

appl.def('formatted_gross_amount', function(amt) {
	if(amt < 0) {
		return '(' + appl.cents_to_dollars(Math.abs(amt)) + ')'
	} else {
		return appl.cents_to_dollars(amt)
	}
})

function ajax_from_params() {
	var payment_id = utils.get_param('pid')
	var supporter_id = utils.get_param('sid')
	appl.is_loading()
	if(supporter_id) {
		appl.payments.query = {page: appl.payments.query.page, search: supporter_id}
		appl.payments.index()
	}
	if(payment_id) {
		appl.payments.index()
		appl.ajax_payment_details.fetch(payment_id)
	}
}