var maxTab = 15;
function create_tabs(items, curr_page, total_pages) {
	el = document.getElementById('numbers');
	el.innerHTML = '';
	if (curr_page == 0) {
		el.innerHTML +=  '<span class="gallery active">1</span>';
	} else {

		if (curr_page >= 9 && total_pages > maxTab) {
			el.innerHTML +=  '<a href="#" onclick="loadImage(0)" class="gallery">1...</a>';
		} else {
			el.innerHTML +=  '<a href="#" onclick="loadImage(0)" class="gallery">1</a>';
		}
	}
	
	if (total_pages > maxTab){
		start = Math.max(2, curr_page - Math.floor((maxTab -2)/2));
		start = Math.min(start, total_pages - maxTab +2);
		end = start + maxTab -3;
	} else {
		start = 2;
		end = total_pages-1;
	}
	
	for (page = start ; page <= end; page++) {
		if (page == (curr_page+1)) {	
			el.innerHTML +=  '<span class="gallery active">'+page+'</span>';
		} else {
			el.innerHTML +=  '<a href="#" onclick="loadImage('+(page-1)+')" class="gallery">'+page+'</a>';
		}
	}

	if (total_pages > 1){
		if ((curr_page+1) == total_pages) {
			el.innerHTML +=  '<span class="gallery active">'+total_pages+'</a>';
		} else {
			if (curr_page + 8 > total_pages) {
				el.innerHTML +=  '<a href="#" onclick="loadImage('+(total_pages-1)+')" class="gallery">'+total_pages+'</a>';
			} else {
				el.innerHTML +=  '<a href="#" onclick="loadImage('+(total_pages-1)+')" class="gallery">...'+total_pages+'</a>';
			}
		}
		
	}
}

function drawMonths() {
	months = Array(
		'январь', 
		'февраль',
		'март',
		'апрель',
		'май', 
		'июнь',
		'июль',
		'август',
		'сентябрь', 
		'октябрь',
		'ноябрь',
		'декабрь'
	);
	for (i=1;i<=12;i++) {
		if (i<10) i = '0'+i;
		span = document.getElementById('month'+i);
		if (typeof(images[currentYear])  != "undefined" && typeof(images[currentYear][i]) != "undefined" ) {
			if (i == currentMonth) {
				span.innerHTML = '<a href="#" onclick="changeMonth('+i+');return false;" class="newsnav" style="color:#B90000;" >'+months[parseInt(i-1)]+'</a>';
			} else {
				span.innerHTML = '<a href="#" onclick="changeMonth('+i+');return false;"  class="newsnav" >'+months[parseInt(i-1)]+'</a>';
			}
		} else {
			span.innerHTML = '<span class="newsnav disabled">'+months[parseInt(i-1)]+'</span>';
		}
		if (i < 12) span.innerHTML += ' | ';
	
	}
}


function getFirstMonth() {
	for (i=1; i<=12;i++) {
		if (i<10) i = '0'+i;
		if (typeof(images[currentYear]) != "undefined" && typeof(images[currentYear][i]) != "undefined") return i;
	}
}

function getLastMonth() {
	for (i=12; i>=1;i--) {
		if (i<10) i = '0'+i;
		if (typeof(images[currentYear]) != "undefined" && typeof(images[currentYear][i]) != "undefined") return i;
	}
}

function getPrevMonth() {
	for (i=parseInt(currentMonth)-1; i>=1;i--) {
		if (i<10) i = '0'+parseInt(i);
		if (typeof(images[currentYear]) != "undefined" && typeof(images[currentYear][i]) != "undefined") {
			currentMonth = i;
			return;
		}
	}
	currentYear = getPrevYear();
	document.getElementById('year').value = currentYear;
	currentMonth = 12;
	getPrevMonth();
}

function getNextMonth() {
	for (i=parseInt(currentMonth)+1; i<=12;i++) {
		if (i<10) i = '0'+parseInt(i);
		if (typeof(images[currentYear]) != "undefined" && typeof(images[currentYear][i]) != "undefined") {
			currentMonth = i;
			return;
		}
	}
	currentYear = getNextYear();
	document.getElementById('year').value = currentYear;
	currentMonth = 0;
	getNextMonth();
}

function getPrevYear() {
	for (i=parseInt(currentYear)-1;i>=minYear;i--)
		if (typeof(images[i]) != "undefined") return i;
	currentYear = maxYear;
	document.getElementById('year').value = currentYear;
	currentMonth = getLastMonth();
	return currentYear;
}

function getNextYear() {
	for (i=parseInt(currentYear)+1;i<=maxYear;i--)
		if (typeof(images[i]) != "undefined") return i;
	currentYear = minYear;
	document.getElementById('year').value = currentYear;
	currentMonth = getFirstMonth();
	return currentYear;
}

function setFirst(action) {
	if (action == false) {
		el = document.getElementById('goFirst');
		el.innerHTML = '<span class="gallery"><font style="font-size:8px;"  class="gallery">|</font>&#171;</span>'; 
		el = document.getElementById('goPrev');
		el.innerHTML = '<span class="gallery">&#171;</span>';
	} else {
		el = document.getElementById('goFirst');
		el.innerHTML = '<a href="#" onclick="go(\'first\');" class="gallery"><font style="font-size:8px;">|</font>&#171;</a>'; 
		el = document.getElementById('goPrev');
		el.innerHTML = '<a href="#"  onclick="go(\'prev\');" class="gallery">&#171;</a>';
	}
}

function setLast(action) {
	if (action == false) {
		el = document.getElementById('goLast');
		el.innerHTML = '<span class="gallery">&#187;<font style="font-size:8px;">|</font></span>'; 
		el = document.getElementById('goNext');
		el.innerHTML = '<span class="gallery">&#187;</span>';
	} else {
		el = document.getElementById('goLast');
		el.innerHTML = '<a href="#" onclick="go(\'last\');"  class="gallery">&#187;<font style="font-size:8px;">|</font></a>'; 
		el = document.getElementById('goNext');
		el.innerHTML = '<a href="#"  onclick="go(\'next\');" class="gallery">&#187;</a>';
	}
}

function go(where) {
	switch (where) {
		case 'next' :
			if (is_dynamics) {
				if (current<images[currentYear][currentMonth].length-1) current++;
				if (current == images[currentYear][currentMonth].length-1) setLast(false);
			} else {
				if (current<images.length-1) current++;
				if (current == images.length - 1) setLast(false);
			}
			setFirst(true);
		break;
		case 'prev' :
			if (current>=1) current--;
			if (current == 0) setFirst(false);
			setLast(true);
		break;
		case 'first' :
			current = 0;
			setFirst(false);
			setLast(true);
		break;
		case 'last' :
			if (is_dynamics) {
				current = images[currentYear][currentMonth].length-1;
			} else {
				current = images.length-1;
			}
			setLast(false);
			setFirst(true);
		break;
	}
	loadImage(current);
}

function changeYear(year) {
	currentYear=year;
	currentMonth = 0;
	currentMonth = getFirstMonth();
	drawMonths();
	current = 0;
	loadImage(current);
}

function changeMonth(month) {
	if (month < 10) month = '0'+month; 
	currentMonth = month;
	drawMonths();
	current = 0;
	loadImage(current);
}

var base = '/images/gallery/';
var current = 0;
var is_dynamics = false;
var thisIndex = 0;
function loadImage(index) {
	loader = document.getElementById('preloader');
	loader.style.visibility = 'visible';
	el = document.getElementById('galleryImg');
	
	if (is_dynamics == true) {
		current = index;
		el.src = (base +parseInt(currentYear)+"/"+currentMonth+"/"+suffix+"/"+images[currentYear][currentMonth][current]);
		
		if (el = document.getElementById('header')) {
			el.innerHTML = titles[currentYear][currentMonth];
		}
		if (el = document.getElementById('description')) {
			el.innerHTML = descs[currentYear][currentMonth];
		}
	} else {
		el.src = (base + images[index]);
		
		current = index;
		if (el = document.getElementById('header')) {
			el.innerHTML = titles[index];
		}
		if (el = document.getElementById('fio')) {
			el.innerHTML = fios[index];
		}
		if (el = document.getElementById('description')) {
			el.innerHTML = descs[index];
		}
	}
	thisIndex = index;
	drawList();
	
}
	

function drawList() {
	el = document.getElementById('numbers');
	el.innerHTML = '';
	if (is_dynamics == true) {
		imagesCount = images[currentYear][currentMonth].length;
		create_tabs(imagesCount, current, imagesCount);
	}else {
		create_tabs(imagesCount, current, imagesCount);
	}
	if (current == 0) {
		setFirst(false);
		setLast(true);
	} else {
		if (is_dynamics && current == images[currentYear][currentMonth].length-1) {
			setLast(false);
			setFirst(true);
		} else if (!is_dynamics && current == images.length-1) {
			setLast(false);
			setFirst(true);
		}
	}
}

function openNew(){
  //if (is_plans == true) {
  //  var newWin =window.open('/index.html?showbig=true&plans=true','gallery','width=780, height=650');
  //} else 
  if (is_dynamics == true) {
		var newWin =window.open('/index.html?showbig=true&dynamicimg='+images[currentYear][currentMonth][current]+'&year='+currentYear+'&month='+currentMonth+'&object='+object,'gallery','width=780, height=650');
	} else {
		var newWin =window.open('/index.html?showbig=true&img='+images[current],'gallery','width=780, height=650');
	}
	newWin.focus();
}
function openNewFlash(){
  var newWin =window.open('/index.html?showbig=true&plans=true','gallery','width=780, height=650');
	newWin.focus();
}
function openPrint(){
	if (is_dynamics == true) { 
		var newWin =window.open('/index.html?showprint=true&dynamicimg='+images[currentYear][currentMonth][current]+'&year='+currentYear+'&month='+currentMonth+'&object='+object);
	} else {
		var newWin =window.open('/index.html?showprint=true&img='+images[current]);		
	}
	newWin.focus();
}

function setSizes() {
	loader = document.getElementById('preloader');
	loader.style.visibility = 'hidden';
	el = document.getElementById('galleryImg');
	if (is_dynamics) {
		el.style.width = (widths[currentYear][currentMonth][current]) + 'px';
		document.getElementById('preloader').style.width = (widths[currentYear][currentMonth][current]) + 'px';
		document.getElementById('imgCont').style.width = (widths[currentYear][currentMonth][current]) + 'px';
		el.style.height = (heights[currentYear][currentMonth][current]) + 'px';
	} else {
		el.style.width = (widths[thisIndex]) + 'px';
		document.getElementById('preloader').style.width = (widths[thisIndex]) + 'px';
		document.getElementById('imgCont').style.width = (widths[thisIndex]) + 'px';
		el.style.height = (heights[thisIndex]) + 'px';
	}
}
