/*
---
description: MooTools Filters

license: MIT-style

authors:
- Luzius Kloeti

requires:
core/1.3.1: [ Options, Events ]

provides: [ Helper ]
 */

var Filter = new Class( {
	Implements: [ Options, Events ],
	options: {
		onBeforeFilter: function( unfilteredValue ) {},
		onFiltered: function( filteredValue ) {}
	},
	initialize: function() {},
	filter: function( value ) {
		this.fireEvent( 'beforeFilter', [value] );
		value = value;
		this.fireEvent( 'filtered', [value] );
		return value;
	}
} );


Filter.Filesize = new Class( {
	Implements: [ Filter ],
	filter: function( value ) {
		/* Byte */
		if( value < 1024 ) {
			return value + ' b';
		}
		/* Kilobyte */
		value = (value / 1024);
		if( value < 1024 ) {
			return (value.round(2)) + ' kB';
		}
		/* Megabyte */
		value = (value / 1024);
		if( value < 1024 ) {
			return (value.round(2)) + ' MB';
		}
		/* Gigabyte */
		value = (value / 1024);
		if( value < 1024 ) {
			return (value.round(2)) + ' GB';
		}
		/* Terrabyte */
		value = (value / 1024);
		if( value < 1024 ) {
			return (value.round(2)) + ' TB';
		}
	}
} );
