var opened;
var menu;
var Node;
var obj = { event: 'handler' }; 
window.onload = function ()
{
	Load();
	$('notice').hide();
	$('main').show();
	Cufon.replace('h2,h1,span#prev,span#next');
}

function ChangeTitle(e)
{
	var data = $A(arguments);
	data.shift();
	var chapters = menu.getElementsByTagName('glava');
	var punkts = chapters[data[1]].getElementsByTagName('punkt');
	$('title').innerHTML = punkts[data[0]].getAttribute('title');
	if (punkts[data[0]].firstChild)
		$('desc').innerHTML = punkts[data[0]].firstChild.nodeValue;
	else
		$('desc').innerHTML = '';
	$('photo').stopObserving('load');
	$('photo').show();
	$('loading').hide();
	$('split').show();
	$('next').show();
	$('prev').show();
	Cufon.refresh();
}

function MenuElemHi(e)
{
	var data = $A(arguments);
	data.shift();
	OpenNode(data[0]);
}

function MenuElemLow(e)
{
	var data = $A(arguments);
	data.shift();
	ShowPhoto(data[0],data[1]);
}

function Load()
{
	new Ajax.Request('/menu.xml',
	{
		method:'get',
	    onSuccess: function(response)
    	{ 
			menu = response.responseXML || null;
			if(!menu)
				return;
			var container,title,catalog,punkts,div,item,wrapped;
			var sections = menu.getElementsByTagName('glava');
			for(var i=0;i<sections.length;i++)
			{
				div = new Element('div');
				section = sections[i];
				title = section.getElementsByTagName('title')[0].firstChild.data;
				catalog = section.getElementsByTagName('catalog')[0].firstChild.data;
				$('nav').appendChild(container = new Element('div').update('<h1><span>'+title+'</span></h1>'));
				container.down(1).style.cursor='pointer';
				punkts = section.getElementsByTagName('punkt');
				for(var j=0;j<punkts.length;j++)
				{
					div.appendChild(item = new Element('h2').update('<span>'+punkts[j].getAttribute('title')+'</span>'));
					item.down().style.cursor='pointer';
					item.down().observe('click',MenuElemLow.bindAsEventListener(obj,i,j));
				}
				container.appendChild(wrapped = div.wrap('div',{'class':'menu_wrap','style':'display:none;'}));
				if (i==Node)
					opened = wrapped;
				container.down(1).observe('click',MenuElemHi.bindAsEventListener(obj,i,j));
			}
		},
		onFailure: function(){},
		onComplete:	function() {Cufon.refresh();ShowIndex();}
	});
}

function ShowPhoto(i,j)
{
	var chapters = menu.getElementsByTagName('glava');
	var catalog = chapters[i].getElementsByTagName('catalog')[0].firstChild.data;
	var punkts = chapters[i].getElementsByTagName('punkt');
	var count = punkts.length;
	$('photo').observe('load',ChangeTitle.bindAsEventListener(obj,j,i));
	$('photo').src = '/'+catalog+'/'+punkts[j].getAttribute('file');
	$('photo').hide();
	$('loading').show();
	$('next').stopObserving('click');
	$('prev').stopObserving('click');
	if (j==0)
	{	
		$('next').observe('click',MenuElemLow.bindAsEventListener(obj,i,j+1));
		j=punkts.length;
		$('prev').observe('click',MenuElemLow.bindAsEventListener(obj,i,j-1));
	}
	else if (j>=punkts.length-1)
	{
		$('prev').observe('click',MenuElemLow.bindAsEventListener(obj,i,j-1));
		j=-1;
		$('next').observe('click',MenuElemLow.bindAsEventListener(obj,i,j+1));
	}
	else
	{
		$('next').observe('click',MenuElemLow.bindAsEventListener(obj,i,j+1));
		$('prev').observe('click',MenuElemLow.bindAsEventListener(obj,i,j-1));
	}
	Cufon.refresh();
}

function OpenNode(i)
{
	var newopened = $('nav').down();
	if (i>0)
		newopened = newopened.next(i-1);
	newopened = newopened.down('div');
	if (opened)
		opened.slideUp();
	if (newopened==opened)
		opened = null;
	else
	{
		newopened.slideDown();
		opened = newopened;
	}
}

function ShowIndex()
{
	var index = menu.getElementsByTagName('index')[0];
	$('title').innerHTML = '';
	$('photo').src = '/'+index.getAttribute('file');
	$('desc').innerHTML = '';
	$('next').hide();
	$('prev').hide();
	$('split').hide();
	Cufon.refresh();
}