$.ajaxSetup({error:function(request){if(request.status==401||request.status==403)Alert('Необхідна авторизація');else Alert('Помилка AJAX-запиту');M.load();$('img.ajax-loader').remove();},type:'POST',dataType:'json',beforeSend:function(){$('body').css({cursor:'wait'})},complete:function(){$('body').css({cursor:'auto'});M.load();},timeout:12000});var M={not:function(msg){if(!M.load()){Alert(msg||'<a href="/login/">Авторизуйтесь</a>, будь ласка!');return true;}},load:function(){var q=Cookie('Q')||'';if(q)q=' <b>('+q+')</b>';var m=Cookie('M');if(m){m=m.split('_');this.data={id:m[0],time:m[1],token:m[2]};this.data.name=Cookie('N').replace(/\+/g,' ');var info='<ul>';if(this.data.name)info+='<li class="name">'+this.data.name+'</li>\
<li><a href="/my/">центр управління</a> | <a href="" onclick="M.logout(); return false">вихід</a></li>\
<li><a href="/my/inbox/">абонентська скринька'+q+'</a></li>\
<li><a href="/users/'+this.data.id+'/">моя сторінка</a></li>\
';$('#member').html(info);return true;}else{this.data=null;$('#member').html('<div class="welcome"><a href="/login/">вхід</a><a title="Точка G" class="g" href="/welcome/">&rarr;</a><a href="/reception/">рецепція</a></div>');return false;}},logout:function(){$.ajax({url:'/ajax/logout',data:{'token':M.data.token},success:function(json){if(json.ok){if(location.pathname.substring(0,4)=='/my/'){location=location.protocol+'//'+location.host;}else{M.load();Alert('Вашу сесію завершено..<br>Заходьте ще!');}}}})}};function utc2date(utc){var d=new Date(utc*1000);return zero2(d.getDate())+"."+zero2(d.getMonth()+1)+"."+d.getFullYear()+" "+zero2(d.getHours())+":"+zero2(d.getMinutes());}
function zero2(n){return n<10?"0"+n:n;}
$(function(){$('div#column').prepend('<div id="alerts"></div><div id="member"></div>');$('#side').prepend('<div id="alerts"></div><div id="member"></div>');M.load();$(window).focus(function(){M.load()});$('div.item').children('ul.control').each(function(){var id=$(this).parent('div.item').attr('id').substring(4);var au=$(this).parent('div.item').attr('class').substring(9);$(this).children('li.votes').after('\
            <li class="vote"><a class="plus" href="#" title="за" onclick="V1('+id+',1,'+au+');return false;">+</a></li>\
            <li class="vote"><a class="minus" href="#" title="проти" onclick="V1('+id+',-1,'+au+');return false;">&ndash;</a></li>\
            ');$(this).children('li:eq(3)').children('a').attr('title','архів');$(this).children('li:eq(4)').children('a').attr('title','автор');$(this).children('li:eq(5)').children('a').attr('title','коментувати');});$('span.UTC').each(function(){var utc=$(this).attr('class').substring(4,14);$(this).text(utc2date(utc));});$('a.UTC').each(function(){var utc=$(this).attr('class').substring(4,14);$(this).text(utc2date(utc));});$('div.url a').each(function(){var u=$(this).attr('href');var s=u.replace(/^(http|https)(:\/\/[^\/]+).*$/,'$1$2')+'/favicon.ico';var img=$('<img src="/images/external.png" alt="">').insertBefore(this);$(img).wrap('<a href="'+u+'" onclick="window.open(this.href);return false;" title="джерело"></a>');var ico=new Image();ico.src=s;if(ico.complete)img.attr('src',s);else ico.onload=function(){img.attr('src',s)};});$('div.comment').each(function(){$(this).children('div.text').children('span.NOT').after('<div class="show-hide" onclick="toggleComment(this);">(\
<span>показати цей коментар</span><span style="display: none;">сховати цей коментар</span>)</div>');});});var ajaxError={0:"Помилка! Повторіть вашу дію за якийсь час ще раз",1:"Вже проголосовано!",2:"Недостатній рейтинг для голосування",3:"Вичерпано ліміт голосувань на сьогодні",4:"Ви не можете голосувати за себе",11:"Не введено текст коментаря",12:"Довжина коментаря не може перевищувати 2500 знаків",14:"Цей коментар вже було опубліковано",15:"Ліміт коментарів на сьогодні вичерпано",16:"Вибачте, але зараз у вас недостатній рейтинг для коментування цієї публікації",17:"Будь ласка, не так швидко!"};function V1(item,vote,autor){if(M.not())return false;if(vote==-1&&!confirm('Підтвердіть, що ви дійсно голосуєте "проти" цієї публікації. Ваше рішення є остаточним?'))return false;if(M.data.id==autor){Alert(ajaxError[4]);return false;}
$.ajax({url:'/ajax/vote',data:{'token':M.data.token,'item':item,'vote':vote},success:function(json){var c=$('div#item'+item+' ul.control');if(json.vote){$(c).children('li.votes').after(json.vote>0?'<li class="plus">+</li>':'<li class="minus">&ndash;</li>');$(c).children('li.vote').remove();}
PlusMinus(c,json);if(!json.ok)Alert(ajaxError[json.error||0]);}});}
function PlusMinus(c,j){if(j.plus==undefined||j.minus==undefined)return;var v=j.plus-j.minus;var t=j.plus&&j.minus?'+'+j.plus+' / -'+j.minus:'';var r=$(c).children('.votes');if(v>0)$(r).text('+'+v).attr({'class':'votes green','title':t});else if(v<0)$(r).text(v).attr({'class':'votes red','title':t});else $(r).text(0).attr({'class':'votes','title':t});}
function toggleArticle(that){if(M.not())return false;var item=$(that).parent('div.item');var txt=$(item).children('span.HIDE').html();if(txt)$(item).children('span.HIDE').attr('class','toggle').html(txt.slice(4,-3));$(item).children('span.toggle').slideToggle(500);$(item).children('div.toggle').children('span').toggle();}
function toggleComment(that){if(M.not())return false;var c=$(that).parent('div.text');var txt=$(c).children('span.NOT').html();if(txt)$(c).children('span.NOT').attr('class','toggle').html(txt.slice(4,-3));$(c).children('span.toggle').toggle(500);$(c).children('div.show-hide').children('span').toggle();}
function Alert(txt){$('#alerts').append('<div class="alert">\
<span class="close" onclick="closeAlert(this);return false;">[X]</span>'+txt+'</div>');$('div.alert:last').wait(7500).fadeOut(500);}
function closeAlert(a){a=a.parentNode;a.parentNode.removeChild(a);}
function checkForm(){if($('form .required').removeClass('empty').filter('[value=""]').addClass('empty').size()){Alert('Заповніть всі необхідні поля!');return false;}
return true;}
function Cookie(name){if(document.cookie&&document.cookie!=''){var cs=document.cookie.split(';');for(var i=0;i<cs.length;i++){var c=$.trim(cs[i]);if(c.substring(0,name.length+1)==(name+'=')){return decodeURIComponent(c.substring(name.length+1));}}}}
$.fn.wait=function(time,type){time=time||1000;type=type||'fx';return this.queue(type,function(){var self=this;setTimeout(function(){$(self).dequeue();},time);});}