input currency

This will add the input currency mark in front of the amount entered. It will also format the currency.

HTML

<input type="text" value="Enter Amount" title="Enter Amount" placeholder="Enter Amount" data-currency="USD" />

JavaScript

(function($){
    $.fn.currencyFormatter = function(){
        this.each(function(i,l){
            var $l = $(l), currency;
            switch($l.data("currency")){
                default: currency = {
                    symbol: "$",
                    round: 2,
                    decicmal:".",
                    thousands: ","
                }
                    break;
            }
            $l.focus(function(){
                if($l.val() == $l.attr("title")){
                    $l.val("");
                }
            }).blur(function(){
                if($l.val() == "$0.00" || $l.val() === ""){
                    $l.val($l.attr("title"));
                }
            }).change(function(){
                var val = $l.val().replace(/[^0-9\-\.]/g,""),
                    sign = "",
                    sval = val.split(".");
                if(sval.length > 2)
                    sval[0] = val.substring(0,val.length - val[sval.length-1].length);
                if(sval.length < 2){
                    sval[1] = "00";
                }
                var i = sval[0];
                if(sign == "-"){
                    i = i.substr(1);
                    sign = "-";
                }
                decimal = sval[sval.length-1];
                while(decimal.length < currency.round)
                    decimal += "0";
                if((parseInt(decimal[currency.round]) < 5))
                {
                    decimal = decimal.substr(0, currency.round);
                }else{
                    while(decimal.length > currency.round){
                        if((parseInt(decimal[decimal.length-1]) < 5))
                        {
                            decimal = decimal.substr(0, decimal.length-2);
                        }else{
                            var rounded = parseInt(decimal[decimal.length-2]);
                            rounded++;
                            decimal = decimal.substr(0, decimal.length-2) + rounded;
       ...