diff --git a/js/client.js b/js/client.js
index 08e17e933..feffb877b 100644
--- a/js/client.js
+++ b/js/client.js
@@ -2385,7 +2385,7 @@
buf += '
';
buf += '
';
- buf += '';
+ buf += '';
buf += '';
buf += '';
buf += '';
@@ -2481,6 +2481,10 @@
},
setBg: function(e) {
var bg = e.currentTarget.value;
+ if (bg === 'custom') {
+ app.addPopup(CustomBackgroundPopup);
+ return;
+ }
Tools.prefs('bg', bg);
if (!bg) bg = '#344b6c url(/fx/client-bg-charizards.jpg) no-repeat left center fixed';
$(document.body).css({
@@ -2686,4 +2690,42 @@
}
});
+ var CustomBackgroundPopup = this.CustomBackgroundPopup = Popup.extend({
+ type: 'semimodal',
+ events: {
+ 'change input[name=bgfile]': 'setBg'
+ },
+ initialize: function() {
+ var buf = '';
+ buf += 'Choose a custom background
';
+ buf += '';
+ buf += '';
+
+ buf += '';
+ this.$el.html(buf);
+ },
+ setBg: function(e) {
+ $('.bgstatus').text('Changing background image.');
+ var file = e.currentTarget.files[0];
+ var reader = new FileReader();
+ var self = this;
+ reader.onload = function(e) {
+ var bg = '#344b6c url(' + e.target.result + ') no-repeat left center fixed';
+ try {
+ Tools.prefs('bg', bg);
+ }
+ catch (e) {
+ $('.bgstatus').text("Image too large, upload a background whose size is 3.5MB or less.");
+ return;
+ }
+ $(document.body).css({
+ background: bg,
+ 'background-size': 'cover'
+ });
+ self.close();
+ };
+ reader.readAsDataURL(file);
+ }
+ });
+
}).call(this, jQuery);