/*global define*/ /** * It checks that birthday and gender fields are set (either by hidden or visual fields). If conditions are not * met, it returns false, in the other case, it logs information by using logformdata function and returns true. * * @class de_epages.ipayment.ui.ipaymentbillsafefields * * @uses jQuery * @uses ep * @uses ep.ajax * @uses ep.ui.datepicker * */ define('de_epages/ipayment/ui/ipaymentbillsafefields', [ 'jquery', 'ep', '$ready!', 'ep/ajax', 'ep/ui/datepicker' ], function ($, ep) { 'use strict'; /** * @param {Array} serializedarray Servlet serialized data. * @param {int} id ID of the basket. */ function logformdata(serializedarray, id) { ep.ajax({ async: false, data: $.merge( serializedarray, [{ name: "ChangeAction", value: "JSONIpaymentOutgoingLog" }, { name: "ObjectID", value: id }] ), cache: false, type: "POST", dataType: "json" }); } /** * @param {Array} serializedarray Servlet serialized data. * @param {int} basketid ID of the basket. * @param {String} paymenttype Ipayment payment type. * @param {String} addr_birthday hidden birthday date input. * @param {String} dp_birthday datePicker selector input. * @param {String} male_gender gender radio button input. * @param {String} female_gender gender radio button input. */ return function (serializedarray, basketid, paymenttype, addr_birthday, dp_birthday, male_gender, female_gender) { if (paymenttype === 'invoice') { var unfilledfields = false; if (dp_birthday.length === 1) { var pickedDate = dp_birthday.uiDatepicker('getDate'), today = new Date(); if (pickedDate.getFullYear() < today.getFullYear()) { var strPickedDate = pickedDate.getFullYear() + '/' + (pickedDate.getMonth() + 1) + '/' + pickedDate.getDate(); addr_birthday.val(strPickedDate); dp_birthday.removeClass('ui-invalid'); } else { dp_birthday.addClass('ui-invalid'); unfilledfields = true; } } if ((male_gender.attr('type') === 'radio') && (female_gender.attr('type') === 'radio') && !(male_gender.is(':checked')) && !(female_gender.is(':checked'))) { male_gender.addClass('ui-invalid'); female_gender.addClass('ui-invalid'); unfilledfields = true; } else { male_gender.removeClass('ui-invalid'); female_gender.removeClass('ui-invalid'); } if (unfilledfields) { return false; } } logformdata(serializedarray, basketid); return true; }; });