﻿


$(document).ready(function(){
	$(".announce_arrow").mouseover( function(){ if (!work) announce_arrow_mouseevent($(this), "show"); });
	$(".announce_arrow").mouseout(function() { if (!work) announce_arrow_mouseevent($(this), "hide"); });
	$(".announce_arrow").click( function(){ announce_arrow_click($(this)); });
	$('#announcements_container').dragscrollable({dragSelector: '#announce_dragger', acceptPropagatedEvent: false, axis: 'x' });
	$(".announce_arrow_left").click( function(){ announce_arrow_lr_click("left"); });
	$(".announce_arrow_right").click( function(){ announce_arrow_lr_click("right"); });
	announce_arrow_lr_check();
});

var zindex = 1;
var delta = 0;
var work = 0;
function announce_arrow_mouseevent(el, option) {
 
    work = 1;
	div_cnt = $("#cnt_"+el.attr("id").substr(4,30) );
	if(option == 'hide'){
		el.removeClass('active');
		if(!div_cnt.hasClass('selected')){
			//div_cnt.css("z-index", 1);
			div_cnt.removeShadow();
			div_cnt.fadeOut();
			
		}
}
	if(option == 'show'){
		el.addClass('active');
		if(!div_cnt.hasClass('selected')){
			div_cnt.css("z-index", zindex++);
			div_cnt.fadeIn();
			 div_cnt.dropShadow({left:0, top:2, blur:2, opacity:0.5});
		}
	}
	
work = 0;
}

function announce_arrow_click(el){
	div_cnt = $("#cnt_"+el.attr("id").substr(4) );
	
	if(div_cnt.hasClass('selected')){
		div_cnt.removeClass('selected');
		el.removeClass('selected');
	}
	else {
		div_cnt.addClass('selected');
		el.addClass('selected');
		div_cnt.removeShadow();	
	}
}

function announce_arrow_lr_click(arrow){ 
	if(arrow == 'left' && delta != 0){delta = $('#announcements_container').scrollLeft() - 500;}
	if(arrow == 'right' && delta < $('#announce_dragger').width()) { delta = $('#announcements_container').scrollLeft() + 500; }
	Scroll.to(document.getElementById('announcements_container'), {'x': delta}, 1100, function(){announce_arrow_lr_check();});
}

function announce_arrow_lr_check(){
		var scrlleft = $('#announcements_container').scrollLeft();
		if(scrlleft == 0) $(".announce_arrow_left").addClass('disabled');
		else $(".announce_arrow_left").removeClass('disabled');
		if(($('#announce_dragger').width()-scrlleft) <= 800) $(".announce_arrow_right").addClass('disabled');
		else $(".announce_arrow_right").removeClass('disabled');
}

Scroll = {
sL:function(o){return o!=window?o.scrollLeft:document.body.scrollLeft||document.documentElement.scrollLeft},
sT:function(o){return o!=window?o.scrollTop:document.body.scrollTop||document.documentElement.scrollTop},  
anim:function(p){function d(p){return Math.pow(p,3)};if(p<0.5){return d(2*p)/2;}else{return (2-d(2*(1-p)))/2;}}, // рассчет анимации
animator:[], /* массив с анимируемыми объектами */
anielems:0, /* счетчик анимируемых объектов */
to: function(obj,values,time,callback){
// перебираем параметры и значения
for(key in values){anima(key,values[key])}
function anima(param,to){
// проверяем и останавливаем предыдущие анимации
for(key in Scroll.animator){if(Scroll.animator[key].o==obj&&Scroll.animator[key].p==param){clearInterval(Scroll.animator[key].timer)}}
var aID=Scroll.anielems, result, now, progress, w=obj==window?1:0, param=param=='x'?1:0, from=param?Scroll.sL(obj):Scroll.sT(obj);
Scroll.animator[aID] = {
start: new Date().getTime(),
timer: setInterval(function(){
now=(new Date().getTime())-Scroll.animator[aID].start;
progress=now/time;
result=(to-from)*Scroll.anim(progress)+from;
if(param){
	if(w){window.scrollTo(result,Scroll.sT(obj))} else{obj.scrollLeft=result}
}else{
	if(w){window.scrollTo(Scroll.sL(obj),result)} else{obj.scrollTop=result}
}
if(progress>=1){
clearInterval(Scroll.animator[aID].timer);
if(param){
if(w){window.scrollTo(to,Scroll.sT(obj))}
else{obj.scrollLeft=to}
}else{
if(w){window.scrollTo(Scroll.sL(obj),to)}
else{obj.scrollTop=to}
}
if(callback){callback()}
}
},10)
}
Scroll.anielems++;
}
}
};
