PayFabric for Sage Intacct Theme JS
PayFabric Sage Intacct Theme JS
// JavaScript source code
var countries;
var usStates;
var caProvinces;
var auTerritories;
$(document).ready(function () {
populateVariables();
initDropdowns();
initPlaceHolder();
removeHtmlElementStyle();
customDisplayAdjustment();
if (tryGetURLParameter("readonly") == "true") {
adjustForReadonly();
}
});
function adjustForReadonly() {
$("#exptime1").attr("disabled", "disabled");
$("#exptime2").attr("disabled", "disabled");
$("#WalletCreditCard_CardHolderFirstName").attr("disabled", "disabled");
$("#WalletCreditCard_CardHolderLastName").attr("disabled", "disabled");
$("#Billto_CountryCode").attr("disabled", "disabled");
$("#Billto_AddressLine1").attr("disabled", "disabled");
$("#Billto_AddressLine2").attr("disabled", "disabled");
$("#Billto_CityCode").attr("disabled", "disabled");
$("#Billto_StateCode").attr("disabled", "disabled");
$("#Billto_ZipCode").attr("disabled", "disabled");
$("#WalletCreditCard_IsDefaultCard").attr("disabled", "disabled");
$("#WalletECheck_AccountType").attr("disabled", "disabled");
$("#WalletECheck_CardHolderFirstName").attr("disabled", "disabled");
$("#WalletECheck_CardHolderLastName").attr("disabled", "disabled");
$("#WalletECheck_IsDefaultCard").attr("disabled", "disabled");
$("#btn_Save").hide();
$("#btn_Close").hide();
$("#c_btn_Close").hide();
}
function customDisplayAdjustment() {
$(".ExpDate").text("Expiration Date");
$(".AccountNumber label").text("Account Number");
$(".ABANumber label").text("Routing Number");
$(".CustomerCSS-wallet_Echeck span").text("Default eCheck Account");
$("#payment .CardContainer .CardDate .ExpDate").text("Expiration Date");
$("#payment .CardContainer .AccountNumber label").text("Account Number");
$("#payment .CardContainer .ABANumber label").text("Routing Number");
$("#payment .CardContainer h6.CustomerCSS-wallet_Echeck span").text("Default eCheck Account");
$("#btn_Close").val("Cancel");
var cardnumber = $("#payment .CardContainer .ccinput-cardnumber");
if (cardnumber.length > 0) {
cardnumber.val(cardnumber.val().replace(/X+/g, "· · · · "));
}
var accountnumber = $("#payment .CardContainer .ccinput-accountnumber");
if (accountnumber.length > 0) {
accountnumber.val(accountnumber.val().replace(/X+/g, "· · · · "));
}
var abanumber = $("#payment .CardContainer .ccinput-abanumber");
if (abanumber.length > 0) {
abanumber.val(abanumber.val().replace(/X+/g, "· · · · "));
}
if ($("#paymentForm").length > 0) {
$(".expirationMonthDiv").prepend("Expiration Date");
$(".ExpirationYearDiv").prepend(" ");
$(".CVV2Div").prepend("CVC");
$(".billCityCodeDiv").prepend("City");
$(".billStateCodeDiv").prepend("State/Province");
$(".billZipCodeDiv").prepend("Zip/Postal Code");
// Since the Card Info input is not in a form-row as other inputs, prepending to the parent will workaround the line break issue
$(".creditcardBasicInfo").prepend("Card Number");
$(".cardHolderNameDiv").prepend("Name");
$("input").attr("placeholder", "");
$(".expirationMonth").attr("placeholder", "MM");
$(".expirationYear").attr("placeholder", "YY");
$("#paymentForm #BillCountryCode").change(function (e) {
var val = $(e.currentTarget).val();
if (val == null || val === "") {
$("#BillCountryCode").attr("is-valid", false);
} else {
$("#BillCountryCode").attr("is-valid", true);
}
});
$("#paymentForm #BillStateCode").change(function (e) {
var val = $(e.currentTarget).val();
if (val == null || val === "") {
$("#BillStateCode").attr("is-valid", false);
} else {
$("#BillStateCode").attr("is-valid", true);
}
});
}
}
function tryGetURLParameter(name) {
name = "&" + name + "=";
var nameCount = name.length;
var startIndex = window.location.href.indexOf(name);
if (startIndex == -1) {
name = "?" + name + "=";
startIndex = window.location.href.indexOf(name);
if (startIndex == -1) {
return "";
}
}
startIndex = startIndex + nameCount;
var endIndex = window.location.href.indexOf("&", startIndex);
if (endIndex == -1) {
endIndex = window.location.href.length;
}
return window.location.href.substring(startIndex, endIndex);
}
function getCountryCodeInput() {
var countryInput = $("#Billto_CountryCode");
if (countryInput.length == 0) {
countryInput = $("#NewBillAddresses_CountryCode");
}
return countryInput;
}
function getStateInput() {
var stateInput = $("#Billto_StateCode");
if (stateInput.length == 0) {
stateInput = $("#NewBillAddresses_StateCode");
}
return stateInput;
}
function populateVariables() {
countries = {
US: "United States",
AD: "Andorra",
AE: "United Arab Emirates",
AF: "Afghanistan",
AG: "Antigua And Barbuda",
AI: "Anguilla",
AL: "Albania",
AM: "Armenia",
AN: "Netherlands Antilles",
AO: "Angola",
AQ: "Antarctica",
AR: "Argentina",
AS: "American Samoa",
AT: "Austria",
AU: "Australia",
AW: "Aruba",
AX: "Aland Islands",
AZ: "Azerbaijan",
BA: "Bosnia And Herzegovina",
BB: "Barbados",
BD: "Bangladesh",
BE: "Belgium",
BF: "Burkina Faso",
BG: "Bulgaria",
BH: "Bahrain",
BI: "Burundi",
BJ: "Benin",
BL: "Saint Barthélemy",
BM: "Bermuda",
BN: "Brunei Darussalam",
BO: "Bolivia",
BR: "Brazil",
BS: "Bahamas",
BT: "Bhutan",
BV: "Bouvet Island",
BW: "Botswana",
BY: "Belarus",
BZ: "Belize",
CA: "Canada",
CC: "Cocos (Keeling) Islands",
CD: "Congo, The Democratic Republic Of The",
CF: "Central African Republic",
CG: "Congo",
CH: "Switzerland",
CI: "Côte D'Ivoire",
CK: "Cook Islands",
CL: "Chile",
CM: "Cameroon",
CN: "China",
CO: "Colombia",
CR: "Costa Rica",
CU: "Cuba",
CV: "Cape Verde",
CX: "Christmas Island",
CY: "Cyprus",
CZ: "Czech Republic",
DE: "Germany",
DJ: "Djibouti",
DK: "Denmark",
DM: "Dominica",
DO: "Dominican Republic",
DZ: "Algeria",
EC: "Ecuador",
EE: "Estonia",
EG: "Egypt",
EH: "Western Sahara",
ER: "Eritrea",
ES: "Spain",
ET: "Ethiopia",
FI: "Finland",
FJ: "Fiji",
FK: "Falkland Islands (Malvinas)",
FM: "Micronesia, Federated States Of",
FO: "Faroe Islands",
FR: "France",
GA: "Gabon",
GB: "United Kingdom",
GD: "Grenada",
GE: "Georgia",
GF: "French Guiana",
GG: "Gurnsey",
GH: "Ghana",
GI: "Gibraltar",
GL: "Greenland",
GM: "Gambia",
GN: "Guinea",
GP: "Guadeloupe",
GQ: "Equatorial Guinea",
GR: "Greece",
GS: "South Georgia And The South Sandwich Islands",
GT: "Guatemala",
GU: "Guam",
GW: "Guinea-Bissau",
GY: "Guyana",
HK: "Hong Kong",
HM: "Heard Island And Mcdonald Islands",
HN: "Honduras",
HR: "Croatia",
HT: "Haiti",
HU: "Hungary",
ID: "Indonesia",
IE: "Ireland",
IL: "Israel",
IM: "Isle Of Man",
IN: "India",
IO: "British Indian Ocean Territory",
IQ: "Iraq",
IR: "Iran, Islamic Republic Of",
IS: "Iceland",
IT: "Italy",
JE: "Jersey",
JM: "Jamaica",
JO: "Jordan",
JP: "Japan",
KE: "Kenya",
KG: "Kyrgyzstan",
KH: "Cambodia",
KI: "Kiribati",
KM: "Comoros",
KN: "Saint Kitts And Nevis",
KP: "Korea, Democratic People'S Republic Of",
KR: "Korea, Republic Of",
KW: "Kuwait",
KY: "Cayman Islands",
KZ: "Kazakhstan",
LA: "Lao People'S Democratic Republic",
LB: "Lebanon",
LC: "Saint Lucia",
LI: "Liechtenstein",
LK: "Sri Lanka",
LR: "Liberia",
LS: "Lesotho",
LT: "Lithuania",
LU: "Luxembourg",
LV: "Latvia",
LY: "Libyan Arab Jamahiriya",
MA: "Morocco",
MC: "Monaco",
MD: "Moldova, Republic Of",
ME: "Montenegro",
MF: "Saint Martin",
MG: "Madagascar",
MH: "Marshall Islands",
MK: "Macedonia, The Former Yugoslav Republic Of",
ML: "Mali",
MM: "Myanmar",
MN: "Mongolia",
MO: "Macao",
MP: "Northern Mariana Islands",
MQ: "Martinique",
MR: "Mauritania",
MS: "Montserrat",
MT: "Malta",
MU: "Mauritius",
MV: "Maldives",
MW: "Malawi",
MX: "Mexico",
MY: "Malaysia",
MZ: "Mozambique",
NA: "Namibia",
NC: "New Caledonia",
NE: "Niger",
NF: "Norfolk Island",
NG: "Nigeria",
NI: "Nicaragua",
NL: "Netherlands",
NO: "Norway",
NP: "Nepal",
NR: "Nauru",
NU: "Niue",
NZ: "New Zealand",
OM: "Oman",
PA: "Panama",
PE: "Peru",
PF: "French Polynesia",
PG: "Papua New Guinea",
PH: "Philippines",
PK: "Pakistan",
PL: "Poland",
PM: "Saint Pierre And Miquelon",
PN: "Pitcairn",
PR: "Puerto Rico",
PS: "Palestinian Territory, Occupied",
PT: "Portugal",
PW: "Palau",
PY: "Paraguay",
QA: "Qatar",
RE: "Réunion",
RO: "Romania",
RS: "Serbia",
RU: "Russian Federation",
RW: "Rwanda",
SA: "Saudi Arabia",
SB: "Solomon Islands",
SC: "Seychelles",
SD: "Sudan",
SE: "Sweden",
SG: "Singapore",
SH: "Saint Helena",
SI: "Slovenia",
SJ: "Svalbard And Jan Mayen",
SK: "Slovakia",
SL: "Sierra Leone",
SM: "San Marino",
SN: "Senegal",
ST: "Sao Tome And Principe",
SV: "El Salvador",
SY: "Syrian Arab Republic",
SZ: "Swaziland",
TC: "Turks And Caicos Islands",
TD: "Chad",
TF: "French Southern Territories",
TG: "Togo",
TH: "Thailand",
TJ: "Tajikistan",
TK: "Tokelau",
TL: "Timor-Leste",
TM: "Turkmenistan",
TN: "Tunisia",
TO: "Tonga",
TR: "Turkey",
TT: "Trinidad And Tobago",
TV: "Tuvalu",
TW: "Taiwan, Province Of China",
TZ: "Tanzania, United Republic Of",
UA: "Ukraine",
UG: "Uganda",
UM: "United States Minor Outlying Islands",
UY: "Uruguay",
UZ: "Uzbekistan",
VA: "Holy See (Vatican City State)",
VC: "Saint Vincent And The Grenadines",
VE: "Venezuela",
VG: "Virgin Islands, British",
VI: "Virgin Islands, U.S.",
VN: "Viet Nam",
WF: "Wallis And Futuna",
WS: "Samoa",
YE: "Yemen",
YT: "Mayotte",
ZA: "South Africa",
ZM: "Zambia",
ZW: "Zimbabwe",
};
usStates = {
"": "",
AL: "Alabama",
AK: "Alaska",
AZ: "Arizona",
AR: "Arkansas",
CA: "California",
CO: "Colorado",
CT: "Connecticut",
DE: "Delaware",
FL: "Florida",
GA: "Georgia",
HI: "Hawaii",
ID: "Idaho",
IL: "Illinois",
IN: "Indiana",
IA: "Iowa",
KS: "Kansas",
KY: "Kentucky",
LA: "Louisiana",
ME: "Maine",
MA: "Massachusetts",
MD: "Maryland",
MI: "Michigan",
MN: "Minnesota",
MS: "Mississippi",
MO: "Missouri",
MT: "Montana",
NE: "Nebraska",
NV: "Nevada",
NH: "New Hampshire",
NJ: "New Jersey",
NM: "New Mexico",
NY: "New York",
NC: "North Carolina",
ND: "North Dakota",
OH: "Ohio",
OK: "Oklahoma",
OR: "Oregon",
PA: "Pennsylvania",
RI: "Rhode Island",
SC: "South Carolina",
SD: "South Dakota",
TN: "Tennessee",
TX: "Texas",
UT: "Utah",
VT: "Vermont",
VA: "Virginia",
WA: "Washington",
DC: "Washington, D.C.",
WV: "West Virginia",
WI: "Wisconsin",
WY: "Wyoming",
};
caProvinces = {
AB: "Alberta",
BC: "British Columbia",
MB: "Manitoba",
NB: "New Brunswick",
NL: "Newfoundland and Labrador",
NT: "Northwest Territories",
NS: "Nova Scotia",
NU: "Nunavut",
ON: "Ontario",
PE: "Prince Edward Island",
QC: "Québec",
SK: "Saskatchewan",
YT: "Yukon",
};
auTerritories = {
ACT: "Australian Capital Territory",
NSW: "New South Wales",
NT: "Northern Territory",
QLD: "Queensland",
SA: "South Australia",
TAS: "Tasmania",
VIC: "Victoria",
WA: "Western Australia",
};
}
function initDropdowns() {
$(".Country").insertBefore($(".Street"));
$(".Trx_BillCountry").insertBefore($(".Trx_BillAddress"));
$("#NewBillAddresses_CountryCode").insertBefore($(".Trx_BillAddress"));
$(".Country_CreateWallet").insertBefore($(".Street_CreateWallet"));
$(".Wallet #billaddress>#Billto_CountryCode").insertBefore($(".Street_CreateWallet"));
var country = $(getCountryCodeInput()).val();
country = checkCountry(country);
$(getCountryCodeInput()).replaceWith(
$("<select />", {
id: getCountryCodeInput().attr("id"),
name: getCountryCodeInput().attr("name"),
})
);
if (country == "") {
var option = $("<option></option>").attr("value", "").text(" - select a country - ");
$(option).prop("selected", true);
$(getCountryCodeInput()).append(option);
}
$.each(countries, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (key == country) {
$(option).prop("selected", true);
}
$(getCountryCodeInput()).append(option);
});
$(getCountryCodeInput()).change(function () {
var country = $(this).val();
switchStateControl(country);
});
switchStateControl(country);
}
function switchStateControl(country) {
var state = $(getStateInput()).val();
if (country == "US") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
$.each(usStates, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (state == key) {
$(option).prop("selected", true);
}
$(getStateInput()).append(option);
});
} else if (country == "CA") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
$.each(caProvinces, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (state == key) {
$(option).prop("selected", true);
}
$(getStateInput()).append(option);
});
} else if (country == "AU") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
$.each(auTerritories, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (state == key) {
$(option).prop("selected", true);
}
$(getStateInput()).append(option);
});
} else if (country == "") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
} else {
$(getStateInput()).replaceWith(
$("<input />", {
type: "text",
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
}).val(state)
);
$("#Billto_StateCode").attr("placeholder", "State");
}
}
function checkCountry(country) {
if (country == undefined || country == "") {
country = "US";
} else {
var value = countries[country];
if (!value) {
// Check other potential variations of the US.
// If required add other countries
if (
country.toLowerCase() == "usa" ||
country.toLowerCase() == "u.s.a" ||
country.toLowerCase() == "u.s" ||
country.toLowerCase() == "united states" ||
country.toLowerCase() == "united states of america" ||
country.toLowerCase() == "u.s.a."
) {
country = "US";
} else {
country = "";
}
}
}
return country;
}
function removeHtmlElementStyle() {
$("#WalletCreditCard_CardNumber").attr("style", "");
$("#WalletCreditCard_CardHolderFirstName").attr("style", "");
$("#WalletCreditCard_CardHolderLastName").attr("style", "");
$(".Checkoutpage #payment .CardContainer .ccinput-cardnumber").attr("style", "");
}
function initPlaceHolder() {
$(".CardContainer .MiddleInitial").hide();
$(".ccinput-issavecard").hide();
}