// Common routines for handling archives.

init("archive");

var Archive = {
    nFiles:  0,         // number of files in archive
    nDirs:   0,         // number of directories in archive
    nSize:   0,         // total unpacked size of all files
    nPacked: 0,         // total packed size of all files

    // Add an entry, updating the counts and sizes.
    add: function(nSize,nPacked,bDir)
    {
        if(bDir)
        {
            this.nDirs++;
        }
        else
        {
            this.nFiles++;
            this.nSize+=nSize;
            this.nPacked+=nPacked;
        }
    },

    // Return the contents according to what was found - "P%,F files,D dirs".
    contents: function()
    {
        var sContents="";
        if(this.nSize!=0)
        {
            sContents=(this.nPacked/this.nSize*100).toFixed(1)+"%";
        }
        if(this.nFiles!=0)
        {
            sContents=sContents.append(this.nFiles+(this.nFiles==1?" file":" files"));
        }
        if(this.nDirs!=0)
        {
            sContents=sContents.append(this.nDirs+(this.nDirs==1?" dir":" dirs"));
        }
        return sContents;
    }
}
