// DDS Galéria

var idstohide=new Array(); //TODO!! flash tartalmu elemek id-i.

var imgpath="/galeria/thumb2/";
var imgpath2="/galeria/full/";
var thumbpath="/galeria/thumb1/";
var noimage="images/sp.gif";
var imagedata=new Array();
var images=new Array();

var zoomed = null;

var current = 0;
function galSize(width,height) {
	this.width = width;
	this.height = height;
}

function isArray(obj) {
    return obj.constructor == Array;
}

function array_chunk( input, size ) {
	for(var x, i = 0, c = -1, l = input.length, n = []; i < l; i++){
		(x = i % size) ? n[c][x] = input[i] : n[++c] = [input[i]];
	}
	return n;
}

function galImage(src,txt,pnr,desc,id) {
	this.src = imgpath+src;
	this.thumb = thumbpath+src
	this.full = imgpath2+src;
	this.text = txt;
	this.desc = desc;
	this.nr = pnr;
	this.top = '';
	this.left = '';
	this.width = '';
	this.height = '';
	this.afterLoad = '';
	this.id=id;
	var galimg=this;
	this.loadImage = function() {
		galimg.preimg=new Image();
		galimg.preimg.onload=function(){
			galimg.top=-1+(450-galimg.preimg.height)/2+'px';
        		galimg.left=-1+(600-galimg.preimg.width)/2+'px';
        		galimg.width=galimg.preimg.width;
        		galimg.height=galimg.preimg.height;
        		galimg.loaded=1;
        		if(typeof(galimg.afterLoad)=="function") {
        			galimg.afterLoad();
        			galimg.afterLoad='';
        		}
               	}
        	galimg.preimg.src=galimg.src;
	}
	this.loadThumb = function() {
		galimg.pretimg=new Image();
		galimg.pretimg.onload=function(){
			galimg.tloaded=1;
        		thumbsloaded+=1;
        		if(thumbsloaded==images.length) {
        			loadThumbs();
        		}
               	}
        	galimg.pretimg.src=galimg.thumb;
	}
}


function prevImage(){
	var image=document.getElementById('lbimage');
	current--;
	if(current<0) {
		current=0;
		return;//current=images.length-1;
	}
	showImage(current);
}

function nextImage(){
	var image=document.getElementById('lbimage');
	current++;
	if(current==images.length) {
		current=images.length-1;
		return;//current=0;
	}
	showImage(current);
}

function prevfImage(){
	var image=document.getElementById('lbimage');
	current--;
	if(current<0) {
		current=0;
		return;//current=images.length-1;
	}
	showfImage(current);
}

function nextfImage(){
	var image=document.getElementById('lbimage');
	current++;
	if(current==images.length) {
		current=images.length-1;
		return;//current=0;
	}
	showfImage(current);
}

function showImage(id) {
	current=id;
	var pri=new Image();
	var page = getPageSize();
	var sizes = getImageSizes(images[id].w+20,images[id].h+40,page[0]-100,page[1]-180);
	var positions = getcenter(sizes[0]+40,sizes[1]);
	var scroll = getPageScrollTop();
			
	var gn=document.getElementById('gnext');
	var gp=document.getElementById('gprev');
	gn.style.color='';
	gp.style.color='';
	
	if(current==0) gp.style.color="#dddddd";
	if(current==images.length-1) gn.style.color="#dddddd";
	
	pri.onload=function() {
		var fimage=document.getElementById('lbimage');
		var count=document.getElementById('lbcount');
		var box=document.getElementById('fullbox');
		var samesize = (fimage.width==sizes[0] && fimage.height==sizes[1])?1:0;
		fimage.width=sizes[0];
		fimage.height=sizes[1];
		count.innerHTML=(current+1)+'/'+images.length;
		fimage.src=images[id].full;
		if(!samesize) {
			document.getElementById('fbcont').style.display='none';
			box.postAction=function() {
				document.getElementById('fbcont').style.display='';
			}
			DDSanim.resizeTo('fullbox',sizes[0],sizes[1],positions[0],positions[1],500);
		}
	}
	pri.src=images[id].full;
}

function gInit(imagedata,sti,fpath) {
	var thumbtd = document.getElementById("fbthumbs");
	var tdata = '<table class="fbthumbtable"><tr>';
    current=(sti)?sti:0;
    images=[];
    for(var im=0;im<imagedata.length;im++) {
            if(!images[im]) images[im] = new galImage(imagedata[im].file,imagedata[im].title,im,imagedata[im].desc,imagedata[im].id);
            //if(!images[im].loaded) images[im].loadImage();
            //if(!images[im].tloaded) images[im].loadThumb();
            images[im].w=imagedata[im].w;
            images[im].h=imagedata[im].h;
            if(fpath) images[im].full=fpath+imagedata[im].file;
            tdata+='<td><img class="pointer" src="'+images[im].thumb+'" width="60" height="60" onclick="showfImage('+im+');" border="0" /> </td>';
    }
    tdata+='</tr></table>';
    thumbtd.innerHTML = tdata;
    showFullImage(current);
}


function showFullImage(id) {
	current=id;
	var pri=new Image();
	var page = getPageSize();
	var sizes = getImageSizes(images[id].w,images[id].h,page[0]-100,page[1]-230);
	var scroll = getPageScrollTop();
	showHideFlash();
	
	var gn=document.getElementById('gnext');
	var gp=document.getElementById('gprev');
	gn.style.color='';
	gp.style.color='';
	
	if(current==0) gp.style.color="#dddddd";
	if(current==images.length-1) gn.style.color="#dddddd";
	
	pri.onload=function() {
		var fimage=document.getElementById('lbimage');
		var box=document.getElementById('fullbox');
		var count=document.getElementById('lbcount');
		
		count.innerHTML=(current+1)+'/'+images.length;
		fimage.src=images[id].full;
		document.getElementById('lbfulltitle').innerHTML=(images[id].text)?images[id].text:'';
		fimage.width=sizes[0];
		fimage.height=sizes[1];
		overlayReload();
		center('fullbox',sizes[0]+40,sizes[1]+80);
		box.style.width=sizes[0]+'px';
		box.style.height=sizes[1]+'px';
		showItem('overlay');
		showItem('fullbox');
		window.onresize=overlayReload;
	}
	pri.src=images[id].full;
}

function showfImage(id) {
	
	current=id;
	var pri=new Image();
	var page = getPageSize();
	var sizes = getImageSizes(images[id].w,images[id].h,page[0]-100,page[1]-230);
	var positions = getcenter(sizes[0]+40,sizes[1]+80);
	var scroll = getPageScrollTop();
			
	var gn=document.getElementById('gnext');
	var gp=document.getElementById('gprev');
	gn.style.color='';
	gp.style.color='';
	
	if(current==0) gp.style.color="#dddddd";
	if(current==images.length-1) gn.style.color="#dddddd";
	
	pri.onload=function() {
		var fimage=document.getElementById('lbimage');
		var count=document.getElementById('lbcount');
		var box=document.getElementById('fullbox');
		var samesize = (fimage.width==sizes[0] && fimage.height==sizes[1])?1:0;
		document.getElementById('lbfulltitle').innerHTML=(images[id].text)?images[id].text:'';
		fimage.width=sizes[0];
		fimage.height=sizes[1];
		count.innerHTML=(current+1)+'/'+images.length;
		fimage.src=images[id].full;
		if(!samesize) {
			document.getElementById('fbcont').style.display='none';
			box.postAction=function() {
				document.getElementById('fbcont').style.display='';
			}
			DDSanim.resizeTo('fullbox',sizes[0],sizes[1],positions[0],positions[1],500);
		}
	}
	pri.src=images[id].full;
}

function hideFullImage() {
	window.onresize='';
	hideItem('overlay');
	hideItem('fullbox');
	var fimage=document.getElementById('lbimage');
	fimage.src=noimage;
	showHideFlash(1);
}

showZoomImage = function(img) {
	var pri = new Image();
	var self = this;
	var page = getPageSize();
	var sizes = getImageSizes(img.w,img.h,page[0]-100,page[1]-150);
	//var sizes = [img.w,img.h];
	var positions = getcenter(sizes[0]+50,sizes[1]);
	var scroll = getPageScrollTop();
	var fimage=document.getElementById('zoom_image');
	pri.onload=function() {
		fimage.src=img.src;
		fimage.width=sizes[0];
		fimage.height=sizes[1];
		fimage.style.top=positions[0]+"px";
		fimage.style.left=positions[1]+"px";
		zoomed=null;
		overlayReload();
		showItem('overlay');
		showItem('zoom_image');
		showHideFlash();
		//window.onresize=overlayReload;
		//document.getElementsByTagName("body")[0].style.overflow = "hidden"; 
	};
	pri.src=img.src;
};
hideZoomImage = function() {
	hideItem('overlay');
	var fimage=document.getElementById('zoom_image');
	fimage.style.display='none';
	fimage.src=noimage;
	showHideFlash(1);
}

function showItem(item,opc) {
	obj=document.getElementById(item);
	//alert(obj.id + ' ' + typeof(opc));
	obj.style.display=(obj.tagName.toLowerCase()=='table')?'':'block';
	if (typeof(opc)=='number') {
		changeOpacity(opc,item);
	}
}

function hideItem(item,opc) {
	obj=document.getElementById(item);
	obj.style.display='none';
	if (typeof(opc)=='number') {
		changeOpacity(opc,item);
	}
}



function changeOpacity(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 + ")";
}


function ipreload(img) {
	preimg=new Image();
	preimg.src=img;
}

// lb
function overlayReload()
{
		if (window.innerHeight && window.scrollMaxY>=0 || window.innerWidth && window.scrollMaxX>=0) {
                yScroll = window.innerHeight + window.scrollMaxY;
                xScroll = window.innerWidth + window.scrollMaxX;
                var deff = document.documentElement;
                var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
                var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;
                xScroll -= (window.innerWidth - wff);
                yScroll -= (window.innerHeight - hff);

        } else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){ // all but Explorer Mac
                yScroll = document.body.scrollHeight;
                xScroll = document.body.scrollWidth;
        } else { // Explorer Mac... Explorer 6 Strict, Mozilla, Safari
                yScroll = document.body.offsetHeight;
                xScroll = document.body.offsetWidth;
        }
        olay=document.getElementById('overlay');
        /*var pagesize = getPageSize();
        if(pagesize[1]>yScroll) yScroll=pagesize[1];
        if(pagesize[0]>xScroll) xScroll=pagesize[0];*/
        olay.style.height = yScroll +'px';
        olay.style.width = xScroll +'px';
}

function center(windowname, fwidth, fheight) {
        var successWin = document.getElementById(windowname);
        var pagesize = getPageSize();
        var arrayPageScroll = getPageScrollTop();
        lbtop = (arrayPageScroll[1] + (pagesize[1] - fheight)/3);
        lbleft = (arrayPageScroll[0] + (pagesize[0] - fwidth)/2);
        successWin.style.top = (lbtop < 0) ? "0px" : lbtop + "px";
        successWin.style.left = (lbleft < 0) ? "0px" : lbleft + "px";
}

function getcenter(fwidth,fheight) {
	  var pagesize = getPageSize();
      var arrayPageScroll = getPageScrollTop();
      lbtop = (arrayPageScroll[1] + (pagesize[1] - fheight)/3);
      lbleft = (arrayPageScroll[0] + (pagesize[0] - fwidth)/2);
      var t = (lbtop < 0) ? "0" : lbtop;
      var l = (lbleft < 0) ? "0" : lbleft;
      return [t,l];
}

function getPageSize(){
        var de = document.documentElement;
        var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
        var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight
        arrayPageSize = new Array(w,h)
        return arrayPageSize;
}

function getPageScrollTop(){
        var yScrolltop;
        var xScrollleft;
        if (self.pageYOffset || self.pageXOffset) {
                yScrolltop = self.pageYOffset;
                xScrollleft = self.pageXOffset;
        } else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){     // Explorer 6 Strict
                yScrolltop = document.documentElement.scrollTop;
                xScrollleft = document.documentElement.scrollLeft;
        } else if (document.body) {// all other Explorers
                yScrolltop = document.body.scrollTop;
                xScrollleft = document.body.scrollLeft;
        }
        arrayPageScroll = new Array(xScrollleft,yScrolltop)
        return arrayPageScroll;
}


function getImageSizes(xsize,ysize,maxx,maxy) {
	if(xsize>maxx || ysize>maxy) {
		var ax=xsize/maxx;
		var ay=ysize/maxy;
	
		var direction=1;
		if (ay>ax) direction=0;

		if (direction) {
			xsize=Math.floor(xsize/ax);
			ysize=Math.floor(ysize/ax);
		} else {
			xsize=Math.floor(xsize/ay);
			ysize=Math.floor(ysize/ay);
		}
	}
	return [xsize,ysize];
}

function showHideFlash(s) {
	var elemse = document.getElementsByTagName('embed');
	var elemso = document.getElementsByTagName('object');
	var elemss = document.getElementsByTagName('select');
	for(var i=0;i<elemse.length;i++) {
		elemse[i].style.visibility = (s)?'visible':'hidden';
	}
	for(var i=0;i<elemso.length;i++) {
		elemso[i].style.visibility = (s)?'visible':'hidden';
	}
	for(var i=0;i<elemss.length;i++) {
		elemss[i].style.visibility = (s)?'visible':'hidden';
	}
}

zoomImage = function(img,z) {
	zoomed=z;
	ajax_load('/zoomlb.php?kep='+img);
};

// GYŰJTEMÉNY

function ICACollection() {
	var cdata = {};
	var inited = false;
	var box,cont,item,data,thumbs,olay;
	var images = {};
	var videos = {};
	var ld = {};
	
	if(!inited) {
		cont = document.getElementById('gyujtemenycont');
		item = document.getElementById('gyujtemenyitem');
		data = document.getElementById('gyujtemenydata');
		thumbs = document.getElementById('gyujtemenythumbs');
		olay = document.getElementById('overlay');
		if(item && cont) inited = true;
	}
	
	this.load = function(d) {
		if(!inited || !d) return;
		var _d = "";
		if(d.cim) _d+='<span class="gyujtcim">'+d.cim+'</span><br />';
		if(d.alkoto) _d+=_l('alkotó')+': '+d.alkoto+' | ';
		if(d.ev) _d+=_l('év')+': '+d.ev;
		if(d.technika) {
			if(d.ev) _d+=' | ';
			_d+=_l('technika')+': '+d.technika;
		}
		_d+=' | ';
		if(d.db) _d+=_l('darabszám')+': '+d.db;
		if(d.meret) {
			if(d.db) _d+=' | ';
			_d+=_l('méret')+': '+d.meret;
		}
		
		_d+='<span class="gyujtemenyclose" onclick="ICACollection.close();">'+_l('bezárás')+'</span>';
		data.innerHTML = _d;
		var _k = "";
		if(d.kepek) {
			for(var i=0;i<d.kepek.length;i++) {
				var pic=d.kepek[i];
				
				images[pic.id] = pic;
				
				_k+='<img class="hand" src="/kep/x60/'+pic.pic+'" border="0" alt="'+pic.cim+'" onclick="ICACollection.showImg('+pic.id+');" />&nbsp;';
				if(i==0) this.showImg(pic.id,1);
			}
		}
		if(d.videok) {
			for(var i=0;i<d.videok.length;i++) {
				var v=d.videok[i];
				
				videos[v.id] = v;
				
				_k+='<img class="hand" src="/video/thumb/x60/'+v.pic+'" border="0" alt="'+v.cim+'" onclick="ICACollection.showVideo('+v.id+');" />&nbsp;';
				if(!d.kepek && i==0) this.showVideo(v.id,1);
			}
		}
		//thumbs.innerHTML = _k;
		overlayReload();
		showItem('overlay');
		center('gyujtemenyitem',item.offsetWidth,item.offsetHeight);
		showItem('gyujtemenycont');
		
		var _c = getcenter(900,100);
		cont.style.left=_c[1]+"px";
		document.getElementsByTagName('body')[0].style.overflow='hidden';
		document.onmousewheel = function(){return false;};
		olay.onclick = function() {ICACollection.close();};
	}
	this.close = function() {
		hideItem('overlay');
		hideItem('gyujtemenycont');
		hideItem('gyujtemenyitem');
		document.getElementsByTagName('body')[0].style.overflow='';
		document.onmousewheel = function(){};
		olay.onclick = function() {};
	}
	
	this.showImg = function(id,init) {
		if(!id) return;
		var img = "/kep/"+images[id].pic;
		var _i = document.createElement('img');
		_i.border="0";
		

		var fimage = item.getElementsByTagName('img')[0];
		item.innerHTML = '';
		
		var pri=new Image();
		var page = getPageSize();
		var sizes = getImageSizes(images[id].w,images[id].h,page[0]-100,page[1]-150);
		var positions = getcenter(sizes[0]+20,sizes[1]+80);
		var scroll = getPageScrollTop();
				
		pri.onload=function() {
			var samesize = (fimage && fimage.width==sizes[0] && fimage.height==sizes[1])?1:0;
			_i.width=sizes[0];
			_i.height=sizes[1];
			_i.src = img;
			if(init) {
				showItem('gyujtemenyitem');
				item.style.width=sizes[0]+'px';
				item.style.height=sizes[1]+'px';
				item.style.top=positions[0]+'px';
				item.style.left=positions[1]+'px';
				item.appendChild(_i);
				_i.width=sizes[0];
				_i.height=sizes[1];
			} else if(!samesize) {
				item.postAction=function() {
					item.appendChild(_i);
					_i.width=sizes[0];
					_i.height=sizes[1];
				}
				DDSanim.resizeTo('gyujtemenyitem',sizes[0],sizes[1],positions[0],positions[1],500);
			} else {
				item.appendChild(_i);
				_i.width=sizes[0];
				_i.height=sizes[1];
			}
		}
		pri.src=img;
	}
	this.showVideo = function(id,init) {
		if(!id) return;
		var v = videos[id];
		var _span = document.createElement('span');
		_span.id='gyvideo'+id;
		

		var fimage = item.getElementsByTagName('img')[0];
		item.innerHTML = '';
		
		var pri=new Image();
		var page = getPageSize();
		var sizes = getImageSizes(v.code.w,v.code.h,page[0]-100,page[1]-230);
		var positions = getcenter(sizes[0]+40,sizes[1]+80);
		var scroll = getPageScrollTop();
				
		var samesize = (fimage && fimage.width==sizes[0] && fimage.height==sizes[1])?1:0;
		if(init) {
			showItem('gyujtemenyitem');
			item.style.width=sizes[0]+'px';
			item.style.height=sizes[1]+'px';
			item.style.top=positions[0]+'px';
			item.style.left=positions[1]+'px';
			item.appendChild(_span);
			swfobject.embedSWF(v.code.src,'gyvideo'+id,sizes[0],sizes[1],'9.0.0','/expressInstall.swf',v.code.flashvars,v.code.attr)
		} else if(!samesize) {
			item.postAction=function() {
				item.appendChild(_span);
				swfobject.embedSWF(v.code.src,'gyvideo'+id,sizes[0],sizes[1],'9.0.0','/expressInstall.swf',v.code.flashvars,v.code.attr)
			}
			DDSanim.resizeTo('gyujtemenyitem',sizes[0],sizes[1],positions[0],positions[1],500);
		} else {
			item.appendChild(_span);
			swfobject.embedSWF(v.code.src,'gyvideo'+id,sizes[0],sizes[1],'9.0.0','/expressInstall.swf',v.code.flashvars,v.code.attr)
		}
	}
	this.setLangData = function(data) {
		ld = data;
	}
	
	var _l = function(txt) {
		return (typeof(ld) == "object" && ld[txt])?ld[txt]:txt;
	}
	
}

