/*
HTTP Host: localhost/ineting
Generated: May 04th 2010 12:38:35 PM PDT
Path: javascript/sprintf.js
*/

var vsprintf=function(str,args)
{if(!args||!args.length)
{return str;}
var out='';var m;var masterIndex=0;var currentIndex;var arg;var instr;var meth;var sign;while(str.length>0)
{if(!str.match(/[%]/))
{out+=str;break;}
m=str.match(/^([^%]+?)([%].+)?$/)
if(m)
{out+=m[1];str=typeof(m[2])?m[2]:'';if(str=='')
{break;}}
if(str.substring(0,2)=='%%')
{str=str.substring(2);out+='%';continue;}
m=str.match(/^[%](?:([0-9]+)\x24)?(\x2B)?(\x30|\x27[^$])?(\x2D)?([0-9]+)?(?:\x2E([0-9]+))?([bcdeEfosuxX])/)
if(m)
{instr=m[7];meth=m[6]||false;sign=m[2]||false;currentIndex=(m[1]?m[1]-1:masterIndex++);if(args[currentIndex])
{arg=args[currentIndex];}
else
{throw('Undefined argument for index '+currentIndex);}
switch(typeof(arg))
{case'number':case'string':case'boolean':break;case'undefined':if(arg==null)
{arg='';break;}
default:throw('Unknown argument type: '+typeof(arg));break;}
switch(instr)
{case'b':if(typeof(arg)!='number')arg=parseInt(arg);arg=arg.toString(2);break;case'c':arg=String.fromCharCode(arg);break;case'd':arg=parseInt(arg);break;case'E':case'e':if(typeof(arg)!='number')arg=parseFloat(arg);if(meth)
{arg=arg.toExponential(meth);}
else
{arg=arg.toExponential();}
if(instr=='E')arg=arg.toUpperCase();break;case'u':arg=Math.abs(parseInt(arg));break;case'f':if(meth)
{arg=parseFloat(arg).toFixed(meth)}
else
{arg=parseFloat(arg);}
break;case'o':if(typeof(arg)!='number')arg=parseInt(arg);arg=arg.toString(8);break;case's':if(typeof(arg)!='string')arg=String(arg);if(meth)
{arg=arg.substring(0,meth);}
break;case'x':case'X':if(typeof(arg)!='number')arg=parseInt(arg);arg=arg.toString(8);if(instr=='X')arg=arg.toUpperCase();break;}
if((instr=='d'||instr=='e'||instr=='f')&&sign&&arg>0)
{arg='+'+arg;}
var repeatChar,repeatCount;if(m[3])
{repeatChar=m[3];}
else
{repeatChar=' ';}
if(m[5])
{repeatCount=m[5];}
else
{repeatCount=0;}
repeatCount-=arg.length;if(repeatCount>0)
{var paddedness=function(str,count)
{var ret='';while(count>0)
{ret+=str;count--;}
return ret;}(repeatChar,repeatCount);if(m[4])
{out+=arg+paddedness;}
else
{out+=paddedness+arg;}}
else
{out+=arg;}
str=str.substring(m[0].length);}
else
{throw('Malformed expression in string: '+str);}}
return out;}
var sprintf=function()
{var args=[];var str=arguments[0];for(i=1,l=arguments.length;i<l;i++)
{args[i-1]=arguments[i];}
return vsprintf(str,args);}
