|
|
|
var TwisterOptions = function()
|
|
|
|
{
|
|
|
|
this.getOption = function(optionName, defaultValue) {
|
|
|
|
var keyName = 'options:' + optionName;
|
|
|
|
if ($.localStorage.isSet(keyName)) {
|
|
|
|
return $.localStorage.get(keyName);
|
|
|
|
}else{
|
|
|
|
return defaultValue;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
this.setOption = function(optionName, value) {
|
|
|
|
var keyName = 'options:' + optionName;
|
|
|
|
$.localStorage.set(keyName, value);
|
|
|
|
};
|
|
|
|
|
|
|
|
this.soundNotifOptions = function() {
|
|
|
|
|
|
|
|
$('.sndOpt').each(function(){
|
|
|
|
this.value = $.Options.getOption(this.id, 'false');
|
|
|
|
});
|
|
|
|
|
|
|
|
var player = $('#player');
|
|
|
|
player[0].pause();
|
|
|
|
$('#player').empty();
|
|
|
|
|
|
|
|
|
|
|
|
$('.sndOpt').on('change',function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
|
|
|
|
if(this.value == false) {player[0].pause(); return;}
|
|
|
|
if (player[0].canPlayType('audio/mpeg;')) {
|
|
|
|
player.attr('type', 'audio/mpeg');
|
|
|
|
player.attr('src', 'sound/'+this.value+'.mp3');
|
|
|
|
} else {
|
|
|
|
player.attr('type', 'audio/ogg');
|
|
|
|
player.attr('src', 'sound/'+this.value+'.ogg');
|
|
|
|
}
|
|
|
|
|
|
|
|
player[0].play();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.volumeControl = function() {
|
|
|
|
var playerVol = $('#playerVol');
|
|
|
|
|
|
|
|
playerVol[0].value = $.Options.getOption(playerVol[0].id, 1)
|
|
|
|
|
|
|
|
$('.volValue').text((playerVol[0].value * 100).toFixed());
|
|
|
|
|
|
|
|
playerVol.on('change',function(){
|
|
|
|
$.Options.setOption(this.id, this.value)
|
|
|
|
$('#player')[0].volume = (this.value);
|
|
|
|
$('.volValue').text((this.value * 100).toFixed());
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.DMsNotif = function() {
|
|
|
|
if($.Options.getOption('sndDM', 'false') === "false") return;
|
|
|
|
var opt = $.Options.getOption('sndDM', 'false');
|
|
|
|
|
|
|
|
var player = $('#player');
|
|
|
|
$('#player').empty();
|
|
|
|
|
|
|
|
player.attr('type', 'audio/mpeg');
|
|
|
|
player.attr('src', 'sound/'+opt+'.mp3');
|
|
|
|
|
|
|
|
player[0].volume = $.Options.getOption('playerVol', 1);
|
|
|
|
player[0].play();
|
|
|
|
}
|
|
|
|
|
|
|
|
this.mensNotif = function() {
|
|
|
|
if($.Options.getOption('sndMention', 'false') === 'false') return;
|
|
|
|
var opt = $.Options.getOption('sndMention', 'false');
|
|
|
|
|
|
|
|
var player = $('#player');
|
|
|
|
$('#playerSec').empty();
|
|
|
|
|
|
|
|
player.attr('type', 'audio/mpeg');
|
|
|
|
player.attr('src', 'sound/'+opt+'.mp3');
|
|
|
|
|
|
|
|
player[0].volume = $.Options.getOption('playerVol', 1);
|
|
|
|
player[0].play();
|
|
|
|
};
|
|
|
|
|
|
|
|
this.keysSend = function() {
|
|
|
|
|
|
|
|
$('#keysSend').val($.Options.getOption('keysSend', 2));
|
|
|
|
|
|
|
|
$('#keysSend').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
this.locLang = function() {
|
|
|
|
$('#locLang').val($.Options.getOption('locLang', 'auto'))
|
|
|
|
$('#locLang').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
location.reload();
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
this.showPreviewOpt = function() {
|
|
|
|
var $gifCheckBox = $('.gifCheckBox');
|
|
|
|
$('.previewOpt').each(function() {
|
|
|
|
this.value = $.Options.getOption(this.id, 'enable');
|
|
|
|
})
|
|
|
|
|
|
|
|
$gifCheckBox.prop('checked', $.Options.getOption('imagesPreviewGif', 'true'))
|
|
|
|
|
|
|
|
if($.Options.getOption('imagesPreview', 'enable') === 'disable'){
|
|
|
|
$gifCheckBox.prop('disabled', 'true')
|
|
|
|
}
|
|
|
|
|
|
|
|
$('.previewOpt').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.value)
|
|
|
|
if (this.id === 'imagesPreview'){
|
|
|
|
switch(this.value){
|
|
|
|
case 'enable': $gifCheckBox.prop('disabled', false); break;
|
|
|
|
case 'disable': $gifCheckBox.prop('disabled', true); break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$gifCheckBox.on('click', function(){
|
|
|
|
$.Options.setOption(this.name, this.checked)
|
|
|
|
});
|
|
|
|
$('input[name="previewSize"]').on('change', function () {
|
|
|
|
$.Options.setOption(this.name, this.value);
|
|
|
|
});
|
|
|
|
var query = 'input[value=\"'+$.Options.getOption('previewSize', 'short')+'\"]';
|
|
|
|
$(query)[0].checked = true;
|
|
|
|
}
|
|
|
|
this.imgPreviwProxy = function () {
|
|
|
|
$('#imgPreviewProxy').val($.Options.getOption('imgPreviewProxy', 'disable'));
|
|
|
|
$('#imgPreviewProxy').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
this.showAlienReply = function () {
|
|
|
|
$('#showAlienReply').val($.Options.getOption('showAlienReply', 'all'));
|
|
|
|
$('#showAlienReply').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
this.trendsFilter = function () {
|
|
|
|
var $all = $('[name="trendsFilterAll"]');
|
|
|
|
var $latin = $('[name="trendsFilterLat"]');
|
|
|
|
var $cyrillic = $('[name="trendsFilterCyr"]');
|
|
|
|
var $han = $('[name="trendsFilterHan"]');
|
|
|
|
var $custom = $('[name="trendsFilterCustom"]');
|
|
|
|
|
|
|
|
$('[name^="trendsFilter"]').each(function () {
|
|
|
|
$this = $(this);
|
|
|
|
|
|
|
|
if ($this.attr("type") === "checkbox") {
|
|
|
|
$this.prop('checked', $.Options.getOption(this.name, false));
|
|
|
|
};
|
|
|
|
if ($this.attr("type") === "text") $this.val($.Options.getOption(this.name, ""));
|
|
|
|
if (this.name === 'trendsFilterAll' && $this.prop('checked') === true) {
|
|
|
|
$latin.prop('disabled', true);
|
|
|
|
$cyrillic.prop('disabled', true);
|
|
|
|
$han.prop('disabled', true);
|
|
|
|
$custom.prop('disabled', true);
|
|
|
|
};
|
|
|
|
})
|
|
|
|
|
|
|
|
$all.on('click', function () {
|
|
|
|
$.Options.setOption(this.name, this.checked);
|
|
|
|
$latin.prop('disabled', this.checked);
|
|
|
|
$cyrillic.prop('disabled', this.checked);
|
|
|
|
$han.prop('disabled', this.checked);
|
|
|
|
$custom.prop('disabled', this.checked);
|
|
|
|
});
|
|
|
|
$latin.on('click', function () {
|
|
|
|
$.Options.setOption(this.name, this.checked);
|
|
|
|
});
|
|
|
|
$cyrillic.on('click', function () {
|
|
|
|
$.Options.setOption(this.name, this.checked);
|
|
|
|
});
|
|
|
|
$han.on('click', function () {
|
|
|
|
$.Options.setOption(this.name, this.checked);
|
|
|
|
});
|
|
|
|
$custom.on('keyup', function () {
|
|
|
|
$.Options.setOption(this.name, this.value);
|
|
|
|
});
|
|
|
|
$custom.on('blur', function () {
|
|
|
|
var oldArr = $.Options.getOption(this.name, '').split(',');
|
|
|
|
var newArr = [];
|
|
|
|
oldArr.forEach(function (element, index, array) {
|
|
|
|
var tempElem = $.trim(element);
|
|
|
|
tempElem = tempElem[0] === '#' ? tempElem.slice(1) : tempElem;
|
|
|
|
newArr.push(tempElem);
|
|
|
|
});
|
|
|
|
$.Options.setOption(this.name, newArr.join(','));
|
|
|
|
$custom.val(newArr.join(','));
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
this.initOptions = function() {
|
|
|
|
this.soundNotifOptions();
|
|
|
|
this.volumeControl();
|
|
|
|
this.keysSend();
|
|
|
|
this.locLang();
|
|
|
|
this.showPreviewOpt();
|
|
|
|
this.imgPreviwProxy();
|
|
|
|
this.showAlienReply();
|
|
|
|
this.trendsFilter();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
jQuery.Options = new TwisterOptions;
|