/* =================================================================================================
* Time Since
* Mark Wubben, January 16, 2004
*/
var _collStructs;
function toTimeSinceString(nDate, nLimit, sBetween, sLastBetween){
	//alert("time since...");
        if(!nLimit){ nLimit = 2; }
        if(!sBetween){ sBetween = ", "; }
        if(!sLastBetween){ sLastBetween = " and "; }
        if(!_collStructs){
                _collStructs = new Array(
                        {seconds: 60 * 60 * 24 * 365, name: "year"},
                        {seconds: 60 * 60 * 24 * 30, name: "month"},
                        {seconds: 60 * 60 * 24 * 7, name: "week"},
                        {seconds: 60 * 60 * 24, name: "day"},
                        {seconds: 60 * 60, name: "hour"},
                        {seconds: 60, name: "minute"}
                );
        }

        var collStructs = _collStructs;
        var nSecondsRemain = ((new Date).valueOf() - nDate.valueOf()) / 1000;
        var sReturn = "";
        var nCount = 0;
        var nFloored;

        for(var i = 0; i < collStructs.length && nCount < nLimit; i++){
                nFloored = Math.floor(nSecondsRemain / collStructs[i].seconds);
                if(nFloored > 0){
                        if(sReturn.length > 0){
                                if(nCount == nLimit - 1 || i == collStructs.length - 1){
                                        sReturn += sLastBetween;
                                } else if(nCount < nLimit && i < collStructs.length){
                                        sReturn += sBetween;
                                }
                        }
                        sReturn += nFloored + " " + collStructs[i].name;
                        if(nFloored > 1){
                                sReturn += "s";
                        }
                        nSecondsRemain -= nFloored * collStructs[i].seconds;
                        nCount++;
                }
        }
	//alert(sReturn);
        return sReturn;
}

