fjb = {

    // Properties to change
    pics: 8,
    nextLabel: 'next &raquo;',
    prevLabel: '&laquo; prev',
    linkID: 'flickrlink',
    largePicID: 'flickrshot',
    navClass: 'nav',
    loadingMessage: 'Loading images...',
    fullImageLink: 'Full image on flickr &raquo;',

    // end properties, here be dragons
    ls: null,
    current: 1,
    init: function() {
        fjb.srcLink = document.getElementById(fjb.linkID);
        if (!fjb.srcLink) {
            return;
        }
        fjb.srcLink.innerHTML = fjb.loadingMessage;
		//http://www.flickr.com/photos/89649070@N00/sets/72157604428533794/
		var spliturl = fjb.srcLink.href.split('/');		
		var url = 'http://api.flickr.com/services/feeds/photoset.gne?set='+spliturl[6]+'&nsid='+spliturl[4]+'&lang=en-us&format=json';
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
        document.getElementsByTagName("head")[0].appendChild(script);
    },
    compute: function(obj) {
        fjb.stream = document.createElement('ul');
        fjb.stream.id = fjb.linkID;
        var output = '',
        temp = '';
        for (i in obj.items) {
            temp = obj.items[i].media.m;
            temp = temp.replace(/_m.jpg/g, '_s.jpg');
            output += '<li><a href="' + obj.items[i].link + '" title="' + obj.items[i].title + '" onclick="fjb.show(this);return false"><img src="' + temp + '" alt="' + obj.items[i].title + '" /></a></li>';
        }
        var rep = fjb.srcLink.parentNode.nodeName.toLowerCase() === 'p' ? fjb.srcLink.parentNode: fjb.srcLink;
        rep.parentNode.replaceChild(fjb.stream, rep);
        fjb.stream.innerHTML = output;
        var prevlink = '<li class="' + fjb.navClass + '"><a href="#" onclick="fjb.navigate(-1);return false">' + fjb.prevLabel + '</a></li>';
  //      fjb.stream.innerHTML = prevlink + fjb.stream.innerHTML;
        var nextlink = '<li class="' + fjb.navClass + '"><a href="#" onclick="fjb.navigate(1);return false">' + fjb.nextLabel + '</a></li>';
   //     fjb.all = obj.items.length;
		fjb.stream.innerHTML += prevlink;
        fjb.stream.innerHTML += nextlink;
		fjb.all = obj.items.length;
        for (var i = 0; i <= fjb.all ; i++) {
            fjb.stream.getElementsByTagName('li')[i].style.display = 'none';
        }
        fjb.navigate(0);
    },
    navigate: function(offset) {
        for (var i = 0; i <= fjb.all; i++) {
            fjb.stream.getElementsByTagName('li')[i].style.display = 'none';
        }
        var change = fjb.pics * offset;
        fjb.current += change;
        for (var i = fjb.current-1; i < fjb.current + fjb.pics; i++) {
            if (fjb.stream.getElementsByTagName('li')[i]) {
                fjb.stream.getElementsByTagName('li')[i].style.display = 'block';
            }
        }
        var fl = fjb.stream.getElementsByTagName('a')[fjb.all ];
        fl.style.display = fjb.current == 1 ? 'none': 'block';
        var ll = fjb.stream.getElementsByTagName('a')[fjb.all +1];
        ll.style.display = fjb.current > fjb.all - fjb.pics ? 'none': 'block';
    },
    show: function(o) {
        if (fjb.ls === null) {
            fjb.ls = document.createElement('div');
            document.body.appendChild(fjb.ls);
            fjb.ls.id = fjb.largePicID;
            fjb.ls.style.position = 'absolute';
        }
        var prev = '<p><a href="' + o.href + '">' + fjb.fullImageLink + '</a></p>';
        fjb.ls.innerHTML = '<a href="#" onclick="this.parentNode.style.display=\'none\';this.parentNode.parent.focus();return false" class="fjbcloser">X</a><h4>' + o.title + '</h4><a href="#" onclick="this.parentNode.style.display=\'none\';this.parentNode.parent.focus();return false">' + o.innerHTML.replace(/_s.jpg/, '.jpg') + '</a>' + prev;
        fjb.ls.style.display = 'block';
        var y = 0;
        if (self.pageYOffset) {
            y = self.pageYOffset;
        } else if (document.documentElement && document.documentElement.scrollTop) {
            y = document.documentElement.scrollTop;
        } else if (document.body) {
            y = document.body.scrollTop;
        }
        fjb.ls.style.top = y + 'px';
        fjb.ls.parent = o;
        fjb.ls.getElementsByTagName('a')[0].focus();
    },
    addLoadEvent: function(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = func;
        } else {
            window.onload = function() {
                if (oldonload) {
                    oldonload();
                }
                func();
            }
        }
    }
};
function jsonFlickrFeed(obj) {
    fjb.compute(obj);
}
fjb.addLoadEvent(fjb.init);
