/* Foto Galery Autumn 2009 by Grany */
var photogalery = {
	currentPhoto: null,
	sizesX: [200, 288, 320, 400, 512, 576, 640, 720, 800],//, 912, 1024, 1280, 1600
	sizesY: [150, 216, 240, 300, 384, 432, 480, 540, 600],//, 684, 768, 1024, 1200
	pic1: new Image,
	pic2: new Image,
	init: function() {
		base.init();
	
		var bb = dom.cE('div'), nc = dom.cE('div'), np = dom.cE('div'), np2 = dom.cE('img'), gs = base.getScreen();
		
		var al = dom.cE('img'), ar = dom.cE('img'), cl = dom.cE('img'), ib = dom.cE('img'), iw = dom.cE('div'), ciw = dom.cE('img'), load = dom.cE('div');
		
		iw.id = 'infoWindow';
		iw.style.zIndex = 10000;
		dom.sS(iw, 'display', 'none');
		dom.sS(iw, 'width', '360px');
		dom.sS(iw, 'height', '200px');
		dom.sS(iw, 'position', 'absolute');
		dom.sS(iw, 'backgroundColor', '#ffffff');
		dom.sS(iw, 'border', '3px solid #aaaaaa');
		dom.sS(iw, 'textAlign', 'left');
		dom.sS(iw, 'padding', '4px');
		iw.style.opacity = 0;
		iw.style.filter = "alpha(opacity=0)";
		
		iw.innerHTML += '<b>Nápověda k prohlížení</b><br /><br />Fotky si můžete posouvat buď pomocí tlačítek na bočních stranácch fotek nebo pomocí kláves šipek (doleva nebo doprava). Prohlížení fotek skončíte kliknutím na červený křižek v pravém horním rohu nebo stisknutím klávesy ESC.<span class="gogpic"><a href="http://picasaweb.google.com/"><img src="http://code.google.com/intl/cs/apis/picasaweb/images/wwpicasa190x50.gif"/></a></span><span class="galerycopy">Copyright © 2009 Grany</span>';

		ciw.src = './shared/img/close-small.png';
		dom.sS(ciw, 'position', 'absolute');
		dom.sS(ciw, 'top', '3px');
		dom.sS(ciw, 'right', '3px');
		dom.sS(ciw, 'cursor', 'pointer');
		
		dom.aE(ciw, 'mouseup', function() {
			photogalery.changeOpac(0, 'infoWindow');
		}, false);
		
		dom.aC(iw, ciw);
		
		dom.aC(document.body, iw);
		
		ib.id = 'infoButton';
		ib.style.zIndex = 6;
		dom.sS(ib, 'cursor', 'pointer');
		dom.sS(ib, 'position', 'absolute');
		ib.src = './shared/img/info.png';
		ib.style.display = 'none';
		ib.style.opacity = 0;
		ib.style.filter = "alpha(opacity=0)";
		
		dom.aC(document.body, ib);
		
		cl.id = 'closeButton';
		cl.style.zIndex = 6;
		dom.sS(cl, 'cursor', 'pointer');
		dom.sS(cl, 'position', 'absolute');
		cl.src = './shared/img/close.png';
		cl.style.display = 'none';
		cl.style.opacity = 0;
		cl.style.filter = "alpha(opacity=0)";
		
		dom.aC(document.body, cl);
		
		al.id = 'arrowLeft';
		al.style.zIndex = 6;
		dom.sS(al, 'cursor', 'pointer');
		dom.sS(al, 'position', 'absolute');
		al.src = './shared/img/prev.png';
		al.style.display = 'none';
		al.style.opacity = 0;
		al.style.filter = "alpha(opacity=0)";
		
		dom.aC(document.body, al);
		
		ar.id = 'arrowRight';
		ar.style.zIndex = 6;
		dom.sS(ar, 'cursor', 'pointer');
		dom.sS(ar, 'position', 'absolute');
		ar.src = './shared/img/next.png';
		ar.style.display = 'none';
		ar.style.opacity = 0;
		ar.style.filter = "alpha(opacity=0)";
		
		dom.aC(document.body, ar);
		
		np.id = 'nightPhoto';
		np.style.display = 'none';
		dom.sS(np, 'backgroundColor', '#ffffff');
		dom.sS(np, 'backgroundRepeat', 'none');
		dom.sS(np, 'width', 'auto');
		dom.sS(np, 'height', 'auto');
		np.style.opacity = 0;
		np.style.filter = "alpha(opacity=0)";
		
		np2.id = 'nightPhoto2';
		np2.style.display = 'block';
		dom.aC(np, np2);
		
		nc.id = 'nightConteiner';
		nc.style.position = 'absolute';
		nc.style.padding = '10px';
		nc.style.minHeight = '50px';
		nc.style.backgroundColor = '#ffffff';
		nc.style.backgroundImage = 'url(./shared/img/loader.gif)';
		nc.style.backgroundRepeat = 'no-repeat';
		nc.style.backgroundPosition = 'center center';
		nc.style.zIndex = 5;
		nc.style.display = 'none';
		nc.style.opacity = 0;
		nc.style.filter = "alpha(opacity=0)";
		
		dom.aC(nc, np);
		
		bb.id = 'backgroundNight';
		bb.style.position = 'absolute';
		bb.style.top = '0px';
		bb.style.left = '0px';
		bb.style.width = gs.w - 16 + 'px';
		bb.style.height = gs.h + 'px';
		bb.style.backgroundColor = '#000000';
		bb.style.zIndex = 4;
		bb.style.display = 'none';
		bb.style.opacity = 0;
		bb.style.filter = "alpha(opacity=0)";
		
		dom.aC(document.body, nc);
		
		dom.aC(document.body, bb);

		load.id = 'loader';
		load.style.backgroundColor = '#ffffff';
		load.style.backgroundImage = 'url(./shared/img/loader2.gif)';
		load.style.backgroundRepeat = 'no-repeat';
		load.style.backgroundPosition = 'center center';
		load.style.zIndex = 10010;
		dom.sS(load, 'width', '128px');
		dom.sS(load, 'height', '42px');
		dom.sS(load, 'position', 'absolute');
		dom.sS(load, 'display', 'none');
		load.style.opacity = 0.5;
		/*dom.sS(ciw, 'top', 'px');
		dom.sS(ciw, 'left', '3px');*/
		
		/*dom.aE(ciw, 'mouseup', function() {
			photogalery.changeOpac(0, 'infoWindow');
		}, false);*/
		
		dom.aC(document.body, load);
		
		dom.aE(window, 'resize', photogalery.windowChange, false);
		dom.aE(ib, 'mouseover', function () {
			if(photogalery.getOpacity(ib) != 0)
				photogalery.changeOpac(100, ib.id);
		}, false);
		dom.aE(ib, 'mouseout', function () {
			if(photogalery.getOpacity(ib) != 0)
				photogalery.changeOpac(60, ib.id);
		}, false);
		dom.aE(ib, 'mouseup', function () {
			var iw = dom.gI('infoWindow');
			if(photogalery.getOpacity(iw) != 0)
				photogalery.changeOpac(0, iw.id);
			else
				photogalery.changeOpac(100, iw.id);
		}, false);
		dom.aE(cl, 'mouseover', function () {
			if(photogalery.getOpacity(cl) != 0)
				photogalery.changeOpac(100, cl.id);
		}, false);
		dom.aE(cl, 'mouseout', function () {
			if(photogalery.getOpacity(cl) != 0)
				photogalery.changeOpac(60, cl.id);
		}, false);
		dom.aE(cl, 'mouseup', function () {
			photogalery.close();
		}, false);
		dom.aE(al, 'mouseover', function () {
			if(photogalery.getOpacity(al) != 0)
				photogalery.changeOpac(100, al.id);
		}, false);
		dom.aE(al, 'mouseout', function () {
			if(photogalery.getOpacity(al) != 0)
				photogalery.changeOpac(60, al.id);
		}, false);
		dom.aE(al, 'mouseup', function () {
			photogalery.setPhoto(false);
		}, false);
		dom.aE(ar, 'mouseover', function () {
			if(photogalery.getOpacity(ar) != 0)
				photogalery.changeOpac(100, ar.id);
		}, false);
		dom.aE(ar, 'mouseout', function () {
			if(photogalery.getOpacity(ar) != 0)
				photogalery.changeOpac(60, ar.id);
		}, false);
		dom.aE(ar, 'mouseup', function () {
			photogalery.setPhoto(true);
		}, false);
		var keyie = (base.isIE ? window.document : window);
		dom.aE(keyie, 'keydown', photogalery._keyPresed, false);
		dom.aE(np2, 'load', function() {
			var img2 = dom.gI('nightPhoto2');

			photogalery.changeLayout(img2.width, img2.height);
			photogalery._loaded();
		}, false);
	},
	initNight: function() {
		var bn, gs, scrollY = (base.isIE ? document.body.scrollTop || document.documentElement.scrollTop : window.pageYOffset);

		var h = dom.pN(document.body);
		h.style.overflow = 'hidden';

		if (base.isGecko) {
			window.scrollTo(0, scrollY);
		}

		bn = dom.gI('backgroundNight'), gs = base.getScreen();
		
		bn.style.width = gs.w + 'px';
		bn.style.top = gs.y + 'px';

		photogalery.changeOpac(70, 'backgroundNight');
	},
	setPhoto: function(w) {
		var img = dom.gI('nightPhoto'), img2 = dom.gI('nightPhoto2'), nc = dom.gI('nightConteiner'), src, bs = photogalery.bestSize(), newp, load = dom.gI('loader');

		dom.sS(load, 'display', 'block');

		if(w) {
			newp = parseInt(photogalery.currentPhoto) + 1;
			photogalery.pic1.src = photogalery.photos[newp + 1];
			photogalery.pic2.src = photogalery.photos[newp - 2];
		} else {
			newp = parseInt(photogalery.currentPhoto) - 1;
			photogalery.pic1.src = photogalery.photos[newp - 1];
			photogalery.pic2.src = photogalery.photos[newp + 2];
		}

		src = photogalery.photos[newp];

		if(typeof src == 'undefined') {
			dom.sS(load, 'display', 'none');
			return;
		}
		
		photogalery.currentPhoto = newp;
		photogalery.ctrlAboutPosition();
		
		img2.src = src.replace('s72', 's' + bs.x);
		
		var nextpos;
		if(w) {
			nextpos = newp + 1;
		} else {
			if((newp - 1) >= 0) {
				nextpos = newp - 1;
			}
		}
		if (!base.isWebKit) {
			var nextsrc = photogalery.photos[nextpos];

			if(typeof nextsrc == 'undefined')
				return;

			imageLoad = new Image(); //' + bs.x + ',' + bs.y + '
			imageLoad.src = nextsrc.replace('s72', 's' + bs.x);
		} else {
			var img3 = dom.gI('nightPhoto2');
			photogalery.changeLayout(img3.width, img3.height);
		}
	},
	changeLayout: function(w, h) {
		var p = photogalery, w = parseInt(w), h = parseInt(h), gs = base.getScreen(), bs = p.bestSize(), nc = dom.gI('nightConteiner'), scrollY = (base.isIE ? document.body.scrollTop || document.documentElement.scrollTop : window.pageYOffset), dx, dy;
		
		if(p.photosRot[p.currentPhoto]) //celou fotku
			bs = p.bestSize(2);
		
		dx = (gs.w - w - 20)/2;
		dy = (gs.h - h - 20)/2;
		
		dom.sS(nc, 'left', dx + 'px');
		dom.sS(nc, 'top', scrollY + dy + 'px');
		dom.sS(nc, 'height', h + 'px');
		
		if(p.photosRot[p.currentPhoto])
			dom.sS(nc, 'width', w + 'px');
	},
	windowChange: function() {
		var gs = base.getScreen(), bs = photogalery.bestSize();
		var bn = dom.gI('backgroundNight'), dc = dom.gI('nightConteiner');
		var al = dom.gI('arrowLeft'), ar = dom.gI('arrowRight');
		var cl = dom.gI('closeButton'), ib = dom.gI('infoButton');
		var img = dom.gI('nightPhoto'), img2 = dom.gI('nightPhoto2');
		var scrollY = base.isIE ? document.body.scrollTop || document.documentElement.scrollTop : window.pageYOffset;
		var iw = dom.gI('infoWindow'), load = dom.gI('loader');
		
		// prekreslit info okno
		dom.sS(iw, 'top', scrollY + gs.h/2 - 100 + 'px');
		dom.sS(iw, 'left', gs.w/2 - 180 + 'px');
		
		var dx = (gs.w - bs.x - 20)/2;
		var dy = (gs.h - bs.y - 20)/2;
		
		// levou sipku
		dom.sS(al, 'left', parseInt(dx - 58) + 'px');
		dom.sS(al, 'top', parseInt(scrollY + gs.h/2 - 24) + 'px');
		
		// pravou sipku
		dom.sS(ar, 'left', parseInt(dx + 40 + bs.x) + 'px');
		dom.sS(ar, 'top', parseInt(scrollY + gs.h/2 - 24) + 'px');
		
		// clouse button
		dom.sS(cl, 'top', scrollY + 10 +'px');
		dom.sS(cl, 'right', 10 + 'px');
		
		// info button
		dom.sS(ib, 'top', scrollY + 47 + 'px');
		dom.sS(ib, 'right', 10 + 'px');
		
		// okno s fotkou
		dom.sS(dc, 'left', dx + 'px');
		dom.sS(dc, 'top', scrollY + dy + 'px');
		dom.sS(dc, 'width', bs.x + 'px');
		
		//pozadi
		dom.sS(bn, 'width', gs.w + 'px');
		dom.sS(bn, 'height', gs.h + 'px');

		// loader
		dom.sS(load, 'top', scrollY + gs.h/2 - 21 + 'px');
		dom.sS(load, 'left', gs.w/2 - 64 + 'px');
	},
	showPhoto: function(pos) {
		var p = photogalery;
		photogalery.currentPhoto = pos;
		
		var src = p.photos[pos], gs = base.getScreen(), bs = p.bestSize(), bn = dom.gI('backgroundNight'), dc = dom.gI('nightConteiner'), img = dom.gI('nightPhoto'), img2 = dom.gI('nightPhoto2'), al = dom.gI('arrowLeft'), ar = dom.gI('arrowRight'), cl = dom.gI('closeButton'), ib = dom.gI('infoButton'), scrollY = (base.isIE ? document.body.scrollTop || document.documentElement.scrollTop : window.pageYOffset), iw = dom.gI('infoWindow'), load = dom.gI('loader');
		var nextpos, nextsrc = '';

		if(typeof load == 'undefined')
			return;

		photogalery.initNight();
		
		dom.sS(iw, 'display', 'block');
		dom.sS(ib, 'display', 'block');
		dom.sS(cl, 'display', 'block');
		dom.sS(bn, 'display', 'block');
		dom.sS(dc, 'display', 'block');
		dom.sS(al, 'display', 'block');
		dom.sS(ar, 'display', 'block');
		dom.sS(img, 'display', 'block');
		dom.sS(load, 'display', 'block');
		//dom.sS(img2, 'display', 'block');

		dom.sS(bn, 'width', gs.w + 'px');
		dom.sS(bn, 'height', gs.h + 'px');
		dom.sS(bn, 'top', scrollY + 'px');
		
		dom.sS(iw, 'top', scrollY + gs.h/2 - 100 + 'px');
		dom.sS(iw, 'left', gs.w/2 - 180 + 'px');

		dom.sS(load, 'top', scrollY + gs.h/2 - 21 + 'px');
		dom.sS(load, 'left', gs.w/2 - 64 + 'px');
		
		var dx = (gs.w - bs.x - 20)/2;
		var dy = (gs.h - bs.y - 20)/2;
		
		dom.sS(al, 'left', parseInt(dx - 58) + 'px');
		dom.sS(al, 'top', parseInt(scrollY + gs.h/2 - 24) + 'px');
		dom.sS(ar, 'left', parseInt(dx + 40 + bs.x) + 'px');
		dom.sS(ar, 'top', parseInt(scrollY + gs.h/2 - 24) + 'px');
		
		if(pos != 0)
			photogalery.changeOpac(60, al.id);
			
		if(pos != (photogalery.photos.length - 1))
			photogalery.changeOpac(60, ar.id);
			
		dom.sS(cl, 'top', scrollY + 10 +'px');
		dom.sS(cl, 'right', 10 + 'px');
		photogalery.changeOpac(60, cl.id);

		dom.sS(ib, 'top', scrollY + 47 + 'px');
		dom.sS(ib, 'right', 10 + 'px');
		photogalery.changeOpac(60, ib.id);

		dom.sS(dc, 'left', dx + 'px');
		dom.sS(dc, 'top', scrollY + dy + 'px');
		dom.sS(dc, 'width', bs.x + 'px');
		photogalery.changeOpac(100, dc.id);
		
		img.style.backgroundImage = "url(" + src.replace('s72', 's' + bs.x) + ")";
		img2.src = src.replace('s72', 's' + bs.x);

		photogalery.changeOpac(100, 'nightPhoto');
		photogalery.ctrlAboutPosition();
		
		/*
		var nextpos = pos + 1;
		var nextsrc = p.photos[pos + 1];
		eval('image' + nextpos + ' = new Image();'); //' + bs.x + ',' + bs.y + '
		eval('image' + nextpos + '.src = "' + nextsrc.replace('s72', 's' + bs.x) + '";');*/

		if (!base.isWebKit) {
			nextpos = pos + 1;
			nextsrc = p.photos[nextpos];

			if(typeof nextsrc == 'undefined')
				return;

			imageLoad = new Image(); //' + bs.x + ',' + bs.y + '
			imageLoad.src = nextsrc.replace('s72', 's' + bs.x);
		}
	},
	bestSize: function() {
		var gs = base.getScreen(), i, j = 0, p = photogalery;
		
		if(arguments.length > 0)
			j = arguments[0];
		
		for(i = 0; i < p.sizesY.length - j; i++) {
			if(p.sizesX[i] <= gs.h - 20 && p.sizesX[i + 1] >= gs.h - 20)
				return {
					x: p.sizesX[i],
					y: p.sizesY[i]
				};
		}
		
		return {
			x: p.sizesX[p.sizesX.length - 1 - j],
			y: p.sizesY[p.sizesY.length - 1 - j]
		};
	},
	ctrlAboutPosition: function() {
		var last = photogalery.photos.length - 1, pos = parseInt(photogalery.currentPhoto), al = dom.gI('arrowLeft'), ar = dom.gI('arrowRight');
		
		if(pos == 0) {
			dom.sS(al, 'display', 'none');
		}
		
		if(pos > 0) {
			dom.sS(al, 'display', 'block');

			if(photogalery.getOpacity(al) < 0.7)
				photogalery.changeOpac(60, al.id);
		}
		
		if(pos == last) {
			dom.sS(ar, 'display', 'none');
		}
			
		if(pos < last) {
			dom.sS(ar, 'display', 'block');
      
			if(photogalery.getOpacity(ar) < 0.7)
				photogalery.changeOpac(60, ar.id);
		}
	},
	close: function() {
		var bn = dom.gI('backgroundNight'), nc = dom.gI('nightConteiner'), al = dom.gI('arrowLeft'), ar = dom.gI('arrowRight'), np = dom.gI('nightPhoto'), np2 = dom.gI('nightPhoto2'), ib = dom.gI('infoButton'), cl = dom.gI('closeButton'), iw = dom.gI('infoWindow'), load = dom.gI('loader');
		
		if(photogalery.getOpacity(iw) != 0)
			photogalery.changeOpac(0, iw.id);

/*

							 ` 		|    `
					 `		 ` / \ `     `
             `    /   \    ` 
     `         ` /     \ `         `
         `      /   |   \      `  
             ` /    |    \ `
              /     |     \
    `   `   ` \     |     / `   `   `
               \    |    /
              ` \   |   / `
            `    \     /     `
          `     ` \   / `       `
              `    \ /    `
            `     ` | `     `
                `       ` 
*/
		/*photogalery.changeOpac(0, ib.id);
		photogalery.changeOpac(0, cl.id);
		photogalery.changeOpac(0, al.id);
		photogalery.changeOpac(0, ar.id);
		photogalery.changeOpac(0, nc.id);
		photogalery.changeOpac(0, bn.id);
		photogalery.changeOpac(0, al.id);
		photogalery.changeOpac(0, ar.id);*/
		
		dom.sS(iw, 'display', 'none');
		dom.sS(ib, 'display', 'none');
		dom.sS(cl, 'display', 'none');
		dom.sS(bn, 'display', 'none');
		dom.sS(nc, 'display', 'none');
		dom.sS(al, 'display', 'none');
		dom.sS(ar, 'display', 'none');
		dom.sS(np, 'display', 'none');
		dom.sS(load, 'display', 'none');

		var h = dom.pN(document.body);
		h.style.overflow = 'auto';
	},
	_keyPresed: function(e) {
		var ev = dom.fE(e), keynum;
		
		if(base.isIE) // IE
			keynum = ev.keyCode;
		else // Netscape/Firefox/Opera
			keynum = ev.which;
		
		//alert(keynum);
		switch(keynum) {
			case 27: //esc
				photogalery.close();
				break;
			case 37: //left
				photogalery.setPhoto(false);
				break;
			case 38: //top
				break;
			case 39: //right
				photogalery.setPhoto(true);
				break;
			case 40: //down
				break;
			case 107: //num +
				break;
			case 109: //num -
				break;
		}
	},
	_loaded: function(e) {
		var load = dom.gI('loader');
		dom.sS(load, 'display', 'none');
	},
	setOpacity: function(n, o) {
		var obj = dom.gI(n);
		//alert(obj);
		if(!base.isIE)
			obj.style.opacity = o;
		else
			obj.style.filter = "alpha(opacity='" + parseInt(parseFloat(o) * 100) + "')";
		
		//alert(n.style);
		//alert(obj.style.filter);
	},
	changeOpac: function(opacity, id) {
	    var object = document.getElementById(id).style;
	    object.opacity = (opacity / 100);
	    object.MozOpacity = (opacity / 100);
	    object.KhtmlOpacity = (opacity / 100);
	    object.filter = "alpha(opacity=" + opacity + ")";
	},
	getOpacity: function(n) {
		if(!base.isIE)
			return parseFloat(n.style.opacity);
		else
			return parseInt(n.style.filter.match(/[\d]+/g))/100;
	}
}

