Cyber Anakins Lightsaber - A Minishell-based backdoor

Current Path : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/
Upload File :
Current File : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/faqeditor.js

function openFAQDialog(text)
{
	var dlg = openDialogBoxWithButtons("Часто задаваемые вопросы", 800, 430);


	var toolBar = createToolBar(dlg.innerElement);
	toolBar.style.width="100%";
	createSpeedButton(toolBar, "plus.gif", "Добавить",
		function()
		{
			var block = scrollBox.appendChild(createBlock('',''));
			scrollBox.scrollTop=1000000000;
			block.qEditor.focus();
		});

	var delBtn = createSpeedButton(toolBar, "del.png", "Удалить",
		function()
		{
			if (!activeBlock) return;

			yesNoDialog("Удалить данный вопрос?","Удаление",
				function()
				{
					if (!activeBlock) return false;
					scrollBox.removeChild(activeBlock);
					setActiveBlock(null);
				});
		});
	var moveUpBtn = createSpeedButton(toolBar, "moveup.png","Переместить выше",
		function()
		{
			if (activeBlock && activeBlock.previousSibling)
			{
				var prevBlock = activeBlock.previousSibling;
				scrollBox.removeChild(activeBlock);
				scrollBox.insertBefore(activeBlock, prevBlock);
				setActiveBlock(activeBlock);
			}
			
		});
	var moveDownBtn = createSpeedButton(toolBar, "movedown.png","Переместить ниже",
		function()
		{
			if (activeBlock && activeBlock.nextSibling)
			{
				var nextBlock = activeBlock.nextSibling.nextSibling;
				scrollBox.removeChild(activeBlock);

				if (!nextBlock)
					scrollBox.appendChild(activeBlock);
				else
					scrollBox.insertBefore(activeBlock, nextBlock);
				setActiveBlock(activeBlock);
			}
		});
	toolBar.end();


	delBtn.setDisabled(true);
	moveUpBtn.setDisabled(true);
	moveDownBtn.setDisabled(true);


	var scrollBox = dlg.innerElement.appendChild(document.createElement('DIV'));
	scrollBox.style.overflowY="scroll";
	scrollBox.style.border="1px solid #666666";
	scrollBox.style.padding="4 4 4 4";
	scrollBox.style.width=788;
	scrollBox.style.height=400;
	scrollBox.style.backgroundColor="#99AABB";

	var activeBlock = null;

	var setActiveBlock = function(block)
	{
		activeBlock = block;
		if (activeBlock)
		{
			moveUpBtn.setDisabled(!activeBlock.previousSibling);
			moveDownBtn.setDisabled(!activeBlock.nextSibling);
			delBtn.setDisabled(false);
		}
		else
		{
			moveUpBtn.setDisabled(true);
			moveDownBtn.setDisabled(true);
			delBtn.setDisabled(true);
		}
	}

	var createBlock = function(question,answer)
	{
		var div = document.createElement('DIV');
		div.style.marginTop=4;
		div.style.marginBottom=4;
		div.style.border="1px solid #6699CC";
		div.style.backgroundColor="e0e0e0";
		div.style.borderRadius="10px";
		div.style.padding="8 8 8 8";

		var qEditor = div.appendChild(createInput('text'));
		qEditor.style.width="100%";
		qEditor.placeholder="Вопрос";
		qEditor.value = question;
		qEditor.block = div;
		qEditor.onfocus = function()
			{
				setActiveBlock(this.block);
			};
		div.qEditor = qEditor;


		var aEditor = div.appendChild(document.createElement('TEXTAREA'));
		aEditor.style.marginTop=4;
		aEditor.style.width="100%";
		aEditor.rows=4;
		aEditor.placeholder="Ответ";
		aEditor.value=answer.replace("</p><p>","\r\n");
		aEditor.block = div;
		div.aEditor=aEditor
		aEditor.onfocus = function()
			{
				setActiveBlock(this.block);
			};	

		return div;
	}


	text = text.split(/[\r]{0,1}\n/);

	for(var i=0; i < text.length; i++)
	{
		var g = text[i].match(/^(.*)\t(.*)$/);
		if (g)
		{
			scrollBox.appendChild(createBlock(g[1], g[2]));
		}
	}

	var btn = dlg.buttonPanel.appendChild(createInput('button'));
	btn.value="OK";
	btn.onclick=function()
		{
			var text = '';
			var block = scrollBox.firstChild;
			while(block)
			{
				if (block.qEditor)
				{
					var q = block.qEditor.value.trim().replace(/\r/g,'').replace(/[\n\t]+/g,' ');
					var a = block.aEditor.value.trim().replace(/\r/g,'').replace(/\t/g,' ').replace(/\n/g,'</p><p>');

					if (text!='') text+='\r\n';
					text+=q+"\t"+a;
				}
				block = block.nextSibling;
			}


			var btn = this;
			btn.disabled=true;
			sendXHR('api.php','action=faq:set&text='+encodeURIComponent(text),
				function()
				{
					dlg.close();
					location.reload();
				},
				function(error)
				{
					btn.disabled=false;
					errorBox(error);
				});	
		};

	btn = dlg.buttonPanel.appendChild(createInput('button'));
	btn.value="Закрыть";
	btn.onclick=function()
		{
			dlg.close();
		};


	dlg.alignInScreenCenter();
}


function editFAQ()
{
	sendXHR("faq.txt?rnd="+Math.random(),null,openFAQDialog,function(error) { errorBox(error); });
}

May the force be with you, always.