BwClasses["BwNumber"] = BwNumber;

function BwNumber ()
{
	this.isa = BwWidget;
	this.isa();
	
	this.initFromDOM = BwNumber.initFromDOM;
	
	this.setValue = BwNumber.setValue;
	this.getValue = BwNumber.getValue;

    /* for ranking number */
    this.rank = 0;
    this.numberLengthMax = 0;
	this.addZero = BwNumber.addZero;
}

BwNumber.newInstance = function (number, numberLengthMax)
{
    var self = document.createElement ("DIV");

	self.BwClass = BwNumber;
	self.BwClass();
	
	self.className = "BwLabel";
	
	if (number)
	{
		self.setAttribute ("text", number);
		this.rank = BwNumber.addZero(number, numberLengthMax);
        /* alert('number: '+number+', numberLengthMax:'+numberLengthMax+', rank:'+this.rank); */
        this.numberLengthMax = numberLengthMax;
        self.setAttribute ("numberLengthMax", numberLengthMax);
	}
	
	self.initFromDOM();
    return self;
};

BwNumber.initFromDOM = function ()
{
	BwWidget.initFromDOM.call (this);
	
	this.style.display="inline";
	this.style.MozUserSelect="none";
	this.style.cursor="default";
	this.onselectstart=function(){return false;};

	var txt = this.getAttribute ("text");
	if (txt != null) {
		this.setValue(txt);
	}
	return false;
};

BwNumber.getValue = function ()
{
	return this.rank;
};

BwNumber.setValue = function (txt)
{
	this.innerHTML = txt;
    var numberLengthMaxTmp = this.getAttribute ("numberLengthMax");
    if ((txt+'').length > numberLengthMaxTmp) {
        this.numberLengthMax = txt.length;
    }
    else
    {
        this.numberLengthMax = numberLengthMaxTmp;
    }
    this.rank = BwNumber.addZero(txt, this.getAttribute ("numberLengthMax"));
};

BwNumber.addZero = function (number, numberLengthMax)
{
    var result ='';
    var length = (number+'').length;
    /* alert('number:'+number+', length :'+length+''+' ,numberLengthMax:'+numberLengthMax); */
    for (length; length < numberLengthMax; length++) {
        result += '0';
    }
    result += number;

    return result;
};
