function hideObject(obj) {
	theStyle = ( obj.style ? obj.style : obj );
	if(theStyle.visibility != undefined){theStyle.visibility = "hidden"}
	if(theStyle.display != undefined){theStyle.display = "none"}
}

/*start smiles*/
var Icons = {
	animated: {
		title: "Анимированные",
		prefix: "Анимированные",
		icons: [
			['Ангелочек', 'anim_angel'],
			['Аплодисменты', 'anim_appl'],
			['Красотка', 'anim_beauty'],
			['Пиво', 'anim_beer'],
			['Читаю', 'anim_book'],
			['Мёрзну', 'anim_could'],
			['Рыдаю', 'anim_cry'],
			['Танцую', 'anim_dance'],
			['Чертовски злюсь', 'anim_devil'],
			['Жую', 'anim_eat'],
			['Побью', 'anim_fight'],
			['Побили', 'anim_fingal'],
			['Дарю цветочек', 'anim_flowr'],
			['Смеюсь', 'anim_gg'],
			['Смеюсь и плачу', 'anim_gg2'],
			['Подарок', 'anim_gift'],
			['Ворчу', 'anim_hungry'],
			['Целую', 'anim_kiss'],
			['Люблю', 'anim_love'],
			['Застрелю', 'anim_pistolet'],
			['Выпей яду', 'anim_poison'],
			['Лучезарно', 'anim_rainbow'],
			['Смущаюсь', 'anim_red'],
			['Расстраиваюсь', 'anim_sad'],
			['Пою', 'anim_sing'],
			['Скучаю', 'anim_skuka'],
			['Засыпаю', 'anim_sleep'],
			['Улыбаюсь', 'anim_smile'],
			['Показываю язык', 'anim_tongue'],
			['Peace!', 'anim_victory'],
			['Удивляюсь', 'anim_wonder'],
			['Тошнит', 'anim_blew']
		]
	},
	gesture: {
		title: 'Жесты',
		prefix: '',
		icons: [
			['cool', 'btn_live'],
			['viva', 'btn_victory'],
			['ok', 'btn_ok'],
			['yol', 'btn_koza_left'],
			['yor', 'btn_koza_right'],
			['suxx', 'btn_die'],
			['think', 'btn_fingerup'],
			['figu', 'btn_kukes'],
			['kulak', 'btn_fist'],
			['fuck', 'btn_fuck']
		]
	},
	kolobki: {
		title: 'Колобки',
		prefix: 'Колобки',
		icons: [
			['Улыбаюсь', 'kol_smile'],
			['В печали', 'kol_sad'],
			['Подмигиваю', 'kol_wink'],
			['Дразнюсь', 'kol_blum'],
			['Ок!', 'kol_good'],
			['Смущаюсь', 'kol_blush'],
			['Ангелочек', 'kol_angel'],
			['Рыдаю', 'kol_cray'],
			['Чертовски злюсь', 'kol_diablo'],
			['Слушаю музыку', 'kol_music'],
			['Я круче', 'kol_dirol'],
			['Надо подумать', 'kol_scratch'],
			['Танцую', 'kol_dance'],
			['Ты что!', 'kol_fool'],
			['Уррра!', 'kol_yahoo'],
			['Лопну от смеха', 'kol_rofl'],
			['Ой, ё', 'kol_shok'],
			['Улыбка до ушей', 'kol_biggrin'],
			['Тошнит', 'kol_bad'],
			['Сумасшествие', 'kol_crazy'],
			['Поцеловали', 'kol_man_in_love'],
			['Хихикаю', 'kol_mocking'],
			['В изнеможении', 'kol_wacko2'],
			['Извини', 'kol_pardon'],
			['Мечтаю', 'kol_rolleyes'],
			['Не-а', 'kol_nea'],
			['Пиво', 'kol_drinks'],
			['Кричу', 'kol_shout'],
			['Целую', 'kol_kiss_mini'],
			['Дарю цветочек', 'kol_give_rose']
		]
	},
	smile: {
		title: 'Классические',
		prefix: false,
		icons: [
			[':)', 'btn_smile'],
			[';)', 'btn_blink'],
			[':-))', 'btn_laughter'],
			[';-P', 'btn_bee'],
			['8-)', 'btn_coolguy'],
			[':-D', 'btn_biggrin'],
			['}:o)', 'btn_pig'],
			['$-)', 'btn_bazilio'],
			[':-\'', 'btn_hm'],
			[':-(', 'btn_dissapointed'],
			['8-(', 'btn_tears'],
			[':\'(', 'btn_cry'],
			[':\'\'()', 'btn_crocodile'],
			['$:-o', 'btn_really'],
			['(:-o', 'btn_oo'],
			['8-0', 'btn_amazed'],
			['8-[o]', 'btn_aaa'],
			['):-p', 'btn_bullshit'],
			['):-(', 'btn_angry'],
			['):-$', 'btn_rrr'],
			['):-D', 'btn_zloradstvo'],
			[':-E', 'btn_biganger'],
			[':devil:', 'btn_devil'],
			[':vampire:', 'btn_vampire'],
			[':-][', 'btn_plug'],
			[':-|', 'btn_detzl'],
			['B-j', 'btn_sceptic'],
			[':~o', 'btn_shy'],
			['(_I_)', 'btn_ass'],
			[':heart:', 'btn_heart'],
			[':-*', 'btn_kiss'],
			[':sleepy:', 'btn_sleepy']
		]
	},
	advanced: {
		title: 'Продвинутые',
		prefix: 'Продвинутые',
		icons: [
			['Улыбаюсь', 'adv_03'],
			['Злорадствую', 'adv_05'],
			['Радуюсь', 'adv_07'],
			['Старичок', 'adv_09'],
			['Свирепствую', 'adv_11'],
			['Пугаюсь', 'adv_13'],
			['Показываю язык', 'adv_21'],
			['Умник', 'adv_22'],
			['Алкоголик', 'adv_23'],
			['Вояка', 'adv_24'],
			['Удивляюсь', 'adv_25'],
			['Чертовски злюсь', 'adv_26'],
			['Расстраиваюсь', 'adv_33'],
			['Панк', 'adv_34'],
			['Лопну от смеха', 'adv_35'],
			['Подмигиваю', 'adv_36'],
			['Думаю', 'adv_37'],
			['Люблю', 'adv_38'],
			['Подавлен', 'adv_45'],
			['Рыдаю', 'adv_46'],
			['Сейчас расплачусь', 'adv_47'],
			['Злюсь', 'adv_48'],
			['Тошнит', 'adv_49'],
			['Сумасшествие', 'adv_50'],
			['Целую', 'adv_57'],
			['Поцеловали', 'adv_58'],
			['Красотка', 'adv_59'],
			['Ангелочек', 'adv_60'],
			['Подозрительно', 'adv_61'],
			['Жую', 'adv_62'],
			['Смущаюсь', 'adv_69'],
			['Стыдно', 'adv_70']
		]
	}
};

var getIconByCode = function(code) {
	for (var group in Icons) {
		if (Icons.hasOwnProperty(group)) {
			for (var k = 0, l = Icons[group].icons.length; k < l; k++) {
				if (Icons[group].icons[k][1] === code) {
					return {
						group: group,
						group_title: Icons[group].title,
						prefix: Icons[group].prefix,
						title: Icons[group].icons[k][0],
						code: Icons[group].icons[k][1]
					};
				}
			}
		}
	}
    return false;
};

var insertIcon = function(element, icon_code){
	var icon_info = getIconByCode(icon_code);
	if (icon_info) {
		var icon_mnemonic = icon_info.title;
		if (icon_info.prefix !== false) {
			icon_mnemonic = ':' + icon_mnemonic + ':';
			if (icon_info.prefix.length) {
				icon_mnemonic = ':' + icon_info.prefix + icon_mnemonic;
			}
		}
		//do not escape, because as we know mnemonic does not contain special characters 
		insertTextToInput(element, '<' + icon_info.group + ' type="' + icon_mnemonic +	'">'); 
	}
};

var showAllIcons = function(container) {
	if (container.built) {
		return;
	}
	container.built = true;
	var first = true;
	var smile_elements = container.getElementsByTagName('li');
	var existed_smiles = [];
	for (var i = 0; i < smile_elements.length; i++) {
		existed_smiles.push(smile_elements[i].className);
	}
	container.innerHTML = '';
	for (var group in Icons) {
		if (Icons.hasOwnProperty(group)) {
			if (!first) {
				var li = document.createElement('li');
				li.className = 'title';
				container.appendChild(li);
			}
			first = false;
			for (var k = 0, l = Icons[group].icons.length; k < l; k++) {
				var li = document.createElement('li');
				li.className = Icons[group].icons[k][1];
				li.title = Icons[group].icons[k][0];
				container.appendChild(li);
				if (existed_smiles.indexOf(Icons[group].icons[k][1]) === -1) {
					li.className += ' additional';
				}
			}
		}
	}
    return false;
};

var insertTextToInput = function(input_element, text) {
	if (document.selection) {
		input_element.focus();
		var s = document.selection.createRange();
		s.text = text;
		s.select();
		return true;
	} else if (typeof(input_element.selectionStart) === 'number') {
		var start = input_element.selectionStart;
		var end = input_element.selectionEnd;
		input_element.value = input_element.value.substr(0, start) + text + input_element.value.substr(end);
		end = end + text.length;
		input_element.setSelectionRange(end, end);
		input_element.focus();
		return true;
	}
	return false;
};

function init_smiles() {
	var el;
	if ($('commentAddBlockId')) {
		el = $('commentAddBlockId');
	} else {
		return;
	}

	el.select('.smiles ul').each(function(el) {
		el.observe('click', function(e) {
			var smile_el = e.findElement('li');
			if (smile_el) {
				var code = smile_el.className.replace(/\s*additional\s*/g, '');
				insertIcon($('com_text'), code);
			}
		});
	});
	el.select('.smiles span')[0].observe('click', function(e) {
		var el = $('commentAddBlockId');
		if (el.hasClassName('smiles_open')) {
			el.select('.smiles')[0].removeClassName('all');
			el.removeClassName('smiles_open');
			el.select('.smiles span')[0].innerHTML = 'все иконки и жесты';
		} else {
			showAllIcons(el.select('.smiles ul')[0]);
			el.select('.smiles')[0].addClassName('all');
			el.addClassName('smiles_open');
			el.select('.smiles span')[0].innerHTML = 'скрыть иконки';
		}
	});
}
/*end smiles*/

// ========== Показать/скрыть комментарий ============
//Лишние параметры, объявленные под контейнером ниже, будут убраны
function commentRep(id, quote, comment_thread, comment_page, image_id, album_id, curbox, commentext, commentalias) {
	var container = gebi("place_" + id);
	link_addComent = (container.innerHTML ? 1 : 0);
	commentRepHide();
	if (!container) return;

	if (link_addComent != 1) {
		var replyto = id;
		var author_mail = ActiveUserMail();
		var comment_id = id;
		var c_id = 'c_'+id;
		var from = 0;
		var to = id;

		//var obform = document.forms['frmAddComm'];
		//if(obform != undefined){
		//Подставить событие
		//	obform.onsubmit = ...;
		//}
		var defaultusername = ActiveUserNick();
		if(commentalias){defaultusername = commentalias; }
		if(defaultusername == '') { defaultusername = author_mail; }

		container.innerHTML = "<div id=\"commentAddBlockId\"><div class=\"border_grey\">\
			<input type=hidden name=\"page\" value=\""+comment_page+"\">\
			<input type=hidden name=\"replyto\" value=\""+id+"\">\
			<input type=hidden name=\"thread\" value=\""+comment_thread+"\">\
			<input type=hidden name=\"author\" value=\""+author_mail+"\">\
			<input type=hidden name=\"id\" value=\""+image_id+"\">\
			<input type=hidden name=\"album\" value=\""+album_id+"\">\
			<input type=hidden name=\"alias\" id=\"com_alias\" value=\""+defaultusername+"\">\
			<table class=\"CommentForm\">\
				<tr>\
					<th>Текст:</th>\
					<td class=\"t100\"><textarea id=\"com_text\" name=\"comment\" cols=\"50\" rows=\"5\">" + (commentext ? commentext : (quote ? gebi("comment_text_" + id).value : "")) + "</textarea></td>\
				</tr>\
				<tr>\
					<th> </th>\
					<td class=\"messenger\">\
						<div class=\"smiles\">\
							<span>все иконки и жесты</span>\
							<ul>\
								<li class=\"kol_smile\" title=\":''()\"></li>\
								<li class=\"btn_crocodile\" title=\":''()\"></li>\
								<li class=\"btn_bullshit\" title=\"):-p\"></li>\
								<li class=\"adv_35\" title=\"Лопну от смеха\"></li>\
								<li class=\"anim_dance\" title=\"Танцую\"></li>\
								<li class=\"anim_fight\" title=\"Побью\"></li>\
								<li class=\"kol_yahoo\" title=\"Уррра!\"></li>\
								<li class=\"kol_bad\" title=\"Тошнит\"></li>\
								<li class=\"kol_diablo\" title=\"Чертовски злюсь\"></li>\
								<li class=\"btn_live\" title=\":cool:\"></li>\
								<li class=\"btn_victory\" title=\":viva:\"></li>\
								<li class=\"btn_ok\"  title=\":ok:\"></li>\
							</ul>\
						</div>\
					</td>\
				</tr>\
				<tr>\
					<th> </th>\
					<td class=\"button\"><input id=\"sub_but\" type=\"button\" value=\"Добавить\" onclick='AddComment(\""+to+"\",\""+comment_thread+"\", \""+author_mail+"\", \""+image_id+"\", \""+album_id+"\", \""+curbox+"\", \""+image_id+"\", \""+comment_id+"\", \""+c_id+"\");return false;' /><div><a onclick=\"return commentRepHide();\" href=\"#\">Закрыть</a></div></td>\
				</tr>\
				<tr>\
					<th> </th>\
					<th>\
						<div style=\"position:relative; z-index:2;\">\
						<div name=\"for_capcha_comment\" id=\"for_capcha_comment\" class=\"for_capcha\" style=\"visibility:hidden; left:0; top:0;\">\
							<a href=\"#\" onclick=\"hideObject(this.offsetParent); return false;\" id=\"wee11\" class=\"close\"><img src=\"http://img.mail.ru/mail/ru/images/blogs/close_help.gif\" width=\"7\" height=\"7\" alt=\"Закрыть\" /></a>\
							<div class=\"mb12\">Введите число на картинке</div>\
							<div class=\"mb2\"><img name=\"img_for_capcha_comment\" id=\"img_for_capcha_comment\" src=\"http://img.mail.ru/0.gif\" alt=\"\" /></div>\
							<div class=\"mb10\"><a href=\"#\" onclick=\"FreshCapchaComment();return false;\"><img src=\"http://img.mail.ru/r/foto2/ico_refresh.gif\" width=\"10\" height=\"12\" alt=\"\" class=\"refresh\" /></a><a href=\"#\" onclick=\"FreshCapchaComment();return false;\">Число не видно</a></div>\
							<input id=\"security_image_addcomment_answer\" type=\"text\" name=\"security_image_addcomment_answer\" value=\"\" class=\"mr5 input_text\" autocomplete=\"off\" /><input type=\"submit\" name=\"btn_ok\" value=\"ок\" id=\"gg12\" onclick='AddComment(\""+to+"\",\""+comment_thread+"\", \""+author_mail+"\", \""+image_id+"\", \""+album_id+"\", \""+curbox+"\", \""+image_id+"\", \""+comment_id+"\", \""+c_id+"\");return false;' class=\"input_submit\" />\
						</div>\
						</div>\
					</th>\
				</tr>\
			</table>\
			</div><br clear=\"all\" /></div>";
		init_smiles();
		if(typeof spot == 'undefined'){
			document.forms['frmAddComm'].elements['comment'].focus();
		}
	}
	return false;

}


function commentRepHide() {
	if (gebi("commentAddBlockId")) {
		gebi("commentAddBlockId").parentNode.removeChild(gebi("commentAddBlockId"));
	}
	return false;
}

// ========== Показать/скрыть комментарий ============


var need_capcha = NeedVoteCapcha();
var capcha_id = 0;
var check_capcha_result = 0;
var capcha_mark = 0;
var capcha_comment_id = 0;

function ClearCapchaParams() {
	capcha_id = 0;
	check_capcha_result = 0;
	var ob = gebi('security_image_answer');
	if(ob != undefined){ ob.value = '';}
	gebi("gg11").disabled = false;
}
function FreshVoteCapchaCallback(st,id) {
	if (st==1) {
		capcha_id=id;
		gebi('img_for_capcha').src = 'http://'+PhotoPerlHost()+'/cgi-bin/get_image_photo?id='+capcha_id;
		var ob = gebi('for_capcha');
		ob.style.visibility = "visible";
		ob.style.display = "block";
		var ob=gebi('security_image_answer'); if(ob != undefined){ob.focus()};

		gebi("body_id").onclick=function hide_VoteCapcha (evt){
			var ob = gebi("for_capcha");
			if (ob)
			{
				evt = (evt) ? evt : ((window.event) ? event : null );
				elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
				if (elem.id!="img_for_capcha" && elem.id!="security_image_answer" && elem.tagName!="A") {hideObject(ob);gebi("body_id").onclick="";}
			}
		}
	} else {
		alert ('Не удалось сформировать картинку. Повторите пожалуйста ваш выбор.');
	}	  
}
function FreshVoteCapcha(mark) {
	//alert("mark="+mark+" capcha_mark="+capcha_mark);
	if(capcha_mark){
		mark = capcha_mark;
	}
	var st=ajax_call('perl_get_capcha_id',mark,FreshVoteCapchaCallback);
	return st;
}
function FreshCapchaCommentCallback(st,id) {
	if (st==1) {
		capcha_comment_id=id;
		gebi('img_for_capcha_comment').src = 'http://'+PhotoPerlHost()+'/cgi-bin/get_image_photo?id='+capcha_comment_id;
		var ob = gebi('for_capcha_comment');
		ob.style.visibility = "visible";
		ob.style.display = "block";
		ob.style.position = "absolute";
		var ob = gebi('security_image_addcomment_answer');
		if(ob != undefined){
			ob.value = '';
		}
		//ob.style.top = "-120px";
		ob.style.top = "0px";
		var ob=gebi('security_image_addcomment_answer'); if(ob != undefined){ob.focus()};
	} else {
		alert ('Не удалось сформировать картинку. Повторите пожалуйста ваш выбор.');
	}
	ShowSendButton('sub_but');
}
function FreshCapchaComment() {
	var st=ajax_call('perl_get_capcha_id',FreshCapchaCommentCallback);
	if(st == 1){HideSendButton('sub_but');};
	return st;
}

var vote_message_process = 'Запрос обрабатывается...';
var vote_message_thank = 'Спасибо, ваш голос принят';


function addVoteCallback (st,newrating,votescount,errorcode,errortext) {
	if (st==1) {
		voted=true;
		gebi('image_Rate').innerHTML=newrating;

		if (gebi('image_VotesCount'))
		gebi('image_VotesCount').innerHTML=votescount;

		gebi('vote_message').innerHTML=vote_message_thank;
	} else {
		if (errorcode==2 || errorcode==4 || errorcode==9 || errorcode==11) {
			voted=true;
			gebi('vote_message').innerHTML = errortext;
		}else if (errorcode==3) {
			alert('Неверно введён код защиты');
			ClearCapchaParams();
			var mark = capcha_mark;
			var st = FreshVoteCapcha(mark);
		}else{
			voted=true;
			gebi('vote_message').innerHTML = errortext;
		}
	}
}

function addVote (mark, image_id, album_id) {
	var block_vote = BlockVote();
	
	rating+=mark;

	if (voted) {
		alert('Вы уже проголосовали за фото');
		return;
	}	
	
	if (block_vote) {
		alert('Вы не можете голосовать за собственное фото');
		return;
	}

	var answer='';
	if(need_capcha){
		capcha_mark = mark;
		answer=gebi('security_image_answer').value;
		if(answer == '' || check_capcha_result != 1){
			var st = FreshVoteCapcha(mark);
		}
		return;
	}

	ClearCapchaParams();

	var st=ajax_call('perl_add_vote',mark,image_id,album_id,capcha_id,answer,addVoteCallback);
	if (!st) {
		alert('Проголосовать не получилось');
	} else {
		hideObject(gebi('image_Rate_Vote_Access'));
		gebi('vote_message').style.display='block';
		gebi('vote_message').innerHTML=vote_message_process;
	}
}
function CheckVoteCapcha() {
	var answer=gebi('security_image_answer').value;
	var mark = capcha_mark;
	var id = capcha_id;
	ClearCapchaParams();
	gebi('for_capcha').style.visibility = "hidden";
	var st = ajax_call('perl_add_vote',mark,CurrentImageId(),CurrentAlbumId(),id,answer,addVoteCallback);

	if (!st) {
		alert('Проголосовать не получилось');
	} else {
		hideObject(gebi('image_Rate_Vote_Access'));
		gebi('vote_message').style.display='block';
		gebi('vote_message').innerHTML=vote_message_process;
	}

	return st;
}

var SendButtonTimer;
var SendButtonTimerButtonID;
function HideSendButton(buttonID) {
	if(buttonID == undefined){buttonID = 'sub_but'}
	ob=document.getElementById(buttonID);
	if (ob != undefined) {
		ob.value = "Идет отправка";
		ob.disabled = true;
	}
	SendButtonTimerButtonID = buttonID;
	SendButtonTimer = setTimeout(function(){clearTimeout(SendButtonTimer);ShowSendButton(SendButtonTimerButtonID);},3000);
}
function ShowSendButton(buttonID) {
	if(buttonID == undefined){buttonID = 'sub_but'}
	ob=document.getElementById(buttonID);
	if (ob != undefined) {
		ob.value = "Добавить";
		ob.disabled = false;
		gebi("gg12").disabled = false;
	}
}

//Временные переменные для отладки. Часть Будут перенесно в AddCommentCallback, часть убито за ненадобностью
var last_replyto;
var last_thread;
var last_author;
var last_id;
var last_album;
var last_curbox;
var last_image_id;
var last_comment_id;
var last_c_id;
var last_capcha_id;
var last_answer;
var last_comment;

var last_userapprove;

function ClearTempVars() {
	last_replyto=0;
	last_thread=0;
	last_author=0;
	last_id=0;
	last_album=0;
	last_curbox=0;
	last_image_id=0;
	last_comment_id=0;
	last_c_id=0;
	last_capcha_id=0;
	last_answer='';
	last_comment='';
}
function AddCommentCallback(st,errorcode,errortext,ref,page)
{
	if (st==1)
	{
		last_userapprove = 0;

		if(typeof spot != 'undefined'){
			spot.replaceComments(page);
		} else {
			if(ref != undefined && ref != ''){
//					window.location.replace(ref);
				document.location = ref;
//					window.location.href = ref;	
				return;
			}
			else window.location.reload(true);
		}
	}
	else
	{
		if(errorcode == 2 || errorcode == 3)
		{
			FreshCapchaComment();
			if(errorcode == 3){	alert(errortext); };
			return;
		}
		if(errorcode == 4) {
			if(confirm(errortext)) {
				last_userapprove = 1;
				var ob = gebi('sub_but');
				if(ob){
					ob.onclick();
				}else{
					FreshCapchaComment();
				}
				return;
			}else{
				commentRepHide()
			};
			return;
		}
		if(errorcode == 5) {
			alert(errortext);
			commentRepHide()
			return;
		}
		alert('Добавить комментарий не получилось: '+errortext);
		ShowSendButton('sub_but');
		ClearTempVars();
	}
}
function AddComment(replyto, thread, author, id, album, curbox, image_id, comment_id, c_id) {
	var ob = gebi('com_text');
	if(ob == undefined){alert('Не найден комментарий.'); return;}
	if(ob.value == ''){alert('Необходимо заполнить комментарий перед отправкой'); return;}
	var comment = ob.value;
	//comment = comment.replace(/[\0-\u001F]/g,' ');
	comment = comment.replace(/[^\n\wА-я\u0021-\u007EёЁ]/g,' ');

	var com_alias = '';
	var ob = gebi('com_alias');
	if(ob != undefined){ com_alias = ob.value };
	
	//alert('Добавляем комментарий через ajax');
	//Заполняем временные переменные. Временное решение (см выше)
	last_replyto=replyto;
	last_thread=thread;
	last_author=author;
	last_id=id;
	last_album=album;
	last_curbox=curbox;
	last_image_id=image_id;
	last_comment_id=comment_id;
	last_c_id=c_id;
	last_capcha_id=capcha_id;
	last_answer=answer;
	last_comment=comment;

	var answer = '';
	ob = gebi('security_image_addcomment_answer');
	if(ob != undefined){
		answer=ob.value;
	}
	//alert('capcha_id='+capcha_comment_id+'  answer='+answer);
	if(!last_userapprove){
	    last_userapprove=0;
	}
	var st=ajax_call('perl_add_comment',
		replyto, thread, author, id, album, curbox, image_id, comment_id, c_id,			
		capcha_comment_id, answer, comment, com_alias, '', last_userapprove, AddCommentCallback);
	if(st == 1){HideSendButton('sub_but');};
}


var deleted_comment_id = '';
function HideComments(ar_hidden_comments_id) {
	for (var i = 0; i < ar_hidden_comments_id.length; i++) {
		ob = gebi("tab"+ar_hidden_comments_id[i]);
		if(ob != undefined){
			ob.style.display = "none";
		}
	}
}
function DelCommentCallback(st,errorcode,errortext,str_hidden_comments_id){
	if (st==1) {
		var ar_hidden_comments_id = str_hidden_comments_id.split(/\s/);
		HideComments(ar_hidden_comments_id);
	} else {
		alert('Удалить комментарий не получилось: '+errortext);
	}
}

function DelComment(ob_id, image_id, album_id, comment_page)
{
	var lin_num=ob_id.substring(2, ob_id.length);
	//alert("image_id="+image_id+", album_id="+album_id+", lin_num="+lin_num+", comment_page="+comment_page+", delete_with_child="+delete_with_child);
	deleted_comment_id = lin_num;
	var delete_with_child = 1;
	var ob=gebi("with_child");
	delete_with_child = 0;	if(ob != undefined){ delete_with_child = ob.checked ? 1 : 0; };
	var st=ajax_call('perl_del_comment', image_id, album_id, lin_num, comment_page, delete_with_child, DelCommentCallback);

	return st;
}
function DelCommentDialog(ob, image_id, album_id, comment_page) {
	var ob_id=ob.id;
	var check_f=document.getElementById("del_dialog");
	if (check_f) check_f.parentNode.removeChild(check_f.parentNode.lastChild);
	del_div=document.createElement("div");
	del_div.id="del_dialog";
	del_div.className="del_min";
	del_div.innerHTML="Удалить комментарий?<br><img src=http://img.mail.ru/0.gif width=1 height=5><br><input type=checkbox id=with_child>&nbsp;&nbsp;с&nbsp;вложенными&nbsp;комментариями<br><img src=http://img.mail.ru/0.gif width=1 height=7><br><input type=button value=' Да ' onclick='hideObject(this.parentNode); DelComment(\""+ob_id+'","'+image_id+'","'+album_id+'","'+comment_page+"\");'>&nbsp;&nbsp;<input type=button value=' Нет ' onclick='hide_CommentDialog();'>";
	ob.parentNode.appendChild(del_div);


	addHandler(document, 'click', function hide_CommentDialog (evt){
		var ob = gebi("del_dialog");
		if (ob)
		{
			evt = (evt) ? evt : ((window.event) ? event : null );
			elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
			if (elem.id!="del_dialog" && elem.tagName!="A" && elem.id!="with_child")
			{
				hideObject(ob);
				removeHandler(document, 'click', hide_CommentDialog);
			}
		}
	});


	return false;
}

//добавить в блог
function show_dialog(sel_chb, e) {
	if(typeof(e)!="undefined"){
	e = e || window.event;
	cancelBubbling(e);
	}
	gebi('f2_gotoblogs').style.display = 'block';
	gebi('f2_gotoblogs').innerHTML="Разместить фото в блоге<br /><img src=http://img.mail.ru/0.gif width=1 height=5><br /><nobr><input type=checkbox id=only_preview>Превью&nbsp;со&nbsp;ссылкой<\/nobr><br /><img src=http://img.mail.ru/0.gif width=1 height=5><nobr><br /><input type=checkbox id=with_border>Рамка<\/nobr><br /><img src=http://img.mail.ru/0.gif width=1 height=7><br /><nobr><input type=button value=\'Разместить\' onclick=\'go_in_blogs();\'>&nbsp;&nbsp;<input type=button value=\'Отменить\' onclick=\'gebi(\"f2_gotoblogs\").style.display = \"none\";\'><\/nobr>";
	addHandler(gebi('f2_gotoblogs'),'click', function(e) {
		cancelBubbling(e);
	});
}

addHandler(document,'click', function(e) {
		e = e || window.event; 
		if (e.button == 0) hide_show_dialog();
	});
	
function hide_show_dialog() {
	if(gebi('f2_gotoblogs')) gebi('f2_gotoblogs').style.display = 'none';
}

function simulateClick(id) { //для не ИЕ
	var evt = document.createEvent("MouseEvents");
	evt.initMouseEvent("click", true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);
	var cb = gebi(id); 
	if(cb) cb.dispatchEvent(evt);
}

function simulateClickIE(id) { //для ИЕ
	var evt = document.createEventObject();
	if (gebi(id)) gebi(id).fireEvent('onclick', evt);
}
//end добавить в блог

//пожаловаться модератору
function CommentComplainCallback(arr){
    if(arr[0] == 0){
        alert(arr[1]);
        return false;
    }else{
		//alert("Спасибо, ваша жалоба будет рассмотрена модераторами в ближайшее время.");
		var comment_id=arr[1];
		if(gebi("comment"+comment_id)) {
			var t = document.createElement("span");
			t.style.fontSize = "100%";
			t.innerHTML = "Жалоба принята. Спасибо!";
			gebi("comment"+comment_id).parentNode.replaceChild(t,gebi("comment"+comment_id));
		}
	}
}
function PhotoComplainCallback(arr){
    if(arr[0] == 0){
        alert(arr[1]);
        return false;
    }else{
		//alert("Спасибо, ваша жалоба будет рассмотрена модераторами в ближайшее время.");
		if(gebi('PhotoComplainLink')) {
			var t = document.createElement("span");
			t.innerHTML = "Жалоба принята. Спасибо!";
			gebi('PhotoComplainLink').parentNode.replaceChild(t,gebi('PhotoComplainLink'));
		}

	}
}
//end пожаловаться модератору

//центрирование меню
function centerMenu() {
	var w=0;
	var mm = gebi("MainMenu");
	var els = gebc("main","a",mm);

	for(var i=0; i<els.length; i++) 
		w+=els[i].parentNode.offsetWidth; 
	
	if(w!=0) mm.style.width = w + "px";
}

//+10 voters list
var megavoters = {

	opened : false,
	votersHash : {},
	photoid : "",
	listId : "MegaVoters",
	votersListHTML : [],
	inited : false,
	timerId : false,
	timerVal : 500,
	active : false,
	curbox : "",
	broken : false,
			
	get : function() {
		if(this.inited && !this.broken) {
			if(this.votersListHTML.length == 0) {
				if(this.active) ajax_call("perl_get_double_votes",this.photoid,this.show);
				else ajax_call_nologin("perl_get_double_votes_nologin",this.photoid,this.show);
			}
			else this.showHTML();
		}
	},
	
	show : function(s,arr) { 
		var st, voted_date, i, html = [], len;
		var months = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'];
		arr.reverse(); 
		len = (arr.length >= 3) ? 3 : arr.length;
		if(len > 0) {
			for (var k=0;k<len;k++) { 
				i = arr[k]; 
				voted_date = new Date();
				voted_date.setTime(i.time*1000);
				st = '<div class="voters-item">'+
				'<div class="fub-avatar"><a href="http://my.mail.ru'+i.curbox+'"><i style="background-image: url(http://avt.foto.mail.ru'+i.curbox+'_avatarsmall);"></i></a></div>'+
				'<ul>'+
					'<li><a title="Щелкни, чтобы пообщаться с этим человеком в Mail.Ru Агенте" href="http://www.mail.ru/agent?message&amp;to='+i.email+'"><img src="http://status.mail.ru/?'+i.email+'&9x9" class="f2_ico" alt="" /></a><a href="http://my.mail.ru'+i.curbox+'">'+i.fio+'</a></li>'+
					'<li><strong>&#43;'+i.mark+'</strong></li>'+
					'<li><i>Оценено:</i>&nbsp;'+voted_date.getDate()+'&nbsp;'+months[voted_date.getMonth()]+'&nbsp;в&nbsp;'+((voted_date.getHours() < 10) ? "0" + voted_date.getHours() : voted_date.getHours()) + ':' + ((voted_date.getMinutes() < 10) ? "0" + voted_date.getMinutes() : voted_date.getMinutes()) + '</li>'+
				'</ul>'+
				'</div>';
				html.push(st); 
			}
			html.push('<a class="all-voters" href="http://'+PhotoPerlHost()+megavoters.curbox+'rating_all/vtime/">Все оценки</a>');
			$(megavoters.listId).innerHTML = html.join("");
			megavoters.showHTML();
			megavoters.votersListHTML = html; 
		} else 
			megavoters.broken = true;
	},
	
	showHTML : function() {
		if(!this.opened) {
			$(this.listId).setStyle({display:"block"});
			this.setEvents();
			this.opened = true;
		}
	},
	
	setEvents : function() {
		var _this = this;
		$(this.listId).onmouseover = function() {_this.clearMegaTimeout(); }
		$(this.listId).onmousemove = function() {_this.clearMegaTimeout(); }
		$(this.listId).onmouseout = function(e) {cancelBubbling(e);_this.hide();} 
		
	},
	
	hide : function() { 
		if (this.opened) this.opened = false;
		this.clearMegaTimeout();
		this.timerId = setTimeout("if( $('"+this.listId+"')) $('"+this.listId+"').hide();",this.timerVal);
	},
	init : function(id,a,c) {
		this.photoid = id;
		this.active = (a !="") ? true : false;
		this.curbox = c;
		this.inited = true;
	},
	
	clearMegaTimeout : function(){
		clearTimeout(this.timerId);
		this.timerId = null;
	},
	
	remove : function() {
		if($(this.listId)) {
			$(this.listId).update("");
			$(this.listId).hide();
		}
		this.inited = false;
		this.votersHash = {}
		this.votersListHTML = [];
	}

}
