isOpera = (window.opera) ? true : false;
isMSIE = (document.all && document.all.item && !isOpera);

var comment_window_url;

function open_comment_window()
{
	if ((top.comment_window == null) || (top.comment_window.closed)){
		top.comment_window = window.open(comment_window_url, "comment_window",
			"width=600,height=500,status=no,resizable=1,scrollbars=1,toolbar=no,menubar=no")
	}
	else
	{
		top.comment_window.focus();
	}
	return false;
}

function load_complete()
{
	st = document.getElementById('loading').style;
	st.display = "none";
	st = document.getElementById('mainfotodiv').style;
	st.display = "block";
}


photo = {
	/*
	Объект для кнопочек под фотографией: рекомендации, избраное, подписаться.
	1. Кнопочка на рекомендацию всегда возвращает 1, но проверка должна быть!
	2. работамем с классами а не стилями, яваскрипт их мендленее обрабатывает и в IE ниже 7 есть глюк со стилями.
	3. Объект req4 глобальный, иначе не как :(, под некоторыми браузерами если кликнуть быстро на две кнопки обработается две но отобразиться что сработала последняя.
	
	*/
	url: new Array(
		'http://' + document.domain + '/gallery/recommend_photo.php?ajax=1&photo_id=',
		'http://' + document.domain + '/gallery/add_selected_photo.php?ajax=1&photo_id=',
		'http://' + document.domain + '/gallery/subscribe.php?from=photo&ajax=1&id=',
		'http://' + document.domain + '/gallery/mark_photo.php?ajax=1&photo_id=',
		'http://' + document.domain + '/change_one_param.php?redirect=__close&key=gallery_color_marks&val='
	),
	

	rec_on: function (photo_id, xxx)
	{
		var rec = ekv('#rec')
			.change({type: 'attribute', name: 'src', value: '/images/gallery/rec1_off.gif'})
			.change({type: 'attribute', name: 'className', value: 'cnormal'});
		
		rec.ajax1( // запускаем аякс:
			{type: 'GET', per: 'rec', url: photo.url[0]+photo_id, process: function() {
					rec.removeEvent('click');
					
					if (ajax['rec'].readyState == 4 && ajax['rec'].status == 200) {
					
						if ( ajax['rec'].responseText == '0' ) {
							// рекомендация пользователю не доступна
							// var rd = ekv('#rec_desc').change({type: 'attribute', name: 'src', value: '/images/gallery/rec1_info_no.gif'}); 
							$(rec).attr({'src': '/images/gallery/rec1.gif', 'class' : 'chead'});
							
							rec.addEvent('click', function(){
								photo.rec_on(photo_id); return false;
							});
							
						} else {
							var node = rec[0].parentNode.childNodes;
							node[ (node.length-1) ].style.visibility = 'visible';
							
							// Переменные
							var rec_user_num = $('.rec_user_num'), 
							rec_pop_user_num = $('.rec_pop_user_num'),
							rec_num = 0;
							
							// Новое число рекомендаций в строке под фото
							rec_num = Number (rec_user_num.html())+1;
							rec_user_num.html(rec_num);
							photo.numEnd (rec_num, '.rec_user_times');

							// Новое число доступных реков
							rec_num = (Number (rec_pop_user_num.html())-1);
							rec_pop_user_num.html(rec_num);
							photo.numEnd (rec_num, '.rec_pop_user_times');

						}
						ajax['rec'] = rec = rd = null;
					}
				}
			}
		);
	},
	
	rec_off: function (photo_id) {
		var rec = ekv('#rec');
		var node = rec[0].parentNode.childNodes; // Отменяем событие
		node[ (node.length-1) ].style.visibility = 'hidden';
		
		rec.ajax1( // запускаем аякс
			{type: 'GET', per: 'rec', url: photo.url[0]+photo_id+'&mode=delete', process: function()
				{
					if (ajax['rec'].readyState == 4 && ajax['rec'].status == 200) 
					{
						if ( ajax['rec'].responseText == '1' ) 
						{
							$(rec).attr({'src': '/images/gallery/rec1.gif', 'class' : 'chead'});
							// Удачная отмена возвращает картинку подсказку на нормальную
							//var rd = ekv('#rec_desc').change({type: 'attribute', name: 'src', value: '/images/gallery/rec1_info.gif'}); 
							
							rec.addEvent('click', function(){ // удачная отмена вешает снова на кнопку событие
								photo.rec_on(photo_id); return false;
							});
							
							// Переменные
							var rec_user_num = $('.rec_user_num'), 
							rec_pop_user_num = $('.rec_pop_user_num'),
							rec_num = 0;
							
							// Новое число рекомендаций в строке под фото
							rec_num = Number (rec_user_num.html())-1;
							rec_user_num.html(rec_num);
							photo.numEnd (rec_num, '.rec_user_times');

							// Новое число доступных реков
							rec_num = Number (rec_pop_user_num.html())+1;
							rec_pop_user_num.html(rec_num);
							photo.numEnd (rec_num, '.rec_pop_user_times');
							
							ajax['rec'] = rec = node = rd = run = rec_num = null;
						}
						else {
							node[ (node.length-1) ].style.visibility = 'visible';
							ajax['rec'] = rec = node = null;
						}
					}
				}
			}
		);
	},
	
	
	
	fav_on: function(photo_id) //className
	{
		var r = ekv('#fav')
			.change({type: 'attribute', name: 'src', value: '/images/gallery/fav1_off.gif'})
			.change({type: 'attribute', name: 'className', value: 'cnormal'});
		
		r.ajax1( // запускаем аякс:
			{type: 'GET', per: 'fav', url: photo.url[1]+photo_id + '&action=insert', process: function()
				{
					r.removeEvent('click'); // Было: r[0].onclick = null
					
					if (ajax['fav'].readyState == 4 && ajax['fav'].status == 200) {
						
						if (ajax['fav'].responseText == '1') {
							var node = r[0].parentNode.childNodes;
							node[ (node.length-1) ].style.visibility = 'visible';
							
							// Переменные
							var fav_user_num = $('.fav_user_num'), 
							rec_num = 0;
							
							// Новое число рекомендаций в строке под фото
							rec_num = Number (fav_user_num.html())+1;
							fav_user_num.html(rec_num);
							photo.numEnd (rec_num, '.fav_user_times');
							
							ajax['fav'] = r = node = null;
						
						} else { // Если результат аякса отрицательный: 
							r.addEvent('click',  function() { // возвращаем событие на кнопку
								photo.fav_on(photo_id); return false;
							});
							$(r).attr({'src': '/images/gallery/fav1.gif', 'class' : 'chead'});
							ajax['fav'] = r = null;
						}
					}
				}
			}
		);
		
	},
	
	fav_off: function(photo_id)
	{
		var r = ekv('#fav');
		var node = r[0].parentNode.childNodes; // Отменяем событие
		node[ (node.length-1) ].style.visibility = 'hidden';
		
		r.ajax1( // запускаем аякс
			{type: 'GET', per: 'fav', url: photo.url[1]+photo_id+'&action=delete', process: function()
				{
					if (ajax['fav'].readyState == 4 && ajax['fav'].status == 200) 
					{	
						if ( ajax['fav'].responseText == '1' ) 
						{
							$(r).attr({'src': '/images/gallery/fav1.gif', 'class' : 'chead'});
							r.addEvent('click',  function() { // удачная отмена вешает на кнопку `избраное` сново событие
									photo.fav_on(photo_id); return false;
								});
								
							// Переменные
							var fav_user_num = $('.fav_user_num'), 
							rec_num = 0;
							
							// Новое число рекомендаций в строке под фото
							rec_num = Number (fav_user_num.html())-1;
							fav_user_num.html(rec_num);
							photo.numEnd (rec_num, '.fav_user_times');
							
							ajax['fav'] = r = null;
						}
						else { // Если результат аякса отрицательный
							node[ (node.length-1) ].style.visibility = 'visible';
							ajax['fav'] = r = node = null;
						}
					}
					
				}
			}
		);
	},
	
	
	
	podpis_on: function (photo_id, autor_id) {
		var r = ekv('#podpis')
			.change({type: 'attribute', name: 'src', value: '/images/gallery/podpis1_off.gif'})
			.change({type: 'attribute', name: 'className', value: 'cnormal'});
		r.ajax1( // запускаем аякс:
			{type: 'GET', per: 'podpis', url: photo.url[2]+photo_id+'&action=yes&author_id='+autor_id, process: function(aaa)
				{
					r.removeEvent('click'); // Было: r[0].onclick = null
					
					if (ajax['podpis'].readyState == 4 && ajax['podpis'].status == 200) {
						
						if ( ajax['podpis'].responseText == 1 ) {
							var node = r[0].parentNode.childNodes;
							node[ (node.length-1) ].style.visibility = 'visible';
							ajax['podpis'] = r = node = null;
						
						} else { // Если результат аякса отрицательный
							r.addEvent('click', function() { // возвращаем событие на кнопку
								photo.podpis_on(photo_id, autor_id); return false;
							}).change({type: 'attribute', name: 'className', value: 'chead'}).change({type: 'attribute', name: 'src', value: '/images/gallery/podpis1.gif'});
							ajax['podpis'] = r = null;
						}
					}
				}
			}
		);
	},
	
	podpis_off: function(photo_id, autor_id)
	{
		var r = ekv('#podpis');
		var node = r[0].parentNode.childNodes; // Отменяем событие
		node[ (node.length-1) ].style.visibility = 'hidden';
		
		r.ajax1( // запускаем аякс
			{type: 'GET', per: 'podpis', url: photo.url[2]+photo_id+'&action=no&author_id='+autor_id, process: function()
				{
					if (ajax['podpis'].readyState == 4 && ajax['podpis'].status == 200) 
					{
						if ( ajax['podpis'].responseText == '1' ) 
						{
							r.change({type: 'attribute', name: 'className', value: 'chead'}).change({type: 'attribute', name: 'src', value: '/images/gallery/podpis1.gif'});
							r[0].onclick = function() { // удачная отмена вешает на кнопку `подписка` сново событие
								photo.podpis_on(photo_id, autor_id); return false;
							};
						}
						else { // Если результат аякса отрицательный
							node[ (node.length-1) ].style.visibility = 'visible';
						}
						ajax['podpis'] = node = r = null;
					}
				}
			}
		);
	},
	
	
	
	mark_on: function(photo_id, mark)
	{
		var m = ekv('.photoMarkPanel').ajax1(
			{type: 'GET', per: 'mark', url: photo.url[3]+photo_id+'&action=insert&mark='+mark, process: function()
				{
					if (ajax['mark'].readyState == 4 && ajax['mark'].status == 200) 
					{
						(function () 
							{
								var content = ajax['mark'].responseText;
								var tags = ['marks_public', 'marks_council'];
								var num = 0;
								
								for( var tag in tags ) //param( tag );
								
								for( var i=0; i<tags.length; i++ ) 
								{
									var reg = new RegExp("<"+tags[i]+">(.*)</"+tags[i]+">", "im");
									res = content.match(reg);
									if ( res != null && res[1].length > 0 ) { ekv('#'+tags[i]).html('[' + res[1] + ']'); num++;}
								}
								
								if ( num > 0) {
									var mrn = ekv('#mark_ready_num').html(mark);
									var mr = ekv('#mark_ready').css({display: ''});
									var mb = ekv('#mark_buttons').css({display: 'none'});
									mrn = mr = mb = null;
								}
								num = tags = content = null;
							}
						)();
						ajax['mark'] = m = null;
					}
				}
			}
		);		
	},
	
	mark_off: function(photo_id)
	{
		var m = ekv('.photoMarkPanel').ajax1(
			{type: 'GET', per: 'mark', url: photo.url[3]+photo_id+'&action=delete', process: function()
				{
					if (ajax['mark'].readyState == 4 && ajax['mark'].status == 200) 
					{
						(function () 
							{
								var content = ajax['mark'].responseText;
								var tags = ['marks_public', 'marks_council'];
								var num = 0;
								
								for( var i=0; i<tags.length; i++ ) 
								{
									var reg = new RegExp("<"+tags[i]+">(.*)</"+tags[i]+">", "im");
									var res = content.match(reg);
									if ( res != null && res[1].length > 0 ) { ekv('#'+tags[i]).html('[' + res[1] + ']'); num++; }
									reg = res = null;
								}
								
								if ( num > 0) {
									var mr = ekv('#mark_ready').css({display: 'none'});
									var mb = ekv('#mark_buttons').css({display: ''});
									mr = mb = null;
								}
								num = tags = content = null;
							}
						)();
						ajax['mark'] = m = null;
					}
				}
			}
		);
	},
	
	mark_panel: function ( type )
	{
		if ( type == 1 ) {
			var smp = ekv("#show_mark_panel").css({display: "none"}); 
			var mp = ekv("#mark_panel").css({display: ""}).ajax1({type: 'GET', url: photo.url[4]+type, process: function(){} }); 
		} 
		else {
			var smp = ekv("#show_mark_panel").css({display: "block"}); 
			var mp = ekv("#mark_panel").css({display: "none"}).ajax1({type: 'GET', url: photo.url[4]+type, process: function(){} }); 
		}
		smp = mp = type = null;
	},
	
	
	
	// Правим окончния по полученому числу, у указаного элемента по типу
	numEnd: function (num, elem, type) {
		var tag = $(elem);
		
		if (tag.length > 0 && num >= 0) {
			
			if (num >= 2 && num <= 4) {
				tag.html('раза');
				
			} else {
				tag.html('раз');
			}
		}
	}

}