(function($){var globals={settings:{},options:{},catlist:{},cache:{},current_category:"",isGalleryActive:false};$.fn.extend({putEasyGallery:function(options){var responseMessage="Error loading gallery , please check the CMS url.";if(!options)var options={};var defaults={url_server:"admin/gallery.php",nav_custom:"",nav_hor:"",nav_vert:"",catid:"",event_before_load:null,event_after_load:null,event_nav_click:null,event_get_catlist:null,preset:null};var final_options={};if(globals.isGalleryActive==false){$.extend(final_options,defaults,options);globals.options=final_options;}else{final_options=globals.options;if(options.catid)
final_options.catid=options.catid;}
var url_css=final_options["url_server"]+"?action=getcss";if(final_options.preset!=null)
url_css+="&preset="+final_options.preset;loadCssFile(url_css);this.each(function(){var deeplink_catid="";var t=this;$(document).ready(function(){if(final_options.catid!=""){if(globals.current_category!=""&&Number(final_options.catid)==Number(globals.current_category))
return(false);globals.current_category=final_options.catid;}
if(options.fromnavitem){activateEvent("nav_click");changeSelectedNavItem(options.fromnavitem);if(globals.settings.navigation_deeplink=="true")
setDeeplink(final_options.catid);if(globals.settings.enable_caching=="true"){if(isInCache(final_options.catid)){var items=getFromCache(final_options.catid);init_gallery(items,t);return(false);}}}
else{deeplink_catid=getDeeplink();}
var postData={catid:final_options.catid,deeplink_catid:deeplink_catid,active:globals.isGalleryActive}
if(final_options.preset!=null)
postData.preset=final_options.preset;activateEvent("before_load");$.ajax({url:final_options["url_server"],global:false,type:"POST",data:(postData),dataType:"html",async:true,success:function(response){activateEvent("after_load");var objResponse=eval("("+response+")");if(!objResponse.success||objResponse.success!=true){var message="";if(objResponse.message)
message=objResponse.message;errorOutput(t,message);return(false);}
if(globals.isGalleryActive==false){globals.settings=objResponse.settings;globals.current_category=globals.settings.category;}
if(globals.settings.enable_caching=="true"){if(final_options.catid!="")
cacheData(final_options.catid,objResponse.items);else
cacheData(globals.settings.category,objResponse.items);}
init_gallery(objResponse.items,t);if(globals.isGalleryActive==false){globals.catlist=objResponse.catlist;activateEvent("get_catlist");if(final_options.nav_custom!="")
putNavigation(t.id,final_options.nav_custom,"custom",final_options);if(final_options.nav_hor!="")
putNavigation(t.id,final_options.nav_hor,"hor",final_options);if(final_options.nav_vert!="")
putNavigation(t.id,final_options.nav_vert,"vert",final_options);}
globals.isGalleryActive=true;},error:function(){errorOutput(t);}})});});function isInCache(catID){if(globals.cache[catID])return(true);else return(false);}
function cacheData(catID,items){globals.cache[catID]=items;}
function getFromCache(catID){return(globals.cache[catID]);}
function init_gallery(objItems,container){var html=generateGalleryHtml(objItems);$(container).html(html);$(container).find("a").focus(function(){this.blur();});startGallery(container);}
function activateEvent(eventName){switch(eventName){case"before_load":if(typeof final_options.event_before_load=="function"){final_options.event_before_load();}
break;case"after_load":if(typeof final_options.event_after_load=="function"){final_options.event_after_load();}
break;case"get_catlist":if(typeof final_options.event_get_catlist=="function"){final_options.event_get_catlist(globals.catlist);}
break;case"nav_click":if(typeof final_options.event_nav_click=="function"){var catname=getCatNameFromID(final_options.catid);final_options.event_nav_click(final_options.catid,catname);}
break;}}
function getCatNameFromID(catid){for(var i=0;i<globals.catlist.length;i++){if(Number(catid)==Number(globals.catlist[i].id))
return(globals.catlist[i].name);}
return("");}
function putNavigation(galleryContainerID,containerID,type){var navClass="gallery_navigation";if(type=="hor")
navClass="gallery_navigation_hor";if(type=="vert")
navClass="gallery_navigation_vert";var html="";if(type!="custom")
html+="<table><tr><td>";html+="<ul class='"+navClass+"'>";var liClassString="",liClass="";$.each(globals.catlist,function(key,navitem){liClass="";if(Number(globals.settings.category)==Number(navitem.id))
liClass="selected";if(key==0){if(liClass!="")liClass+=" ";liClass+="first";}
if(key==(globals.catlist.length-1)){if(liClass!="")liClass+=" ";liClass+="last";}
liClassString="";liClassString=" class='"+liClass+"'";html+="<li "+liClassString+">";html+="<a onfocus='this.blur()' onclick='javascript:$(\"#"+galleryContainerID+"\").putEasyGallery({catid:"+navitem.id+",fromnavitem:this});' href='javascript:void(0)'>";html+="<span>"+navitem.name+"</span></a></li>";});html+="</ul>";if(type!="custom")
html+="</td></tr></table>";$(containerID).html(html);}
function changeSelectedNavItem(navItemLink){var li=$(navItemLink).parent();var ul=li.parent();ul.find("li").removeClass("selected");li.addClass("selected");}
function setDeeplink(catid){location.hash="catid="+catid;}
function getDeeplink(){var hash=location.hash;if(hash=="")return("");var catid=hash.replace("#catid=","")
if(catid=="")return("");if(isNaN(parseInt(catid))==false)return(catid);else return("");}
function startGallery(container){var objGallerySettings={overlayOpacity:Number(globals.settings.view_overlay_opacity),overlayBgColor:globals.settings.view_overlay_color,fixedNavigation:eval(globals.settings.view_fixed_navigation),containerResizeSpeed:Number(globals.settings.view_resize_speed),showNumbersText:eval(globals.settings.view_show_text_numbers),txtImage:globals.settings.view_txt_image,txtOf:globals.settings.view_txt_of,keyToClose:globals.settings.view_key_close,keyToPrev:globals.settings.view_key_prev,keyToNext:globals.settings.view_key_next,imageLoading:globals.settings.images_admin_url+'lightbox-ico-loading.gif',imageBtnPrev:globals.settings.images_admin_url+'lightbox-btn-prev.gif',imageBtnNext:globals.settings.images_admin_url+'lightbox-btn-next.gif',imageBtnClose:globals.settings.images_admin_url+'lightbox-btn-close.gif',imageBlank:globals.settings.images_admin_url+'lightbox-blank.gif'}
if(globals.settings.view_use_images_default_url=="false"){objGallerySettings.imageLoading=globals.settings.view_image_loading;objGallerySettings.imageBtnPrev=globals.settings.view_image_prev;objGallerySettings.imageBtnNext=globals.settings.view_image_next;objGallerySettings.imageBtnClose=globals.settings.view_image_close;objGallerySettings.imageBlank=globals.settings.view_image_blank;}
$(function(){$(container).find("a").lightBox(objGallerySettings);});}
function errorOutput(container,message){var outputMessage;if(message)
outputMessage=message;else
outputMessage=responseMessage;var html="<span style='color:#DD290D;'>"+outputMessage+"</span>"
$(container).html(html);}
function loadCssFile(url){var fileref=document.createElement("link");fileref.setAttribute("rel","stylesheet");fileref.setAttribute("type","text/css");fileref.setAttribute("href",url);document.getElementsByTagName("head")[0].appendChild(fileref);}
function generateDownloadUrl(base,filename){var url=base+"?action=download&img="+filename;return(url);}
function generateImageUrl(base,filename,width,height,exact){var url=base+"?img="+filename;if(width)url+="&w="+width;if(height)url+="&h="+height;if(exact==true)url+="&t=exact";return(url);}
function getItemHtml(objItem){var urlThumb=generateImageUrl(final_options["url_server"],objItem.filename,globals.settings.thumb_image_width,globals.settings.thumb_image_height,true);var urlImage;if(globals.settings.view_image_resize=="true")
urlImage=generateImageUrl(final_options["url_server"],objItem.filename,globals.settings.view_image_width,globals.settings.view_image_height);else
urlImage=generateImageUrl(final_options["url_server"],objItem.filename);var urlDownload=generateDownloadUrl(final_options["url_server"],objItem.filename);var desc=objItem.description;var title=objItem.title;var link=objItem.link;if(desc==null)desc="";var lightboxText="";switch(globals.settings.view_text_fields){case"caption":lightboxText="<span class='lightbox_text_title'>"+title+"</span>";break;case"desc":lightboxText="<span class='lightbox_text_desc'>"+desc+"</span>";break;default:case"both":lightboxText="<span class='lightbox_text_title'>"+title+"</span>";if(desc.length>0)
lightboxText+="<span class='lightbox_text_sap'></span>";lightboxText+="<span class='lightbox_text_desc'>"+desc+"</span>";break;}
var html='';html+='<li title="'+title+'">';if(globals.settings.enable_links=="true"){if(link!=""){var target='target="_self"';if(globals.settings.links_target_self=="false")
target='target="_blank"';html+='<a href="'+link+'" '+target+'>';}
else
html+='<a href="'+urlImage+'" name="'+lightboxText+'" rel="lightbox">';}
else{html+='<a href="'+urlImage+'" name="'+lightboxText+'" rel="lightbox">';}
if(globals.settings.thumb_text=="true"&&globals.settings.thumb_text_vert_pos=="top")
html+='<span>'+title+'</span>';html+='<div><img title="'+title+'" alt="&nbsp;" src="'+urlThumb+'" /></div>';if(globals.settings.thumb_text=="true"&&globals.settings.thumb_text_vert_pos=="bottom")
html+='<span>'+title+'</span>';html+='</a>';html+='</li>';return(html);}
function getThumbsHtml(objItems){var html="";if(objItems.length==0){if(globals.settings.empty_category_display_text=="true"){var emptyCssClass="gallery_empty_category";if(globals.settings.empty_category_use_custom_class=="true")
emptyCssClass=globals.settings.empty_category_class;html="<div class='"+emptyCssClass+"'>"+globals.settings.empty_category_text+"</div>";}
return(html);}
var objItem;html="<ul class='list_gallery'>";if(globals.settings.thumbs_columns_enable=="true"){var numCols=Number(globals.settings.thumbs_num_cols);html+="<table cellpadding='0' cellspacing='0' class='table_gallery'>";html+="<tr>"
var flagFirstCol=true;for(var i=0;i<objItems.length;i++){objItem=objItems[i];if(i%numCols==0&&i!=0){html+="</tr><tr><td class='sap_vert'></td></tr><tr>";flagFirstCol=true;}
if(flagFirstCol==false)
html+="<td class='sap_hor'></td>"
html+="<td>"
html+=getItemHtml(objItem);html+="</td>"
flagFirstCol=false;}
html+="</tr>"
html+="</table>";}
else{for(var i=0;i<objItems.length;i++){objItem=objItems[i];html+=getItemHtml(objItem);}}
html+="</ul>";return(html);}
function generateGalleryHtml(objItems){var html=getThumbsHtml(objItems);return(html);}
return(this);}});})(jQuery);
