
var TextEditor="swriter"		//открыть тектовый редактор	

var dAlfa = new ActiveXObject("Scripting.Dictionary");	//словарь символов KOI8RU

main()

function main(){
	var i,ss,
		args = WScript.Arguments,
		OutFile			//файл текстов миссий по умолчанию
	
	args.length>0 ? OutFile=args.item(0): OutFile="deco.txt";

	if (OutFile == "?"){
		WScript.Echo("Копирование файлов properties в файл\n	deco.js [файл] и редактирование файла.\n ")
		return
	}
	
	var WS = WScript.CreateObject("WScript.Shell"),
		Directory = WS.CurrentDirectory,
		FSO = new ActiveXObject("Scripting.FileSystemObject"),
		fld = FSO.GetFolder(Directory),
		fc = new Enumerator(fld.files);

							//сохраним предыдущий файл
	if (FSO.FileExists(OutFile))
		try {
			FSO.CopyFile(OutFile,OutFile+".bak",true)
		}catch(e){
			if (e!=0) {
				WScript.Echo("Ошибка создания файла "+OutFile+".bak")
				return
			}
		} 	


						//создадим новый файл
	try {
		var fo = FSO.CreateTextFile(OutFile, true, false)
	}catch(e){
		if (e!=0) {
			WScript.Echo("Ошибка создания файла "+OutFile)
			return
		}
	} 	
	
	initdict()				//словарь перекодировки инициализируем

	//обработка всех _ru.properties в текущем каталоге
	for (; !fc.atEnd(); fc.moveNext()){
		s = fc.item();
		if (FSO.GetExtensionName(s)=='bak')
			continue
		if (s.Name.indexOf('_ru.properties') != -1)
			decofile(s,fo);		//перекодируем очередной файл
	}
	
	dAlfa.RemoveAll()	//очистим словарь 	
	
	fo.close()

	showFile(OutFile);
}

//перекодировка koi8ru в cp1251
function decofile(fil,fo){
	var FSO = new ActiveXObject("Scripting.FileSystemObject");
	var f = FSO.OpenTextFile(fil, 1, -1);
	var s, sr, i;
	ch=""
	ss=""
	fo.WriteLine("    file "+fil)
	while (!f.AtEndOfStream){
		s = f.ReadLine()
		sr=""
//		s=s.replace(/\\n/g,"\\u00nn")
//		s = s.replace(/\\n/g, ""+asc(13)+asc(10) )
		s = s.replace(/\\n/g, String.fromCharCode(13, 10))
		s = s.replace(/\\t/g, String.fromCharCode(9))

		ss = s.split(/\\u/);

		for (i in ss){
			ch=ss[i].slice(0,4)
			dAlfa.exists(ch) ? sr+=dAlfa.item(ch) : sr+=ch
			sr+=ss[i].slice(4)
		}
		fo.WriteLine(sr)
	}
	f.close()
}

//редактирование файла
function showFile(ofil){
	var oShell = WScript.CreateObject("WScript.Shell");
	oShell.Run(TextEditor+" "+ofil);
}

//таблица перекодировки
//Если в тексте появляются "странные" симполы, то их код и значение можно добавить в таблицу
//перекодировк без начаьлных символов \u
function initdict(){
	dAlfa.CompareMode = 1;

	dAlfa.add("00nn","\x0d\x0a");
	dAlfa.add("00AB","«");
	dAlfa.add("00BB","»");

	dAlfa.add("0430","а");
	dAlfa.add("0431","б");
	dAlfa.add("0432","в");
	dAlfa.add("0433","г");
	dAlfa.add("0434","д");
	dAlfa.add("0435","е");
	dAlfa.add("0451","ё");
	dAlfa.add("0436","ж");
	dAlfa.add("0437","з");
	dAlfa.add("0438","и");
	dAlfa.add("0439","й");
	dAlfa.add("043A","к");
	dAlfa.add("043B","л");
	dAlfa.add("043C","м");
	dAlfa.add("043D","н");
	dAlfa.add("043E","о");
	dAlfa.add("043F","п");
	dAlfa.add("0440","р");
	dAlfa.add("0441","с");
	dAlfa.add("0442","т");
	dAlfa.add("0443","у");
	dAlfa.add("0444","ф");
	dAlfa.add("0445","х");
	dAlfa.add("0446","ц");
	dAlfa.add("0447","ч");
	dAlfa.add("0448","ш");
	dAlfa.add("0449","щ");
	dAlfa.add("044A","ъ");
	dAlfa.add("044B","ы");
	dAlfa.add("044C","ь");
	dAlfa.add("044D","э");
	dAlfa.add("044E","ю");
	dAlfa.add("044F","я");
	dAlfa.add("0410","А");
	dAlfa.add("0411","Б");
	dAlfa.add("0412","В");
	dAlfa.add("0413","Г");
	dAlfa.add("0414","Д");
	dAlfa.add("0415","Е");
	dAlfa.add("0401","Ё");
	dAlfa.add("0416","Ж");
	dAlfa.add("0417","З");
	dAlfa.add("0418","И");
	dAlfa.add("0419","Й");
	dAlfa.add("041A","К");
	dAlfa.add("041B","Л");
	dAlfa.add("041C","М");
	dAlfa.add("041D","Н");
	dAlfa.add("041E","О");
	dAlfa.add("041F","П");
	dAlfa.add("0420","Р");
	dAlfa.add("0421","С");
	dAlfa.add("0422","Т");
	dAlfa.add("0423","У");
	dAlfa.add("0424","Ф");
	dAlfa.add("0425","Х");
	dAlfa.add("0426","Ц");
	dAlfa.add("0427","Ч");
	dAlfa.add("0428","Ш");
	dAlfa.add("0429","Щ");
	dAlfa.add("042A","Ъ");
	dAlfa.add("042B","Ы");
	dAlfa.add("042C","Ь");
	dAlfa.add("042D","Э");
	dAlfa.add("042E","Ю");
	dAlfa.add("042F","Я");
}

