/* (c) Motoki, 2005-2006
 * www: http://hotspot.narod.ru/
 * e-mail: hotspot@narod.ru
 */

/* ************************************
 * Customization parameters
 */
/* <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">*/
var galleryPivotId = "large"; 			// идентификатор картинки с большим изображением
var galleryPivotRefId = "refLarge";
var galleryImagePagerFormat = "| %n / %c |";	// формат pagebar для шотов
var galleryImagesPerPage = 12; 			// число маленьких шотов на страницу
var galleryImagesPerLine = 3;			// число маленьких шотов в строке
var galleryPagesPerLine = 10;			// страниц на строку
var galleryImageUrlFormat = "%n.jpg";		// формат названия шотов
var galleryPreviewWidth = 205;
var galleryPreviewHeight = 115;
var galleryLargeImageWidth = 740;
var galleryLargeImageHeight = 416;
var galleryIsSoft = true;			// размеры изображений НЕ фиксированы?



/* ************************************
 * Global variables
 */

var imageNumber;
var pageNumber;
var maxImages;



/* ************************************
 * Utility methods
 */

function extractImageNumber(url)
{
	var number = parseInt(url.split("?")[1]);
	if ((number <= 0) || (number + "" == "NaN") || (number > maxImages))
	{
		number = 1;
	}
	return number;
}

function isMultiple(number, divisor)
{
	return (number / divisor) == parseInt(number / divisor);
}

function getFirstImageNumber(pageNumber)
{
	return (pageNumber - 1) * galleryImagesPerPage + 1;
}



/* ************************************
 * HTML code generation
 */

function getPageName(pageNumber)
{
	var number = getFirstImageNumber(pageNumber);
	return number + '-' + Math.min(number + galleryImagesPerPage - 1, maxImages);
}

function getIndexUrl(number)
{
	return "index.html?" + number + "#" + number;
}

function getViewUrl(number)
{
	return "view.html?" + number + "#" + number;
}

function getImageUrl(number)
{
	return galleryImageUrlFormat.replace("%n", number);
}

function getLargeImageCode(number)
{
	code = '<a id="' + galleryPivotRefId + '" href="' + getIndexUrl(number) + '" title="' + number + '">';
	code += '<img id="' + number + '" src="' + getImageUrl(number) + '" class="pic" alt="' + + number + '"';
	if (!galleryIsSoft)
	{
		code += 'width="' + galleryLargeImageWidth + '" height="' + galleryLargeImageHeight + '"';
	}
	code += '></a>';
	code += '<div class="align-center"><i class="text-links">Изображение может быть уменьшено, но при сохранении будет иметь истиный размер</i></div>';
	return code;
}

function getImagePagerCode(number)
{
	code = "";
	if (number > 1)
	{
		code += '<a href="' + getViewUrl(number - 1) + '">&#171;&nbsp;Пред</a>';
	}
	else
	{
		code += '<span>&#171;&nbsp;Пред</span>';
	}
	code += "&nbsp;" + galleryImagePagerFormat.replace("%n", number).replace("%c", maxImages) + "&nbsp;";
	if (number < maxImages)
	{
		code += '<a href="' + getViewUrl(number + 1) + '">След&nbsp;&#187;</a>';		
	}
	else
	{
		code += '<span>След&nbsp;&#187;</span>';
	}
	return code;
}

function getPreviewCode(firstImageNumber)
{
	var cellWidth = parseInt(750 / galleryImagesPerLine);
	var code = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
	code += '<tr>';
	for (var i = 0; i < galleryImagesPerPage; i++)
	{
		var number = firstImageNumber + i;
		code += '<td class="align-centrum" width="' + cellWidth + '">';
		if (number <= maxImages)
		{
			code += '<a href="' + getViewUrl(number) + '" title="' + number + '">';
			code += '<img id="' + number + '" class="pic" style="margin: 10px 0px 10px" src="s/' + getImageUrl(number) + '" alt="' + number + '"';
			if (!galleryIsSoft)
			{
				code += 'width="' + galleryPreviewWidth + '" height="' + galleryPreviewHeight + '"';
			}
			code += '></a> ';
		}
		else
		{
			code += '&nbsp;';
		}
		code += '</td>';

		if ((number >= maxImages) && isMultiple(i + 1, galleryImagesPerLine))
		{
			break;
		}

		if ((i > 0) && isMultiple(i + 1, galleryImagesPerLine))
		{
			code += '</tr><tr>';
		}
	}	
	code += '</tr>';
	code += '</table>';
	return code;
}

function getPagerCode(pageNumber, maxPages)
{
	code = "";
	if (pageNumber > 1)
	{
		code += '<a href="' + getIndexUrl(getFirstImageNumber(pageNumber - 1)) +'">&#171;&nbsp;Пред</a>&nbsp;|'
	}
	else
	{
		code += '<span>&#171;&nbsp;Пред</span>&nbsp;|';
	}

	for (i = 1; i <= maxPages; i++)
	{
		var number = getFirstImageNumber(i);
		if (isMultiple(i - 1, galleryPagesPerLine) && (i > 1))
		{
			code += '<br>';
		}
		if (i != pageNumber)
		{
			code += ' <a href="' + getIndexUrl(number) + '">' + getPageName(i) + '</a>&nbsp;|';
		}
		else
		{
			code += ' <span>' + getPageName(i) + '</span>&nbsp;|';
		}
	}

	if (pageNumber < maxPages)
	{
		code += '&nbsp;<a href="' + getIndexUrl(getFirstImageNumber(pageNumber + 1)) +'">След&nbsp;&#187;</a>'
	}
	else
	{
		code += '&nbsp;<span>След&nbsp;&#187;</span>';
	}
	return code;
}


/* ************************************
 * HTML code embedding
 */

function embedGalleryPivot(count, width, height)
{
	maxImages = count;
	imageNumber = extractImageNumber(window.location.href);

	galleryIsSoft = (width == null) || (height == null);
	if (!galleryIsSoft)
	{
		galleryLargeImageWidth = width;
		galleryLargeImageHeight = height;
	}

	document.write(getLargeImageCode(imageNumber));
}

function embedShotPager()
{
	document.write(getImagePagerCode(imageNumber));
}

function embedPreviews(count, width, height, imagesPerPage, imagesPerLine)
{
	maxImages = count;
	imageNumber = extractImageNumber(window.location.href);

	galleryIsSoft = (width == null) || (height == null);
	if (!galleryIsSoft)
	{
		galleryPreviewWidth = width;
		galleryPreviewHeight = height;
	}
	if (imagesPerPage != null) galleryImagesPerPage = imagesPerPage;
	if (imagesPerLine != null) galleryImagesPerLine = imagesPerLine;

	pageNumber = Math.ceil(imageNumber / galleryImagesPerPage);
	var firstImageNumber = (pageNumber - 1) * galleryImagesPerPage + 1;
	document.write(getPreviewCode(firstImageNumber));
}

function embedPager()
{
	var maxPages = Math.ceil(maxImages / galleryImagesPerPage);
	document.write(getPagerCode(pageNumber, maxPages));
}