/**
 * papaya objects for jQuery
 * lightbox
 *
 * @copyright 2002-2007 by papaya Software GmbH - All rights reserved.
 * @link http://www.papaya-cms.com/
 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License, version 2
 *
 * You can redistribute and/or modify this script under the terms of the GNU General Public
 * License (GPL) version 2, provided that the copyright and license notes, including these
 * lines, remain unmodified. papaya is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.
 *
 * @package papaya
 * @author Michael van Engelshoven <engelshoven@papaya-cms.com>
 * @version $Id$
 */

jQuery.papayaLightbox={init:function(settings){var cContainers=this;settings=jQuery.extend({zIndex:3000,repositionLightbox:true,overlayOpacity:50,fadeTime:150,slideTime:300,overlayClass:'lightboxOverlay',activeOverlayClass:'activeOverlay',closeTrigger:'.lightboxCloseTrigger',openTrigger:'.lightboxOpenTrigger',hideFlashObjects:true,closeOnClick:true,closeOnEsc:true,onShow:false,onHide:false,afterShow:false,afterHide:false},settings);jQuery.papayaLightbox.initOverlay(settings);return cContainers.each(function(){var jDomElem=this;jDomElem.lightboxSettings=settings;jDomElem.lightboxActive=false;jQuery(jDomElem).css({zIndex:settings.zIndex+1});if(settings.repositionLightbox){jQuery.papayaLightbox.reposiontLightbox(jDomElem);}
jQuery(jDomElem).addOpenTrigger(settings.openTrigger);jQuery(jDomElem).addCloseTrigger(settings.closeTrigger);if(settings.closeOnClick){jQuery("."+settings.overlayClass).click(function(){jQuery(jDomElem).closeLightbox();});}
if(settings.closeOnEsc){if(window.event){jQuery("body",document).keyup(function(jEvtElem){jQuery.papayaLightbox.keyPressed(jEvtElem,jDomElem);});}else{jQuery(document).keyup(function(jEvtElem){jQuery.papayaLightbox.keyPressed(jEvtElem,jDomElem);});}}});},addOpenTrigger:function(openTrigger){var cContainers=this;return cContainers.each(function(){var jDomElem=this;jQuery(openTrigger).click(function(){jQuery(jDomElem).openLightbox();return false;});});},addCloseTrigger:function(closeTrigger){var cContainers=this;return cContainers.each(function(){var jDomElem=this;jQuery(closeTrigger).click(function(){jQuery(jDomElem).closeLightbox();return false;});});},show:function(jDomElem){if(jDomElem.lightboxActive==false){var settings=jDomElem.lightboxSettings;var pageSize=jQuery.papayaUtils.getSize();if(jQuery.browser.msie){jQuery('#ImageBoxIframe').css('height',Math.max(pageSize.iheight,pageSize.height)+'px').css('width',Math.max(pageSize.iwidth,pageSize.width)+'px').show();jQuery(window).bind("scroll",function(){jQuery.papayaLightbox.resizeOverlay();});}
if(settings.hideFlashObjects){jDomElem.hiddenFlashObjects=$("object:visible, embed:visible");jDomElem.hiddenFlashObjects.hide();}
jQuery("."+settings.overlayClass).each(function(){var overlayObj=this;jQuery(overlayObj).css({zIndex:settings.zIndex,position:'absolute',top:0,left:0,height:Math.max(pageSize.iheight,pageSize.height),width:Math.max(pageSize.iwidth,pageSize.width)}).fadeIn(settings.fadeTime,function(){var bodySize=jQuery.papayaLightbox.reposiontLightbox(jDomElem);jQuery(jDomElem).slideDown(settings.slideTime,function(){jDomElem.lightboxActive=true;if(jDomElem.lightboxSettings.afterShow){jDomElem.lightboxSettings.afterShow();}});}).addClass("activeOverlay");$(window).resize(function(){jQuery.papayaLightbox.resizeOverlay();});overlayObj.lightboxCount++;});}},hide:function(jDomElem){if(jDomElem.lightboxActive==true){var settings=jDomElem.lightboxSettings;jQuery(jDomElem).hide();jDomElem.lightboxActive=false;jQuery("."+settings.overlayClass).each(function(){var overlayObj=this;overlayObj.lightboxCount--;if(overlayObj.lightboxCount<=0){jQuery(overlayObj).fadeOut(settings.fadeTime,function(){if(jQuery.browser.msie){jQuery('#ImageBoxIframe').hide();jQuery(window).unbind("scroll");}
if(jDomElem.lightboxSettings.afterHide){jDomElem.lightboxSettings.afterHide();}}).removeClass("activeOverlay");$(window).unbind("resize");}else{if(jDomElem.lightboxSettings.afterHide){jDomElem.lightboxSettings.afterHide();}}});if(settings.hideFlashObjects&&jDomElem.hiddenFlashObjects){jDomElem.hiddenFlashObjects.show();}}},openLightbox:function(settings){var cContainers=this;return cContainers.each(function(){var jDomElem=this;if(!jDomElem.lightboxSettings){jQuery(jDomElem).papayaLightbox(settings);}
if(jDomElem.lightboxSettings.onShow){if(jDomElem.lightboxSettings.onShow()){jQuery.papayaLightbox.show(jDomElem);}}else{jQuery.papayaLightbox.show(jDomElem);}});},closeLightbox:function(){var cContainers=this;return cContainers.each(function(){var jDomElem=this;if(jDomElem.lightboxSettings.onHide){if(jDomElem.lightboxSettings.onHide()){jQuery.papayaLightbox.hide(jDomElem);}}else{jQuery.papayaLightbox.hide(jDomElem);}});},reposiontLightbox:function(jDomElem){jQuery(jDomElem).css({position:"absolute",left:"-9999px",top:"0px",display:"block"}).appendTo("body");var elemSize=jQuery.papayaUtils.getSize(jDomElem);var bodySize=jQuery.papayaUtils.getSize(jQuery('body'));jQuery(jDomElem).css({position:"absolute",left:"50%",top:(bodySize.top+50)+'px',marginLeft:0-(elemSize.width/2),display:"none"});},initOverlay:function(settings){if(jQuery("."+settings.overlayClass).length==0){var overlayObj=jQuery("<div/>").addClass(settings.overlayClass).css({opacity:settings.overlayOpacity/100,display:'none'});jQuery("body").prepend(overlayObj);jQuery("."+settings.overlayClass).each(function(){var jDomElem=this;jDomElem.lightboxCount=0;});}
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);}},resizeOverlay:function(){if(jQuery.browser.msie&&jQuery.browser.version<7.0){var pageSize=jQuery.papayaUtils.getSize();jQuery(".activeOverlay").css({display:'block',position:'absolute',top:pageSize.top,left:pageSize.left,height:pageSize.iheight,width:pageSize.iwidth});}else{jQuery(".activeOverlay").css({position:'fixed',top:0,left:0,width:'100%',height:'100%'});}},keyPressed:function(jEvtElem,jDomElem){if(jDomElem.lightboxActive){var keyCode=jEvtElem.charCode||jEvtElem.keyCode||-1;if(keyCode==27){jQuery(jDomElem).closeLightbox();}}},getSize:function(jDomElem){var top=0;var left=0;var width=0;var height=0;var iwidth=0;var iheight=0;if(jDomElem&&jDomElem.nodeName.toLowerCase()!='body'){top=jDomElem.scrollTop;left=jDomElem.scrollLeft;width=jDomElem.scrollWidth;height=jDomElem.scrollHeight;}else{if(document.documentElement){top=document.documentElement.scrollTop;left=document.documentElement.scrollLeft;width=document.documentElement.scrollWidth;height=document.documentElement.scrollHeight;}else if(document.body){top=document.body.scrollTop;left=document.body.scrollLeft;width=document.body.scrollWidth;height=document.body.scrollHeight;}
iwidth=self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;iheight=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;}
return{top:top,left:left,width:width,height:height,iwidth:iwidth,iheight:iheight};}};jQuery.fn.extend({papayaLightbox:jQuery.papayaLightbox.init,openLightbox:jQuery.papayaLightbox.openLightbox,closeLightbox:jQuery.papayaLightbox.closeLightbox,addOpenTrigger:jQuery.papayaLightbox.addOpenTrigger,addCloseTrigger:jQuery.papayaLightbox.addCloseTrigger});function hobnoxMsgBox(settings){settings=jQuery.extend({className:"lightbox",title:"hobnox message box",text:"",hideFlashObjects:true,confirmCaption:"OK",cancelCaption:false,afterConfirm:false,afterCancel:false,afterShow:false},settings);var jDomElem=jQuery("<div/>").addClass(settings.className).addClass("hobnoxMsgBox");jQuery("<h1/>").text(settings.title).appendTo(jDomElem);jQuery("<div/>").addClass("instruction lightboxContent").html(settings.text).appendTo(jDomElem);jQuery("<div/>").addClass("actionButtons").appendTo(jDomElem);jQuery("<button/>").text(settings.confirmCaption).click(function(){if(settings.afterConfirm){settings.afterConfirm(jDomElem);}
jQuery(".hobnoxMsgBox").closeLightbox().remove();}).appendTo(jQuery(".actionButtons",jDomElem));if(settings.cancelCaption){jQuery("<button/>").text(settings.cancelCaption).click(function(){if(settings.afterCancel){settings.afterCancel(jDomElem);}
jQuery(".hobnoxMsgBox").closeLightbox().remove();}).appendTo(jQuery(".actionButtons",jDomElem));}
jQuery("body").append(jDomElem);jQuery(".hobnoxMsgBox").openLightbox({closeOnEsc:false,closeOnClick:false,hideFlashObjects:settings.hideFlashObjects});if(settings.afterShow){settings.afterShow(jDomElem);}}