(function($){var defaults={minimalTopSpacingOfModalbox:50,draggable:true,killModalboxWithCloseButtonOnly:false,setWidthOfModalLayer:760,customClassName:null,getStaticContentFrom:null,positionLeft:null,positionTop:null,effectType_show_fadingLayer:['fade','fast'],effectType_hide_fadingLayer:['fade','fast'],effectType_show_modalBox:['show'],effectType_hide_modalBox:['hide'],selectorModalboxContainer:'#modalBox',selectorModalboxBodyContainer:'#modalBoxBody',selectorModalboxBodyContentContainer:'.modalBoxBodyContent',selectorFadingLayer:'#modalBoxFaderLayer',selectorAjaxLoader:'#modalBoxAjaxLoader',selectorModalboxCloseContainer:'#modalBoxCloseButton',selectorModalboxContentContainer:'.modalboxContent',selectorHiddenAjaxInputField:'ajaxhref',selectorPreCacheContainer:'#modalboxPreCacheContainer',selectorImageGallery:'.modalgallery',setModalboxLayoutContainer_Begin:'<div class="modalboxStyleContainer_surface_left"><div class="modalboxStyleContainer_surface_right"><div class="modalboxStyleContainerContent"><div class="modalBoxBodyContent">',setModalboxLayoutContainer_End:'</div></div></div></div><div class="modalboxStyleContainer_corner_topLeft"><!-- - --></div><div class="modalboxStyleContainer_corner_topRight"><!-- - --></div><div class="modalboxStyleContainer_corner_bottomLeft"><!-- - --></div><div class="modalboxStyleContainer_corner_bottomRight"><!-- - --></div><div class="modalboxStyleContainer_surface_top"><div class="modalboxStyleContainer_surface_body"><!-- - --></div></div><div class="modalboxStyleContainer_surface_bottom"><div class="modalboxStyleContainer_surface_body"><!-- - --></div></div>',localizedStrings:{messageCloseWindow:'Close Window',messageAjaxLoader:'Please wait',errorMessageIfNoDataAvailable:'<strong>No content available!</strong>',errorMessageXMLHttpRequest:'Error: XML-Http-Request Status "500"',errorMessageTextStatusError:'Error: AJAX Request failed'},setTypeOfFadingLayer:'black',setStylesOfFadingLayer:{white:'background-color:#fff; filter:alpha(opacity=30); -moz-opacity:0.3; opacity:0.3;',black:'background-color:#000; filter:alpha(opacity=70); -moz-opacity:0.7; opacity:0.7;',transparent:'background-color:transparent;',custom:null},directCall:{source:null,data:null,element:null},ajax_type:'POST',ajax_contentType:'application/x-www-form-urlencoded; charset=utf-8',callFunctionBeforeShow:function(){return true;},callFunctionAfterShow:function(){},callFunctionBeforeHide:function(){},callFunctionAfterHide:function(){}};try{defaults=jQuery.extend({},defaults,modalboxGlobalDefaults);}catch(error){}
var methods={init:function(globaloptions){var globaloptions=jQuery.extend({},defaults,globaloptions);if(globaloptions.directCall){if(globaloptions.directCall["source"]){openModalBox({type:'ajax',source:globaloptions.directCall["source"],data:null});}else if(globaloptions.directCall["data"]){openModalBox({type:'static',source:null,data:globaloptions.directCall["data"]});}else if(globaloptions.directCall["element"]){openModalBox({type:'static',source:null,data:jQuery(globaloptions.directCall["element"]).html()});}}
var doNotBindEventsOnWindowResize=false;jQuery(window).resize(function(){doNotBindEventsOnWindowResize=true;});if(!doNotBindEventsOnWindowResize){jQuery(this).die("click").live("click",function(event){prepareModalbox({event:event,element:jQuery(this)});});}
function prepareModalbox(settings){var settings=jQuery.extend({event:null,element:null,doNotOpenModalBoxContent:false,isFormSubmit:false},settings||{});if(settings.event&&settings.element){var elementObj=settings.element;if(elementObj.is("input")){var source=elementObj.parents('form').attr('action');var data=elementObj.parents('form').serialize();var type='ajax';settings.isFormSubmit=true;settings.event.preventDefault();}else if(jQuery("input[name$='"+globaloptions.selectorHiddenAjaxInputField+"']",elementObj).length!=0){var source=jQuery("input[name$='"+globaloptions.selectorHiddenAjaxInputField+"']",elementObj).val();var data='';var type='ajax';settings.event.preventDefault();}else if(jQuery(globaloptions.selectorModalboxContentContainer,elementObj).length!=0){if(jQuery(globaloptions.selectorModalboxContentContainer+" img"+globaloptions.selectorImageGallery,elementObj).length!=0){var currentImageObj=jQuery(globaloptions.selectorModalboxContentContainer+" img"+globaloptions.selectorImageGallery,elementObj);}
var source='';var data=jQuery(globaloptions.selectorModalboxContentContainer,elementObj).html();var type='static';settings.event.preventDefault();}else if(globaloptions.getStaticContentFrom){var source='';var data=jQuery(globaloptions.getStaticContentFrom).html();var type='static';settings.event.preventDefault();}else{settings.doNotOpenModalBoxContent=true;}
if(!settings.doNotOpenModalBoxContent){openModalBox({type:type,element:elementObj,source:source,data:data,loadingImagePreparer:{currentImageObj:currentImageObj,finalizeModalBox:false}});}
if(settings.isFormSubmit){return false;}}}
function ajaxRedirect(settings){var settings=jQuery.extend({ar_XMLHttpRequest:null,ar_textStatus:null,ar_errorThrown:null,targetContainer:null,ar_enableDebugging:false},settings||{});var XMLHttpRequest=settings.ar_XMLHttpRequest;var textStatus=settings.ar_textStatus;var errorThrown=settings.ar_errorThrown;if(XMLHttpRequest&&textStatus!="error"){if(XMLHttpRequest.status==403){var redirect=XMLHttpRequest.getResponseHeader("Location");if(typeof redirect!=="undefined"){location.href=redirect;}}else if(XMLHttpRequest.status==500&&settings.targetContainer){addErrorMessage({errorMessage:globaloptions.localizedStrings["errorMessageXMLHttpRequest"],targetContainer:settings.targetContainer});}
if(settings.ar_enableDebugging){console.log("XMLHttpRequest.status: "+XMLHttpRequest.status);}}else if(textStatus=="error"){if(settings.targetContainer){addErrorMessage({errorMessage:globaloptions.localizedStrings["errorMessageTextStatusError"],targetContainer:settings.targetContainer});}
if(settings.ar_enableDebugging){console.log("textStatus: "+textStatus);}}else{}
function addErrorMessage(settings){var settings=jQuery.extend({errorMessage:null,targetContainer:null},settings||{});if(settings.errorMessage&&settings.targetContainer){var errorMessageContainer='<div class="simleModalboxErrorBox"><div class="simleModalboxErrorBoxContent">'+settings.errorMessage+'</div></div>';jQuery(settings.targetContainer).removeAttr("style").html(errorMessageContainer);if(jQuery(settings.targetContainer).parents(globaloptions.selectorModalboxContainer).length>0){jQuery(globaloptions.selectorAjaxLoader).remove();centerModalBox();}}}}
function imagePreparer(settings){var settings=jQuery.extend({type:settings.type,element:settings.element,source:settings.source,data:settings.data,loadingImagePreparer:{currentImageObj:settings.loadingImagePreparer["currentImageObj"],finalizeModalBox:settings.loadingImagePreparer["finalizeModalBox"]},nameOfImagePreloaderContainer:"imagePreparerLoader",wrapContainer:'<div class="modalBoxCarouselItemContainer"></div>'},settings||{});var imageObj=settings.loadingImagePreparer["currentImageObj"];if(imageObj){jQuery(globaloptions.selectorModalboxContentContainer).css({display:"block",position:"absolute",left:"-9999px",top:"-9999px"}).removeAttr("style");openModalBox({type:settings.type,element:settings.element,source:settings.source,data:settings.data,loadingImagePreparer:{currentImageObj:imageObj,finalizeModalBox:true,nameOfImagePreloaderContainer:settings.nameOfImagePreloaderContainer}});}}
function openModalBox(settings){var settings=jQuery.extend({type:null,element:null,source:null,data:null,loadingImagePreparer:{currentImageObj:null,finalizeModalBox:false,nameOfImagePreloaderContainer:null},prepareCustomWidthOfModalBox:"",setModalboxClassName:""},settings||{});function initClose(){methods.close({callFunctionBeforeHide:globaloptions.callFunctionBeforeHide,callFunctionAfterHide:globaloptions.callFunctionAfterHide});}
if(!globaloptions.killModalboxWithCloseButtonOnly){jQuery(globaloptions.selectorFadingLayer).die("click").live("click",function(){initClose();});}
jQuery(globaloptions.selectorModalboxContainer+" .closeModalBox").die("click").live("click",function(){initClose();});jQuery(globaloptions.selectorPreCacheContainer).remove();if(settings.loadingImagePreparer["currentImageObj"]&&!settings.loadingImagePreparer["finalizeModalBox"]){imagePreparer({type:settings.type,element:settings.element,source:settings.source,data:settings.data,loadingImagePreparer:settings.loadingImagePreparer});}else{if(settings.type&&globaloptions.callFunctionBeforeShow()){if(settings.source){settings.source=methods.addAjaxUrlParameter({currentURL:settings.source});}
if(settings.element){if(jQuery(settings.element).hasClass("large")){settings.setModalboxClassName+='large';}else if(jQuery(settings.element).hasClass("medium")){settings.setModalboxClassName+='medium';}else if(jQuery(settings.element).hasClass("small")){settings.setModalboxClassName+='small';}else if(settings.loadingImagePreparer["nameOfImagePreloaderContainer"]){settings.setModalboxClassName+='auto modalBoxBodyContentImageContainer';}
if(jQuery(settings.element).hasClass("emphasis")){settings.setModalboxClassName+=' emphasis';}}
if(globaloptions.customClassName){settings.setModalboxClassName+=' '+globaloptions.customClassName;}
if(globaloptions.draggable){settings.setModalboxClassName+=' modalboxIsDraggable';}
if(globaloptions.setWidthOfModalLayer){settings.prepareCustomWidthOfModalBox+='width:'+parseInt(globaloptions.setWidthOfModalLayer)+'px; ';}
if(jQuery(globaloptions.selectorModalboxContainer).length==0){jQuery("body").append(methods.modalboxBuilder({customStyles:'class="'+settings.setModalboxClassName+'" style="'+settings.prepareCustomWidthOfModalBox+'"'}));}else{methods.clean();}
var getCurrentContent=function(){switch(settings.type){case'static':{jQuery(globaloptions.selectorAjaxLoader).hide();jQuery(globaloptions.selectorModalboxBodyContentContainer,globaloptions.selectorModalboxContainer).html(settings.data);centerModalBox({callFunctionAfterShow:globaloptions.callFunctionAfterShow});break;}case'ajax':{jQuery.ajax({type:globaloptions.ajax_type,url:settings.source,data:settings.data,contentType:globaloptions.ajax_contentType,success:function(data,textStatus){jQuery(globaloptions.selectorAjaxLoader).fadeOut("fast",function(){jQuery(globaloptions.selectorModalboxBodyContentContainer,globaloptions.selectorModalboxContainer).html(data);centerModalBox({callFunctionAfterShow:globaloptions.callFunctionAfterShow});});},error:function(XMLHttpRequest,textStatus,errorThrown){ajaxRedirect({ar_XMLHttpRequest:XMLHttpRequest,ar_textStatus:textStatus,ar_errorThrown:errorThrown,targetContainer:globaloptions.selectorModalboxContainer+" "+globaloptions.selectorModalboxBodyContentContainer});}});break;}}
if(globaloptions.draggable){methods.dragBox();}}
showFadingLayer({callFunctionAfterShow:getCurrentContent});}}}
function showFadingLayer(settings){var settings=jQuery.extend({isResized:false,callFunctionAfterShow:null},settings||{});if(jQuery(globaloptions.selectorFadingLayer).length==0){if(globaloptions.setTypeOfFadingLayer=="white"){var setStyleOfFadingLayer=globaloptions.setStylesOfFadingLayer["white"];}else if(globaloptions.setTypeOfFadingLayer=="black"){var setStyleOfFadingLayer=globaloptions.setStylesOfFadingLayer["black"];}else if(globaloptions.setTypeOfFadingLayer=="custom"&&globaloptions.setStylesOfFadingLayer["custom"]){var setStyleOfFadingLayer=globaloptions.setStylesOfFadingLayer["custom"];}else{var setStyleOfFadingLayer=globaloptions.setStylesOfFadingLayer["transparent"];}
var prepareNameOfFadingLayer=methods.cleanupSelectorName({replaceValue:globaloptions.selectorFadingLayer});jQuery("body").append('<div id="'+prepareNameOfFadingLayer+'" style="'+setStyleOfFadingLayer+'"></div>');var getGeneratedFaderObj=jQuery(globaloptions.selectorFadingLayer);if(globaloptions.setTypeOfFadingLayer=="disable"){globaloptions.effectType_show_fadingLayer[0]="";}
switch(globaloptions.effectType_show_fadingLayer[0]){case'fade':{getGeneratedFaderObj.fadeIn(globaloptions.effectType_show_fadingLayer[1],function(){centerModalBox({isResized:settings.isResized,callFunctionAfterShow:settings.callFunctionAfterShow});});break;}default:{getGeneratedFaderObj.show();centerModalBox({isResized:settings.isResized,callFunctionAfterShow:settings.callFunctionAfterShow});break;}};jQuery(window).resize(function(){if(getGeneratedFaderObj.is(':visible')){centerModalBox({isResized:true});}});}else{centerModalBox({isResized:settings.isResized,callFunctionAfterShow:settings.callFunctionAfterShow});}}
function centerModalBox(settings){var settings=jQuery.extend({isResized:false,callFunctionAfterShow:null},settings||{});var modalboxContainerObj=jQuery(globaloptions.selectorModalboxContainer);if(jQuery(globaloptions.selectorPreCacheContainer).length==0&&modalboxContainerObj.length!=0){if(jQuery("body a.modalBoxTopLink").length==0){jQuery("body").prepend('<a class="modalBoxTopLink"></a>');}
var scrollToTop=false;var positionAttr='absolute';var setPositionTop=0;var getModalboxContainerWidth=modalboxContainerObj.width();var getModalboxContainerHeight=modalboxContainerObj.height();var setPositionLeft=parseInt(jQuery(window).width()-getModalboxContainerWidth)/2;if(setPositionLeft<=0){setPositionLeft=0;}
if(globaloptions.positionLeft){setPositionLeft=globaloptions.positionLeft+'px';}else{setPositionLeft=setPositionLeft+'px';}
if(globaloptions.positionTop){setPositionTop=parseInt(jQuery(window).height()-getModalboxContainerHeight);if(setPositionTop>parseInt(globaloptions.positionTop)){positionAttr='fixed';}
setPositionTop=globaloptions.positionTop+'px';}else{setPositionTop=parseInt(jQuery(window).height()-getModalboxContainerHeight-70)/2;if(setPositionTop<=0){setPositionTop=globaloptions.minimalTopSpacingOfModalbox+'px';scrollToTop=true;}else{setPositionTop=setPositionTop+'px';positionAttr='fixed';}}
function initLastSteps(){if(scrollToTop&&!modalboxContainerObj.hasClass("modalboxScrollingSuccessfully")){modalboxContainerObj.addClass("modalboxScrollingSuccessfully");methods.scrollTo();}
if(!settings.isResized){if(settings.callFunctionAfterShow){settings.callFunctionAfterShow();}}}
switch(globaloptions.effectType_show_modalBox[0]){case'fade':{if(modalboxContainerObj.hasClass("modalboxFadingSuccessfully")){modalboxContainerObj.css({position:positionAttr,left:setPositionLeft,top:setPositionTop,display:"block",visibility:"visible"});initLastSteps();}else{modalboxContainerObj.css({position:positionAttr,left:setPositionLeft,top:setPositionTop,visibility:"visible"}).fadeIn(globaloptions.effectType_show_modalBox[1],function(){jQuery(this).addClass("modalboxFadingSuccessfully");initLastSteps();});}
break;}default:{modalboxContainerObj.css({position:positionAttr,left:setPositionLeft,top:setPositionTop,display:"block",visibility:"visible"});initLastSteps();break;}};}}},close:function(settings){var settings=jQuery.extend({},defaults,settings);if(settings.selectorFadingLayer&&settings.selectorModalboxContainer){settings.callFunctionBeforeHide();var containerObj=jQuery(settings.selectorFadingLayer+', '+settings.selectorModalboxContainer);if(settings.setTypeOfFadingLayer=="disable"){settings.effectType_hide_fadingLayer[0]="";}
switch(settings.effectType_hide_fadingLayer[0]){case'fade':{switch(settings.effectType_hide_modalBox[0]){case'fade':{jQuery(settings.selectorModalboxContainer).fadeOut(settings.effectType_hide_modalBox[1],function(){jQuery(settings.selectorFadingLayer).fadeOut(settings.effectType_hide_fadingLayer[1],function(){removeLayer(containerObj);});});break;}default:{jQuery(settings.selectorModalboxContainer).hide();jQuery(settings.selectorFadingLayer).fadeOut(settings.effectType_hide_fadingLayer[1],function(){removeLayer(containerObj);});break;}};break;}default:{switch(settings.effectType_hide_modalBox[0]){case'fade':{jQuery(settings.selectorModalboxContainer).fadeOut(settings.effectType_hide_modalBox[1],function(){removeLayer(containerObj);});break;}default:{removeLayer(containerObj);break;}};break;}};}
function removeLayer(container){container.remove();settings.callFunctionAfterHide();}},clean:function(settings){var settings=jQuery.extend({},defaults,settings);if(settings.selectorModalboxBodyContentContainer){var prepareNameOfAjaxLoader=methods.cleanupSelectorName({replaceValue:settings.selectorAjaxLoader});jQuery(settings.selectorModalboxBodyContentContainer).html('<div id="'+prepareNameOfAjaxLoader+'">'+settings.localizedStrings["messageAjaxLoader"]+'</div>');}},scrollTo:function(settings){var settings=jQuery.extend({targetElement:"a.modalBoxTopLink",typeOfAnimation:'swing',animationSpeed:800,callAfterSuccess:function(){}},settings||{});if(settings.targetElement){if(jQuery.browser.webkit){var animateObj=jQuery("body");}else{var animateObj=jQuery("html");}
animateObj.animate({scrollTop:jQuery(settings.targetElement).offset().top},settings.animationSpeed,settings.typeOfAnimation,function(){settings.callAfterSuccess();});}},cleanupSelectorName:function(settings){var settings=jQuery.extend({replaceValue:''},settings||{});var currentReturnValue=settings.replaceValue;currentReturnValue=currentReturnValue.replace(/[#]/g,"");currentReturnValue=currentReturnValue.replace(/[.]/g,"");return currentReturnValue;},dragBox:function(settings){var settings=jQuery.extend({dragObject:null,dragObjectPosX:0,dragObjectPosY:0,documentPosX:0,documentPosY:0},settings||{});settings=jQuery.extend({},defaults,settings);function moveObject(obj){settings.dragObject=obj;settings.dragObjectPosX=(settings.documentPosX-settings.dragObject.offsetLeft);settings.dragObjectPosY=(settings.documentPosY-settings.dragObject.offsetTop);}
jQuery(document).mousemove(function(event){settings.documentPosX=event.pageX;settings.documentPosY=event.pageY;if(settings.dragObject){jQuery(settings.dragObject).css({left:(settings.documentPosX-settings.dragObjectPosX)+"px",top:(settings.documentPosY-settings.dragObjectPosY)+"px"});}});jQuery(settings.selectorModalboxContainer+" .modalboxStyleContainer_surface_top, "+settings.selectorModalboxContainer+" .modalboxStyleContainer_surface_bottom").unbind('mousedown').bind('mousedown',function(event){if(event.type=='mousedown'){jQuery(settings.selectorModalboxContainer).unbind('mousemove mouseup').bind('mousemove mouseup',function(event){var thisObj=jQuery(this);if(thisObj.is(":visible")){if(event.type=='mousemove'){moveObject(this);}else if(event.type=='mouseup'){settings.dragObject=null;thisObj.unbind('mousemove');}}});}});},addAjaxUrlParameter:function(settings){var settings=jQuery.extend({currentURL:'',addParameterName:'ajaxContent',addParameterValue:'true'},settings||{});var currentURL=settings.currentURL;if(currentURL.indexOf(settings.addParameterName)!=-1){currentURL=currentURL;}else{if(currentURL.indexOf("?")!=-1){var currentSeparator="&";}else{var currentSeparator="?";}
currentURL=currentURL+currentSeparator+settings.addParameterName+'='+settings.addParameterValue;}
return currentURL;},precache:function(settings){var settings=jQuery.extend({},defaults,settings);if(settings.selectorPreCacheContainer){if(jQuery(settings.selectorPreCacheContainer).length==0){var prepareNameOfPreCacheContainer=methods.cleanupSelectorName({replaceValue:settings.selectorPreCacheContainer});var createModalboxContainer=methods.modalboxBuilder();var preCacheContainer='';preCacheContainer+='<div id="'+prepareNameOfPreCacheContainer+'" style="position:absolute; left:-9999px; top:-9999px;">';preCacheContainer+=createModalboxContainer;preCacheContainer+='</div>';jQuery("body").append(preCacheContainer);jQuery(settings.selectorModalboxContainer).show();}}},modalboxBuilder:function(settings){var settings=jQuery.extend({customStyles:''},settings||{});settings=jQuery.extend({},defaults,settings);var prepareNameOfModalboxContainer=methods.cleanupSelectorName({replaceValue:settings.selectorModalboxContainer});var prepareNameOfModalboxBodyContainer=methods.cleanupSelectorName({replaceValue:settings.selectorModalboxBodyContainer});var prepareNameOfModalboxContentContainer=methods.cleanupSelectorName({replaceValue:settings.selectorModalboxBodyContentContainer});var prepareNameOfCloseButtonContainer=methods.cleanupSelectorName({replaceValue:settings.selectorModalboxCloseContainer});var prepareNameOfAjaxLoader=methods.cleanupSelectorName({replaceValue:settings.selectorAjaxLoader});var createModalboxContainer='';createModalboxContainer+='<div id="'+prepareNameOfModalboxContainer+'"'+settings.customStyles+'>';createModalboxContainer+='<div id="'+prepareNameOfModalboxBodyContainer+'">';createModalboxContainer+=settings.setModalboxLayoutContainer_Begin;createModalboxContainer+='<div class="'+prepareNameOfModalboxContentContainer+'">';createModalboxContainer+='<div id="'+prepareNameOfAjaxLoader+'">'+settings.localizedStrings["messageAjaxLoader"]+'</div>';createModalboxContainer+='</div>';createModalboxContainer+=settings.setModalboxLayoutContainer_End;createModalboxContainer+='<div id="'+prepareNameOfCloseButtonContainer+'"><a href="javascript:void(0);" class="closeModalBox"><span class="closeModalBox">'+settings.localizedStrings["messageCloseWindow"]+'</span></a></div>';createModalboxContainer+='</div>';createModalboxContainer+='</div>';return createModalboxContainer;}};jQuery.fn.modalBox=function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return methods.init.apply(this,arguments);}else{jQuery.error('Method '+method+' does not exist on jQuery.modalBox');}};jQuery(document).ready(function(){jQuery.fn.modalBox("precache");jQuery(".openmodalbox").modalBox();});})(jQuery);
