function quote(src_id,dst_id)
{
	var src = $(src_id);
	if (src)
	{
		var dst = $(dst_id);
		if (dst)
		{
			var src_str = src.innerHTML;
			var quoted = "\n> " + src_str.replace(/<br>/ig, "\n> ");
			dst.value += quoted;
			countLetters('mdata','letter_counter',1024);
		}
		else
		{
			alert("Объект " + dst_id + " не найден");
		}
	}
	else
	{
		alert("Объект " + src_id + " не найден");
	}
}

function isNumber(num)
{
	for (i=0; i < num.length; i++)
	{
		if (!num[i].match(/\d/))
		{
			return false;
		}
	}
	
	return true;
}

function checkMessage(minCost)
{
	var cost = $('cost');
    var cost_txt = 'Цена не может быть ниже установленной заказчиком';
    if ($F('in_office') == '1')
    {
        cost_txt = 'Зарплата не должна быть ниже указанной в вакансии';
    }
	if (!isNumber(cost.value))
	{
		alert('Неверное значение: ' + cost.value);
		cost.value = minCost;
        cost.focus();
		return false;
	}
	
	if (cost.value < minCost)
	{
		alert(cost_txt);
		cost.value = minCost;
		cost.focus();
		return false;
	}
    
    if (cost.value < 1)
	{
		alert('Вы должны указать стоимость');
		cost.focus();
		return false;
	}

	var term = $('term');
	if (!term.value.length || !isNumber(term.value) || term.value == 0)
	{
		alert('Неверное значение: ' + term.value + ' (выполню за ... дней)');
		term.focus();
		return false;
	}
	return true;
}

function toggle_answer(id)
{
	var text = $('answer_text'+id);
	if(text) text.toggleClassName('hide');
	
	var editor = $('answer_edit'+id);
	if(!editor) alert('answer_edit not found');
	else editor.toggleClassName('hide');
	
	if(obj = $('answer_'+id))
	{
		obj.select('a.answer_button').each(function(s) { s.toggleClassName('hide'); });
		obj.select('.answer_data').each(function(s) { s.toggleClassName('hide'); });
	}
}

function edit_reply(id) { toggle_answer(id);  $('answer_edit_text'+id).focus(); }
function answer_close(id) { toggle_answer(id); }
function answer_save(id) {
	var obj = $('answer_edit_text'+id);
	if(!obj) { alert('answer_edit_text not found'); return false; }
	obj.setStyle({background:'url(/img/lightbox/loading.gif) no-repeat center center'});
	
	var url = '/responder/?cmd=save_message_answer';
	var pars = 'id=' + id + '&content=' + obj.value;
	new Ajax.Request(url,
				{
					method: 'post',
					postBody:pars,
					onSuccess: function(transport)
					{
						if (transport.responseText.search(/^OK\s*/) >= 0)
						{
							$('answer_text'+id).update(obj.value);
							$('answer_'+id).select('.answer_data').each(
								function(s) {
								var d = new Date();
								s.update( d.getHours() + ":" + d.getMinutes() + " " + d.getDate() + "." + d.getMonth() + "." + d.getFullYear());
								}
							);
							obj.setStyle({background:'none'});
							toggle_answer(id);	
						}
						else
						{
							obj.setStyle({background:'none'});
							alert('Не удалось сохранить ответ на заявку. Ошибка: ' + transport.responseText);
						}
					},
					onFailure: function(transport)
					{
						obj.setStyle({background:'none'});
						alert("Не удалось сохранить ответ на заявку" + ": " + transport.status + " " + transport.statusText);
					}
				}
	);
}

function needFairPlay(el, project_id)
{
    var t1 = "Чтобы выбрать исполнителя и использовать рабочую область нужно использовать FairPlay.\n";
    t1 += "Сервис «Fair play» создан для помощи в обеспечении исполнения обязательств Заказчика и Исполнителя друг перед другом.\n\n";
    t1 += "Открыть проект для редактирования, чтобы внести изменения (Варианты оплаты: использовать FairPlay)?";
 
    if(confirm((t1)))
    {
        $(el).href = "/setup/project/?cmd=proj_edit&id=" + project_id;
        $(el).target = "_self";
        return true;
    }
    
    if(readCookie("showFP")) return false;
    
    createCookie("showFP",1,1);
    t1 = "«Fair play» - Финансовая гарантия соблюдения договореностей между Заказчиком и Исполнителем\n\n";
    t1 += "Хотите узнать больше о сервисе Fair play?";
    return confirm(t1);
}
