var PG = function (args){
	this.options = {
		images: [],
		preview_img: null,
		list: null,
		back: null,
		forth: null,
		small_imgs_shift: 45,
		small_imgs_id_rand: Math.floor(Math.random() * (2147483647 - 0 + 1)) + 0
	};

	for (i in args){
		this.options[i] = args[i];
	}

	this.options.preview_img = document.getElementById(this.options.preview_img);
	this.options.list = document.getElementById(this.options.list);
	this.options.back = document.getElementById(this.options.back);
	this.options.forth = document.getElementById(this.options.forth);

	if (this.options.images.length > 0) this.initialize();
};

PG.prototype = {

	options: {},

    initialize: function(){
		//this.options.back.style.cursor = this.options.forth.style.cursor = 'pointer';

		//this.options.back.observe('click', (function(event) { event.stop(); this.toLeft(); }).bind(this));
		//this.options.forth.observe('click', (function(event) { event.stop(); this.toRight(); }).bind(this));

		this.addHandler(this.options.back, 'click', (function() { this.toLeft(); }).bind(this));
		this.addHandler(this.options.forth, 'click', (function() { this.toRight(); }).bind(this));

		this.showListImages();

		this.showSmallImg('' + this.options.small_imgs_id_rand + '_bp_img_small_' + 0);
	},

	showListImages: function(){
		var list_obj = this.options.list;

		list_obj.style.position = 'relative';
		list_obj.style.overflow = 'hidden';
		list_obj.style.textAlign = 'center';
		list_obj.style.whiteSpace = 'nowrap';

		var tbl = document.createElement('TABLE');
		tbl.style.marginLeft = '0px';
		tbl.style.position = 'absolute';
		tbl.style.top = '0';
		tbl.style.left = '0';
		tbl.cellpadding = '0';
		tbl.cellspacing = '0';

		var tr = tbl.insertRow(0);

		for (var i = 0, l = this.options.images.length; i < l; i++){
			var imgs = this.options.images[i];

			var td = tr.insertCell(i);
			td.style.width = 'auto';
			td.style.height = 'auto';
			td.style.padding = '0';
				var a = document.createElement('A');
				a.href = imgs.img_big;
				a.target = '_blank';
				this.addHandler(a, 'click', (function(event) { event = new Event(event); event.stop(); this.showSmallImg(event.target.id); return false; }).bind(this));
					var img = document.createElement('IMG');
					img.src = imgs.img_small;
					img.alt = 'Изображение'
					img.width = '47';
					img.height = '47';
					img.id = '' + this.options.small_imgs_id_rand + '_bp_img_small_' + i;
				a.appendChild(img);
			td.appendChild(a);

				var a = document.createElement('A');
				a.href = imgs.img_big;
				a.target = '_blank';
				a.id = '' + this.options.small_imgs_id_rand + '_bp_img_' + i;
				a.rel = 'lightbox-roadtrip' + this.options.small_imgs_id_rand + '';
				a.style.display = 'none';
					var img = document.createElement('IMG');
					img.src = imgs.img;
					img.alt = 'Изображение'
				a.appendChild(img);
			this.options.preview_img.appendChild(a);
		}

		list_obj.appendChild(tbl);

		if (tbl.offsetWidth > list_obj.offsetWidth){
			this.options.forth.getElementsByTagName('IMG')[0].src = '/images/forth_active.gif';
		}
	},

	toLeft: function(){
		var list_obj = this.options.list;
		var tbl = list_obj.getElementsByTagName('TABLE')[0];

		var tbl_margin = parseInt(tbl.style.marginLeft);

		if ((-1 * tbl_margin) <= 0){
			this.options.back.getElementsByTagName('IMG')[0].src = '/images/back.gif';

			return false;
		} else {
			this.options.forth.getElementsByTagName('IMG')[0].src = '/images/forth_active.gif';
		}

		tbl.style.marginLeft = (tbl_margin + this.options.small_imgs_shift) + 'px';

		tbl_margin = parseInt(tbl.style.marginLeft);
		if ((-1 * tbl_margin) <= 0){
			this.options.back.getElementsByTagName('IMG')[0].src = '/images/back.gif';
		}
	},

	toRight: function(){
		var list_obj = this.options.list;
		var tbl = list_obj.getElementsByTagName('TABLE')[0];

		var tbl_margin = parseInt(tbl.style.marginLeft);

		if ((-1 * tbl_margin) >= (tbl.offsetWidth - list_obj.offsetWidth)){
			this.options.forth.getElementsByTagName('IMG')[0].src = '/images/forth.gif';

			return false;
		} else {
			this.options.back.getElementsByTagName('IMG')[0].src = '/images/back_active.gif';
		}

		tbl.style.marginLeft = (tbl_margin - this.options.small_imgs_shift) + 'px';

		tbl_margin = parseInt(tbl.style.marginLeft);
		if ((-1 * tbl_margin) >= (tbl.offsetWidth - list_obj.offsetWidth)){
			this.options.forth.getElementsByTagName('IMG')[0].src = '/images/forth.gif';
		}
	},

	showSmallImg: function(obg_id){
		obg_id = obg_id.replace('' + this.options.small_imgs_id_rand + '_bp_img_small_', '');

		if (this.options.images[obg_id]){
			for (var i = 0, l = this.options.images.length; i < l; i++){
				document.getElementById('' + this.options.small_imgs_id_rand + '_bp_img_' + i).style.display = 'none';
			}

			var a = document.getElementById('' + this.options.small_imgs_id_rand + '_bp_img_' + obg_id);
			a.style.display = '';

			/*this.options.preview_img.innerHTML = '';
			var a = document.createElement('A');
				a.href = this.options.images[obg_id].img_big;
				a.target = '_blank';
					var img = document.createElement('IMG');
					img.src = this.options.images[obg_id].img;
					img.alt = 'Изображение'
				a.appendChild(img);
			this.options.preview_img.appendChild(a);*/
		}
	},

	addHandler: function(element, event, handler){
		if (element.attachEvent){
			element.attachEvent('on' + event, handler);
		} else if (element.addEventListener){
			element.addEventListener(event, handler, false);
		}
	}

}
