var browserName = navigator.appName;
var browserVersion = navigator.appVersion;


function initGallery(){
	var pageImagesAll = document.getElementsByTagName('img');
	//alert(pageImages[0]);
	for(var i=0; i<pageImagesAll.length;i++){
		var rel = ""+pageImagesAll[i].getAttribute("rel");
		if(rel.startsWith("gallery")){
			pageImagesAll[i].onclick = getRemoteImage2;
		}
	}
}

function getTarget(e){
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	return targ;
}
function getReqObj(){
	if(window.XMLHttpRequest && !(window.ActiveXObject)){
		try{
			req = new XMLHttpRequest();
		}
		catch(e){
			req = false;
		}
	}
	else if(window.ActiveXObject){
		// dla IE i tych, co obsluguja activex
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				req = false;
			}
		}
	}
	//alert(req);
	return req;
}// function getReqObj()
var imageDiv = null;
var orgHTML = "";
var loaderH, loaderW, imgTop, imgLeft = 0; // tutaj
var replHTML = "";
var rImage = new Image();
var reqObj = null;
var imagesource = "";
function getRemoteImage2(e){
	var target = getTarget(e);
	//alert("start");
	//alert("t: "+target);
	//alert("target.parentNode: "+target.parentNode);
	imageDiv = target.parentNode;
	loaderH = imageDiv.offsetHeight-2;
	loaderW = imageDiv.offsetWidth-2;
	imgTop = imageDiv.offsetTop+target.parentNode.parentNode.offsetTop;
	imgLeft = imageDiv.offsetLeft+target.parentNode.parentNode.offsetLeft;
	
	//alert(imgTop+" "+imgLeft);
	
	orgHTML = imageDiv.innerHTML;
	//replHTML = "<div class='opaque' style='position: absolute;top:"+imgTop+"px;left: "+imgLeft+"px;width:"+loaderW+"px;height: "+loaderH+"px;'></div>";
	//imageDiv.innerHTML = replHTML+orgHTML;
	
	var url = getUrl(target);
	imagesource = url;
	rImage.src = url;
	reqObj = getReqObj();
	//alert("po reqObj");
	if(!reqObj) return false;
	reqObj.onreadystatechange = checkStatus;
	//reqObj.overrideMimeType("text/plain; charset=x-user-defined");
	//alert("po onreadystate");
	reqObj.open('GET', url, true); 
	//alert("po GET" + reqObj);
	reqObj.send(""); // ie ma b��d
	//alert("po getRemoteImage");
	return false;
}

function checkStatus(){
//alert("loaded");
	if(reqObj && reqObj.readyState == 4){
		try{
			//var rt = req.responseXML;
			//imgObj = null;
			//imgObj = rt;
			//var t = req.responseText || "" ;
	        //var ff = [];
	        //var mx = t.length;   
	        //var scc= String.fromCharCode;
	        //for (var z = 0; z < mx; z++) {
	        //    ff[z] = scc(t.charCodeAt(z) & 255);
	        //}
	        //var b = ff.join("");
        	
			//alert(rImage.width);
			//document.write(b);
			
			setTimeout("goFurther()",200);
			return true;
		}
		catch(e){alert(e);}
		
	}
}

function goFurther(){
	//P imageDiv.className = "gallery_view";
	//imageDiv.className = "stepimgdiv";
	//imageDiv.innerHTML = orgHTML;
	//imageDiv.childNodes[0].onclick = getRemoteImage2;
	setTimeout("goFurtherS2()",300);
}
function goFurtherS2(){
	veil_show(_get('cnt'));
	openPop(imagesource);
}
function getUrl(target){
	var rel = target.getAttribute("rel"); 
	var path = rel.split("gallery-");
	return path[1];
} //getUrl

function getUrl_backup(url){
	//alert(url);
	
	//var path = url.split("_tb.");
	var path = url.split("thumb-");
	
	//var icut = path[0].indexOf("_tb");
	//path[0] = path[0].substring(0,icut);
	
	alert("getUrk " +path[0]+path[1]);
	
	return path[0]+path[1];
}


var resizingX = false;
var resizingY = false;
var orgW = 0;
var orgH = 0; 
var newW = 0; 
var newH = 0;
var container = null;
var underlayer = null;
var containerimage = null;
var topPos = 0;
var leftPos = 0;
var screenWidth = document.documentElement.clientWidth;
var screenHeight;
screenHeight = (browserName.indexOf("Microsoft")>-1)?document.documentElement.clientHeight:document.body.clientHeight;
if(window.innerHeight) screenHeight = window.innerHeight;
function resetResize(){
 resizingX = false;
 resizingY = false;
 orgW = 0;
 orgH = 0; 
 newW = 0; 
 newH = 0;
 container = null;
 underlayer = null;
 containerimage = null;
 topPos = 0;
 leftPos = 0;

}

function openPop(src, nW, nH){
	container = document.getElementById("imageContainer");
	underlayer = document.getElementById("imageContainerUnderlayer");
	containerimage = document.getElementById("imageContainerInnerImage");
	containerimage.src = src;
	//alert(containerimage.width+" "+containerimage.height);
	//document.forms["form1"].input1.value = orgW+" "+orgH+" resX/Y "+resizingX+"/"+resizingY;
	setTimeout('startResizing()', 100);
}
function startResizing(){
	newW = rImage.width;
	newH = rImage.height;
	containerimage.width = orgW;
	containerimage.height = orgH;
	var contsTop = (document.documentElement.scrollTop)?document.documentElement.scrollTop:document.body.scrollTop;
	topPos = (screenHeight-orgH)/2+contsTop;
	leftPos = (screenWidth-orgW)/2;
	//alert(contsTop);
		container.style.top = topPos+"px";
		underlayer.style.top = topPos+10+"px";
		container.style.left = leftPos+"px";
		underlayer.style.left = leftPos+10+"px";
		container.style.display = "block";
		underlayer.style.display = "block";
	resizingX = true;
	resizingY = true;
	//alert(orgW+" "+orgH+" "+newW+" "+newH);
	setTimeout("doResize()", 100);
}

var dX;
var dY;
function doResize(){
	if(resizingX){
		dX = (newW-orgW)/2;
		if(dX<1)dX=1;
		orgW+=dX;
		leftPos = (screenWidth-orgW)/2;
		containerimage.width = orgW;
		container.style.width = orgW+"px";
		underlayer.style.width = orgW+"px";
		container.style.left = leftPos+"px";
		underlayer.style.left = leftPos+10+"px";
		resizingX =(orgW >= newW)?false:true;
	}
	if(resizingY){
		dY = (newH-orgH)/2;
		if(dY<1)dY=1;
		orgH+=dY;
		var contsTop = (document.documentElement.scrollTop)?document.documentElement.scrollTop:document.body.scrollTop;
		topPos = (screenHeight-orgH)/2+contsTop;
		containerimage.height = orgH;
		container.style.height = orgH+"px";
		underlayer.style.height = orgH+"px";
		container.style.top = topPos+"px";
		underlayer.style.top = topPos+10+"px";
		resizingY =(orgH >= newH)?false:true;
	}
	//document.forms["form1"].input1.value = orgW+" "+orgH+" "+newW+" resX/Y "+resizingX+"/"+resizingY;
	if(resizingX || resizingY)
		setTimeout("doResize()", 50);
	else
		resetResize();
		showInfo();
}

function updatePositions(event){
	container = document.getElementById("imageContainer");
	underlayer = document.getElementById("imageContainerUnderlayer");
	info = document.getElementById("info_box");
	var contsTop = (document.documentElement.scrollTop)?document.documentElement.scrollTop:document.body.scrollTop;
	
	topPos = (screenHeight-container.offsetHeight)/2+contsTop;
	container.style.top = topPos+"px";
	underlayer.style.top = topPos+10+"px";
	info.style.top = contsTop+(screenHeight-54)/2+rImage.height/2-27+"px";
}

var info;
function showInfo(){
	info = document.getElementById("info_box");
	info.style.left = (screenWidth-300)/2-rImage.width/2+160+"px";
	var contsTop = (document.documentElement.scrollTop)?document.documentElement.scrollTop:document.body.scrollTop;
	info.style.top = contsTop+(screenHeight-35)/2+rImage.height/2-27+"px";
	containerimage = document.getElementById("imageContainerInnerImage");
	containerimage.onmouseover = infoVisible;
	info.onmouseover = infoVisible;
	containerimage.onmouseout = infoInvisible;
	info.onmouseout = infoInvisible;
	info.style.display = "block";
}
function hideInfo(){
	info = document.getElementById("info_box");
	info.style.display = "none";
}

function infoVisible(){
	info = document.getElementById("info_box");
	if(!info.filters)
		info.style.opacity = .2;
	else
		info.style.filter = "alpha(opacity=20)";
}

function infoInvisible(){
	info = document.getElementById("info_box");
	if(!info.filters)
		info.style.opacity = 0;
	else
		info.style.filter = "alpha(opacity=0)";
}




function clearAll(){
	veil_hide(_get('cnt'));
	resetResize();
	container = document.getElementById("imageContainer");
	underlayer = document.getElementById("imageContainerUnderlayer");
	container.style.display = "none";
	underlayer.style.display = "none";
	container.style.width = "80px";
	container.style.height = "60px";
	underlayer.style.width = "80px";
	underlayer.style.height = "60px";
	//document.forms["form1"].input1.value = orgW+" "+orgH+" "+newW+" resX/Y "+resizingX+"/"+resizingY;
	hideInfo();
}


//fading functions

var isFading=false;
var supportOpacity = false;
var fadingObject;
var currentOpacity,targetOpacity;
var isClosing = false;
function fadeTo(object, startOpacity, endOpacity, close){
	//startOpacity, targetOpacity w procentach
	fadingObject = object;
	if(startOpacity != endOpacity){
		isFading = true;
		currentOpacity = startOpacity;
		targetOpacity = endOpacity;
		if(close) isClosing = true;
	}
	if(isFading) setTimeout("doFade()",2);
}

function doFade(){
	if (currentOpacity > targetOpacity) currentOpacity-=5;
	if (currentOpacity < targetOpacity) currentOpacity+=5;
	if(!fadingObject.filters)
		fadingObject.style.opacity = (currentOpacity/100);
	else
		fadingObject.style.filter = "alpha(opacity="+currentOpacity+")";
	
	//alert(currentOpacity +"=="+ targetOpacity);
	if(currentOpacity == targetOpacity) {
		isFading=false;
		if(isClosing) {
			isClosing = false;
			fadingObject.style.display = "none";
			//alert("fadingObject.style.display = none");
		}
	}
	if(isFading) setTimeout("doFade()",1);
}
   	
function veil_show(veil){
	var h = (browserName != "Opera")?document.documentElement.clientHeight:document.body.clientHeight;
	var w = document.documentElement.clientWidth;
	var _docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
	veil.style.display="block";
	fadeTo(veil,0,10);
	veil.style.width=w+"px";
	veil.style.height=_docHeight+"px";
}
function veil_hide(veil){
	fadeTo(veil,10,0,true);
}

function _get(id){
	return document.getElementById(id);
}
window.onload = initGallery;
window.onscroll = updatePositions;
