|
|
var checkPeriod = 5 * 60000;
|
|
|
var dataurl = 'http://portal.setitagila.ru/reminder.php?ver=informst1.0';
|
|
|
var btn;
|
|
|
var storage = widget.preferences;
|
|
|
var iswarning = false;
|
|
|
var islowb = false;
|
|
|
var islowt = false;
|
|
|
//var date;
|
|
|
var balance = '-';
|
|
|
var tariffnow = '-';
|
|
|
var tariffthen = '-';
|
|
|
var tariffstatus = '-';
|
|
|
var tariffprice = '-';
|
|
|
var blinkTimer;
|
|
|
|
|
|
opera.extension.addEventListener('message', function(e)
|
|
|
{
|
|
|
switch(e.data.informst) {
|
|
|
case 'doNotify': doNotify(); break;
|
|
|
case 'fillPopup': fillPopup(e); break;
|
|
|
}
|
|
|
}, false);
|
|
|
|
|
|
function blink()
|
|
|
{
|
|
|
btn.badge.backgroundColor = '#f0ffff';
|
|
|
if (btn.badge.color != '#ff0000') btn.badge.color = '#ff0000'; else btn.badge.color = 'black';
|
|
|
}
|
|
|
|
|
|
function fillPopup(e) {
|
|
|
e.source.postMessage({informst_fillpopup: {balance: balance, tariffnow: tariffnow, tariffthen: tariffthen, tariffstatus: tariffstatus, tariffprice: tariffprice, iswarning: iswarning, islowb: islowb, islowt: islowt}});
|
|
|
}
|
|
|
|
|
|
function doNotify() {
|
|
|
iswarning = false;
|
|
|
islowb = false;
|
|
|
islowt = false;
|
|
|
if (storage.informst_notify1 == 1)
|
|
|
{
|
|
|
if (balance <= storage.informst_balanceRub)
|
|
|
{
|
|
|
islowb = true;
|
|
|
iswarning = true;
|
|
|
}
|
|
|
}
|
|
|
if (storage.informst_notify2 == 1)
|
|
|
{
|
|
|
dt = new Date();
|
|
|
dim = new Date(dt.getFullYear(), 1 + dt.getMonth(), 0).getDate();
|
|
|
if ((dim - dt.getDate()) <= storage.informst_balanceDay & (balance - (dim - dt.getDate() + 1) * 8) <= tariffprice)
|
|
|
{
|
|
|
islowt = true;
|
|
|
iswarning = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
btn.title = 'Текущий баланс: ' + balance + ' руб.' + "\r\n" +
|
|
|
'Текущий тариф: ' + tariffnow + ' (' + (tariffstatus == 'on' ? 'включен' : 'ОТКЛЮЧЕН') + ")\r\n" +
|
|
|
'Тариф в след. месяце: ' + tariffthen + "\r\n" +
|
|
|
'Стоимость тарифа в след. месяце: ' + tariffprice + ' руб.';
|
|
|
|
|
|
btn.popup.height = 130;
|
|
|
if (islowb) btn.popup.height += 27;
|
|
|
if (islowt) btn.popup.height += 27;
|
|
|
|
|
|
if (iswarning == true)
|
|
|
{
|
|
|
if (islowb || islowt) btn.title += "\r\n";
|
|
|
if (islowb) btn.title += "\r\nУ Вас мало денег на счету!";
|
|
|
if (islowt) btn.title += "\r\nСредств не хватит на начало след. месяца!";
|
|
|
if (storage.informst_warn2 == 1)
|
|
|
{
|
|
|
clearInterval(blinkTimer);
|
|
|
blinkTimer = setInterval(blink, 1000);
|
|
|
} else {
|
|
|
clearInterval(blinkTimer);
|
|
|
btn.badge.color = '#FF0000';
|
|
|
btn.badge.backgroundColor = '#F0FFFF';
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
clearInterval(blinkTimer);
|
|
|
btn.badge.color = storage.informst_bstyle_fcolor || 'black';
|
|
|
btn.badge.backgroundColor = storage.informst_bstyle_bcolor || 'white';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function fetchData() {
|
|
|
var req = new XMLHttpRequest();
|
|
|
req.onreadystatechange = function()
|
|
|
{
|
|
|
if (req.readyState == 4)
|
|
|
{
|
|
|
clearTimeout(reqTimeout);
|
|
|
var datatag = req.responseXML.getElementsByTagName('data')[0];
|
|
|
//date = datatag.getElementsByTagName('date')[0].textContent;
|
|
|
balance = parseFloat(datatag.getElementsByTagName('balance')[0].textContent);
|
|
|
tariffnow = datatag.getElementsByTagName('tariffnow')[0].textContent;
|
|
|
tariffthen = datatag.getElementsByTagName('tariffthen')[0].textContent;
|
|
|
tariffstatus = datatag.getElementsByTagName('tariffstatus')[0].textContent;
|
|
|
tariffprice = parseInt(datatag.getElementsByTagName('tariffprice')[0].textContent);
|
|
|
btn.badge.display = 'block';
|
|
|
btn.badge.textContent = balance;
|
|
|
btn.disabled = false;
|
|
|
doNotify();
|
|
|
}
|
|
|
};
|
|
|
req.open('GET', dataurl + '&timerand=' + (new Date()).getTime(), true);
|
|
|
var reqTimeout = setTimeout(timeoutFunc, 5000);
|
|
|
function timeoutFunc(){
|
|
|
req.abort();
|
|
|
}
|
|
|
req.send(null);
|
|
|
}
|
|
|
|
|
|
window.addEventListener('DOMContentLoaded', function () {
|
|
|
|
|
|
checkTimer = setInterval(fetchData, checkPeriod);
|
|
|
fetchData();
|
|
|
|
|
|
btn = opera.contexts.toolbar.createItem({
|
|
|
disabled: true,
|
|
|
title: 'Информер баланса "СетиТагила"',
|
|
|
icon: 'icons/main.png',
|
|
|
badge: { display: 'none', textContent: '', color: 'white', backgroundColor: 'black' },
|
|
|
popup: { href: "popup.html", width: 670, height: 130 }
|
|
|
});
|
|
|
opera.contexts.toolbar.addItem(btn);
|
|
|
doNotify();
|
|
|
}, false);
|