Hidevar AMAfterCastSetted = 0;
var AutoMoveIndex = 0;
var AutoMoveWhite = new Array();
var AutoMoveProcess = 0;
var AutoMoveState = 0;
var AutoMoveReturnLocation = "Торговый Зал";
var AutoMoveIsCurrReturnLocation = 0;
var AutoMoveTargetLocation = 1;
var AutoMoveTargetLocName = "";
var AutoMoveCoordinator = "";
//выше ничего менять не нужно
var AutoMoveTimeOut = "10";//тайм-аут в минутах для возврата при переходе
var AutoMoveBeforeMove = "1183446360";//номер комплекта, одевающийся перед переходом
var AutoMoveAfterMove = "1180960836";//номер комплекта, одевающийся после перехода
//============Добавляем ники персонажей, которые могут направлять персонажа=======
AutoMoveWhite.push("_Renegat_");
AutoMoveWhite.push("W-W-Web");
AutoMoveWhite.push("Energiya");
AutoMoveWhite.push("Dangerous Mage");
AutoMoveWhite.push("Lenkis");
AutoMoveWhite.push("Nebbia");
AutoMoveWhite.push("Walleery");
AutoMoveWhite.push("Watersky");
AutoMoveWhite.push("tinker-dsc");
AutoMoveWhite.push("Клим Мальгин");
AutoMoveWhite.push("Bittum");
AutoMoveWhite.push("Bloody Hunter");
AutoMoveWhite.push("Giedre");
AutoMoveWhite.push("Dangerous");
AutoMoveWhite.push("Котька Кэт");
AutoMoveWhite.push("Малмекианец");
AutoMoveWhite.push("Чип и Дейл");
AutoMoveWhite.push("The Loney");
AutoMoveWhite.push("Чучик");
AutoMoveWhite.push("King-lir");
AutoMoveWhite.push("x Golden x");
AutoMoveWhite.push("krav");
AutoMoveWhite.push("Ф Е Я");
AutoMoveWhite.push("Zipan");
AutoMoveWhite.push("Василек");
AutoMoveWhite.push("Добродеятель");
AutoMoveWhite.push("А-нгелоче-К");
AutoMoveWhite.push("FASSGEN");
AutoMoveWhite.push("Дикий кролик");           //http://rapidshare.com/files/47267742/automove.js.html
AutoMoveWhite.push("Rual Ilmarranen");
AutoMoveWhite.push("Diamonda");
AutoMoveWhite.push("Император всего");
AutoMoveWhite.push("обитатель");
AutoMoveWhite.push("ADABAS");
AutoMoveWhite.push("Elvin_Q");
AutoMoveWhite.push("Леха Лютый долб");
AutoMoveWhite.push("Мега Батя");
AutoMoveWhite.push("Я круче"); 
//============Конец списка персонажей, которые могут направлять персонажа=========
//ниже ничего менять не нужно
function automove(pluginIndex) {
	AutoMoveIndex = pluginIndex;
	if(AutoMoveState == 0)
	{
		AutoMoveState = 1;
		external.RegisterOnDocumentComplete('AutoMoveChecker'); //зарегистрируем обработчиком событий загрузки документа
		var AutoMovefilter = external.RegisterPluginFilter("AutoMove_Filter");
	    AutoMovefilter.Value = "(?i)(^.*<font class=.*>(.+)<\/font>.*<SPAN>(.+)</SPAN>.*<font color=.*>.*(-->.*"(.+)".*).*<\/font>.*)";
        AutoMovefilter.SysMessagesEnabled = false;
   		AutoMovefilter.OnlySysMessages = false;
    	AutoMovefilter.Plugin = "AutoMoveFilter";
    	AutoMovefilter.Action = 'null';
		alert("Плагин АвтоПерехода включен\n(c) W-W-Web");
		//external.GetShortInfo("W-W-Web","AutoMoveCurrLoc");
		//var AutoMoveProcess = 0;
		//var AutoMoveTargetLocation = 1;
	}
	else
	{
		AutoMoveState = 0;
		external.UnregisterOnDocumentComplete('AutoMoveChecker');//разрегистрируем обработчиком событий загрузки документа
		alert("Плагин АвтоПерехода отключен\n(c) W-W-Web");
		external.UnregisterPluginFilter("AutoMove_Filter");
		var AutoMoveProcess = 0;
		var AutoMoveTargetLocation = 1;
		var AutoMoveTargetLocName = "";
		var AutoMoveCoordinator = "";
	}
	//AutoMoveRegisterFilter();
	external.CheckPluginButton(pluginIndex, AutoMoveState);
}
function AutoMoveSetKmp(id)//AutoMoveSetKmp(AutoMoveBeforeMove);
{
	if(id != "" && !AutoMoveProcess)
	{
		top.cmloc("/main.pl?skmp="+id+"&"+Math.random());
		ahah = setTimeout("top.returned()", 2000);
	}
}
function AutoMoveGoto(locName)
{
	var roomID = external.JumpIDByName(locName);
	//external.QuickJump(roomID);
	external.SilentQuickJump(roomID);
}
/*function AutoMoveRegisterFilter()
{
	var filter = external.RegisterPluginFilter("AutoMove_Filter");
	filter.Value = '(<font class=date(.+?)>(.+?)<\/font>.+\"(.+)\" --> "(.+)"\.)';
    filter.SysMessagesEnabled = true;
   	filter.OnlySysMessages = true;
    filter.Plugin = "AutoMove";
    filter.Action = 'null';
}*/
function AutoMoveFilter(chattxt,private,sender)
{
	var s4 = new String(chattxt[0]);
	login=chattxt[2]; //ник чарушки
	cmd=chattxt[4];//направлене от чарушки
	AutoMoveSetKmp(AutoMoveBeforeMove);
	mmove = setTimeout("AutoMoveFilter2(login,cmd)", 5000);
}
function AutoMoveFilter2(nick,commandz)
{
	//var s4 = new String(chattxt[0]);
	//nick=chattxt[2]; //ник чарушки
	//command=chattxt[4];//направлене от чарушки
	command = commandz.toLowerCase();
	if(AutoMoveIsInWhite(nick) && !AutoMoveProcess && AutoMoveState == 1)
	{
		//если персонаж в белом списке и никто другой не "управляет" персонажем, переходим
		//alert("Sender: " + nick + "; command: " + command);
		AutoMoveCoordinator = nick;
		b = setTimeout("if(AutoMoveTargetLocation && !AutoMoveProcess && AutoMoveState && (AutoMoveTargetLocName != AutoMoveReturnLocation && !AutoMoveIsCurrReturnLocation)){ AutoMoveGoto(AutoMoveReturnLocation); external.AddEvent('Возврат в локацию ' + AutoMoveReturnLocation, true); AutoMoveTargetLocName = AutoMoveReturnLocation; AutoMoveProcess = 1; AutoMoveTargetLocation = 0; }", AutoMoveTimeOut*60*1000);
		external.SendChatMessage("private [" + nick + "] У вас есть " + AutoMoveTimeOut + " минут, после чего персонаж вернется в локацию " + AutoMoveReturnLocation + ". Обратный отсчет начнется сразу же при начале перехода...");
		switch(command)
		{
			case "?":
				external.SendChatMessage("private [" + nick + "] Описание комманд плагина: Введите --> \"команда\" , где команда может быть: зв - Зал Воинов, зв2 - Зал Воинов 2, зв3 - Зал Воинов 3, цп - Центральная Площадь, рз - Рыцарский Зал, ");
				external.SendChatMessage("private [" + nick + "] брм - Башня Рыцарей Магов, э2 - Этаж2, тв - таверна, бк - Бойцовский Клуб, ск - Секретная Комната, залы - Залы, зт - Зал Тьмы, зп -Зал Паладинов, зс - Зал Стихий, бд - Будуар, ");
				external.SendChatMessage("private [" + nick + "] магаз - Магазин, комок - Комиссионка, почта - Почтовое Отделение, опт - Оптовый магазин, лото - Лотерейный дом, стела - Стела Голоса, ");
				external.SendChatMessage("private [" + nick + "] вокзал - Вокзал, страш - Страшилкина улица, банк - Банк, цветы - Цветочный магазин, тз - Торговый Зал");//бс - Башня смерти,
			break;
			case "зв":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Воинов");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Зал воинов";
				AutoMoveGoto("Зал воинов");//Зал Воинов
			break;
			case "зв2":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Воинов 2");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Зал воинов 2";
				AutoMoveGoto("Зал воинов 2");
			break;
			case "зв3":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Воинов 3");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Зал воинов 3";
				AutoMoveGoto("Зал воинов 3");
			break;
			case "цп":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Центральная Площадь");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Центральная Площадь";
				AutoMoveGoto("Центральная Площадь");
			break;
			case "рз":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Рыцарский зал");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Рыцарский зал";
				AutoMoveGoto("Рыцарский зал");
			break;
			case "брм":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Башня рыцарей-магов");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Башня рыцарей-магов";
				AutoMoveGoto("Башня рыцарей-магов");
			break;
			case "тв":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в ");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Таверна";
				AutoMoveGoto("Таверна");
			break;
			case "бк":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Бойцовский Клуб");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Бойцовский Клуб";
				AutoMoveGoto("Бойцовский Клуб");
			break;
			case "э2":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Этаж 2");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Этаж 2";
				AutoMoveGoto("Этаж 2");
			break;
			case "ск":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Секретная Комната");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Секретная Комната";
				AutoMoveGoto("Секретная Комната");
			break;
			case "залы":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Залы");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Залы";
				AutoMoveGoto("Залы");
			break;
			case "зт":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Тьмы");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Зал Тьмы";
				AutoMoveGoto("Зал Тьмы");
			break;
			case "зп":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Паладинов");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Зал Паладинов";
				AutoMoveGoto("Зал Паладинов");
			break;
			case "зс":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Стихий");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Зал Стихий";
				AutoMoveGoto("Зал Стихий");
			break;
			case "бд":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Будуар");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Будуар";
				AutoMoveGoto("Будуар");
			break;
			case "магаз":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Магазин");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Магазин";
				AutoMoveGoto("Магазин");
			break;
			case "комок":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Комиссионка");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Комиссионка";
				AutoMoveGoto("Комиссионка");
			break;
			case "почта":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Почтовое отделение");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Почтовое отделение";
				AutoMoveGoto("Почтовое отделение");
			break;
			case "опт":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Оптовый магазин");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Оптовый магазин";
				AutoMoveGoto("Оптовый магазин");
			break;
			case "лото":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Лотерейный дом");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Лотерейный дом";
				AutoMoveGoto("Лотерейный дом");
			break;
			case "стела":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Стела Выбора");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Стела Выбора";
				AutoMoveGoto("Стела голоса");
			break;
			case "вокзал":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Вокзал");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Вокзал";
				AutoMoveGoto("Вокзал");
			break;
			case "страш":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Страшилкина улица");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Страшилкина улица";
				AutoMoveGoto("Страшилкина улица");
			break;
			case "банк":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Банк");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Банк";
				AutoMoveGoto("Банк");
			break;
			case "цветы":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Цветочный магазин");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Цветочный магазин";
				AutoMoveGoto("Цветочный магазин");
			break;
			case "бс":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Башня смерти");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Башня Смерти";
				AutoMoveGoto("Башня Смерти");//не ходит хз почему...
			break;
			case "тз":
				external.SendChatMessage("private [" + nick + "] Попытка перейти в Торговый Зал");
				AutoMoveProcess = 1;//в процессе перехода - да
				AutoMoveTargetLocation = 0;//у цели перехода - нет
				AutoMoveTargetLocName = "Торговый Зал";
				AutoMoveGoto("Торговый Зал");
			break;
			default:
				external.SendChatMessage("private [ " + nick + " ] не корректная команда, введите --> \"?\"   ддля описания команд");
		}
	}
	else if(AutoMoveIsInWhite(nick) && AutoMoveProcess == 1 && AutoMoveState == 1)
	{
		//если персонаж в белом списке и кто-то другой "управляет" персонажем, не переходим
		//external.AddEvent("if(AutoMoveIsInWhite() && AutoMoveProcess == 1 && AutoMoveState == 1)", true);
		external.SendChatMessage("private [ " + nick + " ] простите, персонаж в состоянии перехода...");
	}
	else if(AutoMoveIsInWhite(nick) && AutoMoveState == 0)
	{
		//плагин отключен
		//external.AddEvent("if(AutoMoveIsInWhite() && AutoMoveState == 0)",true);
		external.SendChatMessage("private [ " + nick + " ] простите, плагин автоперехода отключен");
	}
	else if(!AutoMoveIsInWhite(nick))
	{
		//направляющий не находится в списке персонажей, которые могут урпавлять персонажами
		//external.AddEvent("!AutoMoveIsInWhite()", true);
		external.SendChatMessage("private [ " + nick + " ] простите, направлять моего персонажа могут только персонажи, находящиеся в белом списке, вы в нем отсутствуете...");
	}
	else
		external.AddEvent("else", true);
}
function AutoMoveIsInWhite(login)
{
	for(i = 0; i < AutoMoveWhite.length; i++)
	{
		if(login.toUpperCase() == AutoMoveWhite[i].toUpperCase())
		{
			return 1;//персонаж в белом списке
		}
		/*else
			external.AddEvent("Login:'" + login.toUpperCase() + "'; WhiteLogin:'" + AutoMoveWhite[i].toUpperCase() + "'",true);       */
		/*else
			external.AddEvent("");*/
	}
	return 0;//не найден персонаж
}
function AutoMoveChecker(targetName)
{
	//обработчик обновления верхнего фрейма
	external.GetShortInfo(external.LoggedAs,"AutoMoveCurrLoc");
}
function AutoMoveCurrLoc()
{
	if(!(selfInf=external.LoginInfo))
	{
			external.AddEvent("Не удается установить текущшее положение", true );
			AutoMoveProcess = 0;//в процессе перехода - нет
			AutoMoveTargetLocation = 1;//у цели перехода - да
			return;
	}
	if(selfInf.RoomName == AutoMoveTargetLocName)
	{
		//если комната цели перехода достигнута, шлем в приват "направляющему", что на месте
		if(AutoMoveCoordinator != "")
		{
			external.SendChatMessage("private [" + AutoMoveCoordinator + "] на месте");
		}
		x = setTimeout("AutoMoveProcess = 0;AutoMoveTargetLocation = 1;AutoMoveTargetLocName = '';AutoMoveCoordinator = '';external.AddEvent('Переход завершен',true);AutoMoveSetKmp(AutoMoveAfterMove);", 5*1000);
	}
	else
	{
		if(AutoMoveTargetLocName != "")
		{
			external.AddEvent("Цель: " + AutoMoveTargetLocName + ", текущая локация: " + selfInf.RoomName, true);
		}
	}
	if(selfInf.RoomName == AutoMoveReturnLocation)
	{
		AutoMoveIsCurrReturnLocation =  1;
	}
	else
		AutoMoveIsCurrReturnLocation = 0;
}