Untitled diff

Created Diff never expires
8 removals
190 lines
9 additions
191 lines
function addSettings() {
function addSettings() {
if ($("#settingsButton").length)
if ($("#settingsButton").length)
return;
return;
// Add the required CSS
// Add the required CSS
AddCss("\
AddCss("\
#settingsButton{border-bottom: 1px solid rgb(102, 102, 102); border-right: 1px solid rgb(102, 102, 102); background: none repeat scroll 0% 0% rgb(238, 238, 238); display: block; position: fixed; overflow: auto; right: 0px; top: 0px; padding: 3px; z-index: 1000;}\
#settingsButton{border-bottom: 1px solid rgb(102, 102, 102); border-right: 1px solid rgb(102, 102, 102); background: none repeat scroll 0% 0% rgb(238, 238, 238); display: block; position: fixed; overflow: auto; right: 0px; top: 0px; padding: 3px; z-index: 1000;}\
#pauseButton{border-bottom: 1px solid rgb(102, 102, 102); border-right: 1px solid rgb(102, 102, 102); background: none repeat scroll 0% 0% rgb(238, 238, 238); display: block; position: fixed; overflow: auto; right: 23px; top: 0px; padding: 3px; z-index: 1000;}\
#pauseButton{border-bottom: 1px solid rgb(102, 102, 102); border-right: 1px solid rgb(102, 102, 102); background: none repeat scroll 0% 0% rgb(238, 238, 238); display: block; position: fixed; overflow: auto; right: 23px; top: 0px; padding: 3px; z-index: 1000;}\
#settingsPanel{border-bottom: 1px solid rgb(102, 102, 102); border-right: 1px solid rgb(102, 102, 102); background: none repeat scroll 0% 0% rgb(238, 238, 238); color: rgb(0, 0, 0); position: fixed; overflow: auto; right: 0px; top: 0px; width: 350px;max-height:750px;font: 12px sans-serif; text-align: left; display: block; z-index: 1000;}\
#settingsPanel{border-bottom: 1px solid rgb(102, 102, 102); border-right: 1px solid rgb(102, 102, 102); background: none repeat scroll 0% 0% rgb(238, 238, 238); color: rgb(0, 0, 0); position: fixed; overflow: auto; right: 0px; top: 0px; width: 550px;max-height:750px;font: 12px sans-serif; text-align: left; display: block; z-index: 1000;}\
#settings_title{font-weight: bolder; background: none repeat scroll 0% 0% rgb(204, 204, 204); border-bottom: 1px solid rgb(102, 102, 102); padding: 3px;}\
#settings_title{font-weight: bolder; background: none repeat scroll 0% 0% rgb(204, 204, 204); border-bottom: 1px solid rgb(102, 102, 102); padding: 3px;}\
#settingsPanelButtonContainer {background: none repeat scroll 0% 0% rgb(204, 204, 204); border-top: 1px solid rgb(102, 102, 102);padding: 3px;text-align:center} \
#settingsPanelButtonContainer {background: none repeat scroll 0% 0% rgb(204, 204, 204); border-top: 1px solid rgb(102, 102, 102);padding: 3px;text-align:center} \
#settingsPanel label.purple {font-weight:bold;color:#7C37F6}\
#settingsPanel label.purple {font-weight:bold;color:#7C37F6}\
#settingsPanel label.blue {font-weight:bold;color:#007EFF}\
#settingsPanel label.blue {font-weight:bold;color:#007EFF}\
#settingsPanel label.green {font-weight:bold;color:#8AFF00}\
#settingsPanel label.green {font-weight:bold;color:#8AFF00}\
#settingsPanel label.white {font-weight:bold;color:#FFFFFF}\
#settingsPanel label.white {font-weight:bold;color:#FFFFFF}\
#charPanel {width:340px;max-height:400px;overflow:auto;display:block;padding:3px;}\
#charPanel {width:98%;max-height:400px;overflow:auto;display:block;padding:3px;}\
#charPanel div div ul li { display: inline-block; width: 48%; }\
.inventory-container {float: left; clear: none; width: 270px; margin-right: 20px;}\
.inventory-container {float: left; clear: none; width: 270px; margin-right: 20px;}\
#prinfopane {position: fixed; top: 5px; left: 200px; display: block; z-index: 1000;}\
#prinfopane {position: fixed; top: 5px; left: 200px; display: block; z-index: 1000;}\
.prh3 {padding: 5px; height: auto!important; width: auto!important; background-color: rgba(0, 0, 0, 0.7);}\
.prh3 {padding: 5px; height: auto!important; width: auto!important; background-color: rgba(0, 0, 0, 0.7);}\
");
");
// Add settings panel to page body
// Add settings panel to page body
$("body").append(
$("body").append(
'<div id="settingsPanel">\
'<div id="settingsPanel">\
<div id="settings_title">\
<div id="settings_title">\
<img src='+image_prefs+' style="float: left; vertical-align: text-bottom;"\>\
<img src='+image_prefs+' style="float: left; vertical-align: text-bottom;"\>\
<img id="settings_close" src='+image_close+' title="Click to hide preferences" style="float: right; vertical-align: text-bottom; cursor: pointer; display: block;"\>\
<img id="settings_close" src='+image_close+' title="Click to hide preferences" style="float: right; vertical-align: text-bottom; cursor: pointer; display: block;"\>\
<span style="margin:3px">Settings</span>\
<span style="margin:3px">Settings</span>\
</div>\
</div>\
<form style="margin: 0px; padding: 0px">\
<form style="margin: 0px; padding: 0px">\
<ul style="list-style: none outside none; max-height: 500px; overflow: auto; margin: 3px; padding: 0px;">\
<ul style="list-style: none outside none; max-height: 500px; overflow: auto; margin: 3px; padding: 0px;">\
</ul>\
</ul>\
</form>\
</form>\
</div>'
</div>'
);
);
// Add each setting input
// Add each setting input
var settingsList = $("#settingsPanel form ul");
var settingsList = $("#settingsPanel form ul");
for (var i = 0; i < settingnames.length; i++) {
for (var i = 0; i < settingnames.length; i++) {
var id = 'settings_' + settingnames[i].name;
var id = 'settings_' + settingnames[i].name;
var indent = countLeadingSpaces(settingnames[i].title) * 2;
var indent = countLeadingSpaces(settingnames[i].title) * 2;
switch(settingnames[i].type) {
switch(settingnames[i].type) {
case "checkbox":
case "checkbox":
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em"><input style="margin:4px" name="'+id+'" id="'+id+'" type="checkbox" /><label class="'+settingnames[i].class+'" for="'+id+'">'+settingnames[i].title+'</label></li>')
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em; width: 48%; display: inline-block;"><input style="margin:4px" name="'+id+'" id="'+id+'" type="checkbox" /><label class="'+settingnames[i].class+'" for="'+id+'">'+settingnames[i].title+'</label></li>')
$('#'+id).prop('checked', settings[settingnames[i].name]);
$('#'+id).prop('checked', settings[settingnames[i].name]);
break;
break;
case "text":
case "text":
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em"><label class="'+settingnames[i].class+'" for="'+id+'">'+settingnames[i].title+'</label><input style="margin:4px" name="'+id+'" id="'+id+'" type="text" /></li>')
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em; width: 48%; display: inline-block;"<label class="'+settingnames[i].class+'" for="'+id+'">'+settingnames[i].title+'</label><input style="margin:4px" name="'+id+'" id="'+id+'" type="text" /></li>')
$('#'+id).val(settings[settingnames[i].name]);
$('#'+id).val(settings[settingnames[i].name]);
break;
break;
case "password":
case "password":
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em"><label class="'+settingnames[i].class+'" for="'+id+'">'+settingnames[i].title+'</label><input style="margin:4px" name="'+id+'" id="'+id+'" type="password" /></li>')
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em; width: 48%; display: inline-block;"'+settingnames[i].class+'" for="'+id+'">'+settingnames[i].title+'</label><input style="margin:4px" name="'+id+'" id="'+id+'" type="password" /></li>')
$('#'+id).val(settings[settingnames[i].name]);
$('#'+id).val(settings[settingnames[i].name]);
break;
break;
case "select":
case "select":
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em"><label class="'+settingnames[i].class+'" style="padding-left:4px" for="'+id+'">'+settingnames[i].title+'</label><select style="margin:4px" name="'+id+'" id="'+id+'" /></li>')
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em; width: 48%; display: inline-block;"'+settingnames[i].class+'" style="padding-left:4px" for="'+id+'">'+settingnames[i].title+'</label><select style="margin:4px" name="'+id+'" id="'+id+'" /></li>')
var options = settingnames[i].opts;
var options = settingnames[i].opts;
var select = $('#'+id);
var select = $('#'+id);
for (var j = 0; j < options.length; j++) {
for (var j = 0; j < options.length; j++) {
if (settings[settingnames[i].name] == options[j].path)
if (settings[settingnames[i].name] == options[j].path)
select.append('<option value="'+options[j].path+'" selected="selected">'+options[j].name+'</option>');
select.append('<option value="'+options[j].path+'" selected="selected">'+options[j].name+'</option>');
else
else
select.append('<option value="'+options[j].path+'">'+options[j].name+'</option>');
select.append('<option value="'+options[j].path+'">'+options[j].name+'</option>');
}
}
break;
break;
case "label":
case "label":
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em;><label class="'+settingnames[i].class+'">'+settingnames[i].title+'</label></li>')
settingsList.append('<li title="'+settingnames[i].tooltip+'" style="margin-left:'+indent+'em;><label class="'+settingnames[i].class+'">'+settingnames[i].title+'</label></li>')
break;
break;
}
}
}
}
// Add character settings for each char
// Add character settings for each char
var addText = '\
var addText = '\
<script type="text/javascript">\
<script type="text/javascript">\
<!--\
<!--\
function click_position(obj)\
function click_position(obj)\
{\
{\
change_position(obj.value)\
change_position(obj.value)\
}\
}\
\
\
function change_position(val)\
function change_position(val)\
{\
{\
for (var i = 0; i < '+settings["charcount"]+'; i++)\
for (var i = 0; i < '+settings["charcount"]+'; i++)\
{\
{\
document.getElementById("charContainer"+i).style.display="none";\
document.getElementById("charContainer"+i).style.display="none";\
}\
}\
document.getElementById("charContainer"+val).style.display="block";\
document.getElementById("charContainer"+val).style.display="block";\
}\
}\
//-->\
//-->\
</script>\
</script>\
<div id="charPanel">\
<div id="charPanel">\
<div style="width:150px;float:left;max-height:400px;overflow:auto;">\
<div style="width:30%;float:left;max-height:400px;overflow:auto;">\
';
';
for (var i = 0; i < settings["charcount"]; i++) {
for (var i = 0; i < settings["charcount"]; i++) {
addText += '\
addText += '\
<div><input autocomplete="off" type="radio" name="radio_position" onclick="click_position(this)" id="value_'+i+'" value="'+i+'" /><label for="value_'+i+'">'+settings["nw_charname"+i]+'</label></div>\
<div><input autocomplete="off" type="radio" name="radio_position" onclick="click_position(this)" id="value_'+i+'" value="'+i+'" /><label for="value_'+i+'">'+settings["nw_charname"+i]+'</label></div>\
';
';
}
}
addText += '\
addText += '\
</div>\
</div>\
<div style="width:170px;float:right;">\
<div style="width:69%;float:right;">\
';
';
for (var i = 0; i < settings["charcount"]; i++) {
for (var i = 0; i < settings["charcount"]; i++) {
addText += '\
addText += '\
<div id="charContainer'+i+'" style="display:none">\
<div id="charContainer'+i+'" style="display:none">\
<ul style="list-style: none outside none; max-height: 500px; overflow: auto;">\
<ul style="list-style: none outside none; max-height: 500px; overflow: auto;">\
';
';
var k = 0 + (i*charSettings.length/settings["charcount"]);
var k = 0 + (i*charSettings.length/settings["charcount"]);
var id = 'settings_' + charSettings[k].name;
var id = 'settings_' + charSettings[k].name;
addText += '<li title="'+charSettings[k].tooltip+'"><input style="margin:4px" name="'+id+'" id="'+id+'" type="text" /></li>';
addText += '<li title="'+charSettings[k].tooltip+'"><input style="margin:4px" name="'+id+'" id="'+id+'" type="text" /></li>';
for (var j = 1; j < (charSettings.length/settings["charcount"]); j++) {
for (var j = 1; j < (charSettings.length/settings["charcount"]); j++) {
k = j + (i*charSettings.length/settings["charcount"]);
k = j + (i*charSettings.length/settings["charcount"]);
if (charSettings[k].type == 'void') { continue; }
if (charSettings[k].type == 'void') { continue; }
id = 'settings_' + charSettings[k].name;
id = 'settings_' + charSettings[k].name;
addText += '<li title="'+charSettings[k].tooltip+'"><input maxlength="2" size="1" style="margin:4px" name="'+id+'" id="'+id+'" type="text" /><label class="'+charSettings[k].class+'" for="'+id+'">'+charSettings[k].title+'</label></li>';
addText += '<li title="'+charSettings[k].tooltip+'"><input maxlength="2" size="1" style="margin:4px" name="'+id+'" id="'+id+'" type="text" /><label class="'+charSettings[k].class+'" for="'+id+'">'+charSettings[k].title+'</label></li>';
}
}
addText += '</ul>'
addText += '</ul>'
// Add task list save buttons
// Add task list save buttons
addText += '\
addText += '\
<input id="save_tasklist'+i+'" type="button" value="Save Tasks" title="Saves current task list in script to this character">\
<input id="save_tasklist'+i+'" type="button" value="Save Tasks" title="Saves current task list in script to this character">\
<input id="clear_tasklist'+i+'" type="button" value="Clear Tasks" title="Clears the saved task list for this character to use defaults">\
<input id="clear_tasklist'+i+'" type="button" value="Clear Tasks" title="Clears the saved task list for this character to use defaults">\
</div>';
</div>';
}
}
addText += '\
addText += '\
</div>\
</div>\
</div>\
</div>\
';
';
$("#settingsPanel form").append(addText);
$("#settingsPanel form").append(addText);
// Add values to character input fields
// Add values to character input fields
for (var i = 0; i < charSettings.length; i++) {
for (var i = 0; i < charSettings.length; i++) {
id = 'settings_' + charSettings[i].name;
id = 'settings_' + charSettings[i].name;
$('#'+id).val(settings[charSettings[i].name]);
$('#'+id).val(settings[charSettings[i].name]);
}
}
// Add code to tasklist buttons
// Add code to tasklist buttons
for (var i = 0; i < settings["charcount"]; i++) {
for (var i = 0; i < settings["charcount"]; i++) {
$("#save_tasklist"+i).click(function() {
$("#save_tasklist"+i).click(function() {
var num = this.id.replace("save_tasklist", "");
var num = this.id.replace("save_tasklist", "");
charSettings["tasklist"+num] = tasklist;
charSettings["tasklist"+num] = tasklist;
setTimeout(function() { GM_setValue("tasklist"+num, JSON.stringify(defaultTasklist)); }, 0);
setTimeout(function() { GM_setValue("tasklist"+num, JSON.stringify(defaultTasklist)); }, 0);
});
});
$("#clear_tasklist"+i).click(function() {
$("#clear_tasklist"+i).click(function() {
var num = this.id.replace("clear_tasklist", "");
var num = this.id.replace("clear_tasklist", "");
charSettings["tasklist"+num] = "";
charSettings["tasklist"+num] = "";
setTimeout(function() { GM_setValue("tasklist"+num, ""); }, 0);
setTimeout(function() { GM_setValue("tasklist"+num, ""); }, 0);
});
});
}
}
// Add save/cancel buttons to panel
// Add save/cancel buttons to panel
$("#settingsPanel form").append('\
$("#settingsPanel form").append('\
<div id="settingsPanelButtonContainer">\
<div id="settingsPanelButtonContainer">\
<input id="settings_save" type="button" value="Save and Apply">\
<input id="settings_save" type="button" value="Save and Apply">\
<input id="settings_close" type="button" value="Close">\
<input id="settings_close" type="button" value="Close">\
</div>');
</div>');
// Add open settings button to page
// Add open settings button to page
$("body").append('<div id="settingsButton"><img src="'+image_prefs+'" title="Click to show preferences" style="cursor: pointer; display: block;"></div>');
$("body").append('<div id="settingsButton"><img src="'+image_prefs+'" title="Click to show preferences" style="cursor: pointer; display: block;"></div>');
// Add pause button to page
// Add pause button to page
$("body").append('<div id="pauseButton"><img src="'+(settings["paused"]?image_play:image_pause)+'" title="Click to '+(settings["paused"]?"resume":"pause")+' task script" style="cursor: pointer; display: block;"></div>');
$("body").append('<div id="pauseButton"><img src="'+(settings["paused"]?image_play:image_pause)+'" title="Click to '+(settings["paused"]?"resume":"pause")+' task script" style="cursor: pointer; display: block;"></div>');
// Add info pane
// Add info pane
$("body").append("<div id='prinfopane' class='header-newrelease'>");
$("body").append("<div id='prinfopane' class='header-newrelease'>");
// Add the javascript
// Add the javascript
$("#settingsPanel").hide();
$("#settingsPanel").hide();
$("#settingsButton").click(function() {
$("#settingsButton").click(function() {
$("#settingsButton").hide();
$("#settingsButton").hide();
$("#pauseButton").hide();
$("#pauseButton").hide();
$("#settingsPanel").show();
$("#settingsPanel").show();
});
});
$("#settings_close,settings_cancel").click(function() {
$("#settings_close,settings_cancel").click(function() {
$("#settingsButton").show();
$("#settingsButton").show();
$("#pauseButton").show();
$("#pauseButton").show();
$("#settingsPanel").hide();
$("#settingsPanel").hide();
});
});
$("#pauseButton").click(function() {
$("#pauseButton").click(function() {
settings["paused"] = !settings["paused"]
settings["paused"] = !settings["paused"]
setTimeout(function() { GM_setValue("paused", settings["paused"]); }, 0);
setTimeout(function() { GM_setValue("paused", settings["paused"]); }, 0);
$("#settings_paused").prop("checked", settings["paused"]);
$("#settings_paused").prop("checked", settings["paused"]);
$("#pauseButton img").attr("src",(settings["paused"]?image_play:image_pause));
$("#pauseButton img").attr("src",(settings["paused"]?image_play:image_pause));
$("#pauseButton img").attr("title","Click to "+(settings["paused"]?"resume":"pause")+" task script");
$("#pauseButton img").attr("title","Click to "+(settings["paused"]?"resume":"pause")+" task script");
});
});
// Use setTimeout to workaround permission issues when calling GM functions from main window
// Use setTimeout to workaround permission issues when calling GM functions from main window
$("#settings_save").click(function() { setTimeout(function() { SaveSettings();}, 0)});
$("#settings_save").click(function() { setTimeout(function() { SaveSettings();}, 0)});
}
}