var W3CDOM = (document.createElement && document.getElementsByTagName);
var isMSIE = /*@cc_on!@*/false;
var mousein = true;
var rectx1=0;
var rectx2=1;
var recty1=0;
var recty2=1;
var firstmove=true;
var timerID_nextimage = null;
var timerID_slideshowcycle = null;
var nextImage=new Image();
var wait_period_orig=5000; // время показа одной картинки в slideshow
var wait_period=wait_period_orig;
var auto_start=false;
var stop_thumb_following=false;

window.onload = function() {
	resizeLogo();
	getMainRectCoords();
}
window.onresize = function() {
	resizeLogo();
	getMainRectCoords();
}

document.onmousemove = mouseCoords;

//window.onmousemove = mouseCoords;

function mousePageXY(e)
{
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }

  return {"x":x, "y":y};
}

// функция показывает координаты мышь
function mouseCoords(e) {
	mCur = mousePageXY(e);
	mousex=mCur.x;
	mousey=mCur.y;
	if ((mousex>rectx1) && (mousex<rectx2) && (mousey>recty1) && (mousey<recty2)) {
		var mouseinnow=true;
		} else {
		var mouseinnow=false;
		}
		
	if (firstmove) {
		mousein=mouseinnow;
		firstmove=false;
		}
			
	if (mouseinnow!=mousein) {
		mousein=mouseinnow;
		updateGalleryMenu();
		}
}

function updateGalleryMenu(){
	var gallery_controls=getbyid('gallery_controls');
	if (gallery_controls) {
		if (mousein) {
			if (getbyid("arrow_left")) { fade("in", "arrow_left"); }
			if (getbyid("arrow_right")) { fade("in", "arrow_right"); }
			if (getbyid("menu_g")) { fade("in", "menu_g"); }
			if (getbyid("menu")) { fade("in", "menu"); }
			$("#thumbsline").show();
			follow_thumb($("#thumbpic_"+current_pic).get(0),"center");
			} else {
			if (getbyid("arrow_left")) { fade("out", "arrow_left"); }
			if (getbyid("arrow_right")) { fade("out", "arrow_right"); }
			if (getbyid("menu_g")) { fade("out", "menu_g"); }
			if (getbyid("menu")) { fade("out", "menu"); }
			$("#thumbsline").hide();
			}
		}
} 

function getMainRectCoords(){
	var obj=getbyid('mainblock');
	if (!obj) { obj=getbyid('mainblock_gallery'); }
	if (obj) {
		var coords=getElementPosition(obj);
		rectx1=coords.left;
		rectx2=rectx1+coords.width;
		recty1=coords.top;
		recty2=recty1+coords.height;
		}
}

// функция уменьшает размер логотипа (делает crop по правой части)
function resizeLogo(){
if (W3CDOM) {
	var logo=getbyid('f2pro_logo');
	if (logo) {
	var a=document.body.clientWidth-logo.offsetLeft;
	if (a<0) { a=0; }
	if (a<96) {
		logo.style.width=a+"px";
		} else {
		logo.style.width="96px";
		}
	}
	}
}

function prev(){
	slideshow("pause");
	current_pic--;
	if (current_pic<1) {
		current_pic=pics.length;
		}
	next_pic=current_pic;
	next_pic--;
	if (next_pic<1) {
		next_pic=pics.length;
		}
	getbyid('mainimg').src=pics[current_pic-1];
	highlight_thumb(current_pic);
	preloadnext(pics[next_pic-1]);
	//tmpImage.src=pics[current_pic-1];
	//checkImageLoaded();
	stop_thumb_following=false;
}

function next(){
	slideshow("pause");
	current_pic++;
	if (current_pic>pics.length) {
		current_pic=1;
		}
	next_pic=current_pic;
	next_pic++;
	if (next_pic>pics.length) {
		next_pic=1;
		}
	getbyid('mainimg').src=pics[current_pic-1];
	highlight_thumb(current_pic);
	preloadnext(pics[next_pic-1]);
	stop_thumb_following=false;
}

function jump2img(n){
	slideshow("pause");
	current_pic=n;
	if (current_pic>pics.length) {
		current_pic=1;
		}
	next_pic=current_pic;
	next_pic++;
	if (next_pic>pics.length) {
		next_pic=1;
		}
	
	getbyid('mainimg').src=pics[current_pic-1];
	highlight_thumb(current_pic);
	preloadnext(pics[next_pic-1]);
	stop_thumb_following=false;
}

function highlight_thumb(current_pic){	$("#thumbs_previews img").removeClass("active");	var curpic=$("#thumbpic_"+current_pic);
	curpic.addClass("active");
	if (stop_thumb_following==false) {
		follow_thumb(curpic.get(0),"normal");
	}
}

function follow_thumb(curpic_obj, mode){	thumb_left=curpic_obj.offsetLeft;
	thumb_width=curpic_obj.offsetWidth;
	scrollleft=$("#thumbs_previews")[0].scrollLeft;
	linewidth=parseInt($("#thumbs_previews").css("width"));
	if (mode=="normal") {
		if ((thumb_left+thumb_width)>(linewidth+scrollleft)) {
			$("#thumbs_previews")[0].scrollLeft=thumb_left-3;
			}
		if (thumb_left<scrollleft) {
			$("#thumbs_previews")[0].scrollLeft=thumb_left-3;
			}
		}
	if (mode=="center") {
		$("#thumbs_previews")[0].scrollLeft=thumb_left-(linewidth/2)+(thumb_width/2);
		}
}

function preloadnext(url){
	nextImage.src=url;
}

function slideshow_next(){
	current_pic++;
	if (current_pic>pics.length) {
		current_pic=1;
		}
	next_pic=current_pic;
	next_pic++;
	if (next_pic>pics.length) {
		next_pic=1;
		}
	getbyid('mainimg').src=nextImage.src;
	highlight_thumb(current_pic);
	preloadnext(pics[next_pic-1]);
	checkImageLoaded();
}

function checkImageLoaded(){
	if (nextImage.complete) {
		timerID_slideshowcycle = setTimeout("slideshowcycle()",wait_period);
		wait_period=wait_period_orig;
		} else {
		timerID_nextimage = setTimeout("checkImageLoaded()",200);
		}
}



function slideshow(method){
	clearTimeout(timerID_slideshowcycle);
	clearTimeout(timerID_nextimage);
	if (method=="start") {
		getbyid('play_on').style.display="block";
		getbyid('play_off').style.display="none";
		stop_thumb_following=false;
		// стартуем slideshow
		next_pic=current_pic;
		next_pic++;
		if (next_pic>pics.length) {
			next_pic=1;
			}
		preloadnext(pics[next_pic-1]);
		if (auto_start) {
			auto_start=false;
			} else {
			wait_period=2000;
			}
		checkImageLoaded();
		} else {
		getbyid('play_on').style.display="none";
		getbyid('play_off').style.display="block";
		}
}

function slideshowcycle(){
	slideshow_next();
}

function gotourl(url){
	window.location=url;
}

function prev_video(){	getbyid('video'+current_video).style.display="none";
	current_video--;
	if (current_video<1) {
		current_video=total_videos;
		}
	getbyid('video'+current_video).style.display="block";
}

function next_video(){
	getbyid('video'+current_video).style.display="none";
	current_video++;
	if (current_video>total_videos) {
		current_video=1;
		}
	getbyid('video'+current_video).style.display="block";
}

function getbyid(id) {
  if (typeof id == 'string') {
    return document.getElementById(id);
  }
  alert(id);
  return id;
}

// функция определяет координаты элемента
function getElementPosition(elem)
{
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }
    
    return {"left":l, "top":t, "width": w, "height":h};
}

$(function(){
	$("#thumbs_arrow_left").mousedown(function(){		startscroll('left')
	}).mouseup(function(){
		stopscroll()
	});
	
	$("#thumbs_arrow_right").mousedown(function(){
		startscroll('right')
	}).mouseup(function(){
		stopscroll()
	});
	$("#thumbs_previews img").click(function(){		var imgid=this.id.substr(9);
		jump2img(imgid);
	});
	
})


// SCROLLING PARAMS */
var timerID = null;
var inc=5;
var inc_max=15;
var t=25;
var wait_before_scroll=10;


function startscroll(dir){
	inc=1;
	stop_thumb_following=true;
	clearTimeout (timerID);
	current_scrollleft=$("#thumbs_previews")[0].scrollLeft;
	
	if (dir=="left") {
		if (current_scrollleft>0) {
			timerID = setTimeout("scroll_cycle('"+dir+"')",wait_before_scroll);
			}
		} else {
			timerID = setTimeout("scroll_cycle('"+dir+"')",wait_before_scroll);
		}
}

function stopscroll(){
	clearTimeout (timerID);
}

function scroll_cycle(dir){
	var a=$("#thumbs_previews");
	if (a.length) {
		a=a[0];
		current_scrollleft=a.scrollLeft;
		if (dir=="left") {
			new_scrollleft=current_scrollleft-inc;
			} else {
			new_scrollleft=current_scrollleft+inc;
			}
		inc=Math.round(inc*1.7);
		if (inc>inc_max) inc=inc_max;
		
		if (new_scrollleft<=0) { 
			a.scrollLeft=0;
			stopscroll();
			} else {
			a.scrollLeft=new_scrollleft;
			timerID = setTimeout("scroll_cycle('"+dir+"')",t);
			}
		}
}