var mouseX, mouseY;

function getMousePos(e)
{
    if (!e) var e=window.event||window.Event;

    if('undefined' != typeof e.pageX)
    {
		mouseX=e.pageX;
		mouseY=e.pageY;
    }
    else
    {
		mouseX=e.clientX+document.body.scrollLeft;
		mouseY=e.clientY+document.documentElement.scrollTop+document.body.scrollTop;
    }
}

if(window.Event && document.captureEvents)
    document.captureEvents(Event.MOUSEMOVE);

document.onmousemove=getMousePos;

// создаем объект XMLHttpRequest
var request = false;
try 
{
	request = new XMLHttpRequest();
}
catch (failedIE) 
{
	try 
	{
		request = new ActiveXObject("Msxml2.XMLHTTP");
    } 
	catch (failedNewIE) 
	{
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (faild) {
			request = false;
   		}
    }
}

function HidePreviewImage() {
	var img = document.getElementById('preview_image');
	if ( img == null ) return;

	img.style.display = 'none';
}

function ShowPreviewImage(group_id, page) {
	// Скрываем предыдущую страницу
	ShowGroupPage(curGroup, curPage, false);

	// Показываем текущую страницу
	ShowGroupPage(group_id, page, true);

	curGroup = group_id; 
	curPage = page;

	// Если включено слайд-шоу
	if ( isSlideShow ) {	
		ShowFullImage(curGroup, curPage, 0);
		ShowFullImagePage(curGroup, curPage, 0, true);
		return;
	}
	// =======================
	
	// Скрываем нижние элементы
	HideAllItems();

	isPreview = true; isFullImage = false; isInfo = false;

	var img = document.getElementById('preview_image');
	if ( img == null ) return;

	img.src = 'templates/preview/' + group_id + '/' + group_id + page + '.jpg';
	img.style.display = '';

	// Скрываем форму отправки почты
	ShowMail(false);

	// Скрываем полное изображение
	HideFullImage();

	// Скрываем текст инфо
	ShowInfoText(null, false);

	// Показываем страницу превью
	ShowPreviewPage(group_id, page, true);

	// Показываем кнопку превью
	ShowPreviewButton(true, true);

	// Скрываем кнопку инфо
	ShowInfoButton(false, false);
}

function ShowPreviewButton(v, visible) {
	var img = document.getElementById('preview_button');
	if ( img == null ) return;
	
	if ( visible ) {
		if (v) {
			img.src = 'templates/preview_button_y.jpg';
			img.style.display = '';
		}
		else {
			img.src = 'templates/preview_button_g.jpg';
			img.style.display = '';
		}
	}
	else {
		img.style.display = 'none';
	}
}

function ShowInfoButton(v, visible) {
	var img = document.getElementById('info_button');
	if ( img == null ) return;

	if ( visible ) {
		if (v) {
			img.src = 'templates/info_button_y.jpg';
			img.style.display = '';
		}
		else {
			img.src = 'templates/info_button_g.jpg';
			img.style.display = '';
		}
	}
	else {
		img.style.display = 'none';
	}
}

function ShowPreviewPage(group_id, page, visible) {
	var img = document.getElementById('preview_page');
	if ( img == null ) return;

	if ( visible ) {
		img.src = 'templates/preview_pages/' + group_id + page + '.jpg';
		img.style.display = '';
	}
	else {
		img.style.display = 'none';
	}
}

function ShowFullImagePage(group_id, page, image, v) {
	var img = document.getElementById('preview_page');
	if ( img == null ) return;

	if ( v ) 
		img.src = 'templates/images_pages/' + group_id + '/' + group_id + page + image + '_y.jpg';
	else
		img.src = 'templates/images_pages/' + group_id + '/' + group_id + page + image + '_g.jpg';

	img.style.display = '';
}

function ShowGroupPage(group_id, page, visible) {
	var img = document.getElementById('gp_' + group_id + '_' + page);
	if ( img == null ) return;

	if ( visible ) 
		img.src = 'templates/group_pages/' + page + '_y.jpg';
	else
		img.src = 'templates/group_pages/' + page + '_g.jpg';

}

function GetCoord(e) {
	var c = {x:mouseX, y:mouseY};
/*
	e = e || window.event;
	var c = {x:0, y:0};

	if (e.pageX || e.pageY) {
		c.x = e.pageX;
		c.y = e.pageY;
	} 
	else {
		var d = document.documentElement;
		var b = document.body;
		cursor.x = e.clientX + (d.scrollLeft || b.scrollLeft) - (d.clientLeft || 0);
		cursor.y = e.clientY + (d.scrollTop || b.scrollTop) - (d.clientTop || 0);
	}
*/
	return c;
}

function HideFullImage() {
	var img = document.getElementById('full_image');
	if ( img == null ) return;

	img.style.display = 'none';	
}

function ShowFullImage(group_id, page, image) {
	curImage = image; 

	var img = document.getElementById('full_image');
	if ( img == null ) return;
	img.src = 'templates/images/' + group_id + '/' + group_id + page + image + '.jpg';
	img.style.display = '';

	// Скрываем текст инфо
	ShowInfoText(null, false);

	// Скрываем изображение превью
	HidePreviewImage();

	// Если включено слайд-шоу
	if ( isSlideShow ) return;

	isFullImage = true; isInfo = false; isPreview = false; 

	// Показываем страницу изображения
	ShowFullImagePage(group_id, page, image, true);

	// Скрываем кнопку превью
	ShowPreviewButton(false, true);

	// Скрываем кнопку инфо
	ShowInfoButton(false, true);
}

function ClickOnPreviewImage(e) {
	var c = GetCoord(e);
	var image = -1;

	if ( c.x >= 144 && c.x <= 281 && c.y >= 161 && c.y <= 299 ) { image = 0; }
	if ( c.x >= 304 && c.x <= 442 && c.y >= 161 && c.y <= 299 ) { image = 1; }
	if ( c.x >= 464 && c.x <= 601 && c.y >= 161 && c.y <= 299 ) { image = 2; }
	if ( c.x >= 144 && c.x <= 281 && c.y >= 322 && c.y <= 460 ) { image = 3; }
	if ( c.x >= 304 && c.x <= 442 && c.y >= 322 && c.y <= 460 ) { image = 4; }
	if ( c.x >= 464 && c.x <= 601 && c.y >= 322 && c.y <= 460 ) { image = 5; }
	if ( c.x >= 144 && c.x <= 281 && c.y >= 481 && c.y <= 619 ) { image = 6; }
	if ( c.x >= 304 && c.x <= 442 && c.y >= 481 && c.y <= 619 ) { image = 7; }
	if ( c.x >= 464 && c.x <= 601 && c.y >= 481 && c.y <= 619 ) { image = 8; }

	if ( image != -1 ) {
		// Показываем изображение
		ShowFullImage(curGroup, curPage, image);
	}
}

function SwitchToPreview() {
	if ( !isPreview ) {
		ShowPreviewImage(curGroup, curPage);
	}
}

function GoBack() {
	if ( isPreview ) BackPreview();
	if ( isFullImage ) BackFullImage();
}

function NextPreview() {
	var group_id = curGroup;
	var page = curPage;

	page++;
	
	switch (group_id) {
		case 0: if ( page > 8 ) page = 0; break;
		case 1:
		case 2:
		case 3: if ( page > 4 ) page = 0;
	}

	ShowPreviewImage(group_id, page);
}

function NextFullImage() {
	var group_id = curGroup;
	var page = curPage;
	var image = curImage;

	image++;

	if ( image > 8 ) {
		image = 0;
		ShowGroupPage(group_id, page, false);
		page++;
		

		switch (group_id) {
			case 0: if ( page > 8 ) { page = 0; group_id++} break;
			case 1:
			case 2:
			case 3: if ( page > 4 ) { page = 0; group_id++; }
		}
				
		if ( group_id > 3 ) group_id = 0;
		
		ShowGroupPage(group_id, page, true);
		curGroup = group_id; curPage = page;
		
	}
	
	ShowFullImage(group_id, page, image);
}

function BackPreview() {
	var group_id = curGroup;
	var page = curPage;

	page--;
	
	switch (group_id) {
		case 0: if ( page < 0 ) page = 8; break;
		case 1:
		case 2:
		case 3: if ( page < 0 ) page = 4;
	}

	ShowPreviewImage(group_id, page);
}

function BackFullImage() {
	var group_id = curGroup;
	var page = curPage;
	var image = curImage;

	image--;

	if ( image < 0 ) {
		image = 8;
		
		ShowGroupPage(group_id, page, false);
		page--;
		

		switch (group_id) {
			case 1: if ( page < 0 ) { page = 8; group_id--} break;
			case 0:
			case 2:
			case 3: if ( page < 0 ) { page = 4; group_id--; }
		}
		
		if ( group_id < 0 ) group_id = 3;
		
		ShowGroupPage(group_id, page, true);
		curGroup = group_id; curPage = page;
		
	}

	ShowFullImage(group_id, page, image);
}

function GoNext() {
	if ( isPreview ) NextPreview();
	if ( isFullImage ) NextFullImage();
}

function ShowInfoText(txt, v) {
	var div = document.getElementById('info_text');
	if ( div == null ) return;

	if ( v ) {
		div.innerHTML = txt;
		div.style.display = '';
	}
	else {
		div.style.display = 'none';
		document.title = "Галлерея";
	}
}

function GetTextInfo() {
	if ( (request.readyState == 4) && (request.status==200) ) {
		var txt = request.responseText;
		var t = request.responseText.split(/<title>(.+)<\/title>/i);
		
 		if ( "undefined" == typeof t[1] ) document.title = "Галлерея"
			else document.title = t[1];
		
		ShowInfoText(txt, true);
	}
}

function SendRequestInfo(group_id, page, image) {
	request.open("POST","gettext.php", true);
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.onreadystatechange = GetTextInfo;
	request.send("group_id="+group_id+"&page="+page+"&image="+image);
}

function ShowInfo() {
	isInfo = true; isFullImage = false; isPreview = false; isSlideShow = false;

	ShowInfoButton(true, true);

	// Делаем не активной номер изображения
	ShowFullImagePage(curGroup, curPage, curImage, false);

	// Скрываем полное изображение
	HideFullImage();

	// Показываем текст инфо
	SendRequestInfo(curGroup, curPage, curImage);
	
}

function ClickOnPreviewPage() {
	if ( isInfo ) ShowFullImage(curGroup, curPage, curImage);
}

function ShowSlideButton(v) {
	var img = document.getElementById('slide_show');
	if ( img == null ) return;

	if ( v ) 
		img.src = 'templates/slide_y.jpg';
	else
		img.src = 'templates/slide_g.jpg';
}


function ShowSlideShow() {
	if ( isSlideShow ) return;

	isSlideShow = true, isPreview = false, isFullImage = false, isInfo = false;

	// Скрываем форму отправки почты
	ShowMail(false);

	// Скрываем изображение превью
	HidePreviewImage();

	// Скрываем полное изображение
	HideFullImage();
	
	// Скрываем нижние элементы
	HideAllItems();
	
	// Показываем кнопку начала слайд-шоу
	ShowSlideButton(true);

	// Скрываем страницу группы 
	ShowGroupPage(curGroup, curPage, false);

	// Скрываем кнопку превью
	ShowPreviewButton(false, false);

	// Скрываем кнопку инфо
	ShowInfoButton(false, false);

	// Скрываем страницу превью
	ShowPreviewPage(-1, -1, false);

	// Показываем текст инфо
	var txt = document.getElementById('slide_show_text').innerHTML;
	ShowInfoText(txt, true);
	
	curGroup = 0; curPage = 0; curImage = -1;	
}

function ShowSpeedButton(speed, v) {
	var img = document.getElementById('ss_' + speed);
	if ( img == null ) return;

	if ( v ) 
		img.src = 'templates/slide_pages/' + speed + '_y.jpg';
	else
		img.src = 'templates/slide_pages/' + speed + '_g.jpg';
}

function ShowSlideStopButton(v) {
	var img = document.getElementById('slide_stop');
	if ( img == null ) return;

	if ( v ) 
		img.src = 'templates/slide_stop_y.jpg';
	else
		img.src = 'templates/slide_stop_g.jpg';

}

function SlideEvent() {
	NextFullImage();
	ShowFullImagePage(curGroup, curPage, curImage, true);
	//ShowPreviewImage(curGroup, curPage)
	//ShowGroupPage(curGroup, curPage, true);

	curTimeoutId = window.setTimeout('SlideEvent()', 2000*curSpeed);
}

function StartSlideShow(speed) {
	if ( !isSlideShow ) return;
	
	if ( curImage == -1 ) {
		// Если не выбрана группа изначально при начале слайд-шоу
		ShowPreviewImage(curGroup, curPage);
	}
	
	window.clearTimeout(curTimeoutId);

	// Скрываем предыдущую кнопку скорости
	ShowSpeedButton(curSpeed, false);

	// Показываем выбранную кнопку скорости
	ShowSpeedButton(speed, true);
	curSpeed = speed;

	// Показываем кнопку стоп
	ShowSlideStopButton(true);

	switch (speed) {
		case 1: speed = 1; break;
		case 2: speed = 2; break;
		case 3: speed = 3; break;
		case 4: speed = 5; break;
		case 5: speed = 7; break;
	}

	curTimeoutId = window.setTimeout('SlideEvent()', 1000*speed);
}

function OnClickSlideStop() {
	if ( !isSlideShow ) return;

	window.clearTimeout(curTimeoutId);
	isSlideShow = false;

	// Скрываем предыдущую кнопку скорости
	ShowSpeedButton(curSpeed, false);

	// Скрываем кнопку стоп
	ShowSlideStopButton(false);

	// Скрываем кнопку начала слайд-шоу
	ShowSlideButton(false);
	
	// ++++++++++++++++++++++++++++++
	// Возвращаемся к обычному режиму	
	ShowFullImage(curGroup, curPage, curImage);

}

function GetItemText() {
	if ( (request.readyState == 4) && (request.status==200) ) {
		var txt = request.responseText;
		var div = document.getElementById('item_text');
		div.innerHTML = txt;
	}
}

function SendRequestItemText(item_name) {
	request.open("POST","gettext.php", true);
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.onreadystatechange = GetItemText;
	request.send("item_name="+item_name);
}

function ShowPageOnItem(v, item_name) {
	var div = document.getElementById('item_text');
	var img = document.getElementById(item_name);
	
	if ( (img == null) || (div == null) ) return;

	if ( v ) {
		img.style.display = '';
		div.style.display = '';
		
		SendRequestItemText(item_name);
	}
	else {
		img.style.display = 'none';
		div.style.display = 'none';
	}
}

function HideAllItems() {
	ShowPageOnItem(false, 'item_main');
	ShowPageOnItem(false, 'item_price');
	ShowMonitorTest(false);
	ShowPageOnItem(false, 'item_author');
	ShowPageOnItem(false, 'item_technique');
	ShowPageOnItem(false, 'item_design');
	ShowPageOnItem(false, 'item_interer');
	ShowPageOnItem(false, 'item_information');
	ShowPageOnItem(false, 'item_calendar');
	ShowNews(false);
}

function HideOtherForItem() {
	// Останавливаем слайд-шоу
	OnClickSlideStop();
	
	isSlideShow = false, isPreview = false, isFullImage = false, isInfo = false;
	
	HideAllItems();

	// Скрываем изображение превью
	HidePreviewImage();

	// Скрываем полное изображение
	HideFullImage();	
	
	// Показываем кнопку начала слайд-шоу
	ShowSlideButton(false);

	// Скрываем кнопку превью
	ShowPreviewButton(false, false);

	// Скрываем кнопку инфо
	ShowInfoButton(false, false);
	
	// Скрываем страницу группы 
	ShowGroupPage(curGroup, curPage, false);

	// Скрываем страницу превью
	ShowPreviewPage(-1, -1, false);	
	
	// Скрываем форму отправки почты
	ShowMail(false);
	
	// Скрываем текст инфо-изображения
	ShowInfoText('', false);

}

function OnMainClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_main');
}

function OnPriceClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_price');
}

function ShowMonitorTest(v) {
	var img = document.getElementById('full_image');
	var img_item = document.getElementById('item_monitor');
	
	if ( img == null ) return;

	if ( v ) {
		img.src = 'templates/monitor_test.jpg';
		img.style.display = '';
		img_item.style.display = '';
	}
	else {
		img.style.display = 'none';
		img_item.style.display = 'none';
	}
}

function OnMonitorClick() {
	HideOtherForItem();
	ShowMonitorTest(true);
}

function OnAuthorClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_author');
}

function OnTechniqueClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_technique');
}

function OnDesignFotoClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_design');
}

function OnIntererClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_interer');
}

function OnInformationClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_information');
}

function OnCalendarClick() {
	HideOtherForItem();
	ShowPageOnItem(true, 'item_calendar');
}

function ShowNews(v) {
	var img = document.getElementById('news');
	var div = document.getElementById('item_text');
	if ( img == null || div == null ) return;

	if ( v ) {
		img.src = 'templates/news_y.jpg';
		div.style.display = '';
		
		SendRequestItemText('news');
	}
	else {
		img.src = 'templates/news_g.jpg';
		div.style.display = 'none';		
	}
}

function OnNewsClick() {
	HideOtherForItem();
	ShowNews(true);
}

function ShowMail(v) {
	var div = document.getElementById('mail');
	if ( div == null ) return;

	if ( v ) {
		div.style.display = '';
	}
	else {
		div.style.display = 'none';		
	}

}

function OnEmailClick() {
	isInfo = false; isFullImage = false; isPreview = false; isSlideShow = false;
	
	HideOtherForItem();
	ShowMail(true);
}

function MailResponse() {
	if ( (request.readyState == 4) && (request.status==200) ) {
		var txt = request.responseText;
		var mail_msg = document.getElementById("mail_msg");
		var imagecode = document.getElementById("imagecode");
		
		mail_msg.innerHTML = txt;
		imagecode.src="imagecode.php?"+Math.random(10);
	}
}

function SendMail() {
	var email = document.getElementById("in_email").value;
	var title = document.getElementById("in_title").value;
	var msg = document.getElementById("in_msg").value;
	var imagecode = document.getElementById("in_imagecode").value;
	
	
	request.open("POST","mail.php", true);
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.onreadystatechange = MailResponse;
	request.send("email=" + email + "&title=" + title + "&msg=" + msg + "&imagecode=" + imagecode);
}


var curGroup = -1, curPage = -1, curImage = -1;
var isPreview = false, isFullImage = false, isInfo = false, isSlideShow = false;
var curSpeed = -1, curTimeoutId;
