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


String.prototype.trimRight=function() // убирает все пробелы в конце строки
{
  return this.replace(/\s+$/,'');
}

String.prototype.trimLeft=function() // убирает все пробелы в начале строки
{
  return this.replace(/^\s+/,'');
}

String.prototype.trim=function()	 // убирает все пробелы в начале и в конце строки
{
  return this.trimRight().trimLeft();
}




function main(){
	var s,n,FSO,f,i,ss;
	var args = WScript.Arguments;
	var 

	newExt=".bak"

	if (args.length>0){ 
		if (args.item(0) == "?"){
			WScript.Echo("Создание файлов properties из текстового файла\nПример:\n\tcode.jc МойТекст.txt - создать новые properties из указазанного файла\n\tЕсли файл не указан используется deco.txt\nСуществующие файлы properties переименоваываются в *.bak!") 
			return
		}
		inFile=args.item(0)
	}else
		inFile="deco.txt"
	


	FSO = new ActiveXObject("Scripting.FileSystemObject");
	f = FSO.OpenTextFile(inFile, 1, -2);

	initdic()
	
	s = ""
	while (!f.AtEndOfStream){
		ch = f.Read(1)
		if (ch==String.fromCharCode(9)) {
			s += "\\t"
			continue
		}
		if (ch==String.fromCharCode(13)) {
			continue
		}
		if (ch==String.fromCharCode(10)) {
			s += "\\n"
			continue	
		}
		dAlfa.exists(ch) ? s+="\\u"+dAlfa.item(ch) : s+=ch
	}
	
	f.Close()


//	var outFile = "OutFile.txt";
	var outFile=FSO.GetSpecialFolder(2)+"\\"+FSO.GetTempName()
//	var outFile=FSO.GetTempName()

	var fo = FSO.CreateTextFile(outFile);

	s=s.replace(/file/g, String.fromCharCode(13,10)+"file")
	s=s.replace(/Name/g, String.fromCharCode(13,10)+"Name")
	s=s.replace(/Short/g, String.fromCharCode(13,10)+"Short")
	s=s.replace(/Description/g, String.fromCharCode(13,10)+"Description")
//	s=s.replace(/\\n\\n/g, "\\n")
	s=s.replace(/properties\\n/g, "properties")

	fo.WriteLine(s)
	fo.Close()
	
	nf=0
	s=""
	inFile=outFile

	var fo
//	WScript.Echo(inFile);
	
	f = FSO.OpenTextFile(inFile, 1, -2);

	while (!f.AtEndOfStream){
		s = f.ReadLine()
//		WScript.Echo(s);
		if (s.trim() == "")
			continue

		n = s.indexOf("file ")
		if (n != -1){
//			WScript.Echo("файл",s);
			if (nf > 0)
				fo.CLose()

			pFileName=s.slice(n+5).trim()

			if (FSO.FileExists(pFileName))
				try{
					FSO.CopyFile(pFileName, pFileName+newExt, true)	//с перезаписью
				}catch(e){
					if (e!=0) {
						WScript.Echo("Ошибка копирования "+pFileName)
						continue
					}
				} 	
			
	
			fo = FSO.CreateTextFile(pFileName)
	//		WScript.Echo("Создан :"+pFileName);		
			nf++
			continue
		} 

		n = s.indexOf("Short")
		if (n !=-1)
			s=s.replace(/\\n/g,"")

		n = s.indexOf("Name")
		if (n !=-1)
			s=s.replace(/\\n/g,"")

		n = s.indexOf("Description\\n")
		if (n !=-1)
			s=s.replace(/^Description\\n/,"Description ")
		
		fo.WriteLine(s)
	}
	
	if (nf > 0)
		fo.CLose()

	f.Close()

	dAlfa.RemoveAll()	//очистим словарь 

	FSO.DeleteFile(inFile)	//удалим временный файл
	
	WScript.Echo("Files created :" + nf)
}

function initdic(){
//	dAlfa.CompareMode = 1;

	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");
}                 




main()		