• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/classes/general/fileman_utils.php
  • Класс: CFilemanTransliterate
  • Вызов: CFilemanTransliterate::InitTranslitInputs
function InitTranslitInputs(params)
{
var
	bLinked = params.bLinked !== false,
	translitTimeout,
	fromInput = params.fromInput,
	toInput = params.toInput,
	prevValue = fromInput,
	translit = function()
	{
		if (prevValue != fromInput.value)
			BX.translit(fromInput.value, {
				max_len : params.max_len,
				change_case : params.change_case,
				replace_space : params.replace_space,
				replace_other : params.replace_other,
				delete_repeat_replace : params.delete_repeat_replace,
				use_google : params.use_google,
				callback : function(result)
				{
					if (params.ext && params.ext)
						result = result + "." + params.ext;
					toInput.value = result;
					prevValue = fromInput.value;
				}
			});
	};

if (params.bLinkInputs)
{
	if (!params.unlinkedTitle)
		params.unlinkedTitle = '';
	if (!params.linkedTitle)
		params.linkedTitle = '';

	var
		pLink1 = BX.create("IMG", {props: {src: "/bitrix/images/1.gif", className: "bxfm-linked", title: params.linkedTitle}}),
		pLink2 = BX.create("IMG", {props: {src: "/bitrix/images/1.gif", className: "bxfm-linked", title: params.linkedTitle}});

	if (fromInput.nextSibling)
		fromInput.parentNode.insertBefore(pLink1, fromInput.nextSibling);
	else
		fromInput.parentNode.appendChild(pLink1);

	if (toInput.nextSibling)
		toInput.parentNode.insertBefore(pLink2, toInput.nextSibling);
	else
		toInput.parentNode.appendChild(pLink2);

	pLink1.onclick = pLink2.onclick = function()
	{
		pLink1.className = pLink2.className = bLinked ? "bxfm-unlinked" : "bxfm-linked";
		pLink1.title = pLink2.title = bLinked ? params.unlinkedTitle : params.linkedTitle;
		bLinked = !bLinked;
		if (params.pLinked)
			params.pLinked.value = bLinked ? "Y" : "N";
		if (bLinked)
			translit();
	};

	if (!bLinked)
	{
		bLinked = true;
		pLink1.onclick();
	}
}

fromInput.onmousedown =
fromInput.onkeydown =
fromInput.onchange = function()
{
	if (bLinked)
	{
		if (translitTimeout)
			clearTimeout(translitTimeout);
		translitTimeout = setTimeout(translit, 150);
	}
}

if (bLinked)
	translit();
}