var photo = {
	start: 0,
	act: false,
	items_big: [],
	items_pic: [],
	items_id: [],
	overlay: false,
	navStep: 111,
	navPos: 0,
	count: 0,
	cur: true,
	old: false,
	navScroll : 0,
	init: function() {
		this.box = document.getElementById('photo');
		this.big = document.getElementById('photo_big');
		this.close = document.getElementById('photo_close');
		this.prev_div = document.getElementById('photo_prev_div');
		this.next_div = document.getElementById('photo_next_div');
		this.prev_a = document.getElementById('photo_prev_a');
		this.next_a = document.getElementById('photo_next_a');
		this.nav = document.getElementById('photo_nav');
		this.nav_ul = this.nav.getElementsByTagName('ul')[0];
		this.nav_prev = document.getElementById('photo_nav_prev');
		this.nav_next = document.getElementById('photo_nav_next');	
		this.album_prev = document.getElementById('photo_album_prev');	 
		this.album_next = document.getElementById('photo_album_next');	
		this.album_prev_a = this.album_prev.getElementsByTagName('a')[0];
		this.album_next_a = this.album_next.getElementsByTagName('a')[0];
		this.title = document.getElementById('photo_title');	
		this.date = document.getElementById('photo_date');
		if(/MSIE 6/.test(navigator.userAgent)) {
			this.close.src  = 'templates/tpl_site/images/blank.gif';
			this.close.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=templates/tpl_site/images/photo_close.png,sizingMethod=image)';
			this.prev_div.style.background = this.next_div.style.background = 'none';
			this.prev_div.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=templates/tpl_site/images/photo_prev.png,sizingMethod=image)'; 
			this.next_div.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=templates/tpl_site/images/photo_next.png,sizingMethod=image)';
		}
	},
	showBox: function(id, p) {
		this.overlay = showOverlay();
		this.box.style.display = 'block';
		centerAbsolute(this.box);
		this.big.innerHTML = '<img src="templates/tpl_site/images/photo_load.gif" />';
		this.ajax(id, p);
	},
	ajax: function(id, p) {		
		$.post('index.php',{ajax: true,act: 'getPhoto',obj_id: id}, function(data) {
			photo.showContent(data, p);
		});
	},
	
	

	
	
	showContent: function(data, p) {		
		this.items_big.length = this.items_pic.length = this.count = 0;
		this.cur = true;
		var items_arr = data.split(';'), items_pic_tags = '';
		for(var i in items_arr) {
			if(i > 3 && items_arr[i] != '') {
				var inner_arr = items_arr[i].split(':');
				this.items_big[i-4] = inner_arr[0];
				this.items_pic[i-4] = inner_arr[1];
				this.items_id[i-4] = inner_arr[2];
				this.count++;
			}
		}
				
		for(var i in this.items_pic) if(this.items_pic[i] != '') items_pic_tags += '<li><img src="'+this.items_pic[i]+'" id="pPic'+this.items_id[i]+'" width="103" height="65" /></li>';
		this.nav_ul.innerHTML = items_pic_tags;
		this.title.innerHTML = items_arr[0];
		this.date.innerHTML = items_arr[1];				
		this.album_prev_a.href = items_arr[2];
		this.album_next_a.href = items_arr[3];		
		this.nav_ul_li = this.nav_ul.getElementsByTagName('li');		
		
		if(p) photo.showImg($.inArray($('#pPic'+p).parent()[0], $(this.nav_ul_li)));
		else photo.showImg(0);	
		
		
		
		
		this.overlay.onclick = this.close.onclick = photo.hide;	
		this.prev_a.onclick = function() {
			if(photo.cur > 0) {
				photo.cur--;
				photo.showImg(photo.cur);				
			}
			return false;
		};
		this.next_a.onclick = function() {			
			if(photo.cur < photo.count - 1) {
				photo.cur++;
				photo.showImg(photo.cur);				
			}
			return false;
		};
		this.nav_prev.onclick = function() {
			if(photo.navPos < 0)  {
				photo.animateNav('prev', 1);
			}
			return false;
		};
		this.nav_next.onclick = function() {
			if(photo.navStep * photo.count - Math.abs(photo.navPos) > 555) {
				photo.animateNav('next', 1);
			}
			return false;
		}
		this.album_prev_a.onclick = this.album_next_a.onclick = function() {
			if(!photo.act) {
				var href = parseInt(this.toString().match(/\d+$/));
				if(href) photo.ajax(href);
			}
			return false;
		}
		
		for(var i = 0; i < this.nav_ul_li.length; i++) {
			this.nav_ul_li[i].onclick = function() {				
				photo.showImg(inArray(this, photo.nav_ul_li));
			}
		}
		
	},
	showImg: function(num) {		
		if(!this.act) {
			this.act = true;						
			this.big.innerHTML = '<img src="templates/tpl_site/images/photo_load.gif" />';
			if(this.old) {
				this.old.style.padding = '3px';
				this.old.style.border = 'none';
			}		
			this.nav_ul_li[num].style.padding = '0';
			this.nav_ul_li[num].style.border = '3px solid #4aacff';
			this.navScroll = Math.abs(this.navPos) / this.navStep;		
			if(num <= 2 && this.navScroll > 0) {			
				photo.animateNav('prev', this.navScroll);
			}
			else if(num >= this.nav_ul_li.length - 3 && this.navScroll < this.nav_ul_li.length - 5) {			
				photo.animateNav('next', this.nav_ul_li.length - 5 - this.navScroll);
			}
			else {
				if(num > this.navScroll + 2 && num < this.nav_ul_li.length - 3) {
					photo.animateNav('next', num - (this.navScroll + 2));
				}
				else if(num < this.navScroll + 2 && num > 2) {
					photo.animateNav('prev', (this.navScroll + 2) - num);
				}
			}
			this.old = this.nav_ul_li[num];
			this.cur = num;
			
			var hide = document.createElement("div"), s = hide.style;
			s.position = "absolute"; s.top = s.left = 0; s.height = '1px'; s.width = '1px'; s.visibility = "hidden";
			document.body.appendChild(hide);	
			hide.innerHTML += '<img src="'+photo.items_big[num]+'" class="photo_big" />';	
			var img = hide.getElementsByTagName('img')[0], nov;
			this.start = new Date().getTime();
			(function() {
				if(img.complete == true) {
					document.body.removeChild(hide);
					photo.big.innerHTML = '';
					photo.big.appendChild(img);
					var from = 0; 
					var to = 100; 
					var duration = 300;
					var start = new Date().getTime(); // Время старта							
					(function() {
						var now = (new Date().getTime()) - start;
						var progress = now / duration;		
						var result = (to - from) * Math.pow(progress, 2) + from;		
						img.style.opacity = result/100;
						img.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity='+result+')';		
						if (progress < 1) setTimeout(arguments.callee, 10);
					})();										
					photo.act = false;
				}
				else {	
					
					nov = new Date().getTime();					
					if(nov - photo.start < 10000) setTimeout(arguments.callee, 100);
					else {
						//alert('Отсутствует изображение');
					}
				}			
			})();
		}
	},	
	animateNav: function(dir, step) {		
		if(dir == 'next') photo.navPos -= photo.navStep * step;
		else if(dir == 'prev') photo.navPos += photo.navStep * step;
		$(photo.nav_ul).animate({marginLeft: photo.navPos+'px'});
	},
	hide: function() {
		document.body.removeChild(photo.overlay);
		photo.box.style.display = 'none';
	}
};




