var curWidth = 0; var curPos = 0; var drag = false; var what; var when; var firstItem; var item; var itemElement; var itemElements; // magic from http://peter.michaux.ca/article/3556 var getScrollY = function() { if (typeof window.pageYOffset == 'number') { getScrollY = function() { return window.pageYOffset; }; } else if ((typeof document.compatMode == 'string') && (document.compatMode.indexOf('CSS') >= 0) && (document.documentElement) && (typeof document.documentElement.scrollTop == 'number')) { getScrollY = function() { return document.documentElement.scrollTop; }; } else if ((document.body) && (typeof document.body.scrollTop == 'number')) { getScrollY = function() { return document.body.scrollTop; } } else { getScrollY = function() { return NaN; }; } return getScrollY(); } var getY = function(e) { var y = NaN; if (e.offsetParent) { y = e.offsetTop while (e = e.offsetParent) { y += e.offsetTop } } return y; } function getWindowHeight() { if( typeof( window.innerHeight ) == 'number' ) { //Non-IE return window.innerHeight; } else if( document.documentElement && document.documentElement.clientHeight ) { //IE 6+ in 'standards compliant mode' return document.documentElement.clientHeight; } else if( document.body && document.body.clientHeight ) { //IE 4 compatible return document.body.clientHeight; } return NaN; } function embed_odeo(link) { document.writeln(''); } function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) { if (placeholder != '') { document.writeln(''); } else { document.writeln(''); } } function embed_flash(bgcolor, width, height, link, loop, type) { document.writeln(''); } function embed_flv(width, height, link, placeholder, loop, player) { document.writeln(''); } function embed_wmedia(width, height, link) { document.writeln(''); } function itemClicked(event) { if(!event) event = window.event; target = window.event ? window.event.srcElement : event.target; if(event.altKey) { Event.stop(event); unselect(itemElement); while(target.parentNode) { if(Element.hasClassName(target, "item")) { break; } target = target.parentNode; } if(itemElement == target) { itemElement = null; return false; } Element.addClassName(target, 'selected'); itemElement = target; i = itemElements.indexOf(target); if(i == -1) { // in case page was partially loaded when itemElements was initialized itemElements = $$('.item'); i = itemElements.indexOf(target); } n = itemElements.length; i++; document.title = "Feed on Feeds - " + i + " of " + n; return false; } return true; } function checkbox(event) { if(!event) event = window.event; target = window.event ? window.event.srcElement : event.target; if(!event.shiftKey) return true; flag_upto(target.id); return true; } function select(item) { Element.addClassName(item, 'selected'); y = getY(item); bar = $('item-display-controls').getHeight(); window.scrollTo(0, y - (bar + 10)); i = itemElements.indexOf(item); if(i == -1) { // in case page was partially loaded when itemElements was initialized itemElements = $$('.item'); i = itemElements.indexOf(item); } n = itemElements.length; i++; document.title = "Feed on Feeds - " + i + " of " + n; } function unselect(item) { Element.removeClassName(item, 'selected'); document.title = "Feed on Feeds"; } function show_enclosure(e) { if (!e) e = window.event; target = window.event ? window.event.srcElement : e.target; Element.extend(target); div = target.nextSiblings().first(); Element.show(div); Element.hide(target); return false; } function keyboard(e) { if (!e) e = window.event; target = window.event ? window.event.srcElement : e.target; if(target != null && target.type != null && (target.type == "textarea" || target.type=="text" || target.type=="password")) { return true; } if (e.keyCode) keycode=e.keyCode; else keycode=e.which; if(e.ctrlKey || e.altKey || e.metaKey) return true; key = String.fromCharCode(keycode); if(!itemElements) itemElements = $$('.item'); windowHeight = getWindowHeight(); if(key == "H") { itemElements.each( function(i) { Element.toggleClassName(i, "shown"); Element.toggleClassName(i, "hidden"); } ); if(itemElement) select(itemElement); return false; } if(key == "h") { if(itemElement) { Element.toggleClassName(itemElement, "shown"); Element.toggleClassName(itemElement, "hidden"); select(itemElement); return false; } } if(key == "s") { if(itemElement) { toggle_favorite(itemElement.id.substring(1)); select(itemElement); return false; } } if(key == "f") { if(itemElement) { checkbox = ($('c' + itemElement.id.substring(1))); checkbox.checked = true; return false; } } if(key == "F") { itemElements.each( function(i) { if(itemElement) { if(itemElements.indexOf(i) > itemElements.indexOf(itemElement)) return; } checkbox = ($('c' + i.id.substring(1))); checkbox.checked = true; } ); return false; } if(key == "U") { itemElements.each( function(i) { checkbox = ($('c' + i.id.substring(1))); checkbox.checked = false; } ); return false; } if(key == "j") { if(itemElement) { // is the next element visible yet? scroll if not. if(itemElement.nextSibling.id && itemElement.nextSibling.id != "end-of-items") { nextElement = itemElement.nextSibling; scrollHeight = getScrollY(); y = getY(nextElement); if(y > scrollHeight + windowHeight) { window.scrollTo(0, scrollHeight + (.8 * windowHeight)); return false; } } unselect(itemElement); checkbox = ($('c' + itemElement.id.substring(1))); checkbox.checked = true; next = itemElement.nextSibling; if(next.id && next.id != "end-of-items") { itemElement = next; } else { scrollHeight = getScrollY(); e = $('end-of-items'); if (e.offsetParent) { y = e.offsetTop while (e = e.offsetParent) { y += e.offsetTop } } if(y - 10 > scrollHeight + windowHeight) { window.scrollTo(0, scrollHeight + (.8 * windowHeight)); return false; } else { if(confirm("No more items! Mark flagged as read?")) { mark_read(); } else { item = firstItem; itemElement = $(item); select(itemElement); return false; } } } item = itemElement.id; itemElement = $(item); select(itemElement); return false; } else { item = firstItem; itemElement = $(item); itemElements = $$('.item'); select(itemElement); return false; } } if(key == "J") { if(itemElement) { unselect(itemElement); checkbox = ($('c' + itemElement.id.substring(1))); checkbox.checked = true; next = itemElement.nextSibling; if(next.id) { itemElement = next; } else { if(confirm("No more items! Mark flagged as read?")) { mark_read(); } else { item = firstItem; itemElement = $(item); } } item = itemElement.id; itemElement = $(item); select(itemElement); return false; } else { item = firstItem; itemElement = $(item); itemElements = $$('.item'); select(itemElement); return false; } } if(key == "n") { if(itemElement) { unselect(itemElement); next = itemElement.nextSibling; if(next.id) { itemElement = next; } else { item = firstItem; itemElement = $(item); } item = itemElement.id; itemElement = $(item); select(itemElement); return false; } else { item = firstItem; itemElement = $(item); itemElements = $$('.item'); select(itemElement); return false; } } if(key == "N") { if(itemElement) unselect(itemElement); item = itemElements.last().id; itemElement = $(item); select(itemElement); return false; } if(key == "P") { if(itemElement) unselect(itemElement); item = firstItem; itemElement = $(item); itemElements = $$('.item'); select(itemElement); return false; } if(key == "p") { if(itemElement) { unselect(itemElement); next = itemElement.previousSibling; if(next.id) { itemElement = next; } else { item = itemElements.last().id; itemElement = $(item); } item = itemElement.id; itemElement = $(item); select(itemElement); return false; } else { itemElements = $$('.item'); item = itemElements.last().id; itemElement = $(item); select(itemElement); return false; } } return true; } function startResize(e) { if (!e) e = window.event; Event.stop(e); drag = true; curPos=e.clientX; curWidth=$('sidebar').offsetWidth; return false; } function dragResize(e) { if (!e) e = window.event; if(drag) { Event.stop(e); newPos=e.clientX; var x=newPos-curPos; var w=curWidth+x; newWidth=(w<5?5:w); $('handle').style.left=newWidth+'px'; return false; } } function completeDrag(e) { if (!e) e = window.event; if(drag) { Event.stop(e); drag = false; newPos=e.clientX; var x=newPos-curPos; var w=curWidth+x; newWidth=(w<5?5:w); $('sidebar').style.width=newWidth+'px'; $('handle').style.left=newWidth+'px'; $('items').style.marginLeft=(newWidth+20)+'px'; $('item-display-controls').style.left=(newWidth+10)+'px'; if(isIE) { tables = $$('#sidebar table'); for(i=0;iUpdate complete!'); refreshlist(); } } function continueadd() { var feed, f, m, dispUrl; if (feed = feedi()) { f = feed(); dispUrl = f['url'].replace(/^([a-z]+:\/\/[^\/]+:)([^\/]+)(@.*)$/, '$1******$3'); new Insertion.Bottom($('items'), 'Adding ' + dispUrl + "... "); $('items').childElements().last().scrollTo(); var parameters = 'url=' + encodeURIComponent(f['url']); parameters += "&unread=" + document.addform.unread.value; parameters += "&tags=" + document.addform.new_tags.value; new Ajax.Updater('items', 'add-single.php', { method: 'get', parameters: parameters, insertion: Insertion.Bottom, onComplete: continueadd, evalScripts: true, }); } else { new Insertion.Bottom($('items'), '
Done!'); refreshlist(); } } function ajaxupdate() { throb(); feedi = iterate(feedslist); continueupdate(); } function ajaxadd() { throb(); feedi = iterate(feedslist); continueadd(); } function show_filter(id) { var sp1 = document.getElementById('fspan'+id); if (sp1) sp1.style.display = ''; var sp2 = document.getElementById('ftspan'+id); if (sp2) sp2.style.display = 'none'; var a = document.getElementById('fa'+id); }