var LOCATION="";
var AJAX=false;
var ACTIVEGAL=false;
var MENUGALS=new Array();

var TOGGLE_UNFOLD = '»';
var TOGGLE_FOLD = '«'; 

window.oldie=false;
window.iever = 0;
if (window.ActiveXObject)
{
	if (typeof document.body.style.maxHeight == "undefined" || window.iever < 8 )
		window.oldie = true;
	
	window.iever = navigator.appVersion; 
	window.iever = parseInt(window.iever.substr(window.iever.indexOf("MSIE")+4));
}

function Toggle(rid) {
	    
    if (document.getElementsByName(rid))
    {
    	var items = document.getElementsByName(rid)

    	for (i=0;i < items.length;i++)
    	{
    		items[i].style.display = items[i].style.display == 'block' ? 'none' : 'block'
    	}
    }
}

function ToggleMiniature(rid) 
{
	document.forms[0].pic_miniature.disabled = !document.forms[0].pic_miniature.disabled;
}

function ToggleKeepMiniature(rid) 
{
	document.forms[0].auto_miniature.disabled = !document.forms[0].auto_miniature.disabled;
}

function GetPic( picID, lang )
{
	var pic = $('pic');
	$$('.list').removeClass('invisible');
	pic.parentNode.removeClass('hidden');
	if (lang)
		url = "/xml/pic/" + picID + "/" + lang + ".xml";
	else
		url = "/xml/pic/" + picID + ".xml";
	LOCATION = "/pic/" + picID + "/";
	
	if(pic.firstChild)
		pic.setStyle('height', $E('img', 'pic').getStyle('height'));
		
	pic.empty().addClass('ajax-loading');
	
	if(AJAX && AJAX.running)
	{
		AJAX.cancel();
	}
	AJAX = new Ajax(url, {
		method: 'get',
		onComplete: function() {
			location.hash = "pic/" + picID;
    		var clean = new Array("pic","name","desc","size","date","media", "spacer", "edit", "deviant", "picfooter");

	    	for(var x in clean)
    		{
    			if ($(clean[x]))
    				$(clean[x]).removeClass("hidden");
    		}
    	
    		var items = new Array("pic","name","desc","size","date","media","additional", "subtitle", "edit", "deviant");
    	
    		for(var x in items)
    		{
    			if ($(items[x]))
	    		{
	    			try 
	    			{
						var res = this.response["xml"].getElementsByTagName(items[x]);
						$(items[x]).empty();
						if (res[0] && res[0].firstChild)
						{
							$(items[x]).innerHTML = res[0].firstChild.data;
						}
					
						if (res[0].attributes.length != 0 && res[0].attributes[0].name=="hide")
						{
							$(items[x]).addClass("hidden");
						}
					}
	    			catch(e)
	    			{
	    				alert("Item [" + items[x] +"]. Error name: " + e.name + ". Error message: " + e.message);
	    			}
    			}
    		}
    		
			$E('img', $('pic')).addEvent('load', function(e)
			{
				this.parentNode.setStyle('height', this.getStyle('height'));
			});

    		var res = this.response["xml"].getElementsByTagName('wintitle');

    		document.title = res[0].firstChild.data;
    	},
    	onFailure: function()
    	{
    		createNotice('Error occured while connecting. Please wait a while and try again.');	
    	}
	}).request();
	return false;
}

function GetFull( picID, lang )
{
	$$('.list').removeClass('invisible');
	if ($('prepic'))
			$('prepic').removeClass('hidden');
	if (lang)
		url = "/xml/full/" + picID + "/" + lang + ".xml";
	else
		url = "/xml/full/" + picID + ".xml";
	LOCATION = "/pic/" + picID + "/";
	
	if(AJAX && AJAX.running)
	{
		AJAX.cancel();
	}
	AJAX = new Ajax(url, {
		method: 'get',
		onComplete: function() {
			if ($('galtable'))
				$('galtable').addClass('hidden');
			location.hash = "pic/" + picID;
    		var clean = new Array("pic","name","desc","size","date","media", "spacer", "edit", "deviant", "picfooter");

	    	for(var x in clean)
    		{
    		
    			if ($(clean[x]))
    				$(clean[x]).removeClass("hidden");
    		}
    	
    		var items = new Array("pic","name","desc","size","date","media","additional", "subtitle", "edit", "deviant");
    	
    		for(var x in items)
    		{
    			if ($(items[x]))
	    		{
	    			try
	    			{
						var res = this.response["xml"].getElementsByTagName(items[x]);
						$(items[x]).empty();
						if (res[0].firstChild)
						{
							$(items[x]).innerHTML = res[0].firstChild.data;
						}

						if (res[0].attributes.length != 0 && res[0].attributes[0].name=="hide")
						{
							$(items[x]).addClass("hidden");
						}
	    			}
	    			catch(e)
	    			{
	    				alert("Item [" + items[x] +"]. Error name: " + e.name + ". Error message: " + e.message);
	    				alert(res[0]);
	    			}
    			}
    		}
    		
    		var res = this.response["xml"].getElementsByTagName("galid");
    		var galid = false;
    		if (res[0])
    			galid = res[0].firstChild.data;

			if (galid)
    			if (!isActiveGal(galid))
    			{
    				setActiveGal(galid)
    			}
    		
    		var pic_list = $('pic_list').empty()
    		var items = this.response["xml"].getElementsByTagName("piclist");

        	for (i=0; i < items.length; i++)
	        {
            	pic_list.innerHTML += items[i].firstChild.data + " ";
    	    }

    		res = this.response["xml"].getElementsByTagName('wintitle');

    		document.title = res[0].firstChild.data;
    	},
    	onFailure: function()
    	{
    		createNotice('Error occured while connecting. Please wait a while and try again.');	
    	}
	}).request();
	return false;
}

function GetAdditionalPic(picID,lang)
{
	$$('.list').removeClass('invisible');
	if (lang)
		url = "/xml/add/" + picID + "/" + lang + ".xml";
	else
		url = "/xml/add/" + picID + ".xml";
	
	LOCATION = "/pic/additional/" + picID + "/";
	
	var pic = $('pic');
	if(pic.firstChild)
		pic.setStyle('height', $E('img', $('pic')).getStyle('height'));
	pic.empty().addClass('ajax-loading');
	
	if(AJAX && AJAX.running)
	{
		AJAX.cancel();
	}
	AJAX= new Ajax(url, {
		method: 'get',
		onComplete: function() {
			location.hash = "pic/" + picID;
    		var items = this.response["xml"].getElementsByTagName("pic");
          	pic.innerHTML += items[0].firstChild.data;
          	$E('img', $('pic')).addEvent('load', function(e)
			{
				this.parentNode.setStyle('height', this.getStyle('height'));
			});
	    },
    	onFailure: function()
    	{
    		createNotice('Error occured while connecting. Please wait a while and try again.');	
    	}
	}).request();
    
	return false;
}

function GetPicList(catID,lang)
{
	$$('.list').removeClass('invisible');
	if (lang)
		url = "/xml/" + catID + "/" + lang + ".xml";
	else
		url = "/xml/" + catID + ".xml";
	LOCATION = "/category/" + catID + "/";
	
	var pic_list = $('pic_list').empty().addClass('ajax-loading');
	
	if(AJAX && AJAX.running)
	{
		AJAX.cancel();
	}
	AJAX= new Ajax(url, {
		method: 'get',
		onComplete: function() {
			if ($('prepic'))
				$('prepic').removeClass('hidden');
			if ($('additional'))
				$('additional').removeClass('hidden');
			if ($('galtable'))
				$('galtable').addClass('hidden');
			
    		location.hash = 'category/' + catID;
			pic_list.removeClass('ajax-loading');
    		var clean = new Array("pic","name","desc","size","date","media","spacer","edit", "deviant", "picfooter");
    	
    		for(var x in clean)
    		{
    			if ($(clean[x]))
					$(clean[x]).addClass("hidden");
    		}
    		
    		var items = this.response["xml"].getElementsByTagName("piclist");
        	var text = '';
        	if (this.response["xml"].getElementsByTagName("prepend"))
        	{
        		var prepend = this.response["xml"].getElementsByTagName("prepend");
        		text += prepend[0].firstChild.data;
        	}
        	
    	    $("additional").empty();
        	text += '<div style="text-align: center;">';
        	for (i=0; i < items.length; i++)
	        {
	        	if(items.length > 8 && Math.ceil(items.length/2) == i) 
	        	{
	        		text += "<br />";
	        	}
            	pic_list.innerHTML += items[i].firstChild.data + " ";
	            text += items[i].firstChild.data + " ";
    	    }
        	text += "<br /></div>";
	        $("additional").innerHTML = text;
	        
	        var res = this.response["xml"].getElementsByTagName("galid");
    		var galid = false;
    		if (res[0])
    			galid = res[0].firstChild.data;

			if (galid)
    			if (!isActiveGal(galid))
    				setActiveGal(galid)
        
    	    res = this.response["xml"].getElementsByTagName('wintitle');
    		document.title = res[0].firstChild.data;
    		res = this.response["xml"].getElementsByTagName('subtitle');
    		$("subtitle").innerHTML = res[0].firstChild.data + " ";
    	},
    	onFailure: function()
    	{
    		createNotice('Error occured while connecting. Please wait a while and try again.');	
    	}
	}).request();
	return false;
}


function GetCatList(galID,lang)
{
	$$('.list').addClass('invisible');
	if (lang)
		url = "/xml/gal/" + galID + "/" + lang + ".xml";
	else
		url = "/xml/gal/" + galID + ".xml";
	LOCATION = "/gallery/" + galID + "/";
	
	if(AJAX && AJAX.running)
	{
		AJAX.cancel();
	}
	AJAX= new Ajax(url, {
		method: 'get',
		onComplete: function() {
			
    		location.hash = 'gallery/' + galID;
			$E('.piccontainer').removeClass("hidden");
    		var clean = new Array("pic","name","desc","size","date","media","spacer","edit", "deviant", "picfooter", "prepic", "additional");
    	
    		for(var x in clean)
    			if ($(clean[x]))
					$(clean[x]).addClass("hidden");

    		var table = $('galtable');
   			if (table )
   				table.remove();
   			
    		if (!window.oldie)
    		{
	        	table = new Element('table', { 'id': 'galtable', 'class': 'gallist', 'border' : '0'})
	        	table.removeClass('hidden')
    		}	
    		else
    		{
    			table = '<table class="gallist" id="galtable" border="0" >'
    		}
    			
			var cats = this.response["xml"].getElementsByTagName("cat")
       		for (i=0; i < cats.length; i++)
        	{
        		var tr;
        		if (!window.oldie)
					tr = new Element('tr')
				else
					table += "<tr ";
					
				var mtemp = cats[i].getElementsByTagName("tr")
				if(mtemp[0])
				{
					var tmp = mtemp[0].getElementsByTagName("property");
				
					for (j=0; j < tmp.length; j++)
					{
						if (!window.oldie)
							tr.setAttribute(tmp[j].getAttribute('name'), tmp[j].firstChild.data);
						else
							table += tmp[j].getAttribute('name') +'="' + tmp[j].firstChild.data + '"';
					}
				}
				
				if (!window.oldie)
					table.appendChild(tr);
				else 
					table += '>'
				
				mtemp = cats[i].getElementsByTagName("td");
				for (j=0; j < mtemp.length; j++)
				{
					if (!window.oldie)
						var td = new Element('td')
					else
						table += '<td '
					
					tmp = mtemp[j].getElementsByTagName("property");
					for (k=0; k < tmp.length; k++)
					{
						if (!window.oldie)
							td.setAttribute(tmp[k].getAttribute('name'), tmp[k].firstChild.data);
						else
							table += tmp[k].getAttribute('name') +'="' + tmp[k].firstChild.data + '"';
					}
					
					tmp = mtemp[j].getElementsByTagName("value");
					if (!window.oldie)
					{
						td.innerHTML = tmp[0].firstChild.data;
						tr.appendChild(td)
					}
					else
						table += '>' + tmp[0].firstChild.data + '</td>'; 
				}
				if (window.oldie)
					table += '</tr>';
        	}
				if (window.oldie)
					table += '</table>';        	
			var res = this.response["xml"].getElementsByTagName("galid");
    		var galid = false;
    		if (res[0])
    			galid = res[0].firstChild.data;

			if (galid)
    			if (!isActiveGal(galid))
    				setActiveGal(galid)
			
    		if (!window.oldie)
    			$E('.piccontainer').appendChild(table)
    		else
    			$E('.piccontainer').innerHTML+=table;
    	},
    	onFailure: function()
    	{
    		createNotice('Error occured while connecting. Please wait a while and try again.');	
    	}
	}).request();
	return false;
}

function createNotice(msg)
{
	var notice = new Element('div', {
    	'events': {
        	'click': function(){
            	this.remove();
        	}
    	},
    	'class': 'noticeDiv'
	}).adopt(new Element('img', {
		'src' : '/img/morda.png',
		'alt':'Error occured. Mr. Face is sad.',
		'title':'Error occured. Mr. Face is sad.'})).adopt( 
		new Element('p').setText(msg)
	).adopt( new Element('span', {'class': 'noticeClose'}).setText('Click to close')).injectInside(document.body);
}

function parseIDforGalID (id)
{
	id = id.substr(7,1);
	if (isNaN(id) )
		return false
	return parseInt(id);
}

function isActiveGal(id)
{
	id = parseInt(id);
	if (id == ACTIVEGAL)
		return true;
	return false
}

function setActiveGal(id)
{
	id = parseInt(id);
	MENUGALS[ACTIVEGAL].el.removeClass('menuitem-active');
	MENUGALS[ACTIVEGAL].list.removeClass('gal_active');
	MENUGALS[ACTIVEGAL].active=false;
	MENUGALS[id].el.addClass('menuitem-active');
	MENUGALS[id].list.addClass('gal_active');
	if (MENUGALS[id].el.galSlide.hidden)
	{
		MENUGALS[id].el.galSlide.stop();
		MENUGALS[id].el.galSlide.show();
		if (!window.oldie) MENUGALS[id].toggler.setText(TOGGLE_FOLD);
    	else MENUGALS[id].toggler.innerHTML=TOGGLE_FOLD;
		MENUGALS[id].active=false;
	}
	ACTIVEGAL = id;
	adjustContentHeight();
}
function adjustContentHeight()
{
	var style;
	if (!window.oldie || window.iever > 6)
		style = 'min-height';
	else
		style = 'height';
		
	if (window.iever == 7)
	{
		height += 20;
	}	
	var height = $('navlist').getStyle('height').toInt()+55 ;
	
	if ($('main'))
		$('main').setStyle(style, height+'px');
	else if ($E('.index'))
		$E('.index').setStyle(style, height+'px');
	else if ($E('.piccontainer'))
		$E('.piccontainer').setStyle(style, height+20+'px');
	else if ($E('.news'))
		$E('.news').setStyle(style, height+'px');
}

window.addEvent('domready', function(){
	
	var menuTips = new Tips($$('.galentry, .menuitem'));
	var langTips = new Tips($$('.langchooser'));
	
	if ( $('lng_pl') )
		$('lng_pl').addEvent('click', function(e){
			if (LOCATION != '')
			{
				e= new Event(e);
				e.stop();
				if (LANG != 'pl')
				{
					window.location = LOCATION+"pl";
				}
			}
		})
	
	if ( $('lng_en') )
		$('lng_en').addEvent('click', function(e){
			if (LOCATION != '')
			{
				e= new Event(e);
				e.stop();
				if (LANG != 'en')
				{
					window.location = LOCATION+"en";
				}
			}
		})
	
	$$('.galhead').each(function(el){
		var elSlide = el.getNext();
		el.galSlide = new Fx.Slide(elSlide, {onStart: function() { this.hidden = !this.hidden; }, onComplete: function() {elSlide.removeClass('hidden'); adjustContentHeight();} });
		el.galSlide.hidden = false;
		
		var galid = parseIDforGalID(el.id);
		var arr = new Array();
		
		var span = new Element('span', { 'class': 'galtoggle', 'events': {'click': function(e){
			e= new Event(e);
			e.stop();
            el.galSlide.toggle();
           	
           	if (!window.oldie) this.setText((el.galSlide.hidden) ? TOGGLE_UNFOLD : TOGGLE_FOLD);
    		else this.innerHTML= (el.galSlide.hidden) ? TOGGLE_UNFOLD : TOGGLE_FOLD;
        }
    	}});
    	if (!window.oldie) span.appendText(TOGGLE_FOLD);
    	else span.innerHTML=TOGGLE_FOLD;
    	el.appendChild(span);
		
    	if (!elSlide.hasClass('gal_active'))
    	{
    		el.galSlide.toggle();
    		if (!window.oldie) span.setText(TOGGLE_UNFOLD);
    		else span.innerHTML=TOGGLE_UNFOLD;
  			arr.active=false;
    	}
    	else
    	{
			arr.active=true;
			ACTIVEGAL = galid;
    	}
		arr.galid = galid;
		arr.el = el
		arr.toggler = span
		arr.list = elSlide;
		
		MENUGALS[galid] = arr;
	}
	);
	adjustContentHeight();
	if (location.hash.length > 1)
	{ 
		var loc = new String(window.location);
		var hash = new String(location.hash);
		if (loc.match(/\/(category|gallery|pic)/))
		{
			var parts = hash.split('/');
			
			if(parts[0] == "#category")
			{
				if (!isNaN(parts[1]))
				{
					GetPicList(parts[1])
				}
			}
			else if (parts[0] == "#pic")
			{
				if (!isNaN(parts[1]))
				{
					GetFull(parts[1])
				}
			}
			else if (parts[0] == "#gallery")
			{
				if (!isNaN(parts[1]))
				{
					GetCatList(parts[1])
				}
			}
		}
	}
	
});
