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);
}