jQuery.fn.crossSlide=function(a,b){function g(){arguments[0]="CrossSlide: "+arguments[0];throw new Error(f.apply(null,arguments))}function f(a){for(var b=1;b<arguments.length;b++)a=a.replace(new RegExp("\\{"+(b-1)+"}","g"),arguments[b]);return a}var c=this,d=this.width(),e=this.height();(function(a){function d(e,f){f.onload=function(d){c++;b[e].width=f.width;b[e].height=f.height;if(c==b.length)a()};f.src=b[e].src;if(e+1<b.length)d(e+1,new Image)}var c=0;d(0,new Image)})(function(){function u(c,d){if(c%2==0){if(k){var e=c/2,f=(e-1+b.length)%b.length,g=s.eq(e),h=s.eq(f);var l=function(){h.css("visibility","hidden");setTimeout(d,k)}}else{var m=c/2,f=(m-1+b.length)%b.length,n=s.eq(m),h=s.eq(f),o=b[m].time_ms,p=i(b[m],3);var l=function(){h.css("visibility","hidden");n.animate(p,o,"linear",d)}}}else{if(k){var q=Math.floor(c/2),r=Math.ceil(c/2)%b.length,v=s.eq(q),w=s.eq(r),x={},y={visibility:"visible"},z={};if(r>q){y.opacity=0;z.opacity=1;if(a.doubleFade)x.opacity=0}else{x.opacity=0;if(a.doubleFade){y.opacity=0;z.opacity=1}}var l=function(){w.css(y);if(x.opacity!=undefined){if(a.doubleFade)w.animate(z,j,"linear");v.animate(x,j,"linear",d)}else{if(a.doubleFade)v.animate(x,j,"linear");w.animate(z,j,"linear",d)}}}else{var q=Math.floor(c/2),r=Math.ceil(c/2)%b.length,v=s.eq(q),w=s.eq(r),x=i(b[q],4),y=i(b[r],1),z=i(b[r],2);if(r>q){y.opacity=0;z.opacity=1}else{x.opacity=0}y.visibility="visible";var l=function(){v.animate(x,j,"linear");w.css(y);w.animate(z,j,"linear",d)}}}if(a.loop&&c==b.length*2-2){var A=l;l=function(){if(--t)A()}}if(c>0)return u(c-1,l);else return l}function i(a,b){switch(b){case 1:var c=0;break;case 2:var c=j/(a.time_ms+2*j);break;case 3:var c=1-j/(a.time_ms+2*j);break;case 4:var c=1;break}return{left:Math.round(a.from.left+c*(a.to.left-a.from.left)),top:Math.round(a.from.top+c*(a.to.top-a.from.top)),width:Math.round(a.from.width+c*(a.to.width-a.from.width)),height:Math.round(a.from.height+c*(a.to.height-a.from.height))}}function h(a){var b=1;var c=a.replace(/^\s*|\s*$/g,"").split(/\s+/);if(c.length>3)throw new Error;if(c[0]=="center")if(c.length==1)c=["center","center"];else if(c.length==2&&c[1].match(/^[\d.]+x$/i))c=["center","center",c[1]];if(c.length==3)b=parseFloat(c[2].match(/^([\d.]+)x$/i)[1]);var d=c[0]+" "+c[1];if(d=="left top"||d=="top left")return{xrel:0,yrel:0,zoom:b};if(d=="left center"||d=="center left")return{xrel:0,yrel:.5,zoom:b};if(d=="left bottom"||d=="bottom left")return{xrel:0,yrel:1,zoom:b};if(d=="center top"||d=="top center")return{xrel:.5,yrel:0,zoom:b};if(d=="center center")return{xrel:.5,yrel:.5,zoom:b};if(d=="center bottom"||d=="bottom center")return{xrel:.5,yrel:1,zoom:b};if(d=="right top"||d=="top right")return{xrel:1,yrel:0,zoom:b};if(d=="right center"||d=="center right")return{xrel:1,yrel:.5,zoom:b};if(d=="right bottom"||d=="bottom right")return{xrel:1,yrel:1,zoom:b};return{xrel:parseInt(c[0].match(/^(\d+)%$/)[1])/100,yrel:parseInt(c[1].match(/^(\d+)%$/)[1])/100,zoom:b}}if(!a.fade)g("missing fade parameter.");if(a.speed&&a.sleep)g("you cannot set both speed and sleep at the same time.");var j=Math.round(a.fade*1e3);if(a.sleep)var k=Math.round(a.sleep*1e3);if(a.speed)var l=a.speed/1e3,m=Math.round(j*l);c.empty().css({overflow:"hidden",padding:0});if(!/^(absolute|relative|fixed)$/.test(c.css("position")))c.css({position:"relative"});if(!c.width()||!c.height())g("container element does not have its own width and height");if(a.shuffle)b.sort(function(){return Math.random()-.5});for(var n=0;n<b.length;++n){var o=b[n];if(!o.src)g("missing src parameter in picture {0}.",n+1);if(l){switch(o.dir){case"up":o.from={xrel:.5,yrel:0,zoom:1};o.to={xrel:.5,yrel:1,zoom:1};var p=o.height-e-2*m;break;case"down":o.from={xrel:.5,yrel:1,zoom:1};o.to={xrel:.5,yrel:0,zoom:1};var p=o.height-e-2*m;break;case"left":o.from={xrel:0,yrel:.5,zoom:1};o.to={xrel:1,yrel:.5,zoom:1};var p=o.width-d-2*m;break;case"right":o.from={xrel:1,yrel:.5,zoom:1};o.to={xrel:0,yrel:.5,zoom:1};var p=o.width-d-2*m;break;default:g("missing or malformed dir parameter in picture {0}.",n+1)}if(p<=0)g("picture {0} is too small for the desired fade duration.",n+1);o.time_ms=Math.round(p/l)}else if(!k){if(!o.from||!o.to||!o.time)g("missing either speed/sleep option, or from/to/time params "+"in picture {0}.",n+1);try{o.from=h(o.from)}catch(q){g('malformed "from" parameter in picture {0}.',n+1)}try{o.to=h(o.to)}catch(q){g('malformed "to" parameter in picture {0}.',n+1)}if(!o.time)g('missing "time" parameter in picture {0}.',n+1);o.time_ms=Math.round(o.time*1e3)}if(o.from)jQuery.each([o.from,o.to],function(a,b){b.width=Math.round(o.width*b.zoom);b.height=Math.round(o.height*b.zoom);b.left=Math.round((d-b.width)*b.xrel);b.top=Math.round((e-b.height)*b.yrel)});var r;if(o.href)r=jQuery(f('<a href="{0}"><img src="{1}"/></a>',o.href,o.src));else r=jQuery(f('<img src="{0}"/>',o.src));if(o.onclick)r.click(o.onclick);if(o.alt)r.find("img").attr("alt",o.alt);r.appendTo(c)}l=undefined;var s=c.find("img").css({position:"absolute",visibility:"hidden",top:0,left:0,border:0});s.eq(0).css({visibility:"visible"});if(!k)s.eq(0).css(i(b[0],2));var t=a.loop;var v=u(b.length*2-1,function(){return v()});v()});return c}
