/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function _StringFormatInline()
{
    var txt = this;
    for(var i=0;i<arguments.length;i++)
    {
        var exp = new RegExp('\\{' + (i) + '\\}','gm');
        txt = txt.replace(exp,arguments[i]);
    }
    return txt;
}

function _StringFormatStatic()
{
    for(var i=1;i<arguments.length;i++)
    {
        var exp = new RegExp('\\{' + (i-1) + '\\}','gm');
        arguments[0] = arguments[0].replace(exp,arguments[i]);
    }
    return arguments[0];
}

function _StringUnformatInline( pattern )
{
    return _StringUnformatStatic( pattern, this );
}

function _StringUnformatStatic( pattern, text )
{
    for ( var token = 0; token < 10; token++ )
    {
        pattern = pattern.replace( new RegExp( "\\{" + token + "\\}", "i" ), "(.*?)");
        pattern = pattern.replace( new RegExp( "\\{" + token + "\\}", "gi" ), "\\" + (token + 1));
    }

    var results = new RegExp("^" + pattern + "$").exec(text);
    results.splice(0, 1);
    return results;
}

if(!String.prototype.format)
{
    String.prototype.format = _StringFormatInline;
}

if(!String.format)
{
    String.format = _StringFormatStatic;
}

if (!String.prototype.unformat)
{
    String.prototype.unformat = _StringUnformatInline;
}

if (!String.unformat)
{
    String.unformat = _StringUnformatStatic;
}
