ImagePager = function() {

this.pp_pp;
this.pp_prev;
this.pp_next;
this.pp_images = [];
this.pp_idx = 0;

}


function check_plain(s) {
    return s.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').
	replace(/\'/g, '&#039').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

function pp_or(v) { return v ? v : ''; }

ImagePager.prototype.pp_display_prev = function(evt) {
	this.pp_display(this.pp_idx-1);
}

ImagePager.prototype.pp_display_next = function(evt) {
	this.pp_display(this.pp_idx+1);
}

ImagePager.prototype.pp_display = function(idx) {
    if (idx < 0) {
		idx = 0;
    } else if (idx >= this.pp_images.length) {
		idx = this.pp_images.length-1;
    }

	$$('.image-pager img.image')[0].src = this.pp_images[idx].src;
	$$('.image-pager .pager span')[0].innerHTML = this.pp_images[idx].getAttribute('title');
	$$('.image-pager div.caption')[0].innerHTML = this.pp_images[idx].getAttribute('alt') + ' (' + (idx+1) + ' of ' + this.pp_images.length + ')';


    this.pp_prev.removeClassName('disabled');
    this.pp_next.removeClassName('disabled');
	
    if (idx == 0) {
		this.pp_prev.addClassName('disabled');
    }
    if (idx == this.pp_images.length-1) {
		this.pp_next.addClassName('disabled');
    }

	this.pp_idx = idx;
}

ImagePager.prototype.Create = function() {

    /* if the URL query contains image_pager=off, do nothing */
    var off = /[?&]image_pager=off/;
    if (window.location.search.search(off) != -1) {
		return;
    }
    
	this.pp_pp = $$('.image-pager')[0];
    
	$$('.image-pager .images img').each(function(img) {
		this.pp_images[this.pp_images.length] = $(img);
		Element.hide($(img));
	}.bind(this));
	
    if (this.pp_images.length == 0) {
		return;
    }

    this.pp_prev = $$('.image-pager .pager .prev')[0];
	Event.observe(this.pp_prev, 'click', this.pp_display_prev.bindAsEventListener(this));
	
	this.pp_next = $$('.image-pager .pager .next')[0];
	Event.observe(this.pp_next, 'click', this.pp_display_next.bindAsEventListener(this));

    this.pp_display(this.pp_idx);

    if (this.pp_images.length == 1) {
		Element.hide($$('.image-pager .pager')[0]);
    }
};
		
