// © Roman Vernik (Usethics), Russia

function getMaxValue (myArray) {
	if (myArray.constructor.name != "Array") {
		return null;
		exit;
	}
	var myMax = myArray[0];
	for (myCounter = 0; myCounter < myArray.length; myCounter++) {
		myMax = Math.max(myMax, myArray[myCounter]);
	}
	return myMax;
}

with (app) {
	try {
		//Проверяем количество выделенных объектов
		if (selection.length < 2) {
			alert ('Должно быть выбрано 2 или более объекта.');
			exit ();
		}
		//Подготавливаем массивы для информации о выделенных объектах
		var myObjectWidth = new Array();
		var myObjectHeight = new Array();
		//Заполняем массивы
		for (i = 0; i < selection.length; i++) {
			myObjectWidth[i] = selection[i].geometricBounds[3] - selection[i].geometricBounds[1];
			myObjectHeight[i] = selection[i].geometricBounds[2] - selection[i].geometricBounds[0];
		}
		//Вычисляем конечный размер
		var resultWidth = getMaxValue(myObjectWidth);
		var resultHeight = getMaxValue(myObjectHeight);
		//И, наконец, ресайзим!
		for (i = 0; i < selection.length; i++) {
			var myBounds = selection[i].geometricBounds;
			if ((selection[i].geometricBounds[3] != myBounds[1] + resultWidth) || (selection[i].geometricBounds[2] != myBounds[0] + resultHeight)) {
				myBounds[3] = myBounds[1] + resultWidth;
				myBounds[2] = myBounds[0] + resultHeight;
				selection[i].geometricBounds = myBounds;
			}
		}
	} catch(e) {}
}