(function() {
var SLIZA_WIDGET_LOADED = false;
document.addEventListener('DOMContentLoaded', function() {
if(!document.body)
return false;
if(SLIZA_WIDGET_LOADED)
return false;
SLIZA_WIDGET_LOADED = true;
var tSlizaWidgetBtnAnim;
var oLinks = {};
function btn_anim(rev) {
clearInterval(tSlizaWidgetBtnAnim);
if(typeof rev == 'undefined' || isNaN(rev))
rev = false;
var btn = document.getElementById('sliza_widget_btn');
if(typeof btn != 'undefined' && btn) {
var bck = btn.children[0];
var i = 0;
tSlizaWidgetBtnAnim = setInterval(function() {
if(rev) {
if(i < -43)
i = 0;
} else {
if(i > 43)
i = 0;
}
bck.style['background-position'] = (i)+'px 0';
if(rev) {
i--;
} else {
i++;
}
}, (rev ? 40 : 10));
}
}
function get_xpath(xpath, doc) {
if(typeof doc == 'undefined' || !doc)
doc = document;
var s = '';
if(doc.evaluate) {
var xPathRes = doc.evaluate(xpath, doc, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var res = xPathRes.iterateNext();
while (res) {
s += res.outerHTML;
res = xPathRes.iterateNext();
}
}
return s;
}
function show_iframe() {
var last = document.getElementById('sliza_widget_div');
if(typeof last != 'undefined' && last) {
last.style.display = 'block';
// ifrm = document.getElementById('sliza_widget_iframe');
// ifrm.src = ifrm.src;
} else {
var div = document.createElement('div');
div.id = 'sliza_widget_div';
div.className = 'sliza_over_iframe';
div.innerHTML = '
';
var j = 1;
var t = setInterval(function() {
if(j > 3)
j = 1;
div.children[0].children[0].innerHTML = 'Загрузка'+(new Array(j+1).join('.'));
j++;
}, 500);
ifrm = document.createElement('iframe');
ifrm.id = 'sliza_widget_iframe';
ifrm.src = 'https://sliza.ru/widget.php?id=959&h=0c7855ad393a824975096f9c19de42be&t=i';
div.children[0].appendChild(ifrm);
ifrm.onload = function() {
clearInterval(t);
this.style.display = 'block';
};
div.onclick = function() {
div.parentElement.removeChild(div);
oLinks = {};
btn_anim(true);
};
document.body.appendChild(div);
}
}
var last = document.getElementById('sliza_widget_div');
if(typeof last != 'undefined' && last) {
last.style.display = 'block';
} else {
var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('type', 'text/css');
link.setAttribute('href', 'https://sliza.ru/core/tpl/widget/widget.css?2');
document.getElementsByTagName('head')[0].appendChild(link);
var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('type', 'text/css');
link.setAttribute('href', 'https://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700&subset=latin,cyrillic');
document.getElementsByTagName('head')[0].appendChild(link);
// document.getElementById('sliza_widget_btn_popup_txt').innerHTML = 'OK!';
var btn = document.createElement('div');
btn.id = 'sliza_widget_btn';
btn.className = 'sliza_widget_btn_2 sliza_widget_color_3';
btn.innerHTML = '';
btn.onclick = function() {
var pop = btn.getElementsByClassName('sliza_widget_btn_popup')[0];
if(pop && pop.className.indexOf('sliza_widget_btn_closed') > -1) {
pop.parentElement.removeChild(pop);
btn_anim(true);
return false;
}
btn_anim();
if(win1.className.indexOf('sliza_widget_win1_opened') > -1) {
win1_anim(true);
} else {
win1_anim();
return false;
}
if(btn.className.indexOf('sliza_widget_btn_auth_ok') > -1 && !btn.getElementsByClassName('sliza_widget_btn_popup').length) {
var popup = document.createElement('div');
popup.className = 'sliza_widget_btn_popup';
var close = document.createElement('div');
close.id = 'sliza_widget_btn_close';
close.innerHTML = 'x';
close.onclick = function() {
this.parentNode.className += ' sliza_widget_btn_closed';
};
// popup.innerHTML = 'x
';
popup.appendChild(close);
ifrm = document.createElement('iframe');
ifrm.id = 'sliza_widget_iframe_1';
ifrm.src = 'https://sliza.ru/widget.php?id=959&h=0c7855ad393a824975096f9c19de42be&t=f';
// document.body.appendChild(ifrm);
ifrm.onload = function() {
document.getElementById('sliza_widget_btn').getElementsByClassName('sliza_widget_btn_popup')[0].style.display = 'block';
// document.getElementById('sliza_widget_btn_popup_txt').innerHTML = '';
this_html = document.documentElement.outerHTML;
this_html = get_xpath('//div[@class="view-content"]');
if(!this_html)
this_html = document.documentElement.outerHTML;
var win = ifrm.contentWindow;
win.postMessage({
messageType: 'sliza_w_parser',
html:this_html,
cookie:document.cookie,
url:location.href
},
'https://sliza.ru/' // target domain
);
};
popup.appendChild(ifrm);
btn.appendChild(popup);
} else if(btn.className.indexOf('sliza_widget_btn_auth_ok') == -1) {
show_iframe();
}
};
// btn.onclick();
document.body.appendChild(btn);
var win1 = btn.getElementsByClassName('sliza_widget_win1')[0];
win1.onclick = function(e) {
e.stopPropagation();
};
var win1_btn = btn.getElementsByClassName('sliza_widget_win1_close')[0];
win1_btn.onclick = function() {
win1_anim(true);
btn_anim(true);
};
var win1_btn = btn.getElementsByClassName('sliza_widget_win1_btn_no')[0];
win1_btn.onclick = function() {
win1_anim(true);
};
var win1_btn2 = btn.getElementsByClassName('sliza_widget_win1_btn_ok')[0];
win1_btn2.onclick = function() {
btn.onclick();
win1_btn.onclick();
};
var bAnim = false;
function animate(opts) {
if(bAnim)
return false;
var start = new Date;
bAnim = true;
opts.duration = opts.duration || 200;
var id = setInterval(function() {
var timePassed = new Date - start;
var progress = timePassed / opts.duration;
if (progress > 1) progress = 1;
if(typeof opts.delta == 'undefined')
opts.delta = function(n) { return n; };
var delta = opts.delta(progress);
opts.step(delta);
if (progress == 1) {
clearInterval(id);
bAnim = false;
}
}, opts.delay || 10);
}
function win1_anim(bHide) {
if(bHide)
document.cookie = 'sliza_widget_win1_closed=1; path=/';
if(document.getElementById('sliza_widget_iframe_1') || document.getElementById('sliza_widget_iframe'))
return false;
var from = -280;
var to = 0;
var pos = 'right';
var from2 = 0.5;
var to2 = 1;
if(bHide) {
if(!win1.style[pos])
return false;
b = to;
to = from;
from = b;
from2 = 1;
to2 = 0.5;
}
if(parseInt(win1.style[pos], 10) == to)
return false;
animate({
step: function(delta) {
win1.style[pos] = ((to-from) * delta + from) + "px";
win1.style.opacity = ((to2-from2) * delta + from2);
}
});
if(bHide)
win1.className = win1.className.replace('sliza_widget_win1_opened', '');
else
win1.className += ' sliza_widget_win1_opened';
}
// win1_anim();
btn_anim(true);
function listener(event) {
if(event.data.messageType === 'sliza_w_iframe_close') {
bSlizaCancel = true;
oLinks = {};
document.getElementById('sliza_widget_btn_close').onclick();
document.getElementById('sliza_widget_btn').onclick();
} else if(event.data.messageType === 'sliza_w_iframe2_close') {
document.getElementById('sliza_widget_div').onclick();
} else if(event.data.messageType === 'sliza_w_iframe_del') {
document.getElementById('sliza_widget_iframe_1').onload();
} else if(event.data.messageType === 'sliza_widget_show') {
document.getElementById('sliza_widget_btn_close').onclick();
document.getElementById('sliza_widget_btn').onclick();
show_iframe();
} else if(event.data.messageType === 'sliza_widget_auth') {
var pop = document.getElementById('sliza_widget_div');
pop.parentElement.removeChild(pop);
document.getElementById('sliza_widget_btn').className += ' sliza_widget_btn_auth_ok';
// document.getElementById('sliza_widget_btn_close').onclick();
document.getElementsByClassName('sliza_widget_win1')[0].className += ' sliza_widget_win1_opened';
document.getElementById('sliza_widget_btn').onclick();
// show_iframe();
} else if(event.data.messageType === 'sliza_w_auth_remove') {
document.getElementById('sliza_widget_btn').className = document.getElementById('sliza_widget_btn').className.replace(/sliza_widget_btn_auth_ok ?/g, '');
} else if(event.data.messageType === 'sliza_w_iframe_lnks') {
if(!Object.keys(oLinks).length) {
bSlizaCancel = false;
oLinks = event.data;
oLinks.n = 1;
}
var f = function() {
if(typeof oLinks.lnks != 'undefined') {
for(var i = 0; i < oLinks.lnks.length; i++) {
if(bSlizaCancel)
return false;
if(typeof oLinks.lnks[i] != 'undefined') {
if(oLinks.lnks[i] != ""){
var x = new XMLHttpRequest();
x.open("GET", oLinks.lnks[i], true);
if(typeof x.timeout != 'undefined')
x.timeout = 30000;
x.onload = function (){
if(bSlizaCancel)
return false;
this_html2 = x.responseText;
if(DOMParser) {
var doc = new DOMParser().parseFromString(this_html2, 'text/html');
this_html2 = get_xpath('//table[@class="collapse"]', doc);
if(!this_html2)
this_html2 = x.responseText;
}
// if(x.status == 200) {
ifrm = document.getElementById('sliza_widget_iframe_1');
win = ifrm.contentWindow;
win.postMessage({
messageType: 'sliza_w_parser_step',
ttl:oLinks.total,
done:i,
n:oLinks.n,
html:this_html2,
cookie:document.cookie,
url:oLinks.lnks[i]
},
'https://sliza.ru/' // target domain
);
// }
oLinks.n++;
delete oLinks.lnks[i];
// console.info(x.responseText);
}
x.send(null);
break;
}else{
if(bSlizaCancel)
return false;
console.log('start skip '+oLinks.n);
win = ifrm.contentWindow;
win.postMessage({
messageType: 'sliza_parser_w_skip',
ttl:oLinks.total,
done:i,
n:oLinks.n
},
'https://sliza.ru/' // target domain
);
oLinks.n++;
delete oLinks.lnks[i];
}
}
}
}
};
f();
}
}
if(window.addEventListener) {
window.addEventListener("message", listener,false);
} else {
window.attachEvent("onmessage", listener);
}
}
});
if(typeof document.currentScript != 'undefined' && document.currentScript) {
if(document.currentScript.async || document.currentScript.defer) {
if(typeof CustomEvent != 'undefined' && typeof document.dispatchEvent != 'undefined' && !SLIZA_WIDGET_LOADED)
document.dispatchEvent(new CustomEvent('DOMContentLoaded'));
}
}
})();