diff --git a/css/mediarack.css b/css/mediarack.css index 9f63ce6d3056d5d0e46d02f1feba5f351df90253..da48d5a69452ab6efbcc42496b0eb4758eda6307 100644 --- a/css/mediarack.css +++ b/css/mediarack.css @@ -10,12 +10,14 @@ html { } body { + padding: 0px; + margin: 0px; padding-top: 70px; font-family: 'Open Sans', sans-serif; } -#bg { +.bg { position: fixed; top: 0px; left: 0px; @@ -33,7 +35,6 @@ body { filter: blur(5px); } - .navbar-brand { height: 50px; padding-top: 0; @@ -132,11 +133,6 @@ div#movies { display: none; } -ul#latestShows li, -ul#latestMovies li { - text-align: center; -} - .list-group.seasons { margin-bottom: 0px; } @@ -148,72 +144,13 @@ div.epLabel { font-weight: bold; line-height: 15px; text-align: center; - } #loading { display: none; } -.jcarousel-wrapper { - margin: 20px auto; - position: relative; -} - -/** Carousel **/ - -.jcarousel { - position: relative; - overflow: hidden; - width: 100%; -} - -.jcarousel ul { - width: 20000em; - position: relative; - list-style: none; - margin: 0; - padding: 0; -} - -.jcarousel li { - width: 200px; - float: left; -} - -.jcarousel img { - margin: 0 10px; - max-width: 150px; - height: auto !important; -} - -/** Carousel Controls **/ - -.jcarousel-control-prev, -.jcarousel-control-next { - position: absolute; - top: 50%; - margin-top: -15px; - width: 30px; - height: 30px; - text-align: center; - background: #4E443C; - color: #fff; - text-decoration: none; - text-shadow: 0 0 1px #000; - font: 24px/27px Arial, sans-serif; - -webkit-border-radius: 30px; - -moz-border-radius: 30px; - border-radius: 30px; - -webkit-box-shadow: 0 0 4px #F0EFE7; - -moz-box-shadow: 0 0 4px #F0EFE7; - box-shadow: 0 0 4px #F0EFE7; -} - -.jcarousel-control-prev { - left: 15px; -} - -.jcarousel-control-next { - right: 15px; -} +.slick-prev::before, +.slick-next::before { + color: #222 !important; +} \ No newline at end of file diff --git a/img/loading.gif b/img/loading.gif index d6485b28a7030275420738bcf0907d2c2a784603..47adbf03dafbdabb57e1c1dbf8633d0347f66956 100644 Binary files a/img/loading.gif and b/img/loading.gif differ diff --git a/img/loading_dark.gif b/img/loading_dark.gif deleted file mode 100644 index 3cea7541a77df0ccab6a714c09335f97451a98bc..0000000000000000000000000000000000000000 Binary files a/img/loading_dark.gif and /dev/null differ diff --git a/img/opengraph.jpg b/img/opengraph.jpg deleted file mode 100644 index 413e4f289b741892faee00e57e501f928ee220f1..0000000000000000000000000000000000000000 Binary files a/img/opengraph.jpg and /dev/null differ diff --git a/img/opengraph.png b/img/opengraph.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c8ba94e262a009c8c1ebbd1d195091422bd47c Binary files /dev/null and b/img/opengraph.png differ diff --git a/index.php b/index.php index 4bb3d9e60f13ed15de89b8d40345e723c5870d11..89d15716c86fd7228727355d764c5fd9a379591b 100644 --- a/index.php +++ b/index.php @@ -15,15 +15,17 @@ include_once 'config.php'; <meta property="og:description" content="My TV Show and Movie library" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://<?php echo $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; ?>" /> - <meta property="og:image" content="https://<?php echo $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; ?>img/opengraph.jpg" /> + <meta property="og:image" content="https://<?php echo $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; ?>img/opengraph.png" /> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.9/slick.css"/> + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.9/slick-theme.css"/> <link rel="stylesheet" href="css/mediarack.css"> </head> <body> - <div id="bg"></div> + <div id="bg" class="bg"></div> <!-- Fixed navbar --> <div class="navbar navbar-inverse navbar-fixed-top" role="navigation"> @@ -37,7 +39,7 @@ include_once 'config.php'; </button> <a class="navbar-brand" href="#"><img alt="MediaRack" src="img/logo.png" /></a> </div> - <div class="navbar-collapse collapse"> + <div id="menu" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#home">Home</a></li> <li><a href="#shows">TV Shows</a></li> @@ -55,13 +57,7 @@ include_once 'config.php'; <h3 class="panel-title">Newest TV Show Episodes</h3> </div> <div class="panel-body"> - <div class="jcarousel-wrapper"> - <div class="jcarousel jcShows"> - <ul id="latestShows"></ul> - </div> - <a href="#" class="jcarousel-control-prev jcShows">‹</a> - <a href="#" class="jcarousel-control-next jcShows">›</a> - </div> + <div id="latestShows"></div> </div> </div> <div class="panel panel-default"> @@ -69,13 +65,7 @@ include_once 'config.php'; <h3 class="panel-title">Newest Movies</h3> </div> <div class="panel-body"> - <div class="jcarousel-wrapper"> - <div class="jcarousel jcMovies"> - <ul id="latestMovies"></ul> - </div> - <a href="#" class="jcarousel-control-prev jcMovies">‹</a> - <a href="#" class="jcarousel-control-next jcMovies">›</a> - </div> + <div id="latestMovies"></div> </div> </div> </div> @@ -84,13 +74,10 @@ include_once 'config.php'; <div class="content" id="movies"></div> - <div class="panel panel-default" id="loading"> - <div class="panel-heading text-center"> + <div id="loading" class="row"> + <div class="col-md-12 text-center"> <img src="img/loading.gif" alt="Loading..." /> </div> - <div class="panel-body text-center"> - <img src="img/loading_dark.gif" alt="Loading..." /> - </div> </div> </div> <!-- /container --> @@ -102,7 +89,7 @@ include_once 'config.php'; </script> <script src="//code.jquery.com/jquery-1.12.0.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> - <script src="js/jquery.jcarousel.min.js"></script> + <script src="//cdn.jsdelivr.net/jquery.slick/1.5.9/slick.min.js"></script> <script src="js/jquery.lazyload.js"></script> <script src="js/jquery.scrollstop.min.js"></script> <script src="js/mediarack.js"></script> diff --git a/js/jquery.jcarousel.min.js b/js/jquery.jcarousel.min.js deleted file mode 100644 index 515f9a326b5b63f7dfbb99fd0a1ac41868af153d..0000000000000000000000000000000000000000 --- a/js/jquery.jcarousel.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jCarousel - v0.3.0 - 2013-11-22 -* http://sorgalla.com/jcarousel -* Copyright (c) 2013 Jan Sorgalla; Licensed MIT */ -(function(t){"use strict";var i=t.jCarousel={};i.version="0.3.0";var s=/^([+\-]=)?(.+)$/;i.parseTarget=function(t){var i=!1,e="object"!=typeof t?s.exec(t):null;return e?(t=parseInt(e[2],10)||0,e[1]&&(i=!0,"-="===e[1]&&(t*=-1))):"object"!=typeof t&&(t=parseInt(t,10)||0),{target:t,relative:i}},i.detectCarousel=function(t){for(var i;t.length>0;){if(i=t.filter("[data-jcarousel]"),i.length>0)return i;if(i=t.find("[data-jcarousel]"),i.length>0)return i;t=t.parent()}return null},i.base=function(s){return{version:i.version,_options:{},_element:null,_carousel:null,_init:t.noop,_create:t.noop,_destroy:t.noop,_reload:t.noop,create:function(){return this._element.attr("data-"+s.toLowerCase(),!0).data(s,this),!1===this._trigger("create")?this:(this._create(),this._trigger("createend"),this)},destroy:function(){return!1===this._trigger("destroy")?this:(this._destroy(),this._trigger("destroyend"),this._element.removeData(s).removeAttr("data-"+s.toLowerCase()),this)},reload:function(t){return!1===this._trigger("reload")?this:(t&&this.options(t),this._reload(),this._trigger("reloadend"),this)},element:function(){return this._element},options:function(i,s){if(0===arguments.length)return t.extend({},this._options);if("string"==typeof i){if(s===void 0)return this._options[i]===void 0?null:this._options[i];this._options[i]=s}else this._options=t.extend({},this._options,i);return this},carousel:function(){return this._carousel||(this._carousel=i.detectCarousel(this.options("carousel")||this._element),this._carousel||t.error('Could not detect carousel for plugin "'+s+'"')),this._carousel},_trigger:function(i,e,r){var n,o=!1;return r=[this].concat(r||[]),(e||this._element).each(function(){n=t.Event((s+":"+i).toLowerCase()),t(this).trigger(n,r),n.isDefaultPrevented()&&(o=!0)}),!o}}},i.plugin=function(s,e){var r=t[s]=function(i,s){this._element=t(i),this.options(s),this._init(),this.create()};return r.fn=r.prototype=t.extend({},i.base(s),e),t.fn[s]=function(i){var e=Array.prototype.slice.call(arguments,1),n=this;return"string"==typeof i?this.each(function(){var r=t(this).data(s);if(!r)return t.error("Cannot call methods on "+s+" prior to initialization; "+'attempted to call method "'+i+'"');if(!t.isFunction(r[i])||"_"===i.charAt(0))return t.error('No such method "'+i+'" for '+s+" instance");var o=r[i].apply(r,e);return o!==r&&o!==void 0?(n=o,!1):void 0}):this.each(function(){var e=t(this).data(s);e instanceof r?e.reload(i):new r(this,i)}),n},r}})(jQuery),function(t,i){"use strict";var s=function(t){return parseFloat(t)||0};t.jCarousel.plugin("jcarousel",{animating:!1,tail:0,inTail:!1,resizeTimer:null,lt:null,vertical:!1,rtl:!1,circular:!1,underflow:!1,relative:!1,_options:{list:function(){return this.element().children().eq(0)},items:function(){return this.list().children()},animation:400,transitions:!1,wrap:null,vertical:null,rtl:null,center:!1},_list:null,_items:null,_target:null,_first:null,_last:null,_visible:null,_fullyvisible:null,_init:function(){var t=this;return this.onWindowResize=function(){t.resizeTimer&&clearTimeout(t.resizeTimer),t.resizeTimer=setTimeout(function(){t.reload()},100)},this},_create:function(){this._reload(),t(i).on("resize.jcarousel",this.onWindowResize)},_destroy:function(){t(i).off("resize.jcarousel",this.onWindowResize)},_reload:function(){this.vertical=this.options("vertical"),null==this.vertical&&(this.vertical=this.list().height()>this.list().width()),this.rtl=this.options("rtl"),null==this.rtl&&(this.rtl=function(i){if("rtl"===(""+i.attr("dir")).toLowerCase())return!0;var s=!1;return i.parents("[dir]").each(function(){return/rtl/i.test(t(this).attr("dir"))?(s=!0,!1):void 0}),s}(this._element)),this.lt=this.vertical?"top":"left",this.relative="relative"===this.list().css("position"),this._list=null,this._items=null;var i=this._target&&this.index(this._target)>=0?this._target:this.closest();this.circular="circular"===this.options("wrap"),this.underflow=!1;var s={left:0,top:0};return i.length>0&&(this._prepare(i),this.list().find("[data-jcarousel-clone]").remove(),this._items=null,this.underflow=this._fullyvisible.length>=this.items().length,this.circular=this.circular&&!this.underflow,s[this.lt]=this._position(i)+"px"),this.move(s),this},list:function(){if(null===this._list){var i=this.options("list");this._list=t.isFunction(i)?i.call(this):this._element.find(i)}return this._list},items:function(){if(null===this._items){var i=this.options("items");this._items=(t.isFunction(i)?i.call(this):this.list().find(i)).not("[data-jcarousel-clone]")}return this._items},index:function(t){return this.items().index(t)},closest:function(){var i,e=this,r=this.list().position()[this.lt],n=t(),o=!1,l=this.vertical?"bottom":this.rtl&&!this.relative?"left":"right";return this.rtl&&this.relative&&!this.vertical&&(r+=this.list().width()-this.clipping()),this.items().each(function(){if(n=t(this),o)return!1;var a=e.dimension(n);if(r+=a,r>=0){if(i=a-s(n.css("margin-"+l)),!(0>=Math.abs(r)-a+i/2))return!1;o=!0}}),n},target:function(){return this._target},first:function(){return this._first},last:function(){return this._last},visible:function(){return this._visible},fullyvisible:function(){return this._fullyvisible},hasNext:function(){if(!1===this._trigger("hasnext"))return!0;var t=this.options("wrap"),i=this.items().length-1;return i>=0&&(t&&"first"!==t||i>this.index(this._last)||this.tail&&!this.inTail)?!0:!1},hasPrev:function(){if(!1===this._trigger("hasprev"))return!0;var t=this.options("wrap");return this.items().length>0&&(t&&"last"!==t||this.index(this._first)>0||this.tail&&this.inTail)?!0:!1},clipping:function(){return this._element["inner"+(this.vertical?"Height":"Width")]()},dimension:function(t){return t["outer"+(this.vertical?"Height":"Width")](!0)},scroll:function(i,s,e){if(this.animating)return this;if(!1===this._trigger("scroll",null,[i,s]))return this;t.isFunction(s)&&(e=s,s=!0);var r=t.jCarousel.parseTarget(i);if(r.relative){var n,o,l,a,h,u,c,f,d=this.items().length-1,_=Math.abs(r.target),p=this.options("wrap");if(r.target>0){var v=this.index(this._last);if(v>=d&&this.tail)this.inTail?"both"===p||"last"===p?this._scroll(0,s,e):t.isFunction(e)&&e.call(this,!1):this._scrollTail(s,e);else if(n=this.index(this._target),this.underflow&&n===d&&("circular"===p||"both"===p||"last"===p)||!this.underflow&&v===d&&("both"===p||"last"===p))this._scroll(0,s,e);else if(l=n+_,this.circular&&l>d){for(f=d,h=this.items().get(-1);l>f++;)h=this.items().eq(0),u=this._visible.index(h)>=0,u&&h.after(h.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(h),u||(c={},c[this.lt]=this.dimension(h),this.moveBy(c)),this._items=null;this._scroll(h,s,e)}else this._scroll(Math.min(l,d),s,e)}else if(this.inTail)this._scroll(Math.max(this.index(this._first)-_+1,0),s,e);else if(o=this.index(this._first),n=this.index(this._target),a=this.underflow?n:o,l=a-_,0>=a&&(this.underflow&&"circular"===p||"both"===p||"first"===p))this._scroll(d,s,e);else if(this.circular&&0>l){for(f=l,h=this.items().get(0);0>f++;){h=this.items().eq(-1),u=this._visible.index(h)>=0,u&&h.after(h.clone(!0).attr("data-jcarousel-clone",!0)),this.list().prepend(h),this._items=null;var g=this.dimension(h);c={},c[this.lt]=-g,this.moveBy(c)}this._scroll(h,s,e)}else this._scroll(Math.max(l,0),s,e)}else this._scroll(r.target,s,e);return this._trigger("scrollend"),this},moveBy:function(t,i){var e=this.list().position(),r=1,n=0;return this.rtl&&!this.vertical&&(r=-1,this.relative&&(n=this.list().width()-this.clipping())),t.left&&(t.left=e.left+n+s(t.left)*r+"px"),t.top&&(t.top=e.top+n+s(t.top)*r+"px"),this.move(t,i)},move:function(i,s){s=s||{};var e=this.options("transitions"),r=!!e,n=!!e.transforms,o=!!e.transforms3d,l=s.duration||0,a=this.list();if(!r&&l>0)return a.animate(i,s),void 0;var h=s.complete||t.noop,u={};if(r){var c=a.css(["transitionDuration","transitionTimingFunction","transitionProperty"]),f=h;h=function(){t(this).css(c),f.call(this)},u={transitionDuration:(l>0?l/1e3:0)+"s",transitionTimingFunction:e.easing||s.easing,transitionProperty:l>0?function(){return n||o?"all":i.left?"left":"top"}():"none",transform:"none"}}o?u.transform="translate3d("+(i.left||0)+","+(i.top||0)+",0)":n?u.transform="translate("+(i.left||0)+","+(i.top||0)+")":t.extend(u,i),r&&l>0&&a.one("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",h),a.css(u),0>=l&&a.each(function(){h.call(this)})},_scroll:function(i,s,e){if(this.animating)return t.isFunction(e)&&e.call(this,!1),this;if("object"!=typeof i?i=this.items().eq(i):i.jquery===void 0&&(i=t(i)),0===i.length)return t.isFunction(e)&&e.call(this,!1),this;this.inTail=!1,this._prepare(i);var r=this._position(i),n=this.list().position()[this.lt];if(r===n)return t.isFunction(e)&&e.call(this,!1),this;var o={};return o[this.lt]=r+"px",this._animate(o,s,e),this},_scrollTail:function(i,s){if(this.animating||!this.tail)return t.isFunction(s)&&s.call(this,!1),this;var e=this.list().position()[this.lt];this.rtl&&this.relative&&!this.vertical&&(e+=this.list().width()-this.clipping()),this.rtl&&!this.vertical?e+=this.tail:e-=this.tail,this.inTail=!0;var r={};return r[this.lt]=e+"px",this._update({target:this._target.next(),fullyvisible:this._fullyvisible.slice(1).add(this._visible.last())}),this._animate(r,i,s),this},_animate:function(i,s,e){if(e=e||t.noop,!1===this._trigger("animate"))return e.call(this,!1),this;this.animating=!0;var r=this.options("animation"),n=t.proxy(function(){this.animating=!1;var t=this.list().find("[data-jcarousel-clone]");t.length>0&&(t.remove(),this._reload()),this._trigger("animateend"),e.call(this,!0)},this),o="object"==typeof r?t.extend({},r):{duration:r},l=o.complete||t.noop;return s===!1?o.duration=0:t.fx.speeds[o.duration]!==void 0&&(o.duration=t.fx.speeds[o.duration]),o.complete=function(){n(),l.call(this)},this.move(i,o),this},_prepare:function(i){var e,r,n,o,l=this.index(i),a=l,h=this.dimension(i),u=this.clipping(),c=this.vertical?"bottom":this.rtl?"left":"right",f=this.options("center"),d={target:i,first:i,last:i,visible:i,fullyvisible:u>=h?i:t()};if(f&&(h/=2,u/=2),u>h)for(;;){if(e=this.items().eq(++a),0===e.length){if(!this.circular)break;if(e=this.items().eq(0),i.get(0)===e.get(0))break;if(r=this._visible.index(e)>=0,r&&e.after(e.clone(!0).attr("data-jcarousel-clone",!0)),this.list().append(e),!r){var _={};_[this.lt]=this.dimension(e),this.moveBy(_)}this._items=null}if(o=this.dimension(e),0===o)break;if(h+=o,d.last=e,d.visible=d.visible.add(e),n=s(e.css("margin-"+c)),u>=h-n&&(d.fullyvisible=d.fullyvisible.add(e)),h>=u)break}if(!this.circular&&!f&&u>h)for(a=l;;){if(0>--a)break;if(e=this.items().eq(a),0===e.length)break;if(o=this.dimension(e),0===o)break;if(h+=o,d.first=e,d.visible=d.visible.add(e),n=s(e.css("margin-"+c)),u>=h-n&&(d.fullyvisible=d.fullyvisible.add(e)),h>=u)break}return this._update(d),this.tail=0,f||"circular"===this.options("wrap")||"custom"===this.options("wrap")||this.index(d.last)!==this.items().length-1||(h-=s(d.last.css("margin-"+c)),h>u&&(this.tail=h-u)),this},_position:function(t){var i=this._first,s=i.position()[this.lt],e=this.options("center"),r=e?this.clipping()/2-this.dimension(i)/2:0;return this.rtl&&!this.vertical?(s-=this.relative?this.list().width()-this.dimension(i):this.clipping()-this.dimension(i),s+=r):s-=r,!e&&(this.index(t)>this.index(i)||this.inTail)&&this.tail?(s=this.rtl&&!this.vertical?s-this.tail:s+this.tail,this.inTail=!0):this.inTail=!1,-s},_update:function(i){var s,e=this,r={target:this._target||t(),first:this._first||t(),last:this._last||t(),visible:this._visible||t(),fullyvisible:this._fullyvisible||t()},n=this.index(i.first||r.first)<this.index(r.first),o=function(s){var o=[],l=[];i[s].each(function(){0>r[s].index(this)&&o.push(this)}),r[s].each(function(){0>i[s].index(this)&&l.push(this)}),n?o=o.reverse():l=l.reverse(),e._trigger(s+"in",t(o)),e._trigger(s+"out",t(l)),e["_"+s]=i[s]};for(s in i)o(s);return this}})}(jQuery,window),function(t){"use strict";t.jcarousel.fn.scrollIntoView=function(i,s,e){var r,n=t.jCarousel.parseTarget(i),o=this.index(this._fullyvisible.first()),l=this.index(this._fullyvisible.last());if(r=n.relative?0>n.target?Math.max(0,o+n.target):l+n.target:"object"!=typeof n.target?n.target:this.index(n.target),o>r)return this.scroll(r,s,e);if(r>=o&&l>=r)return t.isFunction(e)&&e.call(this,!1),this;for(var a,h=this.items(),u=this.clipping(),c=this.vertical?"bottom":this.rtl?"left":"right",f=0;;){if(a=h.eq(r),0===a.length)break;if(f+=this.dimension(a),f>=u){var d=parseFloat(a.css("margin-"+c))||0;f-d!==u&&r++;break}if(0>=r)break;r--}return this.scroll(r,s,e)}}(jQuery),function(t){"use strict";t.jCarousel.plugin("jcarouselControl",{_options:{target:"+=1",event:"click",method:"scroll"},_active:null,_init:function(){this.onDestroy=t.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",t.proxy(this._create,this))},this),this.onReload=t.proxy(this._reload,this),this.onEvent=t.proxy(function(i){i.preventDefault();var s=this.options("method");t.isFunction(s)?s.call(this):this.carousel().jcarousel(this.options("method"),this.options("target"))},this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend jcarousel:scrollend",this.onReload),this._element.on(this.options("event")+".jcarouselcontrol",this.onEvent),this._reload()},_destroy:function(){this._element.off(".jcarouselcontrol",this.onEvent),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend jcarousel:scrollend",this.onReload)},_reload:function(){var i,s=t.jCarousel.parseTarget(this.options("target")),e=this.carousel();if(s.relative)i=e.jcarousel(s.target>0?"hasNext":"hasPrev");else{var r="object"!=typeof s.target?e.jcarousel("items").eq(s.target):s.target;i=e.jcarousel("target").index(r)>=0}return this._active!==i&&(this._trigger(i?"active":"inactive"),this._active=i),this}})}(jQuery),function(t){"use strict";t.jCarousel.plugin("jcarouselPagination",{_options:{perPage:null,item:function(t){return'<a href="#'+t+'">'+t+"</a>"},event:"click",method:"scroll"},_pages:{},_items:{},_currentPage:null,_init:function(){this.onDestroy=t.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",t.proxy(this._create,this))},this),this.onReload=t.proxy(this._reload,this),this.onScroll=t.proxy(this._update,this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy).on("jcarousel:reloadend",this.onReload).on("jcarousel:scrollend",this.onScroll),this._reload()},_destroy:function(){this._clear(),this.carousel().off("jcarousel:destroy",this.onDestroy).off("jcarousel:reloadend",this.onReload).off("jcarousel:scrollend",this.onScroll)},_reload:function(){var i=this.options("perPage");if(this._pages={},this._items={},t.isFunction(i)&&(i=i.call(this)),null==i)this._pages=this._calculatePages();else for(var s,e=parseInt(i,10)||0,r=this.carousel().jcarousel("items"),n=1,o=0;;){if(s=r.eq(o++),0===s.length)break;this._pages[n]=this._pages[n]?this._pages[n].add(s):s,0===o%e&&n++}this._clear();var l=this,a=this.carousel().data("jcarousel"),h=this._element,u=this.options("item");t.each(this._pages,function(i,s){var e=l._items[i]=t(u.call(l,i,s));e.on(l.options("event")+".jcarouselpagination",t.proxy(function(){var t=s.eq(0);if(a.circular){var e=a.index(a.target()),r=a.index(t);parseFloat(i)>parseFloat(l._currentPage)?e>r&&(t="+="+(a.items().length-e+r)):r>e&&(t="-="+(e+(a.items().length-r)))}a[this.options("method")](t)},l)),h.append(e)}),this._update()},_update:function(){var i,s=this.carousel().jcarousel("target");t.each(this._pages,function(t,e){return e.each(function(){return s.is(this)?(i=t,!1):void 0}),i?!1:void 0}),this._currentPage!==i&&(this._trigger("inactive",this._items[this._currentPage]),this._trigger("active",this._items[i])),this._currentPage=i},items:function(){return this._items},_clear:function(){this._element.empty(),this._currentPage=null},_calculatePages:function(){for(var t,i=this.carousel().data("jcarousel"),s=i.items(),e=i.clipping(),r=0,n=0,o=1,l={};;){if(t=s.eq(n++),0===t.length)break;l[o]=l[o]?l[o].add(t):t,r+=i.dimension(t),r>=e&&(o++,r=0)}return l}})}(jQuery),function(t){"use strict";t.jCarousel.plugin("jcarouselAutoscroll",{_options:{target:"+=1",interval:3e3,autostart:!0},_timer:null,_init:function(){this.onDestroy=t.proxy(function(){this._destroy(),this.carousel().one("jcarousel:createend",t.proxy(this._create,this))},this),this.onAnimateEnd=t.proxy(this.start,this)},_create:function(){this.carousel().one("jcarousel:destroy",this.onDestroy),this.options("autostart")&&this.start()},_destroy:function(){this.stop(),this.carousel().off("jcarousel:destroy",this.onDestroy)},start:function(){return this.stop(),this.carousel().one("jcarousel:animateend",this.onAnimateEnd),this._timer=setTimeout(t.proxy(function(){this.carousel().jcarousel("scroll",this.options("target"))},this),this.options("interval")),this},stop:function(){return this._timer&&(this._timer=clearTimeout(this._timer)),this.carousel().off("jcarousel:animateend",this.onAnimateEnd),this}})}(jQuery); \ No newline at end of file diff --git a/js/mediarack.js b/js/mediarack.js index b56c99dad703d70c1ef7298a7c08d3d943047f91..40c7e0aa9cd02e09ef082ad056020bd4d09a2b06 100644 --- a/js/mediarack.js +++ b/js/mediarack.js @@ -9,14 +9,12 @@ var loadMovies = true; var seasonOpacity = 0.3; -$(document).ready(function() { +var bsEnv; - getLatest('Shows'); - getLatest('Movies'); - getShows(); - getMovies(); +$(document).ready(function() { $(".nav a").on('click',function(e) { + $('#menu').collapse('hide'); var page = $(this).attr('href'); e.preventDefault(); window.location.hash = page; @@ -24,7 +22,7 @@ $(document).ready(function() { }); $(window).scroll(function(){ - if ($(window).scrollTop()+1000 >= ($(document).height() - ($(window).height()))){ + if ($(window).scrollTop()+1000 >= ($(document).height() - ($(window).height()))){ if ($("#shows").is(":visible") && loadShows == true) { loadShows = false; getShows(); @@ -39,15 +37,43 @@ $(document).ready(function() { var url = document.location.toString(); if (url.match('#')) { showPage('#'+url.split('#')[1]); + } else { + showPage('#home'); + } + + $('#latestShows, #latestMovies').slick({ + slidesToShow: 4, + dots: true, + infinite: false, + variableWidth: false + }); + + bsEnv = getBsEnv(); + if(bsEnv != "lg") { + seasonOpacity = 1; } + getLatest('Shows'); + getLatest('Movies'); + }); function showPage(page) { $('.content').hide(); $(".nav li").removeClass('active'); $(".nav li:has(a[href='"+page+"'])").addClass('active'); + $("#bg").css('background-image', 'none'); window.scrollTo(0, 0); + switch(page) { + case '#shows': + getShows(); + break; + case '#movies': + getMovies(); + break; + default: + break; + } $(page).show(); } @@ -63,48 +89,10 @@ function getLatest(type) { }else{ var liLatestItem = $('<li><img src="'+cdn('movie/'+cleanname(ep.movie)+'/poster.jpg')+'" /><div class="epLabel">'+ep.movie+'</div></li>'); } - ulLatestContainer.append(liLatestItem); - }); - $('.jcarousel.jc'+type) - .on('jcarousel:create jcarousel:reload', function() { - var element = $(this), - width = element.innerWidth(); - - if (width > 1000) { - width = width / 5; - } else if (width > 800) { - width = width / 4; - } else if (width > 590) { - width = width / 3; - } else if (width < 590) { - width = width / 2; - } - element.jcarousel('items').css('width', width + 'px'); - }) - .jcarousel({ - wrap: 'both' + $('#latest'+type).slick('slickAdd', liLatestItem); }); - $('.jcarousel-control-prev.jc'+type) - .on('jcarouselcontrol:active', function() { - $(this).removeClass('inactive'); - }) - .on('jcarouselcontrol:inactive', function() { - $(this).addClass('inactive'); - }) - .jcarouselControl({ - target: '-=1' - }); - $('.jcarousel-control-next.jc'+type) - .on('jcarouselcontrol:active', function() { - $(this).removeClass('inactive'); - }) - .on('jcarouselcontrol:inactive', function() { - $(this).addClass('inactive'); - }) - .jcarouselControl({ - target: '+=1' - }); + } ); @@ -165,13 +153,19 @@ function getShows() { }); divInfo.fadeTo(0, seasonOpacity); divContainer.hover(function() { - $('#bg').stop(true).fadeTo('slow', 0, function() { + $(this).siblings().stop().fadeTo(300, seasonOpacity); + $('#bg').fadeTo(0, 0, function() { $('#bg').css('background-image', 'url('+cdn('show/'+cleanname(show.folder)+'/fanart.jpg')+')'); }).fadeTo('slow', 1); - divInfo.fadeTo(300, 1); + divInfo.stop().fadeTo(300, 0.7); }, function() { - divInfo.fadeTo(300, seasonOpacity); + $(this).siblings().stop().fadeTo(300, 1); + divInfo.stop().fadeTo(300, seasonOpacity); + $('#bg').stop(true).fadeTo('slow', 0, function() { + $('#bg').css('background-image', 'none'); + }).fadeTo(0, 1); }); + divSeasons.append(ulSeasons); divInfo.append(divSeasons); divInfo.append(divFooter); @@ -181,10 +175,12 @@ function getShows() { divContainer.append(divRight); divShows.append(divContainer); $(".showContainer.lazy, .showPoster img.lazy").lazyload({ - threshold: 1000 + threshold: 1000, + placeholder: 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' }); $("img.showLogo.lazy").lazyload({ threshold: 1000, + placeholder: 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==', error: function() { var title = $(this).attr('alt'); $(this).parent().html(title); @@ -268,12 +264,17 @@ function getMovies() { var divRating =$('<div class="movieRating text-right">IMDB Rating: '+movie.rating+'</div>'); divInfo.fadeTo(0, seasonOpacity); divContainer.hover(function() { - $('#bg').stop(true).fadeTo('slow', 0, function() { + $(this).siblings().stop().fadeTo(300, seasonOpacity); + $('#bg').fadeTo(0, 0, function() { $('#bg').css('background-image', 'url('+cdn('movie/'+cleanname(movie.folder)+'/fanart.jpg')+')'); }).fadeTo('slow', 1); - divInfo.fadeTo(300, 1); + divInfo.stop().fadeTo(300, 0.7); }, function() { - divInfo.fadeTo(300, seasonOpacity); + $(this).siblings().stop().fadeTo(300, 1); + divInfo.stop().fadeTo(300, seasonOpacity); + $('#bg').stop(true).fadeTo('slow', 0, function() { + $('#bg').css('background-image', 'none'); + }).fadeTo(0, 1); }); divInfo.append(divPlot); @@ -284,10 +285,12 @@ function getMovies() { divContainer.append(divRight); divMovies.append(divContainer); $(".movieContainer.lazy, .moviePoster img.lazy").lazyload({ - threshold: 1000 + threshold: 1000, + placeholder: 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' }); $("img.movieLogo.lazy").lazyload({ threshold: 1000, + placeholder: 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==', error: function() { var title = $(this).attr('alt'); $(this).parent().html(title); @@ -308,8 +311,8 @@ function cdn(img) { if(cdnEnabled == true) { var cdnHost = cdnHostPattern.replace('#', Math.floor((Math.random()*cdnHostCount))); var base = window.location.href.replace(/https?:\/\//i, "").split('#')[0]; - //var img = window.location.protocol+'//'+cdnHost+'/'+base+img - var img = 'http://'+cdnHost+'/'+base+img + var img = window.location.protocol+'//'+cdnHost+'/'+base+img + //var img = 'http://'+cdnHost+'/'+base+img } return img; } @@ -318,4 +321,20 @@ function cleanname(txt) { // this breaks thumbnail generation, because the local folder can't be found anymore //return txt.replace(/[^a-zA-Z0-9]/g, '_'); return escape(txt); -} \ No newline at end of file +} + +function getBsEnv() { + var envs = ["xs", "sm", "md", "lg"], + doc = window.document, + temp = doc.createElement("div"); + doc.body.appendChild(temp); + for (var i = envs.length - 1; i >= 0; i--) { + var env = envs[i]; + temp.className = "hidden-" + env; + if (temp.offsetParent === null) { + doc.body.removeChild(temp); + return env; + } + } + return ""; +}