Project = function(){
    if (window.console == undefined) { window.console = {log:function(){}}; }

    var _images;
    var _show;
    var _button;
    var _counter;
    var _current;
    var _clicked;

    var _getImages = function(selector){
	selector = $(selector);
        _toggle = false;
        _images = selector.children();
	if(_images.length>1){
		selector.append("<a href='#' title='Click here to view next image'></a>");
		_button = $("a",selector);
		_button.click(_clickNext);
		_images.each(_eachImage);
	}
    };

    var _makeHistory = function(){
	_clicked = true;	
    	$.historyInit(_showNext);
    };

    var _makeCounter = function(selector){
	selector = $(selector);

	if(_images.length>1)
		selector.prepend("<p id='counter'><a href='#"+_getImageURL(_images[1].src)+"' title='Click here to view next image'>Images <span id='current'>1</span>/"+_images.length+"</a></p>");
	else
		selector.prepend("<p id='counter'>Images 1/1</p>");

	_counter = $("p#counter a",selector);
	_counter.click(_clickNext);
	_current = $("span#current",selector);
    };

    var _eachImage = function(){
	_button.append(this);
	$(this).hide();
    }

    var _clickNext = function(){
	var hash = this.href;
	hash = hash.replace(/^.*#/, '');
	_clicked = true;
	$.historyLoad(hash);
	return false;
    };
	
    var _getImageURL = function(path){
	return path.replace(/^http.*upload\//,"");
    };

    var _showNext = function(hash){
	if(_clicked){
	    if(_show!=null)
	    	$(_images[_show]).hide(); 
	    _show = _findPos(hash);
	    var next = _show>=_images.length-1?0:_show+1;
	    var path = _getImageURL(_images[next].src);
	    _button.attr("href","#"+path);
	    _counter.attr("href","#"+path);
	    _current.text(_show+1);
	    $(_images[_show]).show();
	    _clicked = false;
	}
	return false;
    };

    var _findPos = function(str){
	if(str=="")
	   return 0;
	var l = _images.length;
	while(l-- > 0){
	    if(_images[l].src.indexOf(str)>-1)
		return l;
	}
	return 0;
    };

    return {
        getImages: _getImages,
	makeCounter: _makeCounter,
	makeHistory: _makeHistory
    };
}();

$(document).ready(init);

function init(){
    Project.getImages('div#images');
    Project.makeCounter('div#text');
    Project.makeHistory();
}
