// http://akelpad.sourceforge.net/forum/viewtopic.php?p=20177#20177
// Description(1033): The sum of all the numbers contained in the selected text
// Description(1049): Подсчёт суммы всех чисел, содержащихся в выделенном тексте
// Version: 1.2 (2014.12.01)
// Author: VladSh
// 
// Usage:
// 	-"По всему тексту" Call("Scripts::Main", 1, "SumNumbers.js")
// 	-"Только между xml-тэгами" Call("Scripts::Main", 1, "SumNumbers.js", `-qStart="<" -qEnd=">"`)

var str = AkelPad.GetSelText();
if (str) {
	if (WScript.Arguments.length == 2) {
		var qStart = AkelPad.GetArgValue("qStart", "");
		var qEnd = AkelPad.GetArgValue("qEnd", "");
		str = str.replace(new RegExp("[^" + qStart + qEnd + "]*[" + qEnd + "]", "g"), "");
	}
	
	var arr = str.match(/\d+/g);
	if (arr) {
		var sResult = arr[0];
		var nResult = parseInt(sResult);
		for (i = 1; i < arr.length; i++) {
			sResult += " + " + arr[i];
			nResult += parseInt(arr[i]);
		}
		AkelPad.Call("Log::Output", 1, "", "", "", "");	//временный сброс "REPATTERN" и "RETAGS", установленных в диалоге настроек плагина
		AkelPad.Call("Log::Output", 4, sResult + " = " + nResult + "\n", -1, 1);
	}
}