/*
JavaScript Gallery
Copyright (C) 2008 Aptus s.c.
All rights reserved
*/

var jsgId='JSgallery';
var jsgImgPath='i/';
var jsgDefaultId='jsg';

var jsgOldOnResize, jsgOldOnScroll;
var jsgActive=null;
var jsgGalleries=[];
var jsgCallback=false;
var jsgSrc;

function jsgMove()
{
	var e=document.getElementById(jsgId+'_window');
	if(e) {
		var es=e.style;
		var mx=document.body.scrollLeft;
		var my=document.body.scrollTop;
		var cx=document.body.clientWidth;
		var cy=document.body.clientHeight;

		var x=Math.floor(cx/2-e.offsetWidth/2)+mx;
		var y=Math.floor(cy/2-e.offsetHeight/2)+my;
//		alert('my: '+my+' cy: '+cy+' offsetHeight: '+e.offsetHeight+' y: '+y);
		if(y<0)
			y=0;
		if(x<0)
			x=cx-e.offsetWidth;
		es.marginLeft=x+'px';
		es.marginTop=y+'px';
	}
}

function jsgOnScroll(e)
{
	jsgMove();
	if(jsgOldOnScroll)
		jsgOldOnScroll(e);
}

function jsgResize()
{
	var e=document.getElementById(jsgId);
	if(e) {
		var es=e.style;
		if(es.display!='none') {
			es.display='none';
			es.width=document.body.scrollWidth+'px';
			es.height=(document.body.scrollHeight>document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight)+'px';
			es.display='';
		}
		jsgMove();
	}
}

function jsgOnResize(e)
{
	jsgResize();
	if(jsgOldOnResize)
		jsgOldOnResize(e);
}

function jsgReadyState()
{
	if(event.srcElement.readyState=='complete')
		jsgMove();
}

function jsgLoad(e)
{
	jsgMove();
}

function jsgImgClick(e)
{
	var x=e ? (e.offsetX ? e.offsetX : e.pageX-this.x) : event.offsetX;
	if(x<this.offsetWidth/2)
		jsgActive.prev();
	else
		jsgActive.next();
}

function jsgInit()
{

	var e=document.getElementById(jsgId);
	if(!e) {
		jsgOldOnResize=window.onresize;
		window.onresize=jsgOnResize;
		jsgOldOnScroll=window.onscroll;
		window.onscroll=jsgOnScroll;
		var e=document.createElement('div');
		e.id=jsgId;
		e.style.position='absolute';
		e.style.left='0px';
		e.style.top='0px';
		e.style.backgroundImage='url('+jsgImgPath+'jsg_bg.gif)';
		e.innerHTML='<table id="'+jsgId+'_window" cellspacing=0 cellpadding=0 class="jsg"><tr><td class="header"><a href="javascript:jsgClose();void(0);"><img src="'+jsgImgPath+'jsg_close.gif"></a><span id="'+jsgId+'_title"></span></td></tr><tr><td class="image"><img src="" id="'+jsgId+'_image"></td></tr><tr><td class="footer"><div class="navi"><a href="javascript:jsgActive.first();void(0);"><img src="'+jsgImgPath+'jsg_first.gif"></a><a href="javascript:jsgActive.prev();void(0);"><img src="'+jsgImgPath+'jsg_prev.gif"></a><a href="javascript:jsgActive.next();void(0);"><img src="'+jsgImgPath+'jsg_next.gif"></a><a href="javascript:jsgActive.last();void(0);"><img src="'+jsgImgPath+'jsg_last.gif"></a></div><span id="'+jsgId+'_desc"></span></td></tr></table>';
		document.body.appendChild(e);
		e=document.getElementById(jsgId);
		var img=document.getElementById(jsgId+'_image');
		if(img.addEventListener)
			img.addEventListener('load',jsgLoad,false);
		else
			img.attachEvent('onreadystatechange',jsgReadyState);
		img.onclick=jsgImgClick;
		jsgResize();
	}
	e.style.display='';
}

function jsgClose()
{
	var e=document.getElementById(jsgId);
	if(e) {
		e.style.display='none';
		document.getElementById(jsgId+'_image').src='';
	}
	jsgActive=null;
}

function jsgShow(i)
{
	this.current=i;
	var img=this.images[i];
	document.getElementById(jsgId+'_image').src=typeof(img)=='object' ? img[0] : img;
	document.getElementById(jsgId+'_desc').innerHTML=(i+1)+'/'+this.images.length+' '+(typeof(img)=='object' ? img[1] : '');
}

function jsgOpen(i)
{
	jsgInit();
	jsgActive=this;
	document.getElementById(jsgId+'_title').innerHTML=this.title;
	this.show(i);
}

function jsgFirst()
{
	this.show(0);
}

function jsgPrev()
{
	if(this.current>0)
		this.show(this.current-1);
}

function jsgNext()
{
	if(this.current<this.images.length-1)
		this.show(this.current+1);
}

function jsgLast()
{
	this.show(this.images.length-1);
}

function jsgFind(i)
{
	var c;
	for(c=0; c<this.images.length; c++)
		if(i==(typeof(this.images[c])=='object' ? this.images[c][0] : this.images[c]))
			return c;
	return null;
}

function JSgallery(g,t)
{
	this.images=g;
	this.title=t;
	this.open=jsgOpen;
	this.show=jsgShow;
	this.first=jsgFirst;
	this.prev=jsgPrev;
	this.next=jsgNext;
	this.last=jsgLast;
	this.find=jsgFind;
}

function jsgFindImages(e)
{
	var img=new Array();
	var i,j;
	for(i=0; i<e.childNodes.length; i++)
		if(e.childNodes[i].tagName) {
			if(e.childNodes[i].tagName=='IMG' && e.childNodes[i].onclick) {
				e.childNodes[i].onclick();
				img.push([jsgSrc,e.childNodes[i].title]);
			}
			var img2=jsgFindImages(e.childNodes[i]);
			for(j=0; j<img2.length; j++)
				img.push(img2[j]);
		}
	return img;
}

function jsgClick(i,e,d)
{
	var l=false;
	var jsgTmp;
	if(jsgCallback) {
		jsgSrc=i;
		return;
	}
	if(typeof(e)=='object')
		l=true;
	else
		d=e;
	if(typeof(d)=='undefined')
		d=jsgDefaultId;
	if(l || typeof(jsgGalleries[d])=='undefined') {
		var bl;
		if(l)
			while(e) {
				e=e.parentNode;
				if(e.id==d) {
					bl=e;
					break;
				}
			}
		else
			bl=document.getElementById(d);
		if(!bl)
			return;
		jsgCallback=true;
		var img=jsgFindImages(bl);
		jsgCallback=false;
		jsgTmp=new JSgallery(img,bl.title);
		if(!l)
			jsgGalleries[d]=jsgTmp;
	}
	else
		jsgTmp=jsgGalleries[d];
	jsgTmp.open(jsgTmp.find(i));
}


function img1(name) {
	 img=new Image();
     img.src = '/i/'+name+'.gif';
	 document.images[name].src=img.src;
}

function img2(name) {
	 img=new Image();
     img.src = '/i/'+name+'b.gif';
	 document.images[name].src=img.src;
}

function dbl(t) {
	if(t.dlg_clicked)
		return false;
	t.dlg_clicked=true;
	return true;
}


function toggleMenu(elem)
{
	if(elem.nodeName.toLowerCase()=='a'){
		while(elem.nodeName.toLowerCase()!='div'){
			elem = elem.nextSibling;
				if(!elem)
				return;
		}
		elem.parentNode.className=='btn4'?elem.parentNode.className='btn2':elem.parentNode.className='btn4';
		if(elem.className=='buttons' && elem.style.display=='none')
			elem.style.display='block';
		else if(elem.className=='buttons' && elem.style.display=='block')
			elem.style.display='none';
	}
	else{
		childs = elem.childNodes;
		for(var i=0;i<childs.length;i++)
			if(childs[i].className=='buttons' && childs[i].style.display=='none')
				childs[i].style.display='block';
			else if(childs[i].className=='buttons' && childs[i].style.display=='block')
				childs[i].style.display='none';
	}
}

function toggleClass(elem,a)
{
	if(a==1){
		if(elem.className=='btn2')
			elem.className='btn4';
		else
			elem.className='btn2';
		clearClass();
	}
	else{
		switch(elem.className){
			case 'btn2':elem.className='btn';break;
			case 'btn3':elem.className='btn4';break;
			case 'btn4':elem.className='btn3';break;
			default: elem.className='btn2';break;
		}
	}
}

function mouse_over(elem){
	switch(elem.className){
		case 'btn':elem.className='btn2';break;
		case 'btn3':elem.className='btn4';break;
		default: elem.className='btn2';break;
	}
}

function mouse_out(elem){
	switch(elem.className){
		case 'btn2':elem.className='btn';break;
		case 'btn4':elem.className='btn3';break;
		default: elem.className='btn';break;
	}
}

function clearClass(){
	var menu = document.getElementById('menu');
	if(!menu)
		return;
	items = menu.getElementsByTagName('div');
	for(var i=0;i<items.length;i++){
		if(items[i].nodeName.toLowerCase()=='div' && items[i].className=='btn3')
			items[i].className='btn';
	}
}

var sub_click = false;
window.onload = function(){
	var menu = document.getElementById('menu');
	if(!menu)
		return;
	items = menu.getElementsByTagName('div');
	for(var i=0;i<items.length;i++){
		if(items[i].nodeName.toLowerCase()=='div' && (items[i].className=='btn' || items[i].className=='btn3')){
			items[i].onmouseover = function(){mouse_over(this);}
			items[i].onmouseout = function(){mouse_out(this);}
			items[i].onclick = function(){if(sub_click){sub_click=false;}else{toggleClass(this,1);}}
		}
		if(items[i].nodeName.toLowerCase()=='div' && items[i].className=='subitems')
			items[i].onclick = function(){sub_click=true;}
	}
}