// JavaScript Document
/** Построение блоков в боксе и начальный сдвиг в % (0...0.5...1)
oID - ID бокса с блоками
navID - ID навигационной панели
wh - ориентировка (width/height)
pos - позиция бокса по оси X(width) или Y(height)
navpos - позиция навигационной панели по оси Y
*/
function WH_init(oID,navID,wh,pos,containerID,contentID,attribut,navpos){
	console.log('Построение блоков в боксе '+oID+' и начальный сдвиг в % (0...0.5...1)');
	var container = $("#"+containerID), content = $("#"+contentID);
	switch (wh){
		case 'width':$("#"+oID).width('0');break;
		case 'height':$("#"+oID).height('0');break;
	}
	$("#"+oID+"> li").each(function(){
		switch (wh){
			case 'width':
				$("#"+oID).width($("#"+oID).width() + $(this).width());
				if(pos){$(this).animate({left: "-="+$(this).width()*pos+"px"},0);}
				var center_this = $(this).position().left+$(this).width()/2;
				if(center_this == container.width()/2&&typeof(content)!=='undefined'){
					switch (attribut){
						case 'html':content.html($(this).html());break;
						default:content.html($(this).find("img").attr(attribut));break;
					}
				}
				break;
			case 'height':
				$("#"+oID).height($("#"+oID).height() + $(this).height());
				if(pos){$(this).animate({top: "-="+$(this).height()*pos+"px"},0);}
				var middle_this = $(this).position().top+$(this).height()/2;
				if(middle_this == container.height()/2&&typeof(content)!=='undefined'){
					switch (attribut){
						case 'html':content.html($(this).html());break;
						default:content.html($(this).attr(attribut));break;
					}
				}
				break;
		}
	});
	$("."+navID).css("top",$("#"+oID).parent().height()*navpos);
	console.log('Построение блоков в боксе '+oID+' завершено.');
}

// Инициализация бокса прокрутки
function slider_init(boxID,containerID,leftID,rightID,downID,upID,xy){
	/*console.log('Инициализация бокса прокрутки '+boxID);*/
	var box = $("#"+boxID),
		container = $("#"+containerID),
		l_arr = $("#"+leftID),
		r_arr = $("#"+rightID),
		d_arr = $("#"+downID),
		u_arr = $("#"+upID),
		result = 'none';
	
	var left_box = $("#"+boxID+"> li:first").position().left,
		right_box = $("#"+boxID+"> li:last").position().left+$("#"+boxID+"> li:last").width(),
		top_box = $("#"+boxID+"> li:first").position().top,
		bottom_box = $("#"+boxID+"> li:last").position().top+$("#"+boxID+"> li:last").height();
	
	switch(xy){
		case 'horizontal':
			switch(verdict(left_box,right_box,container.width())){
				case 1:
					l_arr.css("display","none");
					r_arr.css("display","block");
					result = 'Крайне правое положение';break;
				case 2:
					l_arr.css("display","block");
					r_arr.css("display","none");
					result = 'Крайне левое положение';break;
				case 3:
					l_arr.css("display","block");
					r_arr.css("display","block");
					result = 'Где-то между левым и правым краем';break;
				case 4:
					l_arr.css("display","block");
					r_arr.css("display","block");
					result = 'Внутри блока';break;
			}
			break;
		case 'vertical':
			switch(verdict(top_box,bottom_box,container.height())){
				case 1:
					u_arr.css("display","none");
					d_arr.css("display","block");
					result = 'Крайне нижнее положение';break;
				case 2:
					u_arr.css("display","block");
					d_arr.css("display","none");
					result = 'Крайне верхнее положение';break;
				case 3:
					u_arr.css("display","block");
					d_arr.css("display","block");
					result = 'Где-то между нижним и верхним краем';break;
				case 4:
					u_arr.css("display","block");
					d_arr.css("display","block");
					result = 'Внутри блока';break;
			}
			break;
		case 'both':break;
	}
	/*console.log(
		'Блок: '+boxID+'\n'+
		'Позиция 1-го элемента {left: '+left_box+'px; top: '+top_box+'px;}\n'+
		'Позиция последнего элемента {right: '+right_box+'px; bottom: '+bottom_box+'px;}\n'+
		'Ширина прокрутки бокса {width: '+box.width()+'px; height: '+box.height()+'px;}\n'+
		'Ширина контейнера {width: '+container.width()+'px; height: '+container.height()+'px;}\n'+
		'Результат: '+result
	);
	console.log('Инициализация бокса прокрутки '+boxID+' завершено.');*/
}

function verdict(a,b,c){
	if(a<0&&b<=c){return 1;}
	if(a>=0&&b>c){return 2;}
	if(a<0&&b>c){return 3;}
	if(a==0&&b==c){return 4;}
}

// Прокрутка фотографий
/**
	boxID - ID бокса с элементами
	containerID - ID контейнера
	lID, rID - ID стрелок
	way - направление движения
	contentID - ID контейнера для сброса содержимого центральной картинки
	attribut - атрибут, из которого берётся содержимое/текст html
*/
function roll_content(boxID,containerID,lID,rID,way,contentID,attribut,obj){
	var box_li = $("#"+boxID+"> li"), container = $("#"+containerID), content = $("#"+contentID);
	var koeff, h=0, v=0;
	/*console.log('Прокрутка фотографий START\n'+
				'Направление: '+way+'\n'+
				'ID контетна: '+contentID+'\n'+
				'Содержание: '+attribut);
	console.log(typeof(contentID)+typeof(attribut));*/
	switch (way){
		case 'left': koeff='-';h=1;$("#"+lID).fadeOut(50);break;
		case 'right': koeff='+';h=1;$("#"+rID).fadeOut(50);break;
		case 'up': koeff='-';v=1;$("#"+lID).fadeOut(50);break;
		case 'down': koeff='+';v=1;$("#"+rID).fadeOut(50);break;
	}
	
	box_li.each(function(i){
		$(this).animate(
			{left: koeff+"="+$(this).width()*h+"px",top: koeff+"="+$(this).height()*v+"px"},
			{duration: 400,queue: true,easing: "linear",
				complete:function(){				
					switch (h){// Определение центрального блока
						case 1:// горизонтального
							var center_this = $(this).position().left+$(this).width()/2;
							if(center_this == container.width()/2&&typeof(contentID)!=='undefined'){
								switch (attribut){
									case 'html':content.html($(this).html());break;
									default:content.html($(this).find("img").attr(attribut));break;
								}
							}
							switch(i){
								case 0:break; // первый элемент
								case (box_li.length-1):
									if(obj){ // если существует объект для удаления (первый/последний)
										slider_init(boxID,containerID,lID,rID,lID,rID);
										obj.detach();console.log('Удаление элемента');
									}else{
										slider_init(boxID,containerID,lID,rID,lID,rID,'horizontal');
									}
									break;
								default:break; // промежуточные элементы
							}
							break;
						case 0:// вертикального
							var middle_this = $(this).position().top+$(this).height()/2;
							if(middle_this == container.height()/2&&typeof(contentID)!='undefined'){
								switch (attribut){
									case 'html':content.html($(this).html());break;
									default:content.html($(this).attr(attribut));break;
								}
							}
							switch(i){
								case 0:break; // первый элемент
								case (box_li.length-1):
									if(obj){ // если существует объект для удаления (первый/последний)
										slider_init(boxID,containerID,lID,rID,lID,rID);
										obj.detach();console.log('Удаление элемента');
									}else{
										slider_init(boxID,containerID,lID,rID,lID,rID,'vertical');
									}
									break;
								default:break; // промежуточные элементы
							}
							break;
						default:break;
					}
				}
			}
		);
	});
	console.warn(box_li.length);
	/*console.log('Прокрутка фотографий STOP');*/
	return false;
}

// Мышь на стрелке навигации
function mouse_on(rID, step){
	var img_path = $("#"+rID).attr('src').split("."), i = img_path.length-2;
	if (step == 'in'){img_path[i] += '_mover';}else{img_path[i] = img_path[i].substr(0,img_path[i].length-6);}
	$("#"+rID).attr("src", img_path.join("."));
	return false;
}

// Мышь на контейнере
function fade_nav(nID,step){
	switch (step){
		case 0: $("#"+nID).css("opacity", "0");return false;break;
		case 1: $("#"+nID).css("opacity", "1");return false;break;
	}
}

// Перемещение блока из начала в конец и наоборот
function round_roll(boxID,containerID,lID,rID,way,contentID,attribut){
	/*console.warn('Перемещение блока из начала в конец и наоборот: '+xy);*/
	var box = $("#"+boxID), container = $("#"+containerID);
	switch(way){
		case 'left':
			//$(".blog_prev").css("left",container.position().left+container.width()+$(".blog_next").width());
			$("#"+boxID+"> li:first").detach();
			
			box.append('<li class="blog_next">NEXT</li>');
			roll_content(boxID,containerID,lID,rID,way,contentID,attribut);
			
			$("#"+boxID+"> li").each(function(i){
				console.log(i);
				switch($(this).attr("class")){
					case 'blog_middle':$(this).attr("class","blog_prev");break;
					case 'blog_next':$(this).attr("class","blog_middle");break;
					//case 'blog_prev':$(this).attr("class","blog_next").css("left",'1100px');break;
				}
			});
			break;
		case 'right':
			//$(".blog_next").css("left",container.position().left-($(".blog_prev").width()+$(".blog_next").width()));
			$("#"+boxID+"> li:last").detach();
			box.prepend('<li class="blog_prev">PREV</li>').css("left",-1100);
			roll_content(boxID,containerID,lID,rID,way,contentID,attribut);
			/*$("#"+boxID+"> li").each(function(i){
				console.log(i);
				switch($(this).attr("class")){
					case 'blog_next':$(this).attr("class","blog_prev").css("left",'-1100px');break;
					case 'blog_prev':$(this).attr("class","blog_middle").css("left",'0px');break;
					case 'blog_middle':$(this).attr("class","blog_next").css("left",'1100px');break;
				}
			});*/
			break;
		default:break;
	}
	slider_init(boxID,containerID,lID,rID,lID,rID,'horizontal');
}

// Показать весь альбом при клике на элементе
function show_album(pID){
	obj = $(pID).find("a");
	location.href = obj.attr('href');
}
