////Функция добавляет страницу в закладки(избранное)
function addBookmark(url, title)
{
  if (!url) url = location.href;
  if (!title) title = document.title;
  
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) window.sidebar.addPanel (title, url, "");
  else if (typeof window.external == "object") window.external.AddFavorite(url, title);
  else if (window.opera && document.createElement)
  {
	var a = document.createElement('A');
	if (!a) return false; //IF Opera 6
    a.setAttribute('rel','sidebar');
    a.setAttribute('href',url);
    a.setAttribute('title',title);
    a.click();
  }
  else return false;
  
  return true;
}

function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

function totalcount(){}

function cartsum()
{
	$.post('/ajax/cartsum.php', {}, function(data){
		dat=eval('('+data+')');
		$('.cartsum').html(dat.sum);
		if (dat.goods.length==0)
		{
			$('#cartgoods').html('Корзина пуста');
			$('#cartdetails').hide();
		}
		else
		{
			$('#cartgoods').html('');
			for(var val in dat.goods)
			{
				//$('#cartgoods').append('<a href="#">'+val.name+'</a> ('+val.num+')');
				tmp=dat.goods[val];
				$('#cartgoods').append('<a href="/catalog/good'+tmp.good+'">'+tmp.name+'</a> ('+tmp.num+') — '+tmp.sum+' руб.<br>');
				$('#cartdetails').show();
			}
		}
		
		totalcount();
	})
}

/********************************************************************************************************/
/********************************************************************************************************/
/********************************************************************************************************/
/********************************************************************************************************/
var replyhref='<a href="#" class="reply replyhref" onClick="return putreplyform(this);">Ответить</a>';
var delhref='<a href="#" class="reply delhref" onClick="return delcomment(this);">Удалить</a>';
var edithref='<a href="#" class="reply edithref" onClick="return editcomment(this);">Редактировать</a>';
var oldcomment='';

$(document).ready(function(){
	makecomments();
	makecdots();
});

//// Нарисуем дерево комментариев
function makecdots()
{
	$('.comment').bind('mouseover', function(e){
		$('.cdot').remove();
		e.cancelBubble = true;
		e.stopPropagation();
		
		if ($(this).parent('.comment').length)
			drawcdot(this);
			
	});
	$('.comment').bind('mouseout', function(){
		$('.cdot').remove();
	});
}

//// Рекурсивно нарисуем
function drawcdot(t)
{
	// Нарисуем горизонтальную линию
	elm=$('<div style="border-bottom: 1px dotted #FF39A4;" class="cdot"></div>');
	$(elm).css('top', parseInt($(t).offset().top)+23);
	$(elm).css('left', parseInt($(t).offset().left)-10);
	$(elm).css('width', $(t).offset().left-$(t).parent().offset().left);
	$(t).append(elm);
	
	// Погнали наверх
	elm2=$('<div style="border-left: 1px dotted #FF39A4;" class="cdot"></div>');
	$(elm2).css('left', $(elm).offset().left);
	$(elm2).css('top', $(t).parent().offset().top+23);
	$(elm2).css('height', $(t).offset().top-$(t).parent().offset().top);
	$(t).append(elm2);
	
	if ($(t).parent('.comment').parent('.comment').length)
		drawcdot($(t).parent('.comment'));
}

//// Проверим админство
function logged()
{
	return ((window.is_admin!==undefined) ? window.is_admin : false);
}

//// Поставим ссылки для ответа, удаления, ответа и редактирования
function makecomments()
{
	$('.comment > .username').append(replyhref);
	$('.commentstop > .username >  .replyhref').remove();
		
	if (logged())
	{
		$('.comment > .username').append(edithref);
		$('.comment > .username').append(delhref);
	}
}

//// Редактирование комментария
function editcomment(elm)
{
	if ($('#editcomment').length)
	{
		uneditcomment();
	}
	oldcomment=$(elm).parent().next('.commenttext').html().replace(/<br[^>]*>/g, '');
	$(elm).parent().next('.commenttext').html('<textarea id="editcomment" style="width: 100%; height: 100px; font-size: 12px;">'+oldcomment+'</textarea><br /><button onclick="doeditcomment();" id="savecommentbutton">Сохранить</button><button onclick="uneditcomment();">Отменить</button>');
	oldcomment=$('#editcomment').val();
	
	return false;
}

//// Отменим редактирование
function uneditcomment()
{
	$('#editcomment').replaceWith(hsc(oldcomment).replace(/([^>])\n/g, '$1<br />\n'));
	$('.commenttext > button').remove();
}

//// Сохраним комментарий
function doeditcomment()
{
	$('#savecommentbutton').html('Сохраняю...');
	$('#savecommentbutton').attr('disabled', 'disabled');
	id=$('#editcomment').parent().parent().attr('id').replace('comm', '');

	rt=$.ajax({
		type: "POST",
		async: false,
		url: '/ajax/editcomment.php',
		data: {id: id, comment: $('#editcomment').val()}
	}).responseText;
	
	if (rt.length>0)
	{
		alert(rt);
		$('#savecommentbutton').html('Сохранить');
		$('#savecommentbutton').removeAttr('disabled');
		return false;
	}
	
	
	$('#editcomment').replaceWith(hsc($('#editcomment').val()).replace(/([^>])\n/g, '$1<br />\n'));
	$('.commenttext > button').remove();
}

//// Удалим комментарий
function delcomment(elm)
{
	id=$(elm).parent().parent().attr('id').replace('comm', '');
	$(elm).replaceWith('Удаляю...');
	rt=$.ajax({
		type: "POST",
		async: false,
		url: '/ajax/delcomment.php',
		data: {id: id}
	}).responseText;
	
	if (rt.length>0) 
		alert(rt);
	else
		$('#comm'+id).remove();
	
	return false;
}

//// Поставим форму ответа куда нам надо
function putreplyform(elm)
{
	$('#parent').val($(elm).parent().parent().attr('id').replace('comm', ''));
	rf=$('#newcomment').clone();
	$('#newcomment').remove();
	$(elm).parent().parent().append(rf);
	location.href=location.href.replace(/#.*$/, '')+'#newcomment';
	return false;
}

//// Уберём форму ответа по нажатию кнопки «Отмена»
function unputreplyform()
{
	$('#username').val('');
	$('#parent').val('0');
	$('#comment').val('');
	rf=$('#newcomment').clone();
	//$('#newcomment').replaceWith(replyhref);
	$('#newcomment').remove();
	$('.comments').append(rf);
}

//// Что-то похожее на htmlspecialchars
function hsc(s)
{
	return s.replace(/\&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/'/g, '&#039;').replace(/"/g, '&quot;');
}

//// Добавляем комментарий
function addcomment()
{
	if ($('#comment').val()=='')
	{
		alert('А что, собственно, отправлять? Надо сперва ввести текст.');
		$('#comment').focus();
		return false;
	}
	
	if ($('#username').val()=='')
	{
		alert('Не забывайте представиться!');
		$('#username').focus();
		return false;
	}
	
	$('#newcomment').hide();
	
	rt=eval('('+$.ajax({
		type: "POST",
		async: false,
		url: '/ajax/addcomment.php',
		data: {comment: $('#comment').val(), post: $('#post').val(), parent: $('#parent').val(), name: $('#username').val()}
	}).responseText+')');
	
	
	if (rt.error)
	{
		alert(rt.error);
		return false;
	}
	
	rf=$('#newcomment').clone();
	commentstop=(rt.level==9)?' commentstop':'';
	if (logged())
		$('#newcomment').replaceWith('<div class="comment'+commentstop+'" id="comm'+rt.id+'"><a name="comment'+rt.id+'"></a><div class="username admin">'+$('#username').val()+' <span class="datetime">'+rt.date+'</span></div><div class="commenttext">'+hsc($('#comment').val()).replace(/([^>])\n/g, '$1<br />')+'</div></div>');
	else
		$('#newcomment').replaceWith('<div class="comment'+commentstop+'" id="comm'+rt.id+'"><a name="comment'+rt.id+'"></a><div class="username">'+$('#username').val()+' <span class="datetime">'+rt.date+'</span></div><div class="commenttext">'+hsc($('#comment').val()).replace(/([^>])\n/g, '$1<br />')+'</div></div>');
		
	$('.reply').remove();
	makecomments();	
	$('.comments').append(rf);
	$('#username').val('');
	$('#parent').val('0');
	$('#comment').val('');
	$('#newcomment').show();
	makecdots();
	
	$('#comcount').html(parseInt($('#comcount').html())+1);
}

//// Проверим событие Ctrl+Enter в комментариях
function kbReply(e)
{
	if((e.ctrlKey) && ((e.keyCode == 0xA)||(e.keyCode == 0xD)))
		addcomment();
}
