/*
* @file
* @brief    sigplus Image Gallery Plus extended prettySlider engine with jQuery
* @author   Levente Hunyadi
* @version  1.2.7
* @remarks  Copyright (C) 2009-2010 Levente Hunyadi
* @remarks  Licensed under GNU/GPLv3, see http://www.gnu.org/licenses/gpl-3.0.html
* @see      http://hunyadi.info.hu/projects/sigplus
*/
(function(a){a.fn.maxWidth=function(){var b=0;this.each(function(c,d){b=Math.max(b,a(d).outerWidth(true))});return b};a.fn.maxHeight=function(){var b=0;this.each(function(c,d){b=Math.max(b,a(d).outerHeight(true))});return b};a.fn.imageSlider=function(e){var f={rowCount:1,columnCount:4,showButtons:true,showLinks:true,showPageCounter:true,showOverlayButtons:true,alignment:"left",orientation:"horizontal",navigation:"top",firstText:"First",prevText:"Previous",nextText:"Next",lastText:"Last",pageText:"%1$d of %2$d",duration:800};e=a.extend(f,e);if(e.itemCount){switch(e.orientation){case"vertical":e.rowCount=e.itemCount;e.columnCount=1;break;default:e.rowCount=1;e.columnCount=e.itemCount}}var n=this;var m;var j;var k;var b=0;function l(o){switch(e.alignment){case"center":o.addClass("imageSliderCenter");break;case"right":o.addClass("imageSliderRight");break;default:o.addClass("imageSliderLeft")}}function i(){if(a("li img",n).length==a("li",n).length){var o=a("li img",n).maxWidth();var p=a("li img",n).maxHeight()}else{var o=a("li",n).maxWidth();var p=a("li",n).maxHeight()}return{width:o,height:p}}function g(){n.addClass("imageSlider");switch(e.alignment){case"left":n.addClass("imageSliderLeft");break;case"right":n.addClass("imageSliderRight");break}var p=a("div.imageSliderViewportArea",n);if(!p){a("ul",n).wrap('<div class="imageSliderViewportArea"></div>');p=a("div.imageSliderViewportArea",n)}p.addClass("imageSliderScrollableViewportArea");var o=a("div.imageSliderViewport",n);if(!o){p.wrap('<div class="imageSliderViewport"></div>');o=a("div.imageSliderViewport",n)}o.addClass("imageSliderScrollableViewport");var q=a("li",n).length;m=i();k={width:e.columnCount*m.width,height:e.rowCount*m.height};switch(e.orientation){case"vertical":j={width:e.columnCount*m.width,height:Math.ceil(q/e.columnCount)*m.height};break;default:j={width:Math.ceil(q/e.rowCount)*m.width,height:e.rowCount*m.height}}a("li",n).each(function(){a(this).css({width:m.width,height:m.height})});a("li",n).wrapInner('<div class="imageSliderAlignment"></div>');a("li",n).wrapInner('<div class="imageSliderAlignment"></div>');a("li div.imageSliderAlignment",n).each(function(){a(this).css({width:a("img:first",this).outerWidth(true),height:a("img:first",this).outerHeight(true)})});p.removeClass("imageSliderViewportAreaFlow");if(e.rowCount>1&&e.columnCount>1){p.addClass("imageSliderViewportAreaMatrix")}else{switch(e.orientation){case"vertical":p.addClass("imageSliderViewportAreaColumn");break;default:p.addClass("imageSliderViewportAreaRow")}}p.css({width:j.width,height:j.height});o.css({width:k.width,height:k.height});l(o);c()}function c(){if(e.showButtons||e.showLinks||e.showPageCounter){var s=Math.ceil(a("li",n).length/(e.rowCount*e.columnCount));var r='<a class="pg_first" href="#" title="'+e.firstText+'">'+(e.showButtons?"<span></span>":"")+(e.showLinks?e.firstText:"")+"</a>";var y='<a class="pg_prev" href="#" title="'+e.prevText+'">'+(e.showButtons?"<span></span>":"")+(e.showLinks?e.prevText:"")+"</a>";var z='<a class="pg_next" href="#" title="'+e.nextText+'">'+(e.showLinks?e.nextText:"")+(e.showButtons?"<span></span>":"")+"</a>";var t='<a class="pg_last" href="#" title="'+e.lastText+'">'+(e.showLinks?e.lastText:"")+(e.showButtons?"<span></span>":"")+"</a>";var x=e.showPageCounter?e.pageText.replace("%1$d",'<span class="current">1</span>').replace("%2$d",'<span class="total">'+s+"</span>"):"";var o='<div class="imageSliderPaging">'+r+" "+y+" "+x+" "+z+" "+t+"</div>";switch(e.navigation){case"both":a(n).prepend(o);a(n).append(o);break;case"top":a(n).prepend(o);break;default:a(n).append(o)}var p=a(".imageSliderPaging",n);p.width(k.width);l(p)}if(e.showOverlayButtons){var q=a('<div class="pg_prev"></div>');var w=a('<div class="pg_prev" title="'+e.prevText+'"></div>');w.css("visibility","hidden");q.append(w);var u=a('<div class="pg_next"></div>');var v=a('<div class="pg_next" title="'+e.nextText+'"></div>');v.css("visibility","hidden");u.append(v);switch(e.orientation){case"vertical":if(m.height<120){q.addClass("pg_top_small");u.addClass("pg_bottom_small")}else{q.addClass("pg_top_large");u.addClass("pg_bottom_large")}break;default:if(m.width<120){q.addClass("pg_left_small");u.addClass("pg_right_small")}else{q.addClass("pg_left_large");u.addClass("pg_right_large")}}a("div.imageSliderViewport",n).prepend(u);a("div.imageSliderViewport",n).prepend(q);q.mouseenter(function(){w.css("visibility","visible")});q.mouseleave(function(){w.css("visibility","hidden")});u.mouseenter(function(){v.css("visibility","visible")});u.mouseleave(function(){v.css("visibility","hidden")})}if(e.showButtons||e.showLinks||e.showOverlayButtons){a(".pg_first",n).click(function(){d("first");return false});a(".pg_prev",n).click(function(){d("prev");return false});a(".pg_next",n).click(function(){d("next");return false});a(".pg_last",n).click(function(){d("last");return false})}}function d(o){var s=e.rowCount*e.columnCount;var u=a("li",n).length;var q=(u%s?u-u%s:u-s);switch(o){case"first":b=0;break;case"prev":b=(b>=s)?b-s:0;break;case"next":b=(b<q)?b+s:q;break;case"last":b=q;break;default:return}switch(e.orientation){case"vertical":var r=b/e.columnCount*m.height;a("div.imageSliderViewportArea",n).animate({top:-r},e.duration);break;default:var r=b/e.rowCount*m.width;a("div.imageSliderViewportArea",n).animate({left:-r},e.duration)}h()}function h(){var q=e.rowCount*e.columnCount;var r=a("li",n).length;var o=(r%q?r-r%q:r-q);if(e.showPageCounter){a("span.current",n).text(Math.ceil(b/(e.rowCount*e.columnCount))+1)}if(e.showButtons||e.showLinks||e.showOverlayButtons){if(b>0){a(".pg_first",n).removeClass("imageSliderPagingDisabled");a(".pg_prev",n).removeClass("imageSliderPagingDisabled")}else{a(".pg_first",n).addClass("imageSliderPagingDisabled");a(".pg_prev",n).addClass("imageSliderPagingDisabled")}if(b<o){a(".pg_next",n).removeClass("imageSliderPagingDisabled");a(".pg_last",n).removeClass("imageSliderPagingDisabled")}else{a(".pg_next",n).addClass("imageSliderPagingDisabled");a(".pg_last",n).addClass("imageSliderPagingDisabled")}}}a(n).removeClass("imageSliderHidden");g();h()}})(jQuery);
