最简单的解密方法是将 eval() 直接替换成 document.write(),然后将代码输出到页面即可。
在输出前,我们先输出一个<xmp>标记,具体代码构造如下:
<script type="text/javascript"> document.write("<xmp>"); /*eval*/document.write(" 这里是除 eval() 之外的代码部分 "); document.write("</xmp>"); </script>
将上述代码保存为 .html 文件,打开即可得到你要的代码,顺便对代码格式化一下更方便阅读。
/** * SlideDeck 1.2.5 Lite - 2011-06-01 * @param {HTMLObject} el The <DL> element to extend as a SlideDeck * @param {Object} opts An object to pass custom override options to */ document.write("<xmp>"); //eval document.write(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('L 1P;L 4W={};(T($){3b.1P=T(p,q){L r=O,p=$(p);L u="1.2.5";O.N={1V:4k,1U:\'4E\',1T:1,1j:M,1c:M,1S:M,2s:M,2r:U,3p:4b,12:U,1D:U};O.S={24:\'24\',1Y:\'1Y\',3j:\'3j\',1c:\'1c\',1B:\'1B\',2N:\'2N\',1j:\'1j\',3m:\'3m\',4X:\'3y\',1X:\'1X\',1e:\'1e\'};O.W=1;O.2f=p;O.18=p.30(\'3x\');O.19=p.30(\'3M\');O.3U=1;O.3Z=[];O.43=[];O.1x=U;O.2e=U;L v=4o.4s.3d();O.Q={1F:v.X(/1F/)?M:U,1H:v.X(/1H/)?M:U,2Q:v.X(/1H\\/2/)?M:U,2J:v.X(/1H\\/3\\.0/)?M:U,17:v.X(/17/)?M:U,34:(v.X(/17 6/)&&!v.X(/17 7|8/))?M:U,4q:v.X(/17 7/)?M:U,4r:v.X(/17 8/)?M:U,1Q:v.X(/17 9/)?M:U,2B:(v.X(/17/)&&v.X(/1F/))?M:U,2b:v.X(/2b/)?M:U,29:(v.X(/29/)&&!v.X(/1F/))?M:U};1u(L b 1E O.Q){K(O.Q[b]===M){O.Q.41=b}}K(O.Q.1F===M&&!O.Q.2B){O.Q.1r=v.X(/1F\\/([0-9\\.]+)/)[1]}K(O.Q.1H===M){O.Q.1r=v.X(/1H\\/([0-9\\.]+)/)[1]}K(O.Q.17===M){O.Q.1r=v.X(/17 ([0-9\\.]+)/)[1]}K(O.Q.2b===M){O.Q.1r=v.X(/1r\\/([0-9\\.]+)/)[1]}K(O.Q.29===M){O.Q.1r=v.X(/1r\\/([0-9\\.]+)/)[1]}L w;L x;L y,1m,1t,1o;L z=T(a){K(r.Q.17&&!r.Q.1Q){L b=a.V(\'4F-2Y\');L c=b;K(c=="3s"){b="#3u"}1l{K(c.X(\'#\')){K(c.Y<7){L t="#"+c.1v(1,1)+c.1v(1,1)+c.1v(2,1)+c.1v(2,1)+c.1v(3,1)+c.1v(3,1);b=t}}}b=b.3Y("#","");1w={r:b.1v(0,2),g:b.1v(2,2),b:b.1v(4,2)};L d="#";L e="4i";1u(L k 1E 1w){1w[k]=1a.21(0,(1b(1w[k],16)-1));1w[k]=e.2z((1w[k]-1w[k]%16)/16)+e.2z(1w[k]%16);d+=1w[k]}a.26(\'.\'+r.S.1c).V({\'2D\':\'2E:2F.2H.2I(25=1) 3v(2Y=\'+d+\')\',3w:d})}};L A={1C:"3E"+(1a.2h(1a.2Z()*3X)),2j:"1y:1J !1k;14:"+13+"P !1k;Z:"+2y+"P !1k;2l:2p !1k;2C:0 !1k;2w:2d !1k;4v:4A !1k;4D:1 !1k;1q:0 !1k;z-1c:2G !1k",Z:2y,14:13};L B=T(){K(!1g.3q(A.1C)){L a=1g.1N(\'A\');a.1C=A.1C;a.3t="2K://2L.1I.2P/?53=3z&3A=3B&3C=3D";a.2R="3G";L b=1g.1N(\'3H\');b.3J=(1g.3K.3L=="2T:"?"2T:":"2K:")+"//2L.1I.2P/3N/"+u+"/3O";b.3P="3T 2X 1P&3V;";b.Z=A.Z;b.14=A.14;b.1O="0";a.2q(b);A.11=(p.1i().11+p.14()+5);A.R=p.1i().R+p.Z()-A.Z;L s=1g.1N(\'44\');s.45="48/V";L c=\'#\'+A.1C+\'{11:\'+A.11+\'P;R:\'+A.R+\'P;\'+A.2j+\'}\'+\'#\'+A.1C+\' 49{11:0 !1k;R:0 !1k;\'+A.2j+\'}\';K(s.3a){s.3a.4h=c}1l{s.2q(1g.3c(c))}$(\'4j\').2c(s);K(1a.2Z()<0.5){$(1g.3f).4l(a)}1l{$(1g.3f).2c(a)}$(3b).4m(T(){B()})}A.11=(p.1i().11+p.14()+5);A.R=p.1i().R+p.Z()-A.Z;$(\'#\'+A.1C).V({11:A.11+"P",R:A.R+"P"})};L C=T(){3g=T(){K(r.1x===U){K(r.N.1D===U&&r.W==r.19.Y){r.1x=M}1l{r.1e()}}};3i(3g,r.N.3p)};L D=T(){K($.3k(p.V(\'1y\'),[\'1y\',\'1J\',\'4t\'])){p.V(\'1y\',\'4u\')}p.V(\'2w\',\'2d\');1u(L i=0;i<r.19.Y;i++){L d=$(r.19[i]);K(r.18.Y>i){L e=$(r.18[i])}L f={11:1b(d.V(\'1q-11\'),10),1f:1b(d.V(\'1q-1f\'),10),1p:1b(d.V(\'1q-1p\'),10),R:1b(d.V(\'1q-R\'),10)};L g={11:1b(d.V(\'1O-11-Z\'),10),1f:1b(d.V(\'1O-1f-Z\'),10),1p:1b(d.V(\'1O-1p-Z\'),10),R:1b(d.V(\'1O-R-Z\'),10)};1u(L k 1E g){g[k]=2A(g[k])?0:g[k]}K(i<r.W){K(i==r.W-1){K(r.N.12!==M){e.1d(r.S.1B)}d.1d(r.S.1B)}1i=i*1m;K(r.N.12===M){K(i==r.W-1){1i=0}1l{1i=0-(r.N.1T-i-1)*p.Z()}}}1l{1i=i*1m+1t;K(r.N.12===M){1i=(i+1-r.N.1T)*p.Z()}}r.1t=(1t-f.R-f.1f-g.R-g.1f);d.V({1y:\'1J\',R:1i,28:1,14:(x-f.11-f.1p-g.11-g.1p)+"P",Z:r.1t+"P",2C:0,3r:f.R+1m+"P"}).1d(r.S.24).1d(r.S.24+"2o"+(i+1));K(r.N.12!==M){L h={11:1b(e.V(\'1q-11\'),10),1f:1b(e.V(\'1q-1f\'),10),1p:1b(e.V(\'1q-1p\'),10),R:1b(e.V(\'1q-R\'),10)};1u(L k 1E h){K(h[k]<10&&(k=="R"||k=="1f")){h[k]=10}}L j=h.11+"P "+h.1f+"P "+h.1p+"P "+h.R+"P";L l={1y:\'1J\',28:3,2l:\'2p\',R:1i,Z:(x-h.R-h.1f)+"P",14:y+"P",1q:j,25:\'1Z\',\'-22-1h\':\'1z(1Z)\',\'-22-1h-1K\':1o+\'P 1G\',\'-23-1h\':\'1z(1Z)\',\'-23-1h-1K\':1o+\'P 1G\',\'-o-1h\':\'1z(1Z)\',\'-o-1h-1K\':1o+\'P 1G\',2M:\'1f\'};K(!r.Q.1Q){l.11=(r.Q.17)?0:(x-1o)+"P";l.3F=((r.Q.17)?0:(0-1o))+"P";l.2D=\'2E:2F.2H.2I(25=3)\'}e.V(l).1d(r.S.1Y).1d(r.S.1Y+"2o"+(i+1));K(r.Q.1Q){e[0].1M.2O=\'1z(1Z)\';e[0].1M.3I=1a.2h(1b(p[0].1M.14)/2)+\'P \'+1a.2h(1b(p[0].1M.14)/2)+\'P\'}}1l{K(1n(e)!="27"){e.2g()}}K(i==r.19.Y-1){d.1d(\'2S\');K(r.N.12!==M){e.1d(\'2S\')}}K(r.N.1j===M&&r.N.12===U){L m=1g.1N(\'2U\');m.2V=r.S.1j+\' \'+(r.S.1Y+\'2o\'+(i+1));e.3Q(m);e.1e(\'.\'+r.S.1j).V({1y:\'1J\',11:\'3R\',R:1i+1m+"P",2w:"2d",28:"2G"}).2g();K(e.3S(r.S.1B)){e.1e(\'.\'+r.S.1j).2W()}}K(r.N.12!==M){L n=1g.1N(\'2U\');n.2V=r.S.1c;K(r.N.1c!==U){L o;K(1n(r.N.1c)!=\'2i\'){o=r.N.1c[i%r.N.1c.Y]}1l{o=""+(i+1)}n.2q(1g.3c(o))}e.2c(n);e.26(\'.\'+r.S.1c).V({1y:\'1J\',28:2,2l:\'2p\',Z:y+"P",14:y+"P",2M:\'3W\',1p:((r.Q.17)?0:(0-1o))+"P",R:((r.Q.17)?5:20)+"P",25:"1L",\'-22-1h\':\'1z(1L)\',\'-22-1h-1K\':1o+\'P 1G\',\'-23-1h\':\'1z(1L)\',\'-23-1h-1K\':1o+\'P 1G\',\'-o-1h\':\'1z(1L)\',\'-o-1h-1K\':1o+\'P 1G\'});K(r.Q.1Q){e.26(\'.\'+r.S.1c)[0].1M.2O=\'1z(1L)\'}z(e)}}B();K(r.N.12!==M){r.18.2k(\'40\',T(a){a.1R();r.31(r.18.1c(O)+1)})}K(r.N.2s!==U){$(1g).2k(\'42\',T(a){K($(a.2R).32().1c(r.2f)==-1){K(a.33==39){r.1x=M;r.1e()}1l K(a.33==37){r.1x=M;r.2m()}}})}K(1n($.46.47.35)!="27"){p.2k("35",T(a){K(r.N.1S!==U){L b=a.36?a.36:a.4a;K(r.Q.17||r.Q.29||r.Q.1F){b=0-b}L c=U;K($(a.38).32(r.2f).Y){K($.3k(a.38.4c.3d(),[\'4d\',\'4e\',\'4f\',\'4g\'])!=-1){c=M}}K(c!==M){K(b>0){2n(r.N.1S){15"1W":a.1R();1s;15 M:3e:K(r.W<r.19.Y||r.N.1D==M){a.1R()}1s}r.1x=M;r.1e()}1l{2n(r.N.1S){15"1W":a.1R();1s;15 M:3e:K(r.W!=1||r.N.1D==M){a.1R()}1s}r.1x=M;r.2m()}}}})}$(r.18[r.W-2]).1d(r.S.1X);$(r.18[r.W]).1d(r.S.1e);K(r.N.2r===M){C()}r.2e=M};L E=T(a){a=1a.2a(r.19.Y,1a.21(1,a));1A a};L F=T(a,b){a=E(a);L c=M;K(a<r.W){c=U}L d=[r.S.1B,r.S.1e,r.S.1X].4p(\' \');r.W=a;r.18.3h(d);r.19.3h(d);p.26(\'.\'+r.S.1j).2g();$(r.18[r.W-2]).1d(r.S.1X);$(r.18[r.W]).1d(r.S.1e);1u(L i=0;i<r.19.Y;i++){L e=0;K(r.N.12!==M){L f=$(r.18[i])}L g=$(r.19[i]);K(i<r.W){K(i==(r.W-1)){g.1d(r.S.1B);K(r.N.12!==M){f.1d(r.S.1B);f.1e(\'.\'+r.S.1j).2W()}}e=i*1m}1l{e=i*1m+1t}K(r.N.12===M){e=(i-r.W+1)*p.Z()}L h={2t:r.N.1V,2u:r.N.1U};g.1W().2v({R:e+"P",Z:r.1t+"P"},h);K(r.N.12!==M){z(f);K(f.V(\'R\')!=e+"P"){f.1W().2v({R:e+"P"},{2t:r.N.1V,2u:r.N.1U});f.1e(\'.\'+r.S.1j).1W().2v({R:e+1m+"P"},{2t:r.N.1V,2u:r.N.1U})}}}B()};L G=T(a,b){L c=a;K(1n(a)==="3l"){c={};c[a]=b}1u(L d 1E c){b=c[d];2n(d){15"1V":15"1T":b=4w(b);K(2A(b)){b=r.N[d]}1s;15"1S":15"2s":15"1j":15"12":15"2r":15"1D":K(1n(b)!=="2i"){b=r.N[d]}1s;15"1U":K(1n(b)!=="3l"){b=r.N[d]}1s;15"4x":15"4y":K(1n(b)!=="T"){b=r.N[d]}1s;15"1c":K(1n(b)!=="2i"){K(!$.4z(b)){b=r.N[d]}}1s}r.N[d]=b}};L H=T(){x=p.14();w=p.Z();p.V(\'14\',x+"P");y=0;1m=0;K(r.N.12!==M&&r.18.Y>0){y=$(r.18[0]).14();1m=$(r.18[0]).4B()}1t=w-1m*r.18.Y;K(r.N.12===M){1t=w}1o=1a.4C(y/2)};L I=T(a){K((r.Q.2b&&r.Q.1r<"10.5")||r.Q.34||r.Q.2Q||r.Q.2J){K(1n(2x)!="27"){K(1n(2x.3n)=="T"){2x.3n("4G 4H Q 4I 4J 4K 2X 1P. 4L 4M O 4N 1E a 4O, 4P 4Q Q 4R a W 1r 4S 4T 4U")}}1A U}K(1n(a)!="27"){1u(L b 1E a){r.N[b]=a[b]}}K(r.18.Y<1){r.N.12=M}K(r.N.12===M){r.N.1j=U}r.W=1a.2a(r.19.Y,1a.21(1,r.N.1T));K(p.14()>0){H();D()}1l{L c;c=4V(T(){H();K(p.14()>0){3o(c);H();D()}},20)}};L J=T(a){L b;b=3i(T(){K(r.2e==M){3o(b);a()}},20)};O.4Y=T(a){J(a);1A r};O.1e=T(a){L b=1a.2a(r.19.Y,(r.W+1));K(r.N.1D===M){K(r.W+1>r.19.Y){b=1}}F(b,a);1A r};O.2m=T(a){L b=1a.21(1,(r.W-1));K(r.N.1D===M){K(r.W-1<1){b=r.19.Y}}F(b,a);1A r};O.31=T(a,b){r.1x=M;F(1a.2a(r.19.Y,1a.21(1,a)),b);1A r};O.4Z=T(a,b){G(a,b);1A r};I(q)};$.50.1I=T(a){L b=[];1u(L i=0;i<O.Y;i++){K(!O[i].1I){O[i].1I=51 1P(O[i],a)}b.52(O[i].1I)}1A b.Y>1?b:b[0]}})(4n);',62,314,'||||||||||||||||||||||||||||||||||||||||||||||if|var|true|options|this|px|browser|left|classes|function|false|css|current|match|length|width||top|hideSpines||height|case||msie|spines|slides|Math|parseInt|index|addClass|next|right|document|transform|offset|activeCorner|important|else|spine_outer_width|typeof|spine_half_width|bottom|padding|version|break|slide_width|for|substr|cParts|pauseAutoPlay|position|rotate|return|active|id|cycle|in|chrome|0px|firefox|slidedeck|absolute|origin|90deg|style|createElement|border|SlideDeck|msie9|preventDefault|scroll|start|transition|speed|stop|previous|spine|270deg||max|webkit|moz|slide|rotation|find|undefined|zIndex|safari|min|opera|append|hidden|isLoaded|deck|hide|round|boolean|styles|bind|display|prev|switch|_|block|appendChild|autoPlay|keys|duration|easing|animate|overflow|console|130|charAt|isNaN|chromeFrame|margin|filter|progid|DXImageTransform|20000|Microsoft|BasicImage|firefox30|http|www|textAlign|indicator|msTransform|com|firefox2|target|last|https|DIV|className|show|by|color|random|children|goTo|parents|keyCode|msie6|mousewheel|detail||originalTarget||styleSheet|window|createTextNode|toLowerCase|default|body|gotoNext|removeClass|setInterval|label|inArray|string|disabled|error|clearInterval|autoPlayInterval|getElementById|paddingLeft|transparent|href|ffffff|chroma|backgroundColor|dt|slidesVertical|LiteUser|utm_medium|Link|utm_campaign|SDbug|SlideDeck_Bug|marginLeft|_blank|IMG|msTransformOrigin|src|location|protocol|dd|6885858486f31043e5839c735d99457f045affd0|lite|alt|after|25px|hasClass|Powered|controlTo|trade|center|100000000|replace|session|click|_this|keydown|disabledSlides|STYLE|type|event|special|text|img|wheelDelta|5000|nodeName|input|select|option|textarea|cssText|01234567890ABCDEF|head|500|prepend|resize|jQuery|navigator|join|msie7|msie8|userAgent|fixed|relative|visibility|parseFloat|complete|before|isArray|visible|outerHeight|ceil|opacity|swing|background|This|web|is|not|supported|Please|view|page|modern|CSS3|capable|or|of|Inernet|Explorer|setTimeout|SlideDeckSkin|vertical|loaded|setOption|fn|new|push|utm_source'.split('|'),0,{})) document.write("<xmp>");
得到输出代码,美化一下,方便阅读 如下:
/** * SlideDeck 1.2.5 Lite - 2011-06-01 * * @param {HTMLObject} el The <DL> element to extend as a SlideDeck * @param {Object} opts An object to pass custom override options to */ var SlideDeck; var SlideDeckSkin = {}; (function($) { window.SlideDeck = function(p, q) { var r = this, p = $(p); var u = "1.2.5"; this.options = { speed: 500, transition: 'swing', start: 1, activeCorner: true, index: true, scroll: true, keys: true, autoPlay: false, autoPlayInterval: 5000, hideSpines: false, cycle: false }; this.classes = { slide: 'slide', spine: 'spine', label: 'label', index: 'index', active: 'active', indicator: 'indicator', activeCorner: 'activeCorner', disabled: 'disabled', vertical: 'slidesVertical', previous: 'previous', next: 'next' }; this.current = 1; this.deck = p; this.spines = p.children('dt'); this.slides = p.children('dd'); this.controlTo = 1; this.session = []; this.disabledSlides = []; this.pauseAutoPlay = false; this.isLoaded = false; var v = navigator.userAgent.toLowerCase(); this.browser = { chrome: v.match(/chrome/) ? true : false, firefox: v.match(/firefox/) ? true : false, firefox2: v.match(/firefox\/2/) ? true : false, firefox30: v.match(/firefox\/3\.0/) ? true : false, msie: v.match(/msie/) ? true : false, msie6: (v.match(/msie 6/) && !v.match(/msie 7|8/)) ? true : false, msie7: v.match(/msie 7/) ? true : false, msie8: v.match(/msie 8/) ? true : false, msie9: v.match(/msie 9/) ? true : false, chromeFrame: (v.match(/msie/) && v.match(/chrome/)) ? true : false, opera: v.match(/opera/) ? true : false, safari: (v.match(/safari/) && !v.match(/chrome/)) ? true : false }; for (var b in this.browser) { if (this.browser[b] === true) { this.browser._this = b } } if (this.browser.chrome === true && !this.browser.chromeFrame) { this.browser.version = v.match(/chrome\/([0-9\.]+)/)[1] } if (this.browser.firefox === true) { this.browser.version = v.match(/firefox\/([0-9\.]+)/)[1] } if (this.browser.msie === true) { this.browser.version = v.match(/msie ([0-9\.]+)/)[1] } if (this.browser.opera === true) { this.browser.version = v.match(/version\/([0-9\.]+)/)[1] } if (this.browser.safari === true) { this.browser.version = v.match(/version\/([0-9\.]+)/)[1] } var w; var x; var y, spine_outer_width, slide_width, spine_half_width; var z = function(a) { if (r.browser.msie && !r.browser.msie9) { var b = a.css('background-color'); var c = b; if (c == "transparent") { b = "#ffffff" } else { if (c.match('#')) { if (c.length < 7) { var t = "#" + c.substr(1, 1) + c.substr(1, 1) + c.substr(2, 1) + c.substr(2, 1) + c.substr(3, 1) + c.substr(3, 1); b = t } } } b = b.replace("#", ""); cParts = { r: b.substr(0, 2), g: b.substr(2, 2), b: b.substr(4, 2) }; var d = "#"; var e = "01234567890ABCDEF"; for (var k in cParts) { cParts[k] = Math.max(0, (parseInt(cParts[k], 16) - 1)); cParts[k] = e.charAt((cParts[k] - cParts[k] % 16) / 16) + e.charAt(cParts[k] % 16); d += cParts[k] } a.find('.' + r.classes.index).css({ 'filter': 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1) chroma(color=' + d + ')', backgroundColor: d }) } }; var A = { id: "SlideDeck_Bug" + (Math.round(Math.random() * 100000000)), styles: "position:absolute !important;height:" + 13 + "px !important;width:" + 130 + "px !important;display:block !important;margin:0 !important;overflow:hidden !important;visibility:visible !important;opacity:1 !important;padding:0 !important;z-index:20000 !important", width: 130, height: 13 }; var B = function() { if (!document.getElementById(A.id)) { var a = document.createElement('A'); a.id = A.id; a.href = "#"; a.target = "_blank"; var b = ""; A.top = (p.offset().top + p.height() + 5); A.left = p.offset().left + p.width() - A.width; var s = document.createElement('STYLE'); s.type = "text/css"; var c = '#' + A.id + '{top:' + A.top + 'px;left:' + A.left + 'px;' + A.styles + '}' + '#' + A.id + ' img{top:0 !important;left:0 !important;' + A.styles + '}'; if (s.styleSheet) { s.styleSheet.cssText = c } else { s.appendChild(document.createTextNode(c)) } $('head').append(s); if (Math.random() < 0.5) { $(document.body).prepend(a) } else { $(document.body).append(a) } $(window).resize(function() { B() }) } A.top = (p.offset().top + p.height() + 5); A.left = p.offset().left + p.width() - A.width; $('#' + A.id).css({ top: A.top + "px", left: A.left + "px" }) }; var C = function() { gotoNext = function() { if (r.pauseAutoPlay === false) { if (r.options.cycle === false && r.current == r.slides.length) { r.pauseAutoPlay = true } else { r.next() } } }; setInterval(gotoNext, r.options.autoPlayInterval) }; var D = function() { if ($.inArray(p.css('position'), ['position', 'absolute', 'fixed'])) { p.css('position', 'relative') } p.css('overflow', 'hidden'); for (var i = 0; i < r.slides.length; i++) { var d = $(r.slides[i]); if (r.spines.length > i) { var e = $(r.spines[i]) } var f = { top: parseInt(d.css('padding-top'), 10), right: parseInt(d.css('padding-right'), 10), bottom: parseInt(d.css('padding-bottom'), 10), left: parseInt(d.css('padding-left'), 10) }; var g = { top: parseInt(d.css('border-top-width'), 10), right: parseInt(d.css('border-right-width'), 10), bottom: parseInt(d.css('border-bottom-width'), 10), left: parseInt(d.css('border-left-width'), 10) }; for (var k in g) { g[k] = isNaN(g[k]) ? 0 : g[k] } if (i < r.current) { if (i == r.current - 1) { if (r.options.hideSpines !== true) { e.addClass(r.classes.active) } d.addClass(r.classes.active) } offset = i * spine_outer_width; if (r.options.hideSpines === true) { if (i == r.current - 1) { offset = 0 } else { offset = 0 - (r.options.start - i - 1) * p.width() } } } else { offset = i * spine_outer_width + slide_width; if (r.options.hideSpines === true) { offset = (i + 1 - r.options.start) * p.width() } } r.slide_width = (slide_width - f.left - f.right - g.left - g.right); d.css({ position: 'absolute', left: offset, zIndex: 1, height: (x - f.top - f.bottom - g.top - g.bottom) + "px", width: r.slide_width + "px", margin: 0, paddingLeft: f.left + spine_outer_width + "px" }).addClass(r.classes.slide).addClass(r.classes.slide + "_" + (i + 1)); if (r.options.hideSpines !== true) { var h = { top: parseInt(e.css('padding-top'), 10), right: parseInt(e.css('padding-right'), 10), bottom: parseInt(e.css('padding-bottom'), 10), left: parseInt(e.css('padding-left'), 10) }; for (var k in h) { if (h[k] < 10 && (k == "left" || k == "right")) { h[k] = 10 } } var j = h.top + "px " + h.right + "px " + h.bottom + "px " + h.left + "px"; var l = { position: 'absolute', zIndex: 3, display: 'block', left: offset, width: (x - h.left - h.right) + "px", height: y + "px", padding: j, rotation: '270deg', '-webkit-transform': 'rotate(270deg)', '-webkit-transform-origin': spine_half_width + 'px 0px', '-moz-transform': 'rotate(270deg)', '-moz-transform-origin': spine_half_width + 'px 0px', '-o-transform': 'rotate(270deg)', '-o-transform-origin': spine_half_width + 'px 0px', textAlign: 'right' }; if (!r.browser.msie9) { l.top = (r.browser.msie) ? 0 : (x - spine_half_width) + "px"; l.marginLeft = ((r.browser.msie) ? 0 : (0 - spine_half_width)) + "px"; l.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)' } e.css(l).addClass(r.classes.spine).addClass(r.classes.spine + "_" + (i + 1)); if (r.browser.msie9) { e[0].style.msTransform = 'rotate(270deg)'; e[0].style.msTransformOrigin = Math.round(parseInt(p[0].style.height) / 2) + 'px ' + Math.round(parseInt(p[0].style.height) / 2) + 'px' } } else { if (typeof(e) != "undefined") { e.hide() } } if (i == r.slides.length - 1) { d.addClass('last'); if (r.options.hideSpines !== true) { e.addClass('last') } } if (r.options.activeCorner === true && r.options.hideSpines === false) { var m = document.createElement('DIV'); m.className = r.classes.activeCorner + ' ' + (r.classes.spine + '_' + (i + 1)); e.after(m); e.next('.' + r.classes.activeCorner).css({ position: 'absolute', top: '25px', left: offset + spine_outer_width + "px", overflow: "hidden", zIndex: "20000" }).hide(); if (e.hasClass(r.classes.active)) { e.next('.' + r.classes.activeCorner).show() } } if (r.options.hideSpines !== true) { var n = document.createElement('DIV'); n.className = r.classes.index; if (r.options.index !== false) { var o; if (typeof(r.options.index) != 'boolean') { o = r.options.index[i % r.options.index.length] } else { o = "" + (i + 1) } n.appendChild(document.createTextNode(o)) } e.append(n); e.find('.' + r.classes.index).css({ position: 'absolute', zIndex: 2, display: 'block', width: y + "px", height: y + "px", textAlign: 'center', bottom: ((r.browser.msie) ? 0 : (0 - spine_half_width)) + "px", left: ((r.browser.msie) ? 5 : 20) + "px", rotation: "90deg", '-webkit-transform': 'rotate(90deg)', '-webkit-transform-origin': spine_half_width + 'px 0px', '-moz-transform': 'rotate(90deg)', '-moz-transform-origin': spine_half_width + 'px 0px', '-o-transform': 'rotate(90deg)', '-o-transform-origin': spine_half_width + 'px 0px' }); if (r.browser.msie9) { e.find('.' + r.classes.index)[0].style.msTransform = 'rotate(90deg)' } z(e) } } B(); if (r.options.hideSpines !== true) { r.spines.bind('click', function(a) { a.preventDefault(); r.goTo(r.spines.index(this) + 1) }) } if (r.options.keys !== false) { $(document).bind('keydown', function(a) { if ($(a.target).parents().index(r.deck) == -1) { if (a.keyCode == 39) { r.pauseAutoPlay = true; r.next() } else if (a.keyCode == 37) { r.pauseAutoPlay = true; r.prev() } } }) } if (typeof($.event.special.mousewheel) != "undefined") { p.bind("mousewheel", function(a) { if (r.options.scroll !== false) { var b = a.detail ? a.detail : a.wheelDelta; if (r.browser.msie || r.browser.safari || r.browser.chrome) { b = 0 - b } var c = false; if ($(a.originalTarget).parents(r.deck).length) { if ($.inArray(a.originalTarget.nodeName.toLowerCase(), ['input', 'select', 'option', 'textarea']) != -1) { c = true } } if (c !== true) { if (b > 0) { switch (r.options.scroll) { case "stop": a.preventDefault(); break; case true: default: if (r.current < r.slides.length || r.options.cycle == true) { a.preventDefault() } break } r.pauseAutoPlay = true; r.next() } else { switch (r.options.scroll) { case "stop": a.preventDefault(); break; case true: default: if (r.current != 1 || r.options.cycle == true) { a.preventDefault() } break } r.pauseAutoPlay = true; r.prev() } } } }) } $(r.spines[r.current - 2]).addClass(r.classes.previous); $(r.spines[r.current]).addClass(r.classes.next); if (r.options.autoPlay === true) { C() } r.isLoaded = true }; var E = function(a) { a = Math.min(r.slides.length, Math.max(1, a)); return a }; var F = function(a, b) { a = E(a); var c = true; if (a < r.current) { c = false } var d = [r.classes.active, r.classes.next, r.classes.previous].join(' '); r.current = a; r.spines.removeClass(d); r.slides.removeClass(d); p.find('.' + r.classes.activeCorner).hide(); $(r.spines[r.current - 2]).addClass(r.classes.previous); $(r.spines[r.current]).addClass(r.classes.next); for (var i = 0; i < r.slides.length; i++) { var e = 0; if (r.options.hideSpines !== true) { var f = $(r.spines[i]) } var g = $(r.slides[i]); if (i < r.current) { if (i == (r.current - 1)) { g.addClass(r.classes.active); if (r.options.hideSpines !== true) { f.addClass(r.classes.active); f.next('.' + r.classes.activeCorner).show() } } e = i * spine_outer_width } else { e = i * spine_outer_width + slide_width } if (r.options.hideSpines === true) { e = (i - r.current + 1) * p.width() } var h = { duration: r.options.speed, easing: r.options.transition }; g.stop().animate({ left: e + "px", width: r.slide_width + "px" }, h); if (r.options.hideSpines !== true) { z(f); if (f.css('left') != e + "px") { f.stop().animate({ left: e + "px" }, { duration: r.options.speed, easing: r.options.transition }); f.next('.' + r.classes.activeCorner).stop().animate({ left: e + spine_outer_width + "px" }, { duration: r.options.speed, easing: r.options.transition }) } } } B() }; var G = function(a, b) { var c = a; if (typeof(a) === "string") { c = {}; c[a] = b } for (var d in c) { b = c[d]; switch (d) { case "speed": case "start": b = parseFloat(b); if (isNaN(b)) { b = r.options[d] } break; case "scroll": case "keys": case "activeCorner": case "hideSpines": case "autoPlay": case "cycle": if (typeof(b) !== "boolean") { b = r.options[d] } break; case "transition": if (typeof(b) !== "string") { b = r.options[d] } break; case "complete": case "before": if (typeof(b) !== "function") { b = r.options[d] } break; case "index": if (typeof(b) !== "boolean") { if (!$.isArray(b)) { b = r.options[d] } } break } r.options[d] = b } }; var H = function() { x = p.height(); w = p.width(); p.css('height', x + "px"); y = 0; spine_outer_width = 0; if (r.options.hideSpines !== true && r.spines.length > 0) { y = $(r.spines[0]).height(); spine_outer_width = $(r.spines[0]).outerHeight() } slide_width = w - spine_outer_width * r.spines.length; if (r.options.hideSpines === true) { slide_width = w } spine_half_width = Math.ceil(y / 2) }; var I = function(a) { if ((r.browser.opera && r.browser.version < "10.5") || r.browser.msie6 || r.browser.firefox2 || r.browser.firefox30) { if (typeof(console) != "undefined") { if (typeof(console.error) == "function") { console.error("This web browser is not supported by SlideDeck. Please view this page in a modern, CSS3 capable browser or a current version of Inernet Explorer") } } return false } if (typeof(a) != "undefined") { for (var b in a) { r.options[b] = a[b] } } if (r.spines.length < 1) { r.options.hideSpines = true } if (r.options.hideSpines === true) { r.options.activeCorner = false } r.current = Math.min(r.slides.length, Math.max(1, r.options.start)); if (p.height() > 0) { H(); D() } else { var c; c = setTimeout(function() { H(); if (p.height() > 0) { clearInterval(c); H(); D() } }, 20) } }; var J = function(a) { var b; b = setInterval(function() { if (r.isLoaded == true) { clearInterval(b); a() } }, 20) }; this.loaded = function(a) { J(a); return r }; this.next = function(a) { var b = Math.min(r.slides.length, (r.current + 1)); if (r.options.cycle === true) { if (r.current + 1 > r.slides.length) { b = 1 } } F(b, a); return r }; this.prev = function(a) { var b = Math.max(1, (r.current - 1)); if (r.options.cycle === true) { if (r.current - 1 < 1) { b = r.slides.length } } F(b, a); return r }; this.goTo = function(a, b) { r.pauseAutoPlay = true; F(Math.min(r.slides.length, Math.max(1, a)), b); return r }; this.setOption = function(a, b) { G(a, b); return r }; I(q) }; $.fn.slidedeck = function(a) { var b = []; for (var i = 0; i < this.length; i++) { if (!this[i].slidedeck) { this[i].slidedeck = new SlideDeck(this[i], a) } b.push(this[i].slidedeck) } return b.length > 1 ? b : b[0] } })(jQuery);