var photoExt = {

	data: null,
	current: 0,

	open: function(obj, current)
	{
		var iframe = this.$('photo_ext');
		var bg = this.$('photo_ext_bg');



		if (typeof bg != 'undefined')
		{
			var wrapper = document.createElement('DIV');
			wrapper.id = 'wrap_photo_ext_bg';
			wrapper.innerHTML = '<div id="photo_ext_bg" onclick="photoExt.close(this)"></div>';
			document.body.appendChild(wrapper);
			var bg = this.$('photo_ext_bg');
		}

		if (typeof iframe != 'undefined')
		{
			var wrapper = document.createElement('DIV');
			wrapper.id = 'wrap_photo_ext';
			wrapper.innerHTML = '<iframe src="" id="photo_ext" scrolling="no" frameborder="0"></ifeame>';
			document.body.appendChild(wrapper);
			var iframe = this.$('photo_ext');
		}

		iframe.src = obj.href;
		iframe.style.top     = (eval(document.documentElement.scrollTop) + 40) + 'px';
		bg.style.display     = 'block';

		iframe._current = current || 0;

		return false;
	},

	//--------------------------------------------------------------------------------

	close: function()
	{
		$(parent.document.body).css({'padding-right':'', width:''});

		var ob = this.$('wrap_photo_ext_bg', true);
		ob.parentNode.removeChild(ob);
		var ob = this.$('wrap_photo_ext',    true);
		ob.parentNode.removeChild(ob);
		
		this.data    = null;
		this.current = 0;

		return false;
	},

	//--------------------------------------------------------------------------------

	init: function(data)
	{
		this.current = parseInt(this.$('photo_ext', true)._current);
		this.data    = data || [];
		if (this.$('colvo')) this.$('colvo').innerHTML = this.data.length;
		this.body_w = parent.document.body.offsetWidth;
	},

	//--------------------------------------------------------------------------------

	first: function() {return this.img(0)},
	last:  function() {return this.img(this.data.length - 1)},
	next:  function() {return this.img(this.current == this.data.length - 1 ? 0 : this.current + 1)},
	prev:  function() {return this.img(this.current == 0 ?  this.data.length - 1 : this.current - 1)},

	//--------------------------------------------------------------------------------
	
	custom: function(opt)
	{
		opt.width  = opt.width  || 300;
		opt.height = opt.height || 200;
		
		this.resize(opt.width, opt.height, 0);
	},
	
	//--------------------------------------------------------------------------
	
	img: function(index)
	{
		if (isNaN(index)) index = this.current;
		if ( ! this.data[index]) return;

		this.current = index;


		this.$('num').innerHTML  = this.current + 1;

		if (this.data[index].flash == true)
		{
			var html = "<object type='application/x-shockwave-flash' data='"
				+ this.data[index].i
				+ "' width='" + this.data[index].w
				+ "' height='" + this.data[index].h
				+ "'><param name='movie' value='" + this.data[index].i
				+ "' /><param name='quality' value='high' /></object>";
		}
		else
		{
			var html = '<img id="prew-photo" src="' + this.data[index].i + '">';
		}
		this.$('prew-photo-swf').innerHTML = html;

		t = this.data[index].t;
		this.$('prew-text-box').style.display = t ? 'block' : 'none';
		this.$('prew-text').innerHTML = t;

		this.resize(this.data[index].w, this.data[index].h, (t?30:0));

		return false;
	},

	//--------------------------------------------------------------------------------

	resize: function(w, h, k)
	{

		w += 40;
		h += 100 + k;
		var topOffset = (parent.pageYOffset ? parent.pageYOffset : parent.document.documentElement.scrollTop);
		var body   = parent.document.body;
		var l = this.body_w < w ? - Math.abs(Math.ceil(this.body_w/2)) : - Math.abs(Math.ceil(w/2));
		var ext_w = w - this.body_w;
		var t = topOffset + 20;
		
		if (ext_w > 0)
		{
			$(body).css({'padding-right':ext_w, width:'100%'});
			l = parseInt(l - ext_w/2);
			$(this.$('photo_ext_bg', true)).css({width:w});
		}
		else
		{
			$(body).css({'padding-right':0, width:'100%'});
		}
		
		var windowHeight = parent.innerHeight ? parent.innerHeight : parent.document.documentElement.clientHeight ? parent.document.documentElement.clientHeight : parent.document.body.clientHeight;
		
		if (windowHeight > h)
		{
			//t += (windowHeight - h)/2;
		}
		
		
		$(this.$('photo_ext', true)).animate({
			width:      w,
			height:     h,
			top:        t,
			marginLeft: l
		}, 300);
		
		parent.$('html,body').animate({scrollLeft: ext_w/2}, 0);

	},

	//--------------------------------------------------------------------------

	$: function(id, prnt)
	{
		prnt = prnt ? parent.document : document;
		return prnt.getElementById(id)
	}
	
	//--------------------------------------------------------------------------
}