var preload_images = new Array('../img/head/0000.png',
                               '../img/head/0001.png',
                               '../img/head/0002.png',
                               '../img/head/0003.png');
for(var i = 0; i < preload_images.length; ++i)
{
	var img = new Image();
	img.src = preload_images[i];
}

window.addEvent('domready', function() {
	var fields = $$('.field');
	var players = $$('.player');
	
	fields.each(function(item) {
		var inputs = item.getElements('input, textarea');
		if( !inputs )
		{
			alert('!');
			return false;
		}
		inputs[0].addEvent('focus', function() {
			item.removeClass('error');
		});
	});
	
	players.each(function(item) {
		item.addEvent('click', function() {
			if( this.hasClass('playing') )
			{
				this.removeClass('playing');
				stopMusic(audio_url)
			}
			else
			{
				players.each(function(item) {
					item.removeClass('playing');
				});
				var audio_url = this.get('href');
				if( !audio_url )
				{
					return false;
				}
				this.addClass('playing');
				/**
				 * Play music
				 */
				playMusic(audio_url)
			}
			return false;
		});
	});
	
	var galleries = $$('.gallery-section');
	for(var i = 0; i < galleries.length; ++i)
	{
		var gallery = galleries[i];
		var pages_links = gallery.getElements('.navigation a');
		if( pages_links )
		{
			pages_links.each(function(page_link) {
				page_link.addEvent('click', function() {
					var gallery_id = this.getParent('.gallery-section').get('id');
					
					if( this.hasClass('btn-next') )
					{
						 trans_nextPage(gallery_id);
					}
					else if( this.hasClass('btn-previous') )
					{
						trans_previousPage(gallery_id);
					}
					
					return false;
				});
			});
		}
		
		trans_setGalleryPage(gallery.get('id'), 1);
	}
	
});

function playMusic(url)
{
	stopMusic()
	var container = $('hiddenPlayer');
	if( !container )
	{
		container = new Element('iframe', {id: 'hiddenPlayer'}).setStyles({
			'position': 'absolute',
			'left':     '-1000px',
			'top':   '-1000px',
			'width':    '1px',
			'height':   '1px'})
		container.inject($$('body')[0]);
	}
	var fname = url.substr(0, url.indexOf('.'));
	container.set('src', 'swf/player2.php?fname=../' + fname);
}

function stopMusic()
{
	var container = $('hiddenPlayer');
	if( !container ) return false;
	container.set('src', '');
}

/**
 * Retrieve gallery HTML element from id attribute
 */
function trans_getGallery(gallery_id)
{
	var gallery = $(gallery_id);
	if( !gallery || !gallery.hasClass('gallery-section') )
	{
		return null;
	}
	
	return gallery;
}

/**
 * Retrieve button page number from HTML element
 */
function trans_getButtonPageNum(button)
{
	var href = button.get('href');
	return parseInt(href.substring(href.lastIndexOf('-') + 1));
}

/**
 * Set page number of a button
 */
function trans_setButtonPageNum(button, page_num)
{
	var href = button.get('href');
	if( !href ) { return false; }
	var href_f = href.substring(0, href.lastIndexOf('-') + 1);
	var new_href = href_f.toString() + page_num.toString();
	button.set('href', new_href);
}

/**
 * Retrieve HTML element of a button for the previous page of a specified gallery
 */
function trans_getPreviousPageNum(gallery_id)
{
	var gallery = trans_getGallery(gallery_id);
	if( !gallery ) { return null; }
	
	var btn = gallery.getElement('.btn-previous');
	if( !btn ) { return null; }
	
	return trans_getButtonPageNum(btn);
}

/**
 * Retrieve HTML element of a button for the next page of a specified gallery
 */
function trans_getNextPageNum(gallery_id)
{
	var gallery = trans_getGallery(gallery_id);
	if( !gallery ) { return null; }
	
	var btn = gallery.getElement('.btn-next');
	if( !btn ) { return null; }
	
	return trans_getButtonPageNum(btn);
}

/**
 * Go forward a page of a specified gallery
 */
function trans_nextPage(gallery_id)
{
	var page_num = trans_getNextPageNum(gallery_id);
	if( !page_num )
	{
		return false;
	}
	
	return trans_setGalleryPage(gallery_id, page_num);
}

/**
 * Go back a page of a specified gallery
 */
function trans_previousPage(gallery_id)
{
	var page_num = trans_getPreviousPageNum(gallery_id);
	if( !page_num )
	{
		return false;
	}
	
	return trans_setGalleryPage(gallery_id, page_num);
}

/**
 * Set a page number for a specified gallery
 */
function trans_setGalleryPage(gallery_id, page_num)
{
	var gallery = trans_getGallery(gallery_id);
	var items = gallery.getElements('li');
	var items_num = items.length;
	
	var max_visible_items = 12;
	if( gallery_id == 'videos' )
	{
		max_visible_items = 8;
	}
	
	var first_item_num = (page_num - 1) * max_visible_items + 1;
	var last_item_num = first_item_num + max_visible_items;
	var last_page_num = Math.ceil(items_num / max_visible_items);
	
	for(var i = 1; i <= items_num; ++i)
	{
		var item = items[i-1];
		if( i >= first_item_num && i < last_item_num )
		{
			item.setStyle('display', 'block');
		}
		else
		{
			item.setStyle('display', 'none');
		}
	}
	
	var pages_links = gallery.getElements('.navigation a');
	if( !pages_links ) { return true; }
	
	pages_links.each(function(button) {
		if( button.hasClass('btn-next') )
		{
			if( page_num < last_page_num )
			{
				button.setStyle('visibility', 'visible');
				trans_setButtonPageNum(button, page_num + 1);
			}
			else
			{
				trans_setButtonPageNum(button, page_num);
				button.setStyle('visibility', 'hidden');
			}
		}
		else if( button.hasClass('btn-previous') )
		{
			if( page_num > 1 )
			{
				button.setStyle('visibility', 'visible');
				trans_setButtonPageNum(button, page_num - 1);
			}
			else
			{
				trans_setButtonPageNum(button, 1);
				button.setStyle('visibility', 'hidden');
			}
		}
	});
	
	return true;
}

