if(typeof Shadowbox=='object'){
	Shadowbox.path='/admin/fw/media/js/shadowbox/';
	Shadowbox.init({
		language:'ru',
		animate: false,
		continuous: true,
		displayCounter: false,
		initialHeight: 608,
		initialWidth: 885,
		//players:['img'],
		handleOversize:'drag'
	});
}

$(document).ready(function(){C.init();});

$(window).
	bind('resize',function(){C.nav.setOffset();}).
	bind('load ',function(){
		setTimeout('C.works.loadPreviews()',100);
		$(window).bind('scroll resize',function(){
			if(C.works.load_timer){
				clearTimeout(C.works.load_timer)
			}
			C.works.load_timer=setTimeout('C.works.loadPreviews()',500);
		})
	});

var C={
	init: function(){
		C.nav.init();
		C.works.init();
	},
	
	nav: {
		layers: null,
		moving_layer: null,
		offset: null,
		init: function(){
			var $nav=$('#waiNav');
			$nav.
				append($(document.createElement('div')).addClass('workLayer').hide()).
				append($(document.createElement('div')).addClass('artLayer').hide()).
				append($(document.createElement('div')).addClass('infoLayer').hide());
			C.nav.layers={
				work: $nav.find('div.workLayer'),
				art: $nav.find('div.artLayer'),
				info: $nav.find('div.infoLayer')
			}
			setTimeout('C.nav.events()',100);
		},
		
		events: function(){
			var $nav=$('#waiNav');
			//определяем отступ блока навигации
			C.nav.setOffset();
			//устанавливаем обработчики
			$nav.find('li>a').bind('mouseover mouseout', function(evt){
				//определяем класс
				var cls=$(evt.target).parents('li').eq(0).attr('className');
				if(evt.type=='mouseout'){
					//просто скрываем слой
					C.nav.layers[cls].hide();
					//сбрасываем moving_layer
					C.nav.moving_layer=null;
				}else{
					//определяем moving_layer
					C.nav.moving_layer=cls;
				}
			})
			$('body').bind('mousemove',function(evt){
				if(C.nav.moving_layer){
					if(evt.target.className && evt.target.className.indexOf('Layer')>0){
						//скрыыываем слой
						C.nav.layers[C.nav.moving_layer].hide();
					}else{
						var left=evt.clientX - C.nav.offset.left + 20 + $.evScrollLeft();
						var top=evt.clientY - C.nav.offset.top - 80 + $.evScrollTop();
						C.nav.layers[C.nav.moving_layer].css({left:left, top:top});
						//показываем слой
						C.nav.layers[C.nav.moving_layer].show();
					}
				}
			})
		},
		
		setOffset: function(){
			var $nav=$('#waiNav');
			C.nav.offset=$.evElementCoords($nav[0]);
		}
	},
	
	works: {
		previews: null,
		is_processing: false,
		animate_time: 'fast',
		load_timer: null,

		init: function (){
			var $works_box=$('#worksBox');
			if($works_box.length){
				$works_box.children('div.item').each(function(){
					var work_id=$(this).attr('className').substr(9);//превращаем "item item2345" в 2345
					//добавляем контейнер для навигации и инфо
					$(this).append($(document.createElement('div')).addClass('navInfo'));
					var $p=$(this).find('p');
					if($p.length>1){
						//для каждого абзаца создаем span.plus, span.info и скрываем абзац
						$p.each(function(i){
							//создаем span.plus если есть ссылка на кадр
							var $a=$(this).children('a');
							if($a.length){
								$a.append($(document.createElement('span')).addClass('plus').hide()).
									bind('mouseover mouseout',function(evt){
										var show_hide=(evt.type=='mouseover')?'show':'hide';
										$(this).parents('p').eq(0).find('span.plus')[show_hide]();
								})
							}
							//фиксируем высоту контейнеров div.ofh и div.item
							//абсолютно позиционируем все параграфы
							//скрываем все параграфы, кроме первого
							if(i==0){
								var height=C.works.previews['work'+work_id][0].split('-',2)[0];
								$(this).parent().height(parseInt(height)).parent().height(63+parseInt(height));
							}else{
								$(this).hide();
							}
							$(this).css({position:'absolute'});
						})
						//добавляем в контейнер div.navInfo ссылки вперед-назад и кнопку i
						$(this).children('div.navInfo').
							append($(document.createElement('a')).attr({href:'#'}).addClass('prev')).
							append($(document.createElement('a')).attr({href:'#'}).addClass('next')).
							append($(document.createElement('a')).attr({href:'#'}).addClass('info')).
							children('a').bind('click',function(evt){
								evt.preventDefault();
								evt.target.blur();
								C.works.prevNextInfo(evt);
							})
						//отображаем кнопку i если нужно
						var $p_first=$(this).find('p').eq(0);
						if($p_first.children('span.info').length==0){
							$(this).children('div.navInfo').children('a.info').css({opacity:0,cursor:'default'});
						}
					};
				})
			};
		},
		
		prevNextInfo: function(evt){
			//определяем, по какой кнопке был клик
			var $a=$(evt.target);
			if(evt.target.className=='info'){
				C.works.info(evt);
			}else{
				C.works.prevNext(evt);
			}
		},
		
		info: function(evt){
			//определяем текущую работу
			var $div_item=$(evt.target).parents('div.item').eq(0);
			if(!$div_item.length){return}
			//определяем какая превьюшка в данный момент отображается
			var index_current, $p_current;
			$div_item.find('p').each(function(i){
				if(this.offsetHeight){
					index_current=i;
					$p_current=$(this);
				}
			})
			//определяем span.info и показываем/скрываем
			var $info=$p_current.children('span.info');
			if(!$info.length){return;}
			if($info[0].offsetHeight){
				$info.animate({opacity:0},C.works.animate_time,function(){
					$info.hide().css({opacity:1});
				});
			}else{
				$info.css({opacity:0}).show().animate({opacity:1},C.works.animate_time);
			}
		},
			
		prevNext: function(evt){
			if(C.works.is_processing){return;}
			//определяем текущую работу
			var $div_item=$(evt.target).parents('div.item').eq(0);
			if(!$div_item.length){return}
			//определяем какая превьюшка в данный момент отображается
			var index_current, $p_current;
			$div_item.find('p').each(function(i){
				if(this.offsetHeight){
					index_current=i;
					$p_current=$(this);
				}
			})
			// определяем, в какую сторону будет прокрутка
			var moveto;
			if(evt.target.className.indexOf('prev')>=0){
				moveto='prev';
			}else{
				moveto='next';
			}
			// определяем, какая превьюшка должна быть показана
			var index_next, $p_next;
			var p_length=$div_item.find('p').length;
			if(moveto=='prev'){
				if(index_current>0){
					index_next=index_current-1;
				}else{
					index_next=p_length-1;
				}
			}else{
				if(index_current+1<p_length){
					index_next=index_current+1;
				}else{
					index_next=0;
				}
			}
			$p_next=$div_item.find('p').eq(index_next);
			// анимируем
			C.works.prevNextAnimate({
				moveto:moveto,
				$p_current:$p_current,
				$p_next:$p_next
			});
		},

		prevNextAnimate: function(hash){
			//новая координата текущей превьюшки
			var new_position_of_current=(hash.moveto=='prev')?555:-555;
			var start_position_of_next=(hash.moveto=='prev')?-555:555;
			var easing='easeInOutCubic';
			hash.$p_current.animate({left:new_position_of_current},C.works.animate_time,easing,function(){
				hash.$p_current.hide();
				C.works.is_processing=false;
			});
			hash.$p_next.css({left:start_position_of_next}).show().animate({left:0},C.works.animate_time,easing);
			//показываем или скрываем a.info
			var $a_info=hash.$p_next.parent().parent().find('a.info');
			var $info_next=hash.$p_next.children('span.info');
			var $info_current=hash.$p_current.children('span.info');
			if($info_next.length && !$info_current.length){
				$a_info.animate({opacity:1,cursor:'pointer'},C.works.animate_time);
			}else if(!$info_next.length && $info_current.length){
				$a_info.animate({opacity:0,cursor:'default'},C.works.animate_time);
			}
		},

		loadPreviews: function(){
			//пробегаемся по списку работ div.item
			var $works_box=$('#worksBox');
			if($works_box.length){
				$works_box.children('div.item').each(function(i){
					var work_id=$(this).attr('className').substr(9);//превращаем "item item2345" в 2345
					//определяем является ли элемент видимым на экране
					if($.evElementInScreen(this)){
						//пропускаем те работы, для которых уже созданы превью
						if(C.works.previews['work'+work_id]){
							//проходим по параграфам внутри работы
							$(this).css({background:'url(/img/ajax-loader.gif) no-repeat center'}).children('div.ofh').children('p').each(function(j){
								var src_height=C.works.previews['work'+work_id][j];
								src_height=src_height.split('-',2);
								//создаем картинку если есть span.info
								var $info=$(this).children('span.info');
								if($info.length){
									$info.empty().hide().append($(document.createElement('img')).attr({
										width: 555,
										height: src_height[0],
										src: $info.attr('rel')
									}).bind('click',function(evt){
										evt.preventDefault();
										$(this).parents('div.item').eq(0).find('a.info').trigger('click');
									}));
								}
								//создаем теги картинок (превьюшек)
								var $img=$(document.createElement('img')).attr({
									width: 555,
									height: src_height[0],
									src: src_height[1]
								});
								if($(this).children('a').length){
									$(this).children('a').append($img);
								}else{
									$(this).append($img);
								}
							})
							//по окончании сбрасываем C.works.previews['work'+work_id]
							C.works.previews['work'+work_id]=null;
						}
					}
				})
			}
		}
	}
}
