/*
* @file
* @brief    sigplus Image Gallery Plus image slider engine with MooTools
* @author   Levente Hunyadi
* @version  1.2
* @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 imageSlider(m,d){Element.extend({getOuterSize:function(){var n=this.getSize().size;return{width:n.x+this.getStyle("margin-left").toInt()+this.getStyle("margin-right").toInt(),height:n.y+this.getStyle("margin-top").toInt()+this.getStyle("margin-bottom").toInt()}}});Elements.extend({getMaxOuterSize:function(){var n=0;var o=0;this.each(function(q){var p=q.getOuterSize();n=Math.max(n,p.width);o=Math.max(o,p.height)});return{width:n,height:o}}});var e={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};d=$extend(e,d);if(d.itemCount){switch(d.orientation){case"vertical":d.rowCount=d.itemCount;d.columnCount=1;break;default:d.rowCount=1;d.columnCount=d.itemCount}}var l;var i;var j;var a=0;function k(n){switch(d.alignment){case"center":n.addClass("imageSliderCenter");break;case"right":n.addClass("imageSliderRight");break;default:}}function h(){var o=m.getElements("li");var n=m.getElements("li img");if(n.length==o.length){return n.getMaxOuterSize()}else{return o.getMaxOuterSize()}}function f(){m.addClass("imageSlider");switch(d.alignment){case"left":m.addClass("imageSliderLeft");break;case"right":m.addClass("imageSliderRight");break}l=h();j={width:d.columnCount*l.width,height:d.rowCount*l.height};var o=m.getElements("li").length;switch(d.orientation){case"vertical":i={width:d.columnCount*l.width,height:Math.ceil(o/d.columnCount)*l.height};break;default:i={width:Math.ceil(o/d.rowCount)*l.width,height:d.rowCount*l.height}}m.getElement("ul").setStyles({width:i.width,height:i.height});m.getElements("li").each(function(p){p.setStyles({width:l.width,height:l.height});var t=p.getElement("img");if(t){var u=t.getOuterSize();var q=new Element("div",{"class":"imageSliderAlignment",styles:{width:u.width,height:u.height}});var r=new Element("div",{styles:{width:u.width,height:u.height}});var s=p.getChildren();r.adopt(s);r.injectInside(q);q.injectInside(p)}});var n=new Element("div",{"class":"imageSliderViewport",styles:{width:j.width,height:j.height}});n.injectInside(m);n.adopt(m.getElement("ul"));k(n);b()}function b(){if(d.showButtons||d.showLinks||d.showPageCounter){var q=Math.ceil(m.getElements("li").length/(d.rowCount*d.columnCount));var o='<a class="pg_first" href="#" title="'+d.firstText+'">'+(d.showButtons?"<span></span>":"")+(d.showLinks?d.firstText:"")+"</a>";var v='<a class="pg_prev" href="#" title="'+d.prevText+'">'+(d.showButtons?"<span></span>":"")+(d.showLinks?d.prevText:"")+"</a>";var w='<a class="pg_next" href="#" title="'+d.nextText+'">'+(d.showLinks?d.nextText:"")+(d.showButtons?"<span></span>":"")+"</a>";var r='<a class="pg_last" href="#" title="'+d.lastText+'">'+(d.showLinks?d.lastText:"")+(d.showButtons?"<span></span>":"")+"</a>";var u=d.showPageCounter?d.pageText.replace("%1$d",'<span class="current">1</span>').replace("%2$d",'<span class="total">'+q+"</span>"):"";var n=new Element("div",{"class":"imageSliderPaging",styles:{width:j.width}});n.setHTML(o+" "+v+" "+u+" "+w+" "+r);k(n);switch(d.navigation){case"both":n.clone().injectTop(m);n.injectInside(m);break;case"top":n.injectTop(m);break;default:n.injectInside(m)}}if(d.showOverlayButtons){var p=new Element("div",{"class":"pg_prev",href:"#",title:d.prevText,styles:{visibility:"hidden"}});var s=new Element("div",{"class":"pg_next",href:"#",title:d.nextText,styles:{visibility:"hidden"}});switch(d.orientation){case"vertical":p.addClass("imageSliderPagingTop");s.addClass("imageSliderPagingBottom");if(l.height<120){p.addClass("imageSliderPagingTopSmall");s.addClass("imageSliderPagingBottomSmall")}else{p.addClass("imageSliderPagingTopLarge");s.addClass("imageSliderPagingBottomLarge")}break;default:p.addClass("imageSliderPagingLeft");s.addClass("imageSliderPagingRight");if(l.width<120){p.addClass("imageSliderPagingLeftSmall");s.addClass("imageSliderPagingRightSmall")}else{p.addClass("imageSliderPagingLeftLarge");s.addClass("imageSliderPagingRightLarge")}}var t=m.getElement("div.imageSliderViewport");s.injectTop(t);p.injectTop(t);m.addEvent("mouseenter",function(){p.setStyle("visibility","visible");s.setStyle("visibility","visible")});m.addEvent("mouseleave",function(){p.setStyle("visibility","hidden");s.setStyle("visibility","hidden")})}if(d.showButtons||d.showLinks||d.showOverlayButtons){m.getElements(".pg_first").each(function(x){x.addEvent("click",function(y){c("first");new Event(y).stop()})});m.getElements(".pg_prev").each(function(x){x.addEvent("click",function(y){c("prev");new Event(y).stop()})});m.getElements(".pg_next").each(function(x){x.addEvent("click",function(y){c("next");new Event(y).stop()})});m.getElements(".pg_last").each(function(x){x.addEvent("click",function(y){c("last");new Event(y).stop()})})}}function c(o){var u=d.rowCount*d.columnCount;var x=m.getElements("li").length;var r=(x%u?x-x%u:x-u);switch(o){case"first":a=0;break;case"prev":a=(a>=u)?a-u:0;break;case"next":a=(a<r)?a+u:r;break;case"last":a=r;break;default:return}switch(d.orientation){case"vertical":var w="top";var v=-(a/d.columnCount*l.height);break;default:var w="left";var v=-(a/d.rowCount*l.width)}var q=m.getElement("ul");if(window.ie){q.setStyle(w,v)}else{var s=new Fx.Style(q,w,{duration:d.duration});s.start(v)}g()}function g(){var q=d.rowCount*d.columnCount;var r=m.getElements("li").length;var o=(r%q?r-r%q:r-q);if(d.showPageCounter){m.getElements("span.current").each(function(n){n.setText(Math.ceil(a/(d.rowCount*d.columnCount))+1)})}if(d.showButtons||d.showLinks||d.showOverlayButtons){if(a>0){m.getElements(".pg_first").each(function(n){n.removeClass("imageSliderPagingDisabled")});m.getElements(".pg_prev").each(function(n){n.removeClass("imageSliderPagingDisabled")})}else{m.getElements(".pg_first").each(function(n){n.addClass("imageSliderPagingDisabled")});m.getElements(".pg_prev").each(function(n){n.addClass("imageSliderPagingDisabled")})}if(a<o){m.getElements(".pg_next").each(function(n){n.removeClass("imageSliderPagingDisabled")});m.getElements(".pg_last").each(function(n){n.removeClass("imageSliderPagingDisabled")})}else{m.getElements(".pg_next").each(function(n){n.addClass("imageSliderPagingDisabled")});m.getElements(".pg_last").each(function(n){n.addClass("imageSliderPagingDisabled")})}}}f();g()};
