var curWidth = 0; var curPos = 0; var drag = false; var what; var when; var firstItem; var item; var itemElement; var itemElements; 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(itemElement, 'selected'); y = itemElement.y ? itemElement.y : itemElement.offsetTop; window.scrollTo(0, y); n = itemElements.length; i = itemElements.indexOf(itemElement); if(i == -1) { // in case page was partially loaded when itemElements was initialized itemElements = $$('.item'); i = itemElements.indexOf(itemElement); } i++; document.title = "Feed on Feeds - " + i + " of " + n; } function unselect(item) { Element.removeClassName(item, 'selected'); } function keyboard(e) { if (!e) e = window.event; 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'); 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) { nextElement = itemElement.nextSibling; scrollHeight = document.body.scrollTop ? document.body.scrollTop : pageYOffset; if (nextElement.offsetParent) { y = nextElement.offsetTop while (nextElement = nextElement.offsetParent) { y += nextElement.offsetTop } } if( typeof( window.innerHeight ) == 'number' ) { //Non-IE windowHeight = window.innerHeight; } else if( document.documentElement && document.documentElement.clientHeight ) { //IE 6+ in 'standards compliant mode' windowHeight = document.documentElement.clientHeight; } else if( document.body && document.body.clientHeight ) { //IE 4 compatible windowHeight = document.body.clientHeight; } 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) { itemElement = next; } 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 == "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'; if(isIE) { tables = $$('#sidebar table'); for(i=0;iUpdate complete!'); refreshlist(); } } function continueadd() { if(feed = feedi()) { f = feed(); new Insertion.Bottom($('items'), 'Adding ' + f['url'] + "... "); $('items').childElements().last().scrollTo(); new Ajax.Updater('items', 'add-single.php', { method: 'get', parameters: 'url=' + encodeURIComponent(f['url']), insertion: Insertion.Bottom, onComplete: continueadd }); } else { new Insertion.Bottom($('items'), '
Done!'); refreshlist(); } } function ajaxupdate() { throb(); feedi = iterate(feedslist); continueupdate(); } function ajaxadd() { throb(); feedi = iterate(feedslist); continueadd(); }