Erro ao efetuar Multiplicação

Boa noite, tenho um código que efetua a multiplicação do valor de um produto com a quantidade, so que quando tenho um valor acima de mil ele me retorna um valor errado!
Exemplo: Preço do produto é 2.599,29 quando altero a quantidade para 2 vai para o valor de 5,20. Como consigo resolver?

Tem como colocar o código relacionado?

o código e este

		function id(el){
			return document.getElementById( el );											
		}
		function total( un, qnt ) {
		  return parseFloat(un.replace(',', '.'), 10) * parseFloat(qnt.replace(',', '.'), 10);
		}
		window.onload = function() {
		  id('preco').addEventListener('keyup', function() {
			var result = total( this.value , id('qnt').value );
			id('total').value = String(result.toFixed(2)).formatMoney();
		  });

		  id('qnt').addEventListener('keyup', function(){
			var result = total( id('preco').value , this.value );
			id('total').value = String(result.toFixed(2)).formatMoney();
		  });
		}
		
		String.prototype.formatMoney = function(){
			var v = this;
			
			if(v.indexOf('.') === -1){
				v = v.replace(/([\d]+)/,"$1,00");
			}
			v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
			v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
			v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3");

			return v;
		};

Os id’s qtn, preco, total são os nomes dos meus input no html!