(function(c){function aa(S,A){function q(){b.settings.shuffle&&h.sort(function(){return 0.5-Math.random()});if(b.settings.preloadPanels){ba();for(var a=0,d=h.length,i=0;i<d;i++)c("<img/>").load(function(){a++;if(a==d){p.find(".preloader").remove();W()}}).attr("src",h[i].path)}else W()}function W(){r=h.length;k=b.settings.columns;E=Math.ceil(r/k);v=(b.settings.width-(k-1)*b.settings.distance)/b.settings.columns;F=(b.settings.height-(E-1)*b.settings.distance)/Math.ceil(r/b.settings.columns);M=b.settings.width-
(k-1)*(b.settings.closedPanelWidth+b.settings.distance);N=b.settings.height-(E-1)*(b.settings.closedPanelHeight+b.settings.distance);var a=c('<div class="panel"></div>').appendTo(p);s=(isNaN(parseInt(a.css("borderLeftWidth")))?0:parseInt(a.css("borderLeftWidth")))+(isNaN(parseInt(a.css("borderRightWidth")))?0:parseInt(a.css("borderRightWidth")));u=(isNaN(parseInt(a.css("borderTopWidth")))?0:parseInt(a.css("borderTopWidth")))+(isNaN(parseInt(a.css("borderBottomWidth")))?0:parseInt(a.css("borderBottomWidth")));
a.remove();for(a=0;a<r;a++)ca(a);b.settings.slideshow&&T();p.hover(function(){b.settings.slideshow&&b.settings.stopSlideshowOnHover&&G&&clearInterval(G)},function(){b.settings.closePanelOnMouseOut&&da();b.settings.slideshow&&b.settings.stopSlideshowOnHover&&T()})}function ca(a){var d=c('<div class="panel"></div>').appendTo(p);g.push(d);h[a].width=M;h[a].height=N;c("<img/>").load(function(){g[a].css("background-image","url("+c(this).attr("src")+")");switch(b.settings.alignType){case "leftTop":g[a].css("background-position",
"left top");break;case "leftCenter":g[a].css("background-position","left center");break;case "leftBottom":g[a].css("background-position","left bottom");break;case "centerTop":g[a].css("background-position","center top");break;case "centerCenter":g[a].css("background-position","center center");break;case "centerBottom":g[a].css("background-position","center bottom");break;case "rightTop":g[a].css("background-position","right top");break;case "rightCenter":g[a].css("background-position","right center");
break;case "rightBottom":g[a].css("background-position","right bottom");break;case "default":g[a].css("background-position","left top")}b.settings.shadow&&c('<div class="shadow"></div>').appendTo(d);h[a].width=Math.min(M,c(this).attr("width"));h[a].height=Math.min(N,c(this).attr("height"));var e={type:"panelLoaded",index:a,data:h[a]};c.isFunction(b.settings.panelLoaded)&&b.settings.panelLoaded.call(this,e)}).attr("src",h[a].path);d.css("width",v-s);d.css("height",F-u);d.css("left",a%k*(v+b.settings.distance));
d.css("top",Math.floor(a/k)*(F+b.settings.distance));d.hover(function(){if(b.settings.openPanelOnMouseOver){H&&clearTimeout(H);H=setTimeout(function(){I(a)},b.settings.openPanelDelay)}var e={type:"panelMouseOver",index:a,data:h[a]};c.isFunction(b.settings.panelMouseOver)&&b.settings.panelMouseOver.call(this,e)},function(){var e={type:"panelMouseOut",index:a,data:h[a]};c.isFunction(b.settings.panelMouseOut)&&b.settings.panelMouseOut.call(this,e)});h[a].link&&d.css("cursor","pointer");d.click(function(){b.settings.openPanelOnClick&&
I(a);h[a].link&&window.open(h[a].link,h[a].properties.linkTarget);var e={type:"panelClick",index:a,data:h[a]};c.isFunction(b.settings.panelClick)&&b.settings.panelClick.call(this,e)});var i={type:"panelCreated",index:a,data:h[a]};c.isFunction(b.settings.panelCreated)&&b.settings.panelCreated.call(this,i);if(a==h.length-1){i={type:"allPanelsCreated"};c.isFunction(b.settings.allPanelsCreated)&&b.settings.allPanelsCreated.call(this,i)}}function I(a){if(!(n==a&&O=="opened")){O="opened";n!=-1&&g[n].stop();
n=a;var d={type:"openPanel",index:a,data:h[a]};c.isFunction(b.settings.openPanel)&&b.settings.openPanel.call(this,d);X();var i=false;d=g[n];for(var e=M,m=N,f=0;f<r;f++){if(f%k==n%k)e=Math.min(e,h[f].width);if(Math.floor(f/k)==Math.floor(n/k))m=Math.min(m,h[f].height)}var B=(b.settings.width-(k-1)*b.settings.distance-e)/(k-1),w=(b.settings.height-(E-1)*b.settings.distance-m)/(E-1),C={},x=[],D=[],y=[],t=[],o=[],j=[],Y=[],U=[],J;for(f=0;f<r;f++){D[f]=parseFloat(g[f].css("width"));t[f]=parseFloat(g[f].css("height"));
j[f]=parseFloat(g[f].css("left"));U[f]=parseFloat(g[f].css("top"));if(f==n){x[f]=e-s;y[f]=m-u}else{x[f]=f%k==n%k?e-u:B-s;y[f]=Math.floor(f/k)==Math.floor(n/k)?m-u:w-u}o[f]=f%k*(B+b.settings.distance)+(f%k<=n%k?0:e-B);Y[f]=Math.floor(f/k)*(w+b.settings.distance)+(Math.floor(f/k)<=Math.floor(n/k)?0:m-w)}var P,K,L;if(parseFloat(d.css("width"))!=e-s){P=parseFloat(d.css("width"));K=e;L=s;C.width=K-L}else{P=parseFloat(d.css("height"));K=m;L=u;C.height=K-L}d.stop();d.animate(C,{duration:b.settings.slideDuration,
complete:function(){if(!i){i=true;if(h[a].caption){var l=h[a].caption,z=h[n].properties,ea=parseInt(z.captionFadeDuration),Q=parseInt(z.captionWidth),V=parseInt(z.captionHeight),fa=parseInt(z.captionTop);z=parseInt(z.captionLeft);Q=c('<div class="caption"></div>').css({width:Q,height:V,left:z,top:fa,opacity:0}).appendTo(g[n]);V=c('<div class="caption-background"></div>').css({width:"100%",height:"100%"}).appendTo(Q);c("<p></p>").html(l).css({width:"100%",height:"100%",opacity:1}).appendTo(V);Q.animate({opacity:1},
ea)}l={type:"animationComplete"};c.isFunction(b.settings.animationComplete)&&b.settings.animationComplete.call(this,l)}},step:function(l){J=(l-P)/(K-L-P);for(l=0;l<r;l++){g[l].css("width",J*(x[l]-D[l])+D[l]);g[l].css("height",J*(y[l]-t[l])+t[l]);g[l].css("left",J*(o[l]-j[l])+j[l]);g[l].css("top",J*(Y[l]-U[l])+U[l])}}})}}function da(){O="closed";H&&clearTimeout(H);X();for(var a=false,d=g[n],i=parseFloat(d.css("width")),e={},m=[],f=[],B=[],w=[],C=[],x=[],D=[],y=[],t,o=0;o<r;o++){f[o]=parseFloat(g[o].css("width"));
w[o]=parseFloat(g[o].css("height"));m[o]=v-s;B[o]=F-u;x[o]=parseFloat(g[o].css("left"));y[o]=parseFloat(g[o].css("top"));C[o]=o%k*(v+b.settings.distance);D[o]=Math.floor(o/k)*(F+b.settings.distance)}e.width=v-s;d.stop();d.animate(e,{duration:b.settings.slideDuration,complete:function(){if(!a){a=true;var j={type:"animationComplete"};c.isFunction(b.settings.animationComplete)&&b.settings.animationComplete.call(this,j)}},step:function(j){t=(i-j)/(i-v+s);for(j=0;j<r;j++){g[j].css("width",t*(m[j]-f[j])+
f[j]);g[j].css("height",t*(B[j]-w[j])+w[j]);g[j].css("left",t*(C[j]-x[j])+x[j]);g[j].css("top",t*(D[j]-y[j])+y[j])}}})}function Z(){I(n==h.length-1?0:n+1)}function $(){I(n==0?h.length-1:n-1)}function ba(){var a=c('<div class="preloader"></div>').hide().fadeIn(300).appendTo(p),d=(b.settings.width-parseInt(a.css("width")))*0.5,i=(b.settings.height-parseInt(a.css("height")))*0.5;a.css({left:d,top:i})}function X(){var a=p.find(".caption");a&&a.stop().animate({opacity:0},300,function(){a.remove()})}function T(){G=
setInterval(function(){if(b.settings.slideshowDirection=="next")Z();else b.settings.slideshowDirection=="previous"&&$()},b.settings.slideshowDelay)}this.settings=c.extend({},c.fn.gridAccordion.defaults,A);var p=c(S),b=this,n=-1,h=[],g=[],G=0,R=["captionFadeDuration","captionWidth","captionHeight","captionTop","captionLeft","linkTarget"],v,F,M,N,O="closed",s=0,u=0,r=0,k,E,H;(function(){p.addClass("accordion").css({width:b.settings.width,height:b.settings.height});if(b.settings.xmlSource){p.empty();
c.ajax({type:"GET",url:b.settings.xmlSource,dataType:c.browser.msie?"text":"xml",success:function(a){var d;if(c.browser.msie){d=new ActiveXObject("Microsoft.XMLDOM");d.async=false;d.loadXML(a)}else d=a;c(d).find("panel").each(function(){var i={};i.properties={};for(var e=0;e<c(this).children().length;e++){var m=c(this).children()[e];i[m.nodeName]=c(this).find(m.nodeName).text()}for(e=0;e<R.length;e++){m=R[e];var f=c(this).attr(m);i.properties[m]=f==undefined?b.settings[m]:f}h.push(i)});q()}})}else{p.children().each(function(a){var d=
{};d.properties={};for(var i=0;i<c(this).children().length;i++){var e=c(this).children()[i];if(c(e).is("a")){d.path=c(e).find("img").attr("src");d.link=c(e).attr("href");if(c(e).attr("target"))d.properties.linkTarget=c(e).attr("target")}else if(c(e).is("img"))d.path=c(e).attr("src");else d[c(e).attr("class")]=c(e).html()}for(i=0;i<R.length;i++){e=R[i];var m;if(b.settings.panelProperties)if(b.settings.panelProperties[a])m=b.settings.panelProperties[a][e];d.properties[e]||(d.properties[e]=m==undefined?
b.settings[e]:m)}h.push(d)});p.empty();q()}})();this.nextPanel=Z;this.previousSlide=$;this.openPanel=I;this.startSlideshow=function(){T()};this.stopSlideshow=function(){G&&clearInterval(G)};this.getSlideshowState=function(){return slideshowState};this.getCurrentIndex=function(){return n};this.getPanelAt=function(a){return h[a]};this.getAccordionState=function(){return O}}c.fn.gridAccordion=function(S){for(var A=[],q=0;q<this.length;q++)if(!this[q].accordion){this[q].accordion=new aa(this[q],S);A.push(this[q].accordion)}return A.length>
1?A:A[0]};c.fn.gridAccordion.defaults={xmlSource:null,width:500,height:300,alignType:"leftTop",distance:0,columns:3,slideshow:false,slideshowDelay:5E3,slideshowDirection:"next",stopSlideshowOnHover:true,slideDuration:700,openPanelOnMouseOver:true,closePanelOnMouseOut:true,openPanelOnClick:false,preloadPanels:false,shuffle:false,closedPanelWidth:30,closedPanelHeight:30,captionFadeDuration:500,captionWidth:300,captionHeight:100,captionTop:100,captionLeft:30,shadow:false,linkTarget:"_blank",openPanelDelay:200,
panelProperties:null,panelMouseOver:null,panelMouseOut:null,panelClick:null,panelLoaded:null,panelCreated:null,allPanelsCreated:null,animationComplete:null,openPanel:null}})(jQuery);

