;(function($){var $curLink,$overlay,$wrapper,$container,$superbox,$closeBtn,$loading,$nextprev,$nextBtn,$prevBtn,settings,defaultSettings={boxId:"superbox",boxClasses:"",overlayOpacity:.8,boxWidth:"600",boxHeight:"400",loadTxt:"Loading...",closeTxt:"Close",prevTxt:"Previous",nextTxt:"Next",beforeOpen:function(){},afterOpen:function(){}},galleryGroups={},galleryMode=false,hideElts=$([]),isWaiting=false;$.superbox=function(){settings=$.extend({},defaultSettings,$.superbox.settings);if($.browser.msie&&$.browser.version<7){hideElts=hideElts.add("select");}
if($.superbox.mainInit!==true){createElements();initGlobalEvents();$.superbox.mainInit=true;}
dispatch();};function dispatch(){$("a[rel^=superbox],area[rel^=superbox]").each(function(){var $this=$(this),relAttr=$this.attr("rel"),firstArg=relAttr.match(/^superbox\[([^\]]+)\]/)[1],type=firstArg.match(/^([^#\.]+)/)[1],boxCurrentAttrs=firstArg.replace(type,"").match(/([#\.][^#\.\]]+)/g)||[],newBoxId=settings.boxId,newBoxClasses=settings.boxClasses;if($this.data("superbox_init")){return;}
$this.data("superbox_init",true);this._relSettings=relAttr.replace("superbox["+type+boxCurrentAttrs.join("")+"]","");$.each(boxCurrentAttrs,function(i,val){if(val.substr(0,1)=="#"){newBoxId=val.substr(1);}else if(val.substr(0,1)=="."){newBoxClasses+=" "+val.substr(1);}});if(type.search(/^image|gallery|iframe|content|ajax$/)!=-1){$this.superbox(type,{boxId:newBoxId,boxClasses:newBoxClasses});}});};$.fn.superbox=function(type,curSettings){curSettings=$.extend({},settings,curSettings);$.superbox[type](this,curSettings);this.click(function(e){e.preventDefault();$curLink=this;});};$.extend($.superbox,{wait:function(callback){isWaiting=true;prepareBox();initLoading(function(){callback();});},open:function(content,curSettings){curSettings=$.extend({},settings,curSettings);if(!isWaiting){$.superbox.wait(function(){$.superbox.open(content,curSettings);});return;}
$superbox.width(curSettings.boxWidth+"px");$innerbox.height(curSettings.boxHeight+"px");$superbox.attr("id",curSettings.boxId).attr("class",curSettings.boxClasses);$(content).appendTo($innerbox);showBox(curSettings);isWaiting=false;},close:function(){hideBox();$overlay.fadeOut(300,function(){hideElts.show();});galleryMode=false;},image:function($elt,curSettings,isGallery){$elt.click(function(){galleryMode=!!isGallery;$.superbox.wait(function(){var relSettings=getRelSettings($elt.get(0)),dimensions=false;if(!!relSettings){var relDimensions;if(galleryMode){relDimensions=relSettings[1];}else{relDimensions=relSettings[0];}
if(!!relDimensions){dimensions=relDimensions.split("x");}}
var $curImg=$('<img src="'+$elt.attr("href")+'" title="'+($elt.attr("title")||$elt.text())+'" />');$curImg.load(function(){if(!!dimensions&&dimensions[0]!=""){var boxWidth=dimensions[0]-0;}else{var boxWidth=$curImg.width()+($innerbox.css("paddingLeft").slice(0,-2)-0)+($innerbox.css("paddingRight").slice(0,-2)-0);}
if(!!dimensions&&dimensions[1]!=""){var boxHeight=dimensions[1]-0;}else{var boxHeight=$curImg.height();}
curSettings=$.extend({},curSettings,{boxClasses:(galleryMode?"gallery ":"image ")+curSettings.boxClasses,boxWidth:boxWidth,boxHeight:boxHeight,beforeOpen:function(){if(galleryMode){nextPrev($elt,relSettings[0]);}}});$.superbox.open($curImg,curSettings);});$curImg.appendTo($innerbox);});});},gallery:function($elt,curSettings){var extraSettings=getRelSettings($elt.get(0));if(!galleryGroups[extraSettings[0]]){galleryGroups[extraSettings[0]]=[];}
galleryGroups[extraSettings[0]].push($elt);$elt.data("superboxGroupKey",galleryGroups[extraSettings[0]].length-1);$.superbox["image"]($elt,curSettings,true);},iframe:function($elt,curSettings){$elt.click(function(){$.superbox.wait(function(){var extraSettings=getRelSettings($elt.get(0));var dims=false;if(extraSettings){dims=extraSettings[0].split("x");}
curSettings=$.extend({},curSettings,{boxWidth:dims[0]||curSettings.boxWidth,boxHeight:dims[1]||curSettings.boxHeight,boxClasses:"iframe "+curSettings.boxClasses});var $iframe=$('<iframe title="'+$elt.text()+'" src="'+$elt.attr("href")+'" name="'+$elt.attr("href")+'" frameborder="0" scrolling="auto" width="'+curSettings.boxWidth+'" height="'+curSettings.boxHeight+'"></iframe>');$iframe.one("load",function(){$.superbox.open($iframe,curSettings);});$iframe.appendTo($innerbox);});});},content:function($elt,curSettings){$elt.click(function(){$.superbox.wait(function(){var extraSettings=getRelSettings($elt.get(0));var dims=false;if(extraSettings){dims=extraSettings[0].split("x");}
curSettings=$.extend({},curSettings,{boxWidth:dims[0]||curSettings.boxWidth,boxHeight:dims[1]||curSettings.boxHeight,boxClasses:"content "+curSettings.boxClasses});$.superbox.open($($elt.attr('href')).clone(),curSettings);});});},ajax:function($elt,curSettings){$elt.click(function(){$.superbox.wait(function(){var extraSettings=getRelSettings($elt.get(0));var dims=false;if(extraSettings&&extraSettings[1]){dims=extraSettings[1].split("x");}
curSettings=$.extend({},curSettings,{boxWidth:dims[0]||curSettings.boxWidth,boxHeight:dims[1]||curSettings.boxHeight,boxClasses:"ajax "+curSettings.boxClasses});var splitUrl=extraSettings[0].split("#");var ajaxUrl=splitUrl[0];var anchor=splitUrl[1]||false;$.get(ajaxUrl,function(data){if(anchor!==false){data=$(data).find("#"+anchor);}
$.superbox.open(data,curSettings);});});});}});function getRelSettings(elt){return elt._relSettings.match(/([^\[\]]+)/g);};function nextPrev($elt,group){$nextprev.show();galleryMode=true;var nextKey=$elt.data("superboxGroupKey")+1,prevKey=nextKey-2;if(galleryGroups[group][nextKey]){$nextBtn.removeClass("disabled").unbind("click").bind("click",function(){galleryGroups[group][nextKey].click();});}else{$nextBtn.addClass("disabled").unbind("click");}
if(galleryGroups[group][prevKey]){$prevBtn.removeClass("disabled").unbind("click").bind("click",function(){galleryGroups[group][prevKey].click();});}else{$prevBtn.addClass("disabled").unbind("click");}
$(document).unbind("keydown.superbox_np").bind("keydown.superbox_np",function(e){if(e.keyCode==39){$nextBtn.click();}else if(e.keyCode==37){$prevBtn.click();}});};function hideBox(){if(!!$curLink){$curLink.focus();}
$(document).unbind("keydown.spbx_close").unbind("keydown.superbox_np");$loading.hide();$nextprev.hide();$wrapper.hide().css({position:"fixed",top:0});$innerbox.empty();$curLink=null;};function initLoading(callback){$(document).unbind("keydown.spbx_close").bind("keydown.spbx_close",function(e){if(e.keyCode==27){$.superbox.close();}});var loading=function(){if($.browser.msie&&$.browser.version<7){$wrapper.css({position:"absolute",top:"50%"});}
hideElts.hide();$loading.show();callback();};if(galleryMode){$overlay.css("opacity",settings.overlayOpacity).show();loading();}
else{$overlay.css("opacity",0).show().fadeTo(300,settings.overlayOpacity,loading);}};function prepareBox(){$wrapper.show();$innerbox.empty();$superbox.css({position:"absolute",top:"-99999px"});};function showBox(curSettings){curSettings=$.extend({},settings,curSettings);$loading.hide();$superbox.css({position:"static",top:0,opacity:0});if($.browser.msie&&$.browser.version<8){$superbox.css({position:"relative",top:"-50%"});if($.browser.msie&&$.browser.version<7){$wrapper.css({position:"absolute",top:"50%"});}}
if($(window).height()<$wrapper.height()){$wrapper.css({position:"absolute",top:($wrapper.offset().top+10)+"px"});}
curSettings.beforeOpen();$superbox.fadeTo(300,1,function(){curSettings.afterOpen();}).focus();};function createElements(){$overlay=$('<div id="superbox-overlay"/>').appendTo("body").hide();$wrapper=$('<div id="superbox-wrapper"/>').appendTo("body").hide();$container=$('<div id="superbox-container"/>').appendTo($wrapper);$superbox=$('<div id="superbox" tabindex="0"/>').appendTo($container);$innerbox=$('<div id="superbox-innerbox"/>').appendTo($superbox);$nextprev=$('<p class="nextprev"/>').appendTo($superbox).hide();$prevBtn=$('<a class="prev" tabindex="0" role="button"><strong><span>'+settings.prevTxt+'</span></strong></a>').appendTo($nextprev);$nextBtn=$('<a class="next" tabindex="0" role="button"><strong><span>'+settings.nextTxt+'</span></strong></a>').appendTo($nextprev);$closeBtn=$('<p class="close"><a tabindex="0" role="button"><strong><span>'+settings.closeTxt+'</span></strong></a></p>').prependTo($superbox).find("a");$loading=$('<p class="loading">'+settings.loadTxt+'</p>').appendTo($container).hide();};function initGlobalEvents(){$overlay.add($wrapper).add($closeBtn).click(function(){$.superbox.close();});$superbox.click(function(e){e.stopPropagation();});if(!window.opera){$prevBtn.add($closeBtn).add($nextBtn).keypress(function(e){if(e.keyCode===13){$(this).click();}});}}})(jQuery);
