//Создаём Объект Subsys
var req = new Subsys_JsHttpRequest_Js();
req.onreadystatechange = function() {
            if (req.readyState == 4) {
				document.getElementById('results').innerHTML = req.responseText +'<br>'+ document.getElementById('results').innerHTML;
				stopLoader();
            }
        }
req.caching = true;
//Создали ;)
//Поехали
var cmd_arr = Array('');
var cmd_curr = 0;
switch (BrowserDetect.browser) {
	case 'Explorer': var owner = document.body; break;
	case 'Firefox': var owner = window.HTMLElement? window : body; break;
}
owner.onkeydown = function(e) {
	if (!e) e = window.event;
	if (e.ctrlKey && (e.keyCode == 192 || e.keyCode == 96)) {
		uconsole();
	}
	if (e.keyCode == 27) {
		if (document.getElementById('uconsole').style.display != 'none') {
			toggle('uconsole');
			toggle('flashmenu');
		}
	}
}

function scrollCmd(e) {
	if (!e) e = window.event;
	if (e.keyCode == 38) { //Кнопка вверх
		if (cmd_arr.length > cmd_curr) {
			document.getElementById('cmd').value = cmd_arr[cmd_curr];
			if ((cmd_curr-1)<=0){
				cmd_curr = cmd_arr.length-1;
			}else{
				cmd_curr = cmd_curr - 1;
			}
		}
	}
	if (e.keyCode == 40) { //Кнопка вниз
		if (cmd_arr.length > cmd_curr) {
			document.getElementById('cmd').value = cmd_arr[cmd_curr];
			if ((cmd_curr+1)>cmd_arr.length-1){
				cmd_curr = 0;
			}else{
				cmd_curr = cmd_curr + 1;
			}
		}
	}
}

function consoleEffect(obj) {
	if (obj.value == '_') {
		obj.value = '';	
	}
	if (obj.style.textDecoration == 'blink') {
		obj.style.textDecoration = 'none';
	}
}

function startLoader() {
	document.getElementById('cmd').value = 'processing....';
	document.getElementById('cmd').style.textDecoration = 'blink';
}
function stopLoader() {
	document.getElementById('cmd').value = '';
	document.getElementById('cmd').style.textDecoration = 'none';
}

function add_recipient(id,uname,smth) {
	today = new Date();
	yesterday = new Date();
	yesterday.setDate(today.getDate()-2);
	logs_url = 'http://logs.dozory.ru/cgi-bin/userlogcombat.cgi?&sd='+printf('%02d',yesterday.getDate())+'&sm='+printf('%02d',(yesterday.getMonth()+1))+'&sy='+yesterday.getYear()+'&ed='+printf('%02d',today.getDate())+'&em='+printf('%02d',(today.getMonth()+1))+'&ey='+today.getYear()+'&user_id='+id+'&user_type=A&rm=view';
	openwinWH(logs_url,'LogsWindow',830,600);
}

function displayHelp() {
	rslt = document.getElementById('results');
	Text = '<b>команда -help</b> для более детальной помощи<br>';
	Text += '<b>clear</b> : Очистить экран<br>';
	Text += '<b>logs</b> : Просмотр логов Персонажа<br>';
	Text += '<b>analize</b> : Анализатор Логов Персонажа (В разработке)<br>';
	Text += '<b>umap</b> : Поиск Локаций/Зданий в Москве иной (В разработке)<br>';
	Text += '<b>game</b> : Войти в Сумрак<br>';
	Text += '<b>wiki</b> : Поиск по Открытой энциклопедии Дозоров<br>';
	rslt.innerHTML = Text + rslt.innerHTML;
}

function clear(parameters) {
	rslt = document.getElementById('results');
	if (parameters.length >1) {
		Text = 'Используйте <b>clear</b> для очистки консоли<br>';
		rslt.innerHTML = Text + rslt.innerHTML;
	}else{
		rslt.innerHTML = '';
	}
}

function logs(parameters) {
	var uname = '';
	var tmp = Array();
	var i;
	rslt =  document.getElementById('results');
	help = 'Использование: <br> &nbsp;&nbsp; logs -id ИДперсонажа<br> &nbsp;&nbsp; logs -name ИмяПерсонажа<br> &nbsp;&nbsp; logs -n ИмяПерсонажа<br>';
	if (parameters.length < 3) {
		rslt.innerHTML = 'Не хватает параметров для <b>logs</b><br>'+help+rslt.innerHTML;
	}else{
		switch (parameters[1]) {
			case '-id': 
				today = new Date();
				yesterday = new Date();
				yesterday.setDate(today.getDate()-2);
				logs_url = 'http://logs.dozory.ru/cgi-bin/userlogcombat.cgi?&sd='+printf('%02d',yesterday.getDate())+'&sm='+printf('%02d',(yesterday.getMonth()+1))+'&sy='+yesterday.getYear()+'&ed='+printf('%02d',today.getDate())+'&em='+printf('%02d',(today.getMonth()+1))+'&ey='+today.getYear()+'&user_id='+parameters[2]+'&user_type=A&rm=view';
				openwinWH(logs_url,'LogsWindow',830,600);
			break;
			case '-name':
			case '-n':
				for (i=2; i<parameters.length; i++) {
					//uname += parameters[i]+'+';
					tmp.push(parameters[i]);
				}
				uname = tmp.join('+');
				startLoader();
				req.open('POST', 'load.php', true);
				req.send({ name: uname}); break;
			case '-h':
			case '-help': rslt.innerHTML = help+rslt.innerHTML; break;
			break;
		}
	}
}

function wiki(parameters) {
	var i;
	var sterm = '';
	var tmp = Array();
	rslt =  document.getElementById('results');
	help = 'Используйте <b>wiki</b> для поиска по Открытой энциклопедии Дозоров<br>';
	help += 'Использование:<br> &nbsp;&nbsp; <b>wiki -s, -search </b> <i>Поисковое Слово</i><br>';
	help += ' &nbsp;&nbsp; <b>wiki -h, -help</b>: Вызов помощи<br>';
	help += ' &nbsp;&nbsp; <b>wiki -o, -main</b>: Переход на Главную страницу энциклопедии<br>';
	switch (parameters[1]) {
		case '-help': 
		case '-h': 
			rslt.innerHTML = help + rslt.innerHTML;
		break;
		case '-s':
		case '-search': 
			if (parameters.length <3) {
				 rslt.innerHTML = 'Параметр '+parameters[1]+' нуждается в опциях<br>'+help +rslt.innerHTML;
			}else{
				for (i=2; i<parameters.length; i++) {
					//sterm += parameters[i]+'+';
					tmp.push(parameters[i]);
				}
				sterm = tmp.join('+');
				window.open('http://wiki-dozory.msk.ru/index.php?search='+sterm);
			}
		break;
		case 'main':
		case '-o': window.open('http://wiki-dozory.msk.ru/index.php'); break;
		default: rslt.innerHTML = 'Параметры не определены<br>'+help +rslt.innerHTML; break;
	}
}

function game(parameters) {
	rslt =  document.getElementById('results');
	help = '<b>game</b> - Интерфейс вхождения в сумрак<br>';
	help += 'Использование:<br> &nbsp;&nbsp; <b>game -h, -help</b>: Вызов помощи<br>';
	help += ' &nbsp;&nbsp; <b>game -a, -l, -auth, -login</b> [<i>Логин</i> <i>Пароль</i> не обязательно]: Идентификация в Сумраке<br>';
	help += ' &nbsp;&nbsp; <b>game -r, -rescue</b>: Интерфейс Спасения <br>';
	help += ' &nbsp;&nbsp; <b>game -o, -main</b>: Переход на главную страницу Запрещённой Игры<br>';
	help += ' &nbsp;&nbsp; <b>game -p, -portal</b>: Переход на портал Запрещённой Игры<br>';
	help += ' &nbsp;&nbsp; <b>game -n, -news</b>: Оффициальные новости Запрещённой Игры<br>';
	help += ' &nbsp;&nbsp; <b>game -f, -forum, -bb</b>: Сумеречный форум [<b>-newest, -n</b>: Новые сообщения] [<b>-inbox, -i</b>: Личные сообщения]<br>';
	switch (parameters[1]) {
		case '-a':
		case '-l':
		case '-login':
		case '-auth':
			if (parameters.length <4) {
				window.open('http://game.dozory.ru/cgi-bin/login.cgi'); 
			}else{
				window.open('http://game.dozory.ru/cgi-bin/login.cgi?rm=login&login='+parameters[2]+'&passwd='+parameters[3]); 
			} break;
		case '-r':
		case '-rescue': window.open('http://game.dozory.ru/cgi-bin/rescue.cgi');  break;
		case '-o':
		case '-main': window.open('http://dozory.ru/'); break;
		case '-p':
		case '-portal': window.open('http://dozory.ru/cgi-bin/index.cgi'); break;
		case '-n':
		case '-news': window.open('http://dozory.ru/cgi-bin/index.cgi?rm=news'); break;
		case '-f':
		case '-bb':
		case '-forum': 
			if (parameters.length >= 3) {
				switch (parameters[2]) {
					case '-n':
					case '-newest': window.open('http://dozory.ru/bbs/search.php?search_id=newposts'); break;
					case '-i':
					case '-inbox': window.open('http://dozory.ru/bbs/privmsg.php?folder=inbox'); break;
					default : rslt.innerHTML = 'Не определённый Параметр <b>'+parameters[2]+'</b><br>'+help + rslt.innerHTML; break
				}
			}else{
				window.open('http://dozory.ru/bbs/');
			} 
			break;
		case '-h':
		case '-help': rslt.innerHTML = help + rslt.innerHTML; break;
		default : rslt.innerHTML = 'Параметры не определены<br>'+help + rslt.innerHTML; break
	}
}

function processCmd() {
	cmd = document.getElementById('cmd').value;
	cmd_arr[cmd_arr.length] = cmd;
	cmd_curr = (cmd_arr.length-1);
	rslt =  document.getElementById('results');
	document.getElementById('cmd').value = '';
	rslt.innerHTML = '<b style="color: #CCCCCC">'+cmd+'</b><br>'+rslt.innerHTML;
	parameters = cmd.split(' ');
	switch (parameters[0]) {
		case 'help': displayHelp(); break;
		case 'clear': clear(parameters); break;
		case 'logs': logs(parameters); break;
		case 'wiki': wiki(parameters); break;
		case 'game': game(parameters); break;
		case 'exit': uconsole(); break;
		default: rslt.innerHTML = 'Неизвестная команда <b>'+parameters[0]+'</b><br><b>команда help</b> для вызова помощи<br>'+rslt.innerHTML; break;
	}
}

function uconsole() {
	if (top.document.getElementById('uconsole') == null) {
		with (top.document) {
			div = body.insertBefore(createElement('div'), body.childNodes[0]);	
			//div = document.createElement('div');
		}
		with (div.style) {
			background = 'black';
			zIndex = 999999999;
			position = 'absolute';
			textAlign = 'left';
			padding = '4px';
			margin = '0px';
			width = '60%';
			top = '0px';
			left = '5px';
			filter = 'alpha(opacity=90)';
			opacity = '0.90';
			maxWidth = (screen.width-30) + 'px';
			height = '200px';
			border = '1px solid black';
			color = '#00EE00';
			//font = 'normal "Courier new", Courier';
		}
		div.id = 'uconsole';
		document.body.appendChild(div);
		div.innerHTML = '<form onSubmit="processCmd(); return false;"><nobr>uconsole# <input id="cmd" style="text-decoration: blink;" type="text" class="cmd" value="_" onKeyDown="javascript: consoleEffect(this);" onKeyUp="javascript: scrollCmd(event);"><nobr></form>';
		div.innerHTML += '--------------------------------------------------------------<br>';
		div.innerHTML += '<div id="results" style="width:100%; height: 170px; overflow: auto;" onClick="javascript: document.getElementById(\'cmd\').focus();"><b>help</b> для вызова помощи</div>';
		document.getElementById('cmd').focus();
		toggle('flashmenu');
	}else{
		toggle('uconsole');
		toggle('flashmenu');
	}
}