diff --git a/dist/app.js b/dist/app.js index 211744c..ee3f85e 100644 --- a/dist/app.js +++ b/dist/app.js @@ -1189,7 +1189,7 @@ var CurrentSelection = (function () { } name = loadedSelection ? loadedSelection.name : "frontPage"; - type = loadedSelection ? loadedSelection.type : type.sub; + type = loadedSelection ? loadedSelection.type : Types.SUB; }; var setSubreddit = function setSubreddit(sub) { diff --git a/dist/app.min.js b/dist/app.min.js index 62894dd..212e452 100644 --- a/dist/app.min.js +++ b/dist/app.min.js @@ -1,2 +1,2 @@ -(function(){"use strict";var Anim=function(){var slideFromLeft=function slideFromLeft(){var show=UI.classes.showView;UI.el.mainView.addClass(show);UI.el.detailView.removeClass(show);UI.setCurrentView(UI.View.MAIN)};var slideFromRight=function slideFromRight(){var show=UI.classes.showView;UI.el.mainView.removeClass(show);UI.el.detailView.addClass(show);UI.setCurrentView(UI.View.COMMENTS)};var reveal=function(_reveal){var _revealWrapper=function reveal(_x){return _reveal.apply(this,arguments)};_revealWrapper.toString=function(){return _reveal.toString()};return _revealWrapper}(function(el){var reveal="anim-reveal";if(is.desktop){el.addClass(reveal);setTimeout(function(){el.removeClass(reveal)},700)}else{setTimeout(function(){el.removeClass("invisible").addClass(reveal)},0)}});var shake=function(_shake){var _shakeWrapper=function shake(_x){return _shake.apply(this,arguments)};_shakeWrapper.toString=function(){return _shake.toString()};return _shakeWrapper}(function(el){var shake="anim-shake";el.addClass(shake);setTimeout(function(){el.removeClass(shake)},350)});var shakeForm=function shakeForm(){shake($(".new-form"))};var bounceOut=function(_bounceOut){var _bounceOutWrapper=function bounceOut(_x,_x2){return _bounceOut.apply(this,arguments)};_bounceOutWrapper.toString=function(){return _bounceOut.toString()};return _bounceOutWrapper}(function(el,callback){var bounceOut="anim-bounce-out";el.addClass(bounceOut);if(callback){setTimeout(callback,1e3)}});var bounceInDown=function bounceInDown(el){el.addClass("anim-bounceInDown");setTimeout(function(){el[0].style.opacity=1;el.removeClass("anim-bounceInDown")},500)};return{slideFromLeft:slideFromLeft,slideFromRight:slideFromRight,reveal:reveal,shake:shake,shakeForm:shakeForm,bounceOut:bounceOut,bounceInDown:bounceInDown}}();var Backup=function(){var update=1,gists={url:"https://api.github.com/gists",fileURL:""};var template={exportData:"
×

Export Data

You can back-up your local subscriptions and then import them to any other Reeddit instance, or just restore them.

Save to Dropbox
",importData:"
×

Import Data

Load the subscriptions from another Reeddit instance.

Once you choose the reeddit data file, Reeddit will refresh with the imported data.

Import from Dropbox
"};var shouldUpdate=function shouldUpdate(){update=1};var createBackup=function createBackup(){if(update){Modal.show(template.exportData,function(){var files={},content='{"channels": '+Store.getItem("channels")+', "subreddits": '+Store.getItem("subreeddits")+"}";files["reedditdata.json"]={content:content};$.ajax({url:gists.url,type:"POST",data:JSON.stringify({description:"Reeddit User Data","public":true,files:files}),headers:{"Content-Type":"application/json; charset=UTF-8"},success:function success(response){var resp=JSON.parse(response);$$.id("btn-save-dbx").style.display="block";gists.fileURL=resp.files["reedditdata.json"].raw_url;update=0},error:function error(){$("#btn-save-dbx").remove();$(".move-data-exp").append("

Oh oh. Error creating your backup file. Retry later.

");Modal.remove()}})})}else if(gists.fileURL){Modal.show(template.exportData,function(){$$.id("btn-save-dbx").style.display="block"})}};var chooseFromDropbox=function chooseFromDropbox(){Dropbox.choose({success:function success(file){$.ajax({url:file[0].link,success:function success(data){try{var refresh=false;if(typeof data==="string"){data=JSON.parse(data)}if(data.subreddits){refresh=true;Store.setItem("subreeddits",JSON.stringify(data.subreddits))}if(data.channels){refresh=true;Store.setItem("channels",JSON.stringify(data.channels))}if(refresh){window.location.reload()}}catch(e){alert("Oops! Wrong file, maybe? - Try choosing another one.")}}})},linkType:"direct",extensions:[".json"]})};var initListeners=function initListeners(){tappable("#btn-save-dbx",{onTap:function onTap(){if(!gists.fileURL){alert("Err. There's no backup file created...");return}var options={files:[{url:gists.fileURL,filename:"reedditdata.json"}],success:Modal.remove};Dropbox.save(options)},activeClass:"btn-general-active"});tappable("#btn-dbx-imp",{onTap:chooseFromDropbox,activeClass:"btn-general-active"})};return{initListeners:initListeners,chooseFromDropbox:chooseFromDropbox,createBackup:createBackup,shouldUpdate:shouldUpdate,templateImportData:template.importData}}();var $$={id:function id(query){return document.getElementById(query)},q:function q(query){return document.querySelector(query)}};var wideScreenBP=window.matchMedia("(min-width: 1000px)"),largeScreenBP=window.matchMedia("(min-width: 490px)"),UA=window.navigator.userAgent;var is=function(){var isDesktop=!/iPhone|iPod|iPad|Android|Mobile/.test(UA),isiPad=/iPad/.test(UA),isiPhone=/iP(hone|od)/.test(UA);return{wideScreen:wideScreenBP.matches,largeScreen:largeScreenBP.matches,desktop:isDesktop,mobile:!isDesktop,iPhone:isiPhone,iPad:isiPad,iOS7:(isiPhone||isiPad)&&parseInt(UA.match(/ OS (\d+)_/i)[1],10)>=7}}();var Store=window.fluid?allCookies:window.localStorage;var UI=function(){var Move={LEFT:1,RIGHT:2};var View={MAIN:1,COMMENTS:2};var classes={showView:"show-view",showMenu:"show-menu",mnml:"mnml",hide:"hide",swipe:"from-swipe"};var template={loader:"
"};var el={body:$("body"),mainWrap:$("#main-wrap"),detailWrap:$("#detail-wrap"),mainView:$(".main-view"),detailView:$(".detail-view")};var mnmlTheme=false,currentView=View.MAIN;var getCurrentView=function(){return currentView};var setCurrentView=function setCurrentView(view){currentView=view};var setSubTitle=function setSubTitle(title){Header.el.subtitleText.text(title);Footer.el.subTitle.text(title)};var backToMainView=function backToMainView(){Header.el.btnNavBack.addClass("invisible");Header.el.subtitle.removeClass("invisible");Header.el.centerSection.empty().append(Header.el.icon);Anim.slideFromLeft()};var switchMnml=function switchMnml(save,mode){if(typeof mode==="undefined"){mnmlTheme=!mnmlTheme}else{mnmlTheme=mode}var buttonMnml=$("#mnml"),docBody=document.body;if(mnmlTheme){docBody.classList.add(classes.mnml);buttonMnml.text("Theme: mnml")}else{docBody.classList.remove(classes.mnml);buttonMnml.text("Theme: Classic")}if(save){Store.setItem("mnml",mnmlTheme)}};var switchDisplay=function switchDisplay(el,visible){if(visible){el.classList.add(classes.hide)}else{el.classList.remove(classes.hide)}};var addLoader=function addLoader(elem){var loader=$("
").addClass("loader");elem.append(loader);return loader};var scrollFixComments=function scrollFixComments(){var detailWrap=$$.q("#detail-wrap"),detailWrapHeight=detailWrap.offsetHeight,linkSummary=detailWrap.querySelector("section:first-child"),linkSummaryHeight=linkSummary.offsetHeight,selfText=detailWrap.querySelector("#selftext"),selfTextHeight=selfText?selfText.offsetHeight:0,imagePreview=detailWrap.querySelector(".image-preview"),imagePreviewHeight=imagePreview?imagePreview.offsetHeight:0,loader=detailWrap.querySelector(".loader"),loaderHeight=loader?loader.offsetHeight:0;var minHeight=detailWrapHeight-linkSummaryHeight-selfTextHeight-imagePreviewHeight-loaderHeight+1;$("#detail-wrap > section + "+(selfTextHeight>0?"#selftext +":"")+(imagePreviewHeight>0?".image-preview +":"")+(loaderHeight>0?".loader +":"")+" section").css("min-height",minHeight)};var scrollFixLinks=function scrollFixLinks(){var totalHeight=0;var wraps=document.querySelectorAll(".link-wrap");for(var w=0;wminHeight){$("#main-overflow").css("min-height","")}else{$("#main-overflow").css("min-height",minHeight-totalHeight+1)}};var supportOrientation=typeof window.orientation!=="undefined";var getScrollTop=function getScrollTop(){return window.pageYOffset||document.compatMode==="CSS1Compat"&&document.documentElement.scrollTop||document.body.scrollTop||0};var scrollTop=function scrollTop(){if(!supportOrientation){return}document.body.style.height=screen.height+"px";setTimeout(function(){window.scrollTo(0,1);var top=getScrollTop();window.scrollTo(0,top===1?0:1);document.body.style.height=window.innerHeight+"px"},1)};var iPadScrollFix=function iPadScrollFix(){var nextHeight="36px"===$(".menu-desc").css("height")?"35px":"36px";setTimeout(function(){$(".menu-desc").css("height",nextHeight)},500)};var initListeners=function initListeners(){if(window.applicationCache){window.applicationCache.addEventListener("updateready",function(e){var delay=1;if(Menu.isShowing()){Menu.move(Move.LEFT);delay=301}setTimeout(function(){el.mainWrap.prepend("
Reeddit updated. Press to reload
");tappable("#btn-update",{onTap:function onTap(){window.location.reload()},activeClass:"list-button-active"})},delay)},false)}window.addEventListener("resizeend",function(){is.wideScreen=wideScreenBP.matches;is.largeScreen=largeScreenBP.matches;scrollTop();if(is.largeScreen&&Menu.isShowing()){Menu.move(Move.LEFT)}if(is.iPad){iPadScrollFix()}},false);if(is.iPhone&&is.iOS7){var hasSwiped=false;document.addEventListener("touchstart",function(ev){var touchX=ev.targetTouches[0].clientX;hasSwiped=touchX<20||touchX>window.innerWidth-20});document.addEventListener("touchend",function(){hasSwiped=false})}window.addEventListener("hashchange",function(){if(is.iPhone&&is.iOS7){if(hasSwiped){el.mainView.addClass(classes.swipe);el.detailView.addClass(classes.swipe);Header.el.btnNavBack.addClass(classes.swipe);Header.el.subtitle.addClass(classes.swipe)}else{el.mainView.removeClass(classes.swipe);el.detailView.removeClass(classes.swipe);Header.el.btnNavBack.removeClass(classes.swipe);Header.el.subtitle.removeClass(classes.swipe)}hasSwiped=false}if(location.hash===""){backToMainView();Posts.clearSelected();Footer.setPostTitle();setTimeout(function(){el.detailWrap.empty()},is.wideScreen?1:301)}else{Comments.navigateFromHash()}},false);tappable("#mnml",{onTap:function onTap(){switchMnml(true)}});tappable(".btn-refresh",{onTap:function onTap(e){var origin=e.target.getAttribute("data-origin");switch(origin){case"footer-main":Posts.refreshStream();break;case"footer-detail":if(!Comments.getCurrentThread()){return}Comments.show(Comments.getCurrentThread(),true);break;default:if(currentView===View.COMMENTS){if(!Comments.getCurrentThread()){return}Comments.show(Comments.getCurrentThread(),true)}if(currentView===View.MAIN){Posts.refreshStream()}}}});tappable(".close-form",Modal.remove);if(is.mobile){if(!(is.iPhone&&is.iOS7)){el.detailView.swipeRight(function(){if(is.wideScreen){return}location.hash="#"})}el.mainView.swipeRight(function(){if(!is.desktop&&Posts.areLoading()||is.largeScreen){return}if(currentView===View.MAIN){Menu.move(Move.RIGHT)}});el.mainView.swipeLeft(function(){if(!is.desktop&&Posts.areLoading()||is.largeScreen){return}if(Menu.isShowing()){Menu.move(Move.LEFT)}});el.mainView.on("swipeLeft",".link",function(){if(is.wideScreen){return}if(!Menu.isShowing()){var id=$(this).data("id");Comments.updateHash(id)}})}};return{el:el,classes:classes,View:View,Move:Move,template:template,initListeners:initListeners,setCurrentView:setCurrentView,getCurrentView:getCurrentView,setSubTitle:setSubTitle,switchMnml:switchMnml,scrollTop:scrollTop,iPadScrollFix:iPadScrollFix,scrollFixComments:scrollFixComments,scrollFixLinks:scrollFixLinks,addLoader:addLoader,backToMainView:backToMainView,switchDisplay:switchDisplay}}();var URLs={init:"http://www.reddit.com/",end:".json?jsonp=?",limitEnd:".json?limit=30&jsonp=?"};var Channels=function(){var defaults={name:"Media",subs:["movies","television","music","games"]};var template={singleEditItem:"

{{name}}

",single:'
  • {{name}}

    {{#subs}}

    {{.}}

    {{/subs}}
  • ',list:'{{#.}}
  • {{name}}

    {{#subs}}

    {{.}}

    {{/subs}}
  • {{/.}}',formAddNew:'
    Add Channel
    ×
    Add additional subreddit
    ',formEditChannel:'
    Update Channel
    ×
    Add additional subreddit
    '};var list=[],editingNow="";var el={menu:$("#channels")};var getList=function(){return list};var getURL=function getURL(channel){if(channel.subs.length===1){return"r/"+channel.subs[0]+"+"+channel.subs[0]}else{return"r/"+channel.subs.join("+")}};var insert=function insert(channel){list.push(channel);Store.setItem("channels",JSON.stringify(list));Backup.shouldUpdate()};var _delete=function _delete(name){for(var j=0;j'"+channelName+"' "+operation+"d. Cool!

    ");Anim.bounceOut($(".new-form"),Modal.remove)},activeClass:"btn-general-active"});tappable("#btn-add-channel",{onTap:function onTap(){Modal.show(template.formAddNew)},activeClass:"list-button-active"});tappable(".btn-remove-channel",{onTap:function onTap(e,target){remove($(target).data("title"))},activeClass:"button-active"});tappable(".btn-edit-channel",{onTap:function onTap(e,target){edit(target.getAttribute("data-title"))},activeClass:"button-active"})};return{getList:getList,getByName:getByName,getURL:getURL,loadPosts:loadPosts,loadSaved:loadSaved,initListeners:initListeners,template:{formAddNew:template.formAddNew,singleEditItem:template.singleEditItem}}}();var Comments=function(){var loading=false,replies={},currentThread;var setLoading=function setLoading(areLoading){loading=areLoading};var getCurrentThread=function(){return currentThread};var updateHash=function updateHash(id){location.hash="#comments:"+id};var getIdFromHash=function getIdFromHash(){var match=location.hash.match(/(#comments:)((?:[a-zA-Z0-9]*))/);if(match&&match[2]){return match[2]}};var navigateFromHash=function navigateFromHash(){var id=getIdFromHash();show(id);if(is.wideScreen){Posts.markSelected(id)}};var showLoadError=function showLoadError(loader){loading=false;var error="Error loading comments. Refresh to try again.";if(is.wideScreen){loader.addClass("loader-error").html(error+'')}else{loader.addClass("loader-error").text(error)}if(!is.desktop){UI.el.detailWrap.append($("
    "));UI.scrollFixComments()}};var load=function load(data,baseElement,idParent){var now=(new Date).getTime(),converter=new Markdown.Converter,com=$("
    ").addClass("comments-level");for(var i=0;i").addClass("comment-wrap").append($("
    ").append($("
    ").addClass("comment-data").append($("
    ").addClass(isPoster?"comment-poster":"comment-author").append($("

    ").text(c.data.author))).append($("

    ").addClass("comment-info").append($("").attr(commentLink).text(timeSince(now,c.data.created_utc))))).append($("
    ").addClass("comment-body").html(html)));if(c.data.replies&&c.data.replies.data.children[0].kind!=="more"){comment.append($("\n
    "; +(function(){"use strict";var Anim=function(){var slideFromLeft=function slideFromLeft(){var show=UI.classes.showView;UI.el.mainView.addClass(show);UI.el.detailView.removeClass(show);UI.setCurrentView(UI.View.MAIN)};var slideFromRight=function slideFromRight(){var show=UI.classes.showView;UI.el.mainView.removeClass(show);UI.el.detailView.addClass(show);UI.setCurrentView(UI.View.COMMENTS)};var reveal=function(_reveal){var _revealWrapper=function reveal(_x){return _reveal.apply(this,arguments)};_revealWrapper.toString=function(){return _reveal.toString()};return _revealWrapper}(function(el){var reveal="anim-reveal";if(is.desktop){el.addClass(reveal);setTimeout(function(){el.removeClass(reveal)},700)}else{setTimeout(function(){el.removeClass("invisible").addClass(reveal)},0)}});var shake=function(_shake){var _shakeWrapper=function shake(_x){return _shake.apply(this,arguments)};_shakeWrapper.toString=function(){return _shake.toString()};return _shakeWrapper}(function(el){var shake="anim-shake";el.addClass(shake);setTimeout(function(){el.removeClass(shake)},350)});var shakeForm=function shakeForm(){shake($(".new-form"))};var bounceOut=function(_bounceOut){var _bounceOutWrapper=function bounceOut(_x,_x2){return _bounceOut.apply(this,arguments)};_bounceOutWrapper.toString=function(){return _bounceOut.toString()};return _bounceOutWrapper}(function(el,callback){var bounceOut="anim-bounce-out";el.addClass(bounceOut);if(callback){setTimeout(callback,1e3)}});var bounceInDown=function bounceInDown(el){el.addClass("anim-bounceInDown");setTimeout(function(){el[0].style.opacity=1;el.removeClass("anim-bounceInDown")},500)};return{slideFromLeft:slideFromLeft,slideFromRight:slideFromRight,reveal:reveal,shake:shake,shakeForm:shakeForm,bounceOut:bounceOut,bounceInDown:bounceInDown}}();var Backup=function(){var update=1,gists={url:"https://api.github.com/gists",fileURL:""};var template={exportData:"
    ×

    Export Data

    You can back-up your local subscriptions and then import them to any other Reeddit instance, or just restore them.

    Save to Dropbox
    ",importData:"
    ×

    Import Data

    Load the subscriptions from another Reeddit instance.

    Once you choose the reeddit data file, Reeddit will refresh with the imported data.

    Import from Dropbox
    "};var shouldUpdate=function shouldUpdate(){update=1};var createBackup=function createBackup(){if(update){Modal.show(template.exportData,function(){var files={},content='{"channels": '+Store.getItem("channels")+', "subreddits": '+Store.getItem("subreeddits")+"}";files["reedditdata.json"]={content:content};$.ajax({url:gists.url,type:"POST",data:JSON.stringify({description:"Reeddit User Data","public":true,files:files}),headers:{"Content-Type":"application/json; charset=UTF-8"},success:function success(response){var resp=JSON.parse(response);$$.id("btn-save-dbx").style.display="block";gists.fileURL=resp.files["reedditdata.json"].raw_url;update=0},error:function error(){$("#btn-save-dbx").remove();$(".move-data-exp").append("

    Oh oh. Error creating your backup file. Retry later.

    ");Modal.remove()}})})}else if(gists.fileURL){Modal.show(template.exportData,function(){$$.id("btn-save-dbx").style.display="block"})}};var chooseFromDropbox=function chooseFromDropbox(){Dropbox.choose({success:function success(file){$.ajax({url:file[0].link,success:function success(data){try{var refresh=false;if(typeof data==="string"){data=JSON.parse(data)}if(data.subreddits){refresh=true;Store.setItem("subreeddits",JSON.stringify(data.subreddits))}if(data.channels){refresh=true;Store.setItem("channels",JSON.stringify(data.channels))}if(refresh){window.location.reload()}}catch(e){alert("Oops! Wrong file, maybe? - Try choosing another one.")}}})},linkType:"direct",extensions:[".json"]})};var initListeners=function initListeners(){tappable("#btn-save-dbx",{onTap:function onTap(){if(!gists.fileURL){alert("Err. There's no backup file created...");return}var options={files:[{url:gists.fileURL,filename:"reedditdata.json"}],success:Modal.remove};Dropbox.save(options)},activeClass:"btn-general-active"});tappable("#btn-dbx-imp",{onTap:chooseFromDropbox,activeClass:"btn-general-active"})};return{initListeners:initListeners,chooseFromDropbox:chooseFromDropbox,createBackup:createBackup,shouldUpdate:shouldUpdate,templateImportData:template.importData}}();var $$={id:function id(query){return document.getElementById(query)},q:function q(query){return document.querySelector(query)}};var wideScreenBP=window.matchMedia("(min-width: 1000px)"),largeScreenBP=window.matchMedia("(min-width: 490px)"),UA=window.navigator.userAgent;var is=function(){var isDesktop=!/iPhone|iPod|iPad|Android|Mobile/.test(UA),isiPad=/iPad/.test(UA),isiPhone=/iP(hone|od)/.test(UA);return{wideScreen:wideScreenBP.matches,largeScreen:largeScreenBP.matches,desktop:isDesktop,mobile:!isDesktop,iPhone:isiPhone,iPad:isiPad,iOS7:(isiPhone||isiPad)&&parseInt(UA.match(/ OS (\d+)_/i)[1],10)>=7}}();var Store=window.fluid?allCookies:window.localStorage;var UI=function(){var Move={LEFT:1,RIGHT:2};var View={MAIN:1,COMMENTS:2};var classes={showView:"show-view",showMenu:"show-menu",mnml:"mnml",hide:"hide",swipe:"from-swipe"};var template={loader:"
    "};var el={body:$("body"),mainWrap:$("#main-wrap"),detailWrap:$("#detail-wrap"),mainView:$(".main-view"),detailView:$(".detail-view")};var mnmlTheme=false,currentView=View.MAIN;var getCurrentView=function(){return currentView};var setCurrentView=function setCurrentView(view){currentView=view};var setSubTitle=function setSubTitle(title){Header.el.subtitleText.text(title);Footer.el.subTitle.text(title)};var backToMainView=function backToMainView(){Header.el.btnNavBack.addClass("invisible");Header.el.subtitle.removeClass("invisible");Header.el.centerSection.empty().append(Header.el.icon);Anim.slideFromLeft()};var switchMnml=function switchMnml(save,mode){if(typeof mode==="undefined"){mnmlTheme=!mnmlTheme}else{mnmlTheme=mode}var buttonMnml=$("#mnml"),docBody=document.body;if(mnmlTheme){docBody.classList.add(classes.mnml);buttonMnml.text("Theme: mnml")}else{docBody.classList.remove(classes.mnml);buttonMnml.text("Theme: Classic")}if(save){Store.setItem("mnml",mnmlTheme)}};var switchDisplay=function switchDisplay(el,visible){if(visible){el.classList.add(classes.hide)}else{el.classList.remove(classes.hide)}};var addLoader=function addLoader(elem){var loader=$("
    ").addClass("loader");elem.append(loader);return loader};var scrollFixComments=function scrollFixComments(){var detailWrap=$$.q("#detail-wrap"),detailWrapHeight=detailWrap.offsetHeight,linkSummary=detailWrap.querySelector("section:first-child"),linkSummaryHeight=linkSummary.offsetHeight,selfText=detailWrap.querySelector("#selftext"),selfTextHeight=selfText?selfText.offsetHeight:0,imagePreview=detailWrap.querySelector(".image-preview"),imagePreviewHeight=imagePreview?imagePreview.offsetHeight:0,loader=detailWrap.querySelector(".loader"),loaderHeight=loader?loader.offsetHeight:0;var minHeight=detailWrapHeight-linkSummaryHeight-selfTextHeight-imagePreviewHeight-loaderHeight+1;$("#detail-wrap > section + "+(selfTextHeight>0?"#selftext +":"")+(imagePreviewHeight>0?".image-preview +":"")+(loaderHeight>0?".loader +":"")+" section").css("min-height",minHeight)};var scrollFixLinks=function scrollFixLinks(){var totalHeight=0;var wraps=document.querySelectorAll(".link-wrap");for(var w=0;wminHeight){$("#main-overflow").css("min-height","")}else{$("#main-overflow").css("min-height",minHeight-totalHeight+1)}};var supportOrientation=typeof window.orientation!=="undefined";var getScrollTop=function getScrollTop(){return window.pageYOffset||document.compatMode==="CSS1Compat"&&document.documentElement.scrollTop||document.body.scrollTop||0};var scrollTop=function scrollTop(){if(!supportOrientation){return}document.body.style.height=screen.height+"px";setTimeout(function(){window.scrollTo(0,1);var top=getScrollTop();window.scrollTo(0,top===1?0:1);document.body.style.height=window.innerHeight+"px"},1)};var iPadScrollFix=function iPadScrollFix(){var nextHeight="36px"===$(".menu-desc").css("height")?"35px":"36px";setTimeout(function(){$(".menu-desc").css("height",nextHeight)},500)};var initListeners=function initListeners(){if(window.applicationCache){window.applicationCache.addEventListener("updateready",function(e){var delay=1;if(Menu.isShowing()){Menu.move(Move.LEFT);delay=301}setTimeout(function(){el.mainWrap.prepend("
    Reeddit updated. Press to reload
    ");tappable("#btn-update",{onTap:function onTap(){window.location.reload()},activeClass:"list-button-active"})},delay)},false)}window.addEventListener("resizeend",function(){is.wideScreen=wideScreenBP.matches;is.largeScreen=largeScreenBP.matches;scrollTop();if(is.largeScreen&&Menu.isShowing()){Menu.move(Move.LEFT)}if(is.iPad){iPadScrollFix()}},false);if(is.iPhone&&is.iOS7){var hasSwiped=false;document.addEventListener("touchstart",function(ev){var touchX=ev.targetTouches[0].clientX;hasSwiped=touchX<20||touchX>window.innerWidth-20});document.addEventListener("touchend",function(){hasSwiped=false})}window.addEventListener("hashchange",function(){if(is.iPhone&&is.iOS7){if(hasSwiped){el.mainView.addClass(classes.swipe);el.detailView.addClass(classes.swipe);Header.el.btnNavBack.addClass(classes.swipe);Header.el.subtitle.addClass(classes.swipe)}else{el.mainView.removeClass(classes.swipe);el.detailView.removeClass(classes.swipe);Header.el.btnNavBack.removeClass(classes.swipe);Header.el.subtitle.removeClass(classes.swipe)}hasSwiped=false}if(location.hash===""){backToMainView();Posts.clearSelected();Footer.setPostTitle();setTimeout(function(){el.detailWrap.empty()},is.wideScreen?1:301)}else{Comments.navigateFromHash()}},false);tappable("#mnml",{onTap:function onTap(){switchMnml(true)}});tappable(".btn-refresh",{onTap:function onTap(e){var origin=e.target.getAttribute("data-origin");switch(origin){case"footer-main":Posts.refreshStream();break;case"footer-detail":if(!Comments.getCurrentThread()){return}Comments.show(Comments.getCurrentThread(),true);break;default:if(currentView===View.COMMENTS){if(!Comments.getCurrentThread()){return}Comments.show(Comments.getCurrentThread(),true)}if(currentView===View.MAIN){Posts.refreshStream()}}}});tappable(".close-form",Modal.remove);if(is.mobile){if(!(is.iPhone&&is.iOS7)){el.detailView.swipeRight(function(){if(is.wideScreen){return}location.hash="#"})}el.mainView.swipeRight(function(){if(!is.desktop&&Posts.areLoading()||is.largeScreen){return}if(currentView===View.MAIN){Menu.move(Move.RIGHT)}});el.mainView.swipeLeft(function(){if(!is.desktop&&Posts.areLoading()||is.largeScreen){return}if(Menu.isShowing()){Menu.move(Move.LEFT)}});el.mainView.on("swipeLeft",".link",function(){if(is.wideScreen){return}if(!Menu.isShowing()){var id=$(this).data("id");Comments.updateHash(id)}})}};return{el:el,classes:classes,View:View,Move:Move,template:template,initListeners:initListeners,setCurrentView:setCurrentView,getCurrentView:getCurrentView,setSubTitle:setSubTitle,switchMnml:switchMnml,scrollTop:scrollTop,iPadScrollFix:iPadScrollFix,scrollFixComments:scrollFixComments,scrollFixLinks:scrollFixLinks,addLoader:addLoader,backToMainView:backToMainView,switchDisplay:switchDisplay}}();var URLs={init:"http://www.reddit.com/",end:".json?jsonp=?",limitEnd:".json?limit=30&jsonp=?"};var Channels=function(){var defaults={name:"Media",subs:["movies","television","music","games"]};var template={singleEditItem:"

    {{name}}

    ",single:'
  • {{name}}

    {{#subs}}

    {{.}}

    {{/subs}}
  • ',list:'{{#.}}
  • {{name}}

    {{#subs}}

    {{.}}

    {{/subs}}
  • {{/.}}',formAddNew:'
    Add Channel
    ×
    Add additional subreddit
    ',formEditChannel:'
    Update Channel
    ×
    Add additional subreddit
    '};var list=[],editingNow="";var el={menu:$("#channels")};var getList=function(){return list};var getURL=function getURL(channel){if(channel.subs.length===1){return"r/"+channel.subs[0]+"+"+channel.subs[0]}else{return"r/"+channel.subs.join("+")}};var insert=function insert(channel){list.push(channel);Store.setItem("channels",JSON.stringify(list));Backup.shouldUpdate()};var _delete=function _delete(name){for(var j=0;j'"+channelName+"' "+operation+"d. Cool!

    ");Anim.bounceOut($(".new-form"),Modal.remove)},activeClass:"btn-general-active"});tappable("#btn-add-channel",{onTap:function onTap(){Modal.show(template.formAddNew)},activeClass:"list-button-active"});tappable(".btn-remove-channel",{onTap:function onTap(e,target){remove($(target).data("title"))},activeClass:"button-active"});tappable(".btn-edit-channel",{onTap:function onTap(e,target){edit(target.getAttribute("data-title"))},activeClass:"button-active"})};return{getList:getList,getByName:getByName,getURL:getURL,loadPosts:loadPosts,loadSaved:loadSaved,initListeners:initListeners,template:{formAddNew:template.formAddNew,singleEditItem:template.singleEditItem}}}();var Comments=function(){var loading=false,replies={},currentThread;var setLoading=function setLoading(areLoading){loading=areLoading};var getCurrentThread=function(){return currentThread};var updateHash=function updateHash(id){location.hash="#comments:"+id};var getIdFromHash=function getIdFromHash(){var match=location.hash.match(/(#comments:)((?:[a-zA-Z0-9]*))/);if(match&&match[2]){return match[2]}};var navigateFromHash=function navigateFromHash(){var id=getIdFromHash();show(id);if(is.wideScreen){Posts.markSelected(id)}};var showLoadError=function showLoadError(loader){loading=false;var error="Error loading comments. Refresh to try again.";if(is.wideScreen){loader.addClass("loader-error").html(error+'')}else{loader.addClass("loader-error").text(error)}if(!is.desktop){UI.el.detailWrap.append($("
    "));UI.scrollFixComments()}};var load=function load(data,baseElement,idParent){var now=(new Date).getTime(),converter=new Markdown.Converter,com=$("
    ").addClass("comments-level");for(var i=0;i").addClass("comment-wrap").append($("
    ").append($("
    ").addClass("comment-data").append($("
    ").addClass(isPoster?"comment-poster":"comment-author").append($("

    ").text(c.data.author))).append($("

    ").addClass("comment-info").append($("").attr(commentLink).text(timeSince(now,c.data.created_utc))))).append($("
    ").addClass("comment-body").html(html)));if(c.data.replies&&c.data.replies.data.children[0].kind!=="more"){comment.append($("\n
    "; var loading=false,list={},loaded={},idLast="";var el={moreButton:function moreButton(){return $("#btn-load-more-posts")}};var getList=function(){return list};var getLoaded=function(){return loaded};var setLoading=function setLoading(newLoading){loading=newLoading};var areLoading=function(){return loading};var open=function open(url,id){var link=list[id];if(link.self||is.wideScreen){Comments.updateHash(id)}else{triggerClick(url)}};var load=function load(baseUrl,paging){if(loading){return}loading=true;Comments.setLoading(false);Subreddits.setEditing(false);var main=UI.el.mainWrap;if(paging){el.moreButton().remove();main.append(UI.template.loader)}else{UI.el.mainWrap[0].scrollTop=0;setTimeout(function(){main.prepend(UI.template.loader)},Menu.isShowing()?301:1);paging=""}$.ajax({dataType:"jsonp",url:baseUrl+Sorting.get()+URLs.limitEnd+paging,success:function success(result){show(result,paging)},error:function error(){loading=false;$(".loader").addClass("loader-error").text("Error loading links. Refresh to try again.")}})};var loadFromManualInput=function loadFromManualInput(loadedLinks){show(loadedLinks);UI.el.mainWrap[0].scrollTop=0;Subreddits.setEditing(false)};var render=function render(links,paging){var linksCount=links.children.length,main=UI.el.mainWrap;if(paging){$(".loader").remove()}else{if(is.desktop){main.empty()}else{main.empty().removeClass("anim-reveal").addClass("invisible")}}if(linksCount===0){var message=$(".loader");if(message){message.text("No Links available.");message.addClass("loader-error");main.append('
    ')}else{main.prepend('
    No Links available.
    ')}}else{main.append(Mustache.to_html(template,links));var thumbs=$(".link-thumb > div"),bgImg="background-image: ";for(var i=0;i{{.}}{{/.}}",toEditList:"

    Subreddits

      {{#.}}

      {{.}}

      {{/.}}
    ",toAddList:"{{#children}}

    {{data.display_name}}

    {{data.public_description}}

    {{/children}}",loadMoreSubsButton:"",formInsert:'
    Add Subreddit
    ×
    ',topButtonsForAdding:"
    Insert Manually
    Create Channel
    "};var el={list:$("#subs")};var getList=function(){return list};var isEditing=function(){return editing};var insert=function insert(sub){list.push(sub);Store.setItem("subreeddits",JSON.stringify(list));Backup.shouldUpdate()};var _delete=function _delete(sub){var idx=list.indexOf(sub);list.splice(idx,1);Store.setItem("subreeddits",JSON.stringify(list));Backup.shouldUpdate()};var append=function append(subs,active){if(subs instanceof Array){el.list.append(Mustache.to_html(template.list,subs))}else{el.list.append($("
  • ").attr("data-name",subs).append($("

    ").addClass("sub").addClass(active?"sub-active":"").text(subs)))}};var detach=function detach(sub){var deletedSub=$(".sub-to-remove[data-name='"+sub+"']");deletedSub.addClass("anim-delete");setTimeout(function(){deletedSub.remove()},200);el.list.find(".sub[data-name="+sub+"]").remove()};var setList=function setList(subs){list=subs;Store.setItem("subreeddits",JSON.stringify(list));Backup.shouldUpdate()};var listHasSub=function listHasSub(newSub){if(list){newSub=newSub.toLowerCase();for(var i=list.length;--i;){var sub=list[i];if(sub.toLowerCase()===newSub){return true}}return false}return false};var getAllSubsString=function getAllSubsString(){var allSubs="",frontPage="frontpage",all="all";for(var i=0;i0){htmlChannels=Mustache.to_html("

    Channels

      {{#.}} "+Channels.template.singleEditItem+"{{/.}}
    ",channelsList)}var html='
    '+htmlChannels+htmlSubs+"
    ";setTimeout(function(){UI.el.mainWrap.html(html)},10);Menu.cleanSelected();Posts.setLoading(false)},is.largeScreen?1:301);UI.setSubTitle("Edit Subs");setEditing(true)};var initListeners=function initListeners(){UI.el.body.on("submit","#form-new-sub form",function(e){e.preventDefault();addFromNewForm()});tappable("#btn-add-new-sub",{onTap:addFromNewForm});tappable("#btn-add-another-sub",{onTap:function onTap(){var container=$("#subs-for-channel");container.append("");container[0].scrollTop=container.height()},activeClass:"btn-general-active"});tappable("#btn-sub-man",{onTap:function onTap(){Modal.show(template.formInsert)},activeClass:"list-button-active"});tappable("#btn-more-subs",{onTap:function onTap(e,target){$(target).parent().remove();var main=UI.el.mainWrap;main.append(UI.template.loader);$.ajax({url:URLs.init+"reddits/"+URLs.end+"&after="+idLast,dataType:"jsonp",success:function success(list){var newSubs=Mustache.to_html(template.toAddList,list.data);idLast=list.data.after;$(".loader",main).remove();main.append(newSubs).append(template.loadMoreSubsButton);loadedSubs=loadedSubs+newSubs},error:function error(){$(".loader").addClass("loader-error").text("Error loading more subreddits.")}})}});tappable(".btn-add-sub",{onTap:function onTap(e,target){var parent=$(target).parent(),subTitle=$(".subreddit-title",parent);subTitle.css("color","#2b9900");var newSub=subTitle.text();add(newSub)},activeClass:"button-active"});tappable(".btn-remove-subreddit",{onTap:function onTap(e,target){remove($(target).data("name"))},activeClass:"button-active"})};return{getList:getList,getAllSubsString:getAllSubsString,setEditing:setEditing,isEditing:isEditing,loadPosts:loadPosts,loadForEditing:loadForEditing,loadForAdding:loadForAdding,loadSaved:loadSaved,initListeners:initListeners,template:{formInsert:template.formInsert}}}();UI.initListeners();Posts.initListeners();Comments.initListeners();Subreddits.initListeners();Channels.initListeners();Menu.initListeners();Header.initListeners();Modal.initListeners();SortSwitch.initListeners();Backup.initListeners();Header.el.postTitle.remove();if(is.wideScreen){Footer.el.postTitle.text("")}CurrentSelection.loadSaved();Subreddits.loadSaved();Channels.loadSaved();if(location.hash){Comments.navigateFromHash()}CurrentSelection.execute(function(){var currentSubName=CurrentSelection.getName();Menu.markSelected({name:currentSubName});if(currentSubName.toUpperCase()==="frontPage".toUpperCase()){CurrentSelection.setSubreddit("frontPage");Posts.load(URLs.init+"r/"+Subreddits.getAllSubsString()+"/")}else{Posts.load(URLs.init+"r/"+currentSubName+"/")}UI.setSubTitle(currentSubName)},function(){var channel=Channels.getByName(CurrentSelection.getName());Menu.markSelected({type:"channel",name:channel.name});Channels.loadPosts(channel)});var loadMnml=Store.getItem("mnml"),isMnml=loadMnml?JSON.parse(loadMnml):false;UI.switchMnml(false,isMnml);if(is.mobile){UI.scrollTop();var touch="touchmove";$$.id("edit-subs").addEventListener(touch,function(e){e.preventDefault()},false);document.getElementsByTagName("header")[0].addEventListener(touch,function(e){if(Menu.isShowing()){e.preventDefault()}},false);if(is.iPad){UI.iPadScrollFix()}if(is.iOS7){if(!isMnml){UI.switchMnml(true,true)}document.body.classList.add("ios7")}}})(); \ No newline at end of file