// DDS Lightbox Effect

var idstohide=new Array(); //TODO!! flash tartalmu elemek id-i.
var initsize=new Array(400,300);
var imagelist=new Array();
var allimages=new Array();
var textlist=new Array();
var current=-1;
var enablezoom=0;
var resized=0;

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


function showBox(src,arr,textarr,ezoom,fwidth,fheight){
	if (!fwidth) fwidth=initsize[0];
	if (!fheight) fheight=initsize[1];
	if (!arr) arr="";
	if (!textarr) textarr="";
	if (!ezoom) {
		enablezoom=0;
		resized=0;
	} else {
		enablezoom=1;
		resized=1;
	}
	//objektumok
	dbox=document.getElementById('box');
	olay=document.getElementById('overlay');
	frame=document.getElementById('lbframe');
	image=document.getElementById('lbimage');
	previ=document.getElementById('prev');
        nexti=document.getElementById('next');
        cntr=document.getElementById('counter');
        keptxt=document.getElementById('lbtext');
        zoomgomb=document.getElementById('zoom');
        if(enablezoom && resized) {
        	zoomimage=document.getElementById('zoomimg');
        	zoomimage.src="images/bt_plus.gif";
		zoomimage.title="nagyítás";
	}
        //inicializálás
        dbox.style.width=initsize[0]+'px';
	dbox.style.height=initsize[1]+'px';
	center('box',initsize[0],initsize[1]);
	overlayReload();
        olay.style.display = 'block';
	dbox.style.display = 'block';
	//loading kép
	if(document.all) image.style.display='block';
	else image.style.display='inline';
	//ha több képet kapunk
	if (isArray(arr)){
		allimages=new Array();
		imagelist=new Array();
		imagelist=arr;
		current=-1;
		if (isArray(textarr)) textlist=textarr;
		for (x=0; x<arr.length; x++){
			allimages[x] = new Image();
			allimages[x].src = arr[x];
			if (arr[x]==src) current=x;
        	} 
        	previ.style.display='block';
        	nexti.style.display='block';
        	if(enablezoom) {
        		zoomgomb.style.display='block';
        	} else {
        		zoomgomb.style.display='none';
        	}
        	cntr.innerHTML=current+1+'/'+imagelist.length;
		if(textarr[current]) keptxt.innerHTML=textarr[current];
	} else {
		previ.style.display='none';
        	nexti.style.display='none';
		
	}

	// ha jpg-t kapunk src-ben
	if (src.indexOf('.jpg')!=-1) {
		var pagesize = getPageSize();    
		var arrayPageScroll = getPageScrollTop();
		imgPre=new Image();
		imgPre.onload=function(){
			image.src = src;
			if(resized==1) {
				imgPre=resizeImage(imgPre);
				image=resizeImage(image);
			}
			if (!isArray(textarr) && textarr!="") keptxt.innerHTML=textarr;
			image.width=imgPre.width;
			image.height=imgPre.height;
			dbox.style.width=imgPre.width+'px';
			dbox.style.height=imgPre.height+'px';
			center('box', imgPre.width,imgPre.height);
			overlayReload();
			frame.style.display='none';
			return false;
		}
		imgPre.src = src;
	} else {
	// különben iframe
		dbox.style.width=fwidth+'px';
		dbox.style.height=fheight+'px';
		center('box', fwidth, fheight);
		overlayReload();
		if(window.addEventListener) frame.addEventListener('load',resizeLBox,false);
		else frame.attachEvent('onload',resizeLBox);
		frame.src=src;
		if(textarr) keptxt.innerHTML=textarr;
	}
	window.onresize=overlayReload;
	visSelectsAndFlash('hidden');
/*	olay.style.display = 'block';
	dbox.style.display = 'block';*/
   	return false;
}

// elrejtés, alapbeállítások visszaállítása
function hideBox(){
	dbox=document.getElementById('box');
	olay=document.getElementById('overlay');
	frame=document.getElementById('lbframe');
	image=document.getElementById('lbimage');
	dbox.style.display = 'none';
	olay.style.display = 'none';
	image.src="images/loading.gif";
	image.width='400';
	image.height='300';
	visSelectsAndFlash('visible');
	dbox.style.height=initsize[1]+'px';
	dbox.style.width=initsize[0]+'px';
	if(window.removeEventListener) frame.removeEventListener('load',resizeLBox,false); 
	else frame.detachEvent('onload',resizeLBox);
	frame.src="blank.htm";
	window.onresize='';
	return false;
}

function overlayReload()
{
	if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) {    
		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');
	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-60)/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 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 resizeLBox(){
	dbox=document.getElementById('box');
	frame=document.getElementById('lbframe');
	image=document.getElementById('lbimage');

	// bannermérethez igazítás
	dbox.style.height=window.lbframe.bannerheight+'px';
	frame.height=window.lbframe.bannerheight;
	dbox.style.width=window.lbframe.bannerwidth+'px';
	frame.width=window.lbframe.bannerwidth;
	center('box', window.lbframe.bannerwidth, window.lbframe.bannerheight);
	image.style.display='none';
	frame.style.display='inline';
	
}

function getIFrameHeight(frame)
{
	if (frame.contentDocument) 
    		cdoc=frame.contentDocument;
	else if(frame.contentWindow)  
		cdoc = frame.contentWindow.document;  
	else if(frame.document)  
		cdoc = frame.document;

	ifrheight = cdoc.body.offsetHeight;
	return ifrheight;
}

// elrejtendő elemek (select, flash, stb)
function visSelectsAndFlash(visibility){
	selects = document.getElementsByTagName('select');
	for(i = 0; i < selects.length; i++) {
		selects[i].style.visibility = visibility;
	}
	for(i = 0; i < idstohide.length; i++) {
		currentid=document.getElementById(idstohide[i]);
		if(currentid)
			currentid.style.visibility = visibility;
	}
}

function prevImage(){
	current--;
	image=document.getElementById('lbimage');
	cntr=document.getElementById('counter');
	keptxt=document.getElementById('lbtext');
	if(current<0) current=imagelist.length-1;
	image.src=imagelist[current];
	cntr.innerHTML=current+1+'/'+imagelist.length;
	if(textlist[current]) keptxt.innerHTML=textlist[current];
	if(resized==1){
		image=resizeImage(image);
		dbox=document.getElementById('box');
		dbox.style.width=image.width+'px';
		dbox.style.height=image.height+'px';
		center('box', image.width,image.height);
	}
}

function nextImage(){
	current++;
	image=document.getElementById('lbimage');
	cntr=document.getElementById('counter');
	keptxt=document.getElementById('lbtext');
	if(current==imagelist.length) current=0;
	image.src=imagelist[current];
	cntr.innerHTML=current+1+'/'+imagelist.length;
	if(textlist[current]) keptxt.innerHTML=textlist[current];
	if(resized==1) { 
		image=resizeImage(image);
		dbox=document.getElementById('box');
		dbox.style.width=image.width+'px';
		dbox.style.height=image.height+'px';
		center('box', image.width,image.height);
	}
}

function resizeImage(img){
 	pagesize=getPageSize();
 	arany=img.width/img.height;
 	if(img.height>pagesize[1]) {
 		img.height=pagesize[1]-80;
 		img.width=img.height*arany;
 	}
	if(img.width>pagesize[0]) {
 		img.width=pagesize[0]-80;
 		img.height=img.width/arany;
 	}
 	return img;
}

function zoomImage() {
	img=document.getElementById('lbimage');
	if(resized==1) {
		zoomgomb=document.getElementById('zoomimg');
		zoomgomb.src="images/bt_minus.gif";
		zoomgomb.title="kicsinyítés";
		newwidth=allimages[current].width;
		newheight=allimages[current].height;
		img.width=newwidth;
		img.height=newheight;
		resized=0;
	} else {
		zoomgomb=document.getElementById('zoomimg');
		zoomgomb.src="images/bt_plus.gif";
		zoomgomb.title="nagyítás";
		img=resizeImage(img);
		resized=1;
	}
	
	dbox=document.getElementById('box');
	dbox.style.width=img.width+'px';
	dbox.style.height=img.height+'px';
	center('box', img.width,img.height);
}