Во-первых, код неаккуратный, тяжело прочитать.
Во-вторых, ты фанатеешь от document.write. А чем тебе не нравится работа с DOM-деревом через appendChild или JQuery.append() ? Вот почитай
http://learn.javascript.ru/document-write
В-третьих, мухи, котлеты и все прочее у тебя перемешано. Скрипты лучше не размазывать по всей странице...
Далее, твоя addrow() создает строку для добавления новой позиции. Либо тебе надо сделать кнопку, чтобы пользователь кликнул по ней и пошла проверка введенных данных (сейчас там только поля для ввода создаются), либо на всех полях отслеживать нажатие Ввода (то ли keypress, то ли keydown - сам никак не запомню) и инициировать проверку введенных данных. В ней, если все ОК, то сначала строишь новый объект типа new product(), который методом push или items[items.length - 1] кладешь в массив items. Разумеется, items надо объявить так, чтобы он был доступен во всех необходимых областях видимости. Далее вызываешь сортировку массива в своей функции sorted(), а дальше с помощью appendChild() перестраиваешь таблицу. Поскольку все эти операции совершаются с одним единственным элементом, на твоем месте я бы предусмотрел поиск позиции для вставки единственного элемента в массив и также вставку единственного элемента в таблицу - это работало бы намного быстрее, чем новая обработка всех данных, несмотря на более сложный код.