Steam-AutoCraft Version: `+steamAutoCraftVersion+`
');
// Load economy.css
var economyCSS = '/public/css/skin_1/economy.css';
if(jQuery("link[href*='"+economyCSS+"']").attr('rel') !== 'stylesheet'){
jQuery('head').append('
');
}
// Load economy.css
var economyMarketCSS = '/public/css/skin_1/economy_market.css';
if(jQuery("link[href*='"+economyMarketCSS+"']").attr('rel') !== 'stylesheet'){
jQuery('head').append('
');
}
// Add button to badge details page
if (isGameCardsPage === 1){
// Add settings div
jQuery(settingsDiv).insertAfter('.gamecards_inventorylink');
jQuery('#autocraft_button_reset').click(function(){ resetSettings(); });
jQuery('#autocraft_button_save').click(function(){ saveSettings(); });
// Buttons
invLinks.append(`
AutoCraft
⚙
`);
// Set initial position
var position = jQuery('#autocraft').position();
var x = position.left;
var y = position.top;
x -= (jQuery('#autocraft_settings').outerWidth() - jQuery('#autocraft').outerWidth());
jQuery('#autocraft_settings').css({
position: 'absolute',
zIndex: 500,
top: y,
left: x
});
// Transform to overlay
jQuery('#autocraft_settings').css({
position: 'element(#autocraft)',
zIndex: 500,
transform: 'translateX(-100%)',
'background-color': 'transparent',
'background-repeat': 'no-repeat',
border: 'none',
cursor: 'pointer',
overflow: 'hidden',
outline: 'none',
top: '',
left: ''
});
jQuery('#autocraft_settings').click(function(){ toggleSettings(); });
jQuery('#autocraft_settings_close').click(function(){ toggleSettings(); });
if (canCraftBadge == 1){
jQuery('#autocraft').click(function(){ autoCraft(); });
jQuery('#autocraft').removeClass('btn_disabled');
jQuery('#autocraft').prop('disabled',false);
}
return;
}
// Add button to badges page
if (isBadgesPage === 1){
// Add settings div
jQuery(settingsDiv).insertAfter('.badge_details_set_favorite');
jQuery('#autocraft_button_reset').click(function(){ resetSettings(); });
jQuery('#autocraft_button_save').click(function(){ saveSettings(); });
// Buttons
var autoCraftButtonText = 'AutoCraft all badges';
if (window.localStorage.badgeCraftLimit) {
if (+window.localStorage.badgeCraftLimit === 1) {
autoCraftButtonText = 'AutoCraft 1 badge';
} else {
autoCraftButtonText = 'AutoCraft '+window.localStorage.badgeCraftLimit+' badges';
}
}
badgeLinks.append(`
`+autoCraftButtonText+`
⚙
`);
// Set initial position
var autocraft_position = jQuery('#autocraft').position();
var autocraft_x = autocraft_position.left;
var autocraft_y = autocraft_position.top;
autocraft_x -= (jQuery('#autocraft_settings').outerWidth() - jQuery('#autocraft').outerWidth());
jQuery('#autocraft_settings').css({
position: 'absolute',
zIndex: 500,
top: autocraft_y,
left: autocraft_x
});
// Transform to overlay
jQuery('#autocraft_settings').css({
position: 'element(#autocraft)',
zIndex: 500,
transform: 'translateX(-100%)',
'background-color': 'transparent',
'background-repeat': 'no-repeat',
border: 'none',
cursor: 'pointer',
overflow: 'hidden',
outline: 'none',
top: '',
left: ''
});
jQuery('#autocraft_settings').click(function(){ toggleSettings(); });
jQuery('#autocraft_settings_close').click(function(){ toggleSettings(); });
if (canCraftBadge == 1){
gamecardHrefLinks = jQuery('div').find('.badge_row .badge_craft_button');
gamecardHref = gamecardHrefLinks[0];
if (typeof gamecardHref !== 'undefined') {
jQuery('#autocraft').removeClass('btn_disabled');
jQuery('#autocraft').prop('disabled',false);
jQuery('#autocraft').click(function(){ window.sessionStorage.craftRecursive = 1; window.location.href = gamecardHref; });
} else {
delete window.sessionStorage.autoCraftState;
}
}
return;
}
}
// Auto-craft
function autoCraft() {
craftBadge();
setTimeout(function(){ window.location.reload(true); }, pageRefreshTimeoutms);
window.sessionStorage.autoCraftState = 1;
}
// Check settings
function checkSettings() {
// Use localStorage for persistence across browser sessions
if (window.localStorage.pageRefreshTimeoutms) {
pageRefreshTimeoutms = window.localStorage.pageRefreshTimeoutms;
}
if (window.localStorage.craftRefreshTimeoutms) {
craftRefreshTimeoutms = window.localStorage.craftRefreshTimeoutms;
}
if (window.localStorage.gameIdBlackList) {
gameIdBlackList = window.localStorage.gameIdBlackList;
}
if (window.localStorage.badgeCraftLimit) {
badgeCraftLimit = window.localStorage.badgeCraftLimit;
}
}
// Check blacklist
function checkBlacklist() {
if (isGameCardsPage === 1) { return; }
// Join csv blacklist with pipe for use inside regex
var blacklist = gameIdBlackList.replace(/[ \t]*,[ \t]*/g, '|');
var regex = "^https?:\/\/steamcommunity\.com\/+(id\/+[A-Za-z0-9$-_.+!*'(),]+|profiles\/+[0-9]+)\/gamecards\/"+blacklist+"\/.*$";
var re = new RegExp(regex);
// Get badge links
gamecardHrefLinks = jQuery('div').find('.badge_row .badge_craft_button');
gamecardHrefLinks.each(function() {
gamecardHrefLink = jQuery(this).attr('href');
// Disable badge link
if (blacklist.length > 0) {
if (gamecardHrefLink.match(re)) {
jQuery('a[href="'+gamecardHrefLink+'"]').filter('.badge_craft_button').replaceWith('5 of 5 cards collected');
}
}
});
// Redirect or clean up
if (jQuery('.badge_craft_button').length >= 1) {
redirect = 1;
} else {
delete window.sessionStorage.craftRecursive;
jQuery('#autocraft').addClass('btn_disabled');
jQuery('#autocraft').prop('disabled',true);
}
}
// Craft badge and refresh page
function craftBadge() {
jQuery('.badge_craft_button').click();
if (isGameCardsPage === 1) {
setTimeout(function(){ window.location.reload(true); }, craftRefreshTimeoutms);
}
}
// Reset settings
function resetSettings() {
var resetConfirm = confirm("Reset all settings?");
if (resetConfirm === true) {
pageRefreshTimeoutms = pageRefreshTimeoutmsDef;
delete window.localStorage.pageRefreshTimeoutms;
jQuery('#autocraft_setting_refresh_timeout').val( pageRefreshTimeoutmsDef );
craftRefreshTimeoutms = craftRefreshTimeoutmsDef;
delete window.localStorage.craftRefreshTimeoutms;
jQuery('#autocraft_setting_craft_refresh_timeout').val( craftRefreshTimeoutmsDef );
gameIdBlackList = '';
delete window.localStorage.gameIdBlackList;
jQuery('#autocraft_setting_blacklist').val( gameIdBlackList );
badgeCraftLimit = '';
delete window.localStorage.badgeCraftLimit;
jQuery('#autocraft_setting_badgelimit').val( badgeCraftLimit );
toggleSettings();
window.location.reload(true);
}
}
// Save settings
function saveSettings() {
var problemState = 0;
var settingsArray = jQuery('#autocraft_settings_form').serializeArray();
jQuery.each(settingsArray, function (i, setting) {
if (setting.name === 'autocraft_setting_refresh_timeout') {
// Ensure that only integers are entered
if (setting.value.match(/^[0-9]+$/)) {
pageRefreshTimeoutms = setting.value;
window.localStorage.pageRefreshTimeoutms = setting.value;
} else {
alert("Invalid input: "+setting.value+", 'Page Refresh Timeout (ms)' requires an integer!");
problemState = 1;
}
}
if (setting.name === 'autocraft_setting_craft_refresh_timeout') {
// Ensure that only integers are entered
if (setting.value.match(/^[0-9]+$/)) {
craftRefreshTimeoutms = setting.value;
window.localStorage.craftRefreshTimeoutms = setting.value;
} else {
alert("Invalid input: "+setting.value+", 'Craft Refresh Timeout (ms)' requires an integer!");
problemState = 1;
}
}
if (setting.name === 'autocraft_setting_blacklist') {
// Allow only integers and commas
if ((setting.value.match(/^([ \t]*,?[0-9]+,?[ \t]*)+$/)) || (setting.value === '')) {
gameIdBlackList = setting.value;
window.localStorage.gameIdBlackList = setting.value;
} else {
alert("Invalid input: "+setting.value+", 'Game ID Blacklist (id1,id2)' requires an integer with optional comma!");
problemState = 1;
}
}
if (setting.name === 'autocraft_setting_badgelimit') {
// Ensure that only integers are entered
if (((! setting.value.match(/^0$/)) && (setting.value.match(/^[0-9]+$/))) || (setting.value === '')) {
badgeCraftLimit = setting.value;
window.localStorage.badgeCraftLimit = setting.value;
} else {
alert("Invalid input: "+setting.value+", 'Badge Limit requires an integer greater than 0!");
problemState = 1;
}
}
});
if (problemState === 0) {
toggleSettings();
window.location.reload(true);
}
}
// Settings toggle
function toggleSettings() {
// Toggle the settings
jQuery('#autocraft_settings_div').toggle();
jQuery('#autocraft_settings_background_div').fadeToggle();
// Change look on view
if (jQuery('#autocraft_settings_div').is(':visible')) {
jQuery('#autocraft_settings').addClass('btn_disabled');
} else {
jQuery('#autocraft_settings').removeClass('btn_disabled');
}
// Close on outside click
var inside_autocraft_settings=false;
jQuery('#autocraft_settings_div').hover(function(){
inside_autocraft_settings=true;
}, function(){
inside_autocraft_settings=false;
});
jQuery('body').mouseup(function(){
if((jQuery('#autocraft_settings_div').is(':visible')) && (!inside_autocraft_settings)) {
jQuery('#autocraft_settings_div').hide();
jQuery('#autocraft_settings_background_div').fadeOut();
jQuery('#autocraft_settings').removeClass('btn_disabled');
}
});
}