Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function rand(min, max) {
- return Math.floor( Math.random() * (max - min + 1) ) + min;
- }
- function shuffle(arr) {
- var i = 0, j, swap, len = arr.length;
- while (i < len) {
- j = Math.floor( Math.random() * len );
- swap = arr[j];
- arr[j] = arr[i];
- arr[i++] = swap;
- }
- }
- function parseQS(query) {
- query = ( query[0] == '?' ? query.substr(1) : query ).split('&');
- var i = query.length, temp, obj = {};
- while (i--) {
- temp = query[i].split('=');
- obj[ temp[0] ] = decodeURIComponent( temp[1] );
- }
- return obj;
- }
- function buildQS(obj) {
- var parts = [], name;
- for (name in obj) {
- parts.push( name + '=' + encodeURI( obj[name] ) );
- }
- return '?' + parts.join('&');
- }
- /**
- * Возвращает размер в байтах в понятном для человека формате.
- *
- * @param size размер в байтах, целое число
- * @param std стандарт, 'SI' | 'IEC'
- * @return string
- */
- function formatSize(size, std) {
- if (std) std = std.toLowerCase();
- var i = 0,
- base = std == 'si' ? 1000 : 1024,
- prefixes = ' KMGTPEZY';
- if (size < 1) {
- return 0;
- }
- else if (size >= base) {
- i = Math.floor( Math.log(size) / Math.log(base) );
- if (i >= prefixes.length) return 'N/A';
- size = ( size / Math.pow(base, i) ).toFixed(2) * 1 + ' ';
- }
- return size + prefixes[i] + ( std == 'iec' && i ? 'i' : '' ) + 'B';
- }
- /**
- * Склоняет слово в зависимости от количества.
- *
- * @param count количество
- * @param base основа слова
- * @param ending1 окончание для ед.ч.
- * @param ending2 окончание для мн.ч.
- * @param ending3 еще одно окончание для мн.ч., если не задано, то слово
- * склоняется как в английском
- * @return string
- */
- function pluralize(count, base, ending1, ending2, ending3) {
- base = count + ' ' + base;
- if (ending3 === undefined) {
- return base + ( count == 1? ending1 : ending2 );
- }
- count %= 100;
- count = count > 20 ? count % 10 : count;
- return base + ( count == 0 || count > 4 ? ending3 : count > 1 ? ending2
- : ending1 );
- }
- /**
- * Возвращает продолжительность в понятном для человека формате.
- *
- * @param ms миллисекунды
- * @param ending окончание для слов минута и секунда в ед.ч.
- * @return string
- */
- function formatDuration(ms, ending) {
- ending = ending || 'а';
- var year = 365.25,
- day = 24,
- hour = 60,
- minute = 60,
- second = 1000,
- years = ms / ( year * day * hour * minute * second ),
- days = years % 1 * year, hours = days % 1 * day,
- minutes = hours % 1 * hour,
- seconds = minutes % 1 * minute;
- return ( years >= 1
- ? pluralize( Math.floor(years), '', 'год', 'года', 'лет' )
- + ' ' : '' ) + ( days >= 1
- ? pluralize( Math.floor(days), 'д', 'ень', 'ня', 'ней' )
- + ' ' : '' ) + ( hours >= 1
- ? pluralize( Math.floor(hours), 'час', '', 'а', 'ов' ) + ' ' : '' )
- + ( minutes >= 1
- ? pluralize( Math.floor(minutes), 'минут', ending, 'ы', '' )
- + ' ' : '' ) + pluralize(
- Math.round(seconds), 'секунд', ending, 'ы', ''
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment