var TextEditor="notepad"	//для вызова другой программы

var dAlfa = new ActiveXObject("Scripting.Dictionary");

main()

function main(){
	var i,ss,
		args = WScript.Arguments,
		OutFIle;

	args.length>0 ? inFile=args.item(0): inFile="?"

	if (inFile == "?"){
		WScript.Echo("Просмотр файлов properties\n	showprop.js файл")
		return
	}
	
	var fso = new ActiveXObject("Scripting.FileSystemObject");

	s="";
	if (fso.GetExtensionName(inFile)=='properties'){
		initdict()			//словарь инициализируем
		decof(inFile); 
		dAlfa.RemoveAll()	//очистим словарь 	
	}	
}


function decof(fil){

	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var f = fso.OpenTextFile(fil, 1, -1);
	var s, sr, i;
	var OutFile=fso.GetSpecialFolder(2)+"\\"+fso.GetTempName()+".txt",
		fo = fso.CreateTextFile(OutFile, true, false);

	ch=""
	ss=""

	while (!f.AtEndOfStream){
		s = f.ReadLine()
		sr=""
		s=s.replace(/\\n/g,"\\u00nn")
		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()
	fo.close()
	showFile(OutFile)
}


//просмотр и удаление временного файла
function showFile(ofil){
	var oShell = WScript.CreateObject("WScript.Shell");
	oShell.Run(TextEditor+' ' +ofil);
	WScript.Sleep(3000)
	FSO = new ActiveXObject("Scripting.FileSystemObject")
	FSO.DeleteFile(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","Я");
}



