/**
 * Interface Elements for jQuery
 * ImageBox
 *
 * http://interface.eyecon.ro
 *
 * Copyright (c) 2006 Stefan Petre
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 */

var ib_loaderSRC, ib_closeHTML, ib_textImage, ib_textImageFrom;

jQuery.ImageBox={options:{border:10,loaderSRC:'./loading.gif',closeHTML:'<span id="ImageBoxCloseLink">close</span>',overlayOpacity:0.6,textImage:"Showing image",textImageFrom:"from",fadeDuration:400},imageLoaded:false,firstResize:false,currentRel:null,animationInProgress:false,opened:false,keyPressed:function(c){if(!jQuery.ImageBox.opened||jQuery.ImageBox.animationInProgress){return}var d=c.charCode||c.keyCode||-1;switch(d){case 35:if(jQuery.ImageBox.currentRel){jQuery.ImageBox.start(null,jQuery("a[@rel="+jQuery.ImageBox.currentRel+"]:last").get(0))}break;case 36:if(jQuery.ImageBox.currentRel){jQuery.ImageBox.start(null,jQuery("a[@rel="+jQuery.ImageBox.currentRel+"]:first").get(0))}break;case 37:case 8:case 33:case 80:case 112:var b=jQuery("#ImageBoxPrevImage");if(b.get(0).onclick!=null){b.get(0).onclick.apply(b.get(0))}break;case 38:break;case 39:case 34:case 32:case 110:case 78:var a=jQuery("#ImageBoxNextImage");if(a.get(0).onclick!=null){a.get(0).onclick.apply(a.get(0))}break;case 40:break;case 27:jQuery.ImageBox.hideImage();break}},init:function(a){if(a){jQuery.extend(jQuery.ImageBox.options,a)}if(window.event){jQuery("body",document).bind("keyup",jQuery.ImageBox.keyPressed)}else{jQuery(document).bind("keyup",jQuery.ImageBox.keyPressed)}jQuery("a[@rel^=imagebox]").each(function(){el=jQuery(this);relAttr=el.attr("rel")||"";hrefAttr=el.attr("href")||"";hrefAttr=hrefAttr.replace(/\/mediafolder\//,"/files/");imageTypes=/\.jpg|\.jpeg|\.png|\.gif|\.bmp/g;if(hrefAttr.toLowerCase().match(imageTypes)!=null&&relAttr.toLowerCase().indexOf("imagebox")==0){el.bind("click",jQuery.ImageBox.start)}});if(jQuery.browser.msie){iframe=document.createElement("iframe");jQuery(iframe).attr({id:"ImageBoxIframe",src:"javascript:false;",frameborder:"no",scrolling:"no"}).css({display:"none",position:"absolute",top:"0",left:"0",filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=0)"});jQuery("body").append(iframe)}overlay=document.createElement("div");jQuery(overlay).attr("id","ImageBoxOverlay").css({position:"absolute",display:"none",top:"0",left:"0",opacity:0}).append(document.createTextNode(" ")).bind("click",jQuery.ImageBox.hideImage);captionText=document.createElement("div");jQuery(captionText).attr("id","ImageBoxCaptionText").css({paddingLeft:jQuery.ImageBox.options.border+"px"}).append(document.createTextNode(" "));copyrightText=document.createElement("div");jQuery(copyrightText).attr("id","ImageBoxCopyrightText").css({position:"absolute",right:jQuery.ImageBox.options.border+"px"}).append(document.createTextNode(" "));captionImages=document.createElement("div");jQuery(captionImages).attr("id","ImageBoxCaptionImages").css({paddingLeft:jQuery.ImageBox.options.border+"px",paddingBottom:jQuery.ImageBox.options.border+"px"}).append(document.createTextNode(" "));closeEl=document.createElement("a");jQuery(closeEl).attr({id:"ImageBoxClose",href:"#"}).css({position:"absolute",right:jQuery.ImageBox.options.border+"px",top:"0"}).append(jQuery.ImageBox.options.closeHTML).bind("click",jQuery.ImageBox.hideImage);captionEl=document.createElement("div");jQuery(captionEl).attr("id","ImageBoxCaption").css({position:"relative",textAlign:"left",margin:"0 auto",zIndex:1}).append(captionText).append(captionImages).append(closeEl).bind("click",function(){return false});loader=document.createElement("img");loader.src=jQuery.ImageBox.options.loaderSRC;jQuery(loader).attr("id","ImageBoxLoader").css({position:"absolute"});prevImage=document.createElement("a");jQuery(prevImage).attr({id:"ImageBoxPrevImage",href:"#"}).css({position:"absolute",display:"none",overflow:"hidden",textDecoration:"none"}).append(document.createTextNode(" "));nextImage=document.createElement("a");jQuery(nextImage).attr({id:"ImageBoxNextImage",href:"#"}).css({position:"absolute",overflow:"hidden",textDecoration:"none"}).append(document.createTextNode(" "));container=document.createElement("div");jQuery(container).attr("id","ImageBoxContainer").css({display:"none",position:"relative",overflow:"hidden",textAlign:"left",margin:"0 auto",top:"0",left:"0",zIndex:2}).append(copyrightText).append([loader,prevImage,nextImage]).bind("click",function(){return false});outerContainer=document.createElement("div");jQuery(outerContainer).attr("id","ImageBoxOuterContainer").css({display:"none",position:"absolute",overflow:"hidden",top:"0",left:"0",textAlign:"center",backgroundColor:"transparent",lineHeigt:"0"}).append([container,captionEl]).bind("click",jQuery.ImageBox.hideImage);jQuery("body").append(overlay).append(outerContainer)},start:function(d,g){el=g?jQuery(g):jQuery(this);linkRel=el.attr("rel");var a,c,f,b;if(linkRel!="imagebox"){jQuery.ImageBox.currentRel=linkRel;gallery=jQuery("a[@rel="+linkRel+"]");a=gallery.size();c=gallery.index(g?g:this);f=gallery.get(c-1);b=gallery.get(c+1)}imageSrc=el.attr("href");imageSrc=imageSrc.replace(/\/mediafolder\//,"/files/");captionText=el.attr("title");copyrightText=ClearCopyright(el.attr("name"));pageSize=jQuery.iUtil.getScroll();overlay=jQuery("#ImageBoxOverlay");if(!jQuery.ImageBox.opened){jQuery.ImageBox.opened=true;if(jQuery.browser.msie){jQuery("#ImageBoxIframe").css("height",Math.max(pageSize.ih,pageSize.h)+"px").css("width",Math.max(pageSize.iw,pageSize.w)+"px").show()}overlay.css("height",Math.max(pageSize.ih,pageSize.h)+"px").css("width",Math.max(pageSize.iw,pageSize.w)+"px").show().fadeTo(300,jQuery.ImageBox.options.overlayOpacity,function(){jQuery.ImageBox.loadImage(imageSrc,captionText,pageSize,a,c,f,b,copyrightText)});jQuery("#ImageBoxOuterContainer").css("width","100%")}else{jQuery("#ImageBoxPrevImage").get(0).onclick=null;jQuery("#ImageBoxNextImage").get(0).onclick=null;jQuery.ImageBox.loadImage(imageSrc,captionText,pageSize,a,c,f,b,copyrightText)}return false},loadImage:function(h,b,a,d,f,g,e,c){jQuery("#ImageBoxCurrentImage").remove();prevImageEl=jQuery("#ImageBoxPrevImage");prevImageEl.hide();nextImageEl=jQuery("#ImageBoxNextImage");nextImageEl.hide();loader=jQuery("#ImageBoxLoader");container=jQuery("#ImageBoxContainer");outerContainer=jQuery("#ImageBoxOuterContainer");captionEl=jQuery("#ImageBoxCaption").css("visibility","hidden");jQuery("#ImageBoxCaptionText").html((captionText==undefined)?"":captionText);jQuery("#ImageBoxCopyrightText").html(c);jQuery("#ImageBoxCopyrightText").hide();jQuery.ImageBox.animationInProgress=true;if(d){jQuery("#ImageBoxCaptionImages").html(jQuery.ImageBox.options.textImage+" "+(f+1)+" "+jQuery.ImageBox.options.textImageFrom+" "+d)}if(g){prevImageEl.get(0).onclick=function(){this.blur();jQuery.ImageBox.start(null,g);return false}}if(e){nextImageEl.get(0).onclick=function(){this.blur();jQuery.ImageBox.start(null,e);return false}}loader.show();containerSize=jQuery.iUtil.getSize(container.get(0));containerW=Math.max(containerSize.wb,loader.get(0).width+jQuery.ImageBox.options.border*2);containerH=Math.max(containerSize.hb,loader.get(0).height+jQuery.ImageBox.options.border*2);loader.css({left:(containerW-loader.get(0).width)/2+"px",top:(containerH-loader.get(0).height)/2+"px"});container.css({width:containerW+"px",height:containerH+"px"}).show();clientSize=jQuery.iUtil.getClient();outerContainer.css("top",a.t+(clientSize.h/15)+"px");if(outerContainer.css("display")=="none"){outerContainer.show().fadeIn(jQuery.ImageBox.options.fadeDuration)}imageEl=new Image;jQuery(imageEl).attr("id","ImageBoxCurrentImage").bind("load",function(){containerW=imageEl.width+jQuery.ImageBox.options.border*2;containerH=imageEl.height+jQuery.ImageBox.options.border*3;loader.hide();container.animate({height:containerH},containerSize.hb!=containerH?jQuery.ImageBox.options.fadeDuration:1,function(){container.animate({width:containerW},containerSize.wb!=containerW?jQuery.ImageBox.options.fadeDuration:1,function(){container.prepend(imageEl);jQuery(imageEl).css({position:"absolute",left:jQuery.ImageBox.options.border+"px",top:jQuery.ImageBox.options.border*2+"px"}).fadeIn(jQuery.ImageBox.options.fadeDuration,function(){captionSize=jQuery.iUtil.getSize(captionEl.get(0));if(!g){prevImageEl.addClass("not_active");prevImageEl.unbind("click");prevImageEl.bind("click",function(){return false})}else{prevImageEl.removeClass("not_active")}if(!e){nextImageEl.addClass("not_active");nextImageEl.unbind("click");nextImageEl.bind("click",function(){return false})}else{nextImageEl.removeClass("not_active")}prevImageEl.css({left:jQuery.ImageBox.options.border+"px",top:jQuery.ImageBox.options.border*2+"px",width:containerW/2-jQuery.ImageBox.options.border+"px",height:containerH-jQuery.ImageBox.options.border*3+"px"}).show();nextImageEl.css({left:containerW/2+"px",top:jQuery.ImageBox.options.border*2+"px",width:containerW/2-jQuery.ImageBox.options.border+"px",height:containerH-jQuery.ImageBox.options.border*3+"px"}).show();captionEl.css({width:containerW+"px",top:-captionSize.hb+"px",visibility:"visible"}).animate({top:-1},jQuery.ImageBox.options.fadeDuration,function(){jQuery.ImageBox.animationInProgress=false;jQuery("#ImageBoxCopyrightText").fadeIn(200)})})})})});imageEl.src=h},hideImage:function(){jQuery("#ImageBoxCurrentImage").remove();jQuery("#ImageBoxOuterContainer").hide();jQuery("#ImageBoxCaption").css("visibility","hidden");jQuery("#ImageBoxOverlay").fadeTo(300,0,function(){jQuery(this).hide();if(jQuery.browser.msie){jQuery("#ImageBoxIframe").hide()}});jQuery("#ImageBoxPrevImage").get(0).onclick=null;jQuery("#ImageBoxNextImage").get(0).onclick=null;jQuery.ImageBox.currentRel=null;jQuery.ImageBox.opened=false;jQuery.ImageBox.animationInProgress=false;return false}};function ClearCopyright(a){a=a.replace(/_/ig," ");a=a.replace(/--/ig,"|");return a};

$(function () {
    jQuery.ImageBox.init({
    	loaderSRC	  : (ib_loaderSRC == undefined ? JQUERY_ADDON_PATH+'/imagebox/loading.gif' : ib_loaderSRC),
		closeHTML	  : (ib_closeHTML == undefined ? '<div id="ImageBoxCloseLink">schließen</div>' : ib_closeHTML),
		textImage	  : (ib_textImage == undefined ? 'Bild' : ib_textImage),
		textImageFrom : (ib_textImageFrom == undefined ? 'von' : ib_textImageFrom)
    });
});
