var ignoreClick = false;
var loadingImage='/core/globalresources/modal/loading.gif';
var siteserverlightboxcloseButton='/core/globalresources/modal/close.png';
var headID = document.getElementsByTagName("head")[0];
var cssNode = document.createElement('link');
cssNode.type = 'text/css';
cssNode.rel = 'stylesheet';
cssNode.href = '/core/globalresources/modal/lightbox.css';
cssNode.media = 'screen';
headID.appendChild(cssNode);

function getPageScroll(){
	var yScroll;
	if(self.pageYOffset){
		yScroll=self.pageYOffset;
	}else if(document.documentElement&&document.documentElement.scrollTop){
		yScroll=document.documentElement.scrollTop;
	}else if(document.body){
		yScroll=document.body.scrollTop;
	}

	arrayPageScroll=new Array('',yScroll)
	return arrayPageScroll;
}

function getPageSize(){
	var xScroll,yScroll;
	if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;
}

function pause(numberMillis){var now=new Date();var exitTime=now.getTime()+numberMillis;while(true){now=new Date();if(now.getTime()>exitTime)
return;}}

function showHTMLContent(content, width, height, title, blnIgnoreClick) {
	if (blnIgnoreClick != null) ignoreClick = blnIgnoreClick;

	var objsiteserveroverlay=document.getElementById('siteserveroverlay');
	var objLightbox=document.getElementById('siteserverlightbox');
	var objCaption=document.getElementById('siteserverlightboxCaption');
	var objImage=document.getElementById('siteserverlightboxImage');
	var objLoadingImage=document.getElementById('loadingImage');
	var objsiteserverlightboxDetails=document.getElementById('siteserverlightboxDetails');
	var objHtml=document.getElementById('siteserverlightboxHTMLContent');

	if (objHtml == null) {
		setTimeout("showHTMLContent('"+ content +"',"+ width +", "+ height +", '"+ title +"','"+ blnIgnoreClick +"');", 500);
	} else {

		var arrayPageSize=getPageSize();
		var arrayPageScroll=getPageScroll();

		var lightboxTop=arrayPageScroll[1]+((arrayPageSize[3]-35-height)/2);
		var lightboxLeft=((arrayPageSize[0]-20-width)/2);

		objsiteserveroverlay.style.height=(arrayPageSize[1]+'px');
		objsiteserveroverlay.style.display='block';

		objLightbox.style.top=(lightboxTop<0)?"0px":lightboxTop+"px";
		objLightbox.style.left=(lightboxLeft<0)?"0px":lightboxLeft+"px";

		if(title != ""){
			objCaption.style.display='block';
			objCaption.innerHTML=title;
		} else{
			objCaption.style.display='none';
		}

		objLightbox.style.display='block';
		objsiteserverlightboxDetails.style.width= width +"px";

		objLoadingImage.style.display="none";
		objImage.style.display="none";

		objHtml.innerHTML = content;
		objHtml.style.display="block";
	}
}

function showLightbox(objLink)
{
	var objsiteserveroverlay=document.getElementById('siteserveroverlay');
	var objLightbox=document.getElementById('siteserverlightbox');
	var objCaption=document.getElementById('siteserverlightboxCaption');
	var objImage=document.getElementById('siteserverlightboxImage');
	var objHtml=document.getElementById('siteserverlightboxHTMLContent');
	var objLoadingImage=document.getElementById('loadingImage');
	var objsiteserverlightboxDetails=document.getElementById('siteserverlightboxDetails');
	var arrayPageSize=getPageSize();
	var arrayPageScroll=getPageScroll();

	objImage.style.display="block";

	objHtml.innerHTML = "";
	objHtml.style.display="none";

	if(objLoadingImage){
		objLoadingImage.style.top=(arrayPageScroll[1]+((arrayPageSize[3]-35-objLoadingImage.height)/2)+'px');
		objLoadingImage.style.left=(((arrayPageSize[0]-20-objLoadingImage.width)/2)+'px');
		objLoadingImage.style.display='block';
	}

	objsiteserveroverlay.style.height=(arrayPageSize[1]+'px');
	objsiteserveroverlay.style.display='block';

	imgPreload=new Image();
	imgPreload.onload=function(){
		objImage.src=objLink.href;
		var lightboxTop=arrayPageScroll[1]+((arrayPageSize[3]-35-imgPreload.height)/2);
		var lightboxLeft=((arrayPageSize[0]-20-imgPreload.width)/2);
		objLightbox.style.top=(lightboxTop<0)?"0px":lightboxTop+"px";
		objLightbox.style.left=(lightboxLeft<0)?"0px":lightboxLeft+"px";
		objsiteserverlightboxDetails.style.width=imgPreload.width+'px';

		if(objLink.getAttribute('title')){
			objCaption.style.display='block';
			objCaption.innerHTML=objLink.getAttribute('title');
		} else{
			objCaption.style.display='none';
		}

		if(navigator.appVersion.indexOf("MSIE")!=-1) pause(250);
		if(objLoadingImage){objLoadingImage.style.display='none';}

		selects=document.getElementsByTagName("select");
		for(i=0;i!=selects.length;i++){
			selects[i].style.visibility="hidden";
		}

		objLightbox.style.display='block';
		arrayPageSize=getPageSize();
		objsiteserveroverlay.style.height=(arrayPageSize[1]+'px');
		return false;
	}

	imgPreload.src=objLink.href;
}

function hideLightbox(source) {

	if (source == "lightbox" && ignoreClick) return;

	var objHtml=document.getElementById('siteserverlightboxHTMLContent');
	var objCaption=document.getElementById('siteserverlightboxCaption');
	objsiteserveroverlay=document.getElementById('siteserveroverlay');
	objLightbox=document.getElementById('siteserverlightbox');
	objsiteserveroverlay.style.display='none';

	objLightbox.style.display='none';
	selects=document.getElementsByTagName("select");

	for(i=0;i!=selects.length;i++){
		selects[i].style.visibility="visible";
	}

	objHtml.innerHTML = "";
	if (objCaption != null) objCaption.innerHTML = "";
}

function initLightbox()
{
	var href;
	if(!document.getElementsByTagName){return;}

	var anchors=document.getElementsByTagName("a");
	for(var i=0;i<anchors.length;i++){
		var anchor=anchors[i];
		sHref=anchor.getAttribute("href");

		if(sHref&&sHref.search(/^\S+\.((gif|jpg|jpeg|png|bmp)|(gif|jpg|jpeg|png|bmp)\?\S+)$/)>-1)anchor.onclick=function(){showLightbox(this);return false;}}

		var objBody=document.getElementsByTagName("body").item(0);
		var objsiteserveroverlay=document.createElement("div");
		objsiteserveroverlay.setAttribute('id','siteserveroverlay');
		objsiteserveroverlay.onclick=function(){hideLightbox("body");return false;}
		objsiteserveroverlay.style.display='none';
		objsiteserveroverlay.style.position='absolute';
		objsiteserveroverlay.style.top='0';
		objsiteserveroverlay.style.left='0';
		objsiteserveroverlay.style.zIndex='90';
		objsiteserveroverlay.style.width='100%';

		objBody.insertBefore(objsiteserveroverlay,objBody.firstChild);

		var arrayPageSize=getPageSize();
		var arrayPageScroll=getPageScroll();
		var imgPreloader=new Image();
		imgPreloader.onload=function(){
			var objLoadingImageLink=document.createElement("a");
			objLoadingImageLink.setAttribute('href','#');
			objLoadingImageLink.onclick=function(){hideLightbox("loading");return false;}
			objsiteserveroverlay.appendChild(objLoadingImageLink);
			var objLoadingImage=document.createElement("img");
			objLoadingImage.src=loadingImage;
			objLoadingImage.setAttribute('id','loadingImage');
			objLoadingImage.style.position='absolute';
			objLoadingImage.style.zIndex='150';
			objLoadingImageLink.appendChild(objLoadingImage);

			imgPreloader.onload=function(){};
			return false;
		}

		imgPreloader.src=loadingImage;
		var objLightbox=document.createElement("div");
		objLightbox.setAttribute('id','siteserverlightbox');
		objLightbox.style.display='none';
		objLightbox.style.position='absolute';
		objLightbox.style.zIndex='100';
		objBody.insertBefore(objLightbox,objsiteserveroverlay.nextSibling);

		var objLink=document.createElement("div");
		objLink.setAttribute('title','Klicka för att stänga bilden');
		objLink.onclick=function(event){hideLightbox("lightbox");}
		objLightbox.appendChild(objLink);

		var imgPreloadsiteserverlightboxcloseButton=new Image();
		imgPreloadsiteserverlightboxcloseButton.onload=function(){
			var objsiteserverlightboxcloseButton=document.createElement("img");
			objsiteserverlightboxcloseButton.src=siteserverlightboxcloseButton;
			objsiteserverlightboxcloseButton.setAttribute('id','siteserverlightboxcloseButton');
			objsiteserverlightboxcloseButton.setAttribute('style','cursor:pointer');
			objsiteserverlightboxcloseButton.style.position='absolute';
			objsiteserverlightboxcloseButton.style.zIndex='2999999';
			objsiteserverlightboxcloseButton.onclick=function(){hideLightbox("close");return false;}
			objLink.appendChild(objsiteserverlightboxcloseButton);
			return false;
		}

		imgPreloadsiteserverlightboxcloseButton.src=siteserverlightboxcloseButton;
		var objImage=document.createElement("img");
		objImage.setAttribute('id','siteserverlightboxImage');
		objLink.appendChild(objImage);

		var objsiteserverlightboxHTMLContent=document.createElement("div");
		objsiteserverlightboxHTMLContent.setAttribute('id','siteserverlightboxHTMLContent');
		objLink.appendChild(objsiteserverlightboxHTMLContent);

		var objsiteserverlightboxDetails=document.createElement("div");
		objsiteserverlightboxDetails.setAttribute('id','siteserverlightboxDetails');
		objLightbox.appendChild(objsiteserverlightboxDetails);

		var objCaption=document.createElement("div");
		objCaption.setAttribute('id','siteserverlightboxCaption');
		objCaption.style.display='none';
		objsiteserverlightboxDetails.appendChild(objCaption);



	}

function addLoadEvent(func){
	var oldonload=window.onload;

	if(typeof window.onload!='function'){
		window.onload=func;
	}else{
		window.onload=function(){
			oldonload();
			func();
		}
	}
}

addLoadEvent(initLightbox);
