exports.selectRandomArrayItem = function(array){
    return array[Math.floor(Math.random() * array.length)];
};

exports.max = function (value) {
    return Math.max.apply(Math, value.map(function (o) {return o.bid;}));
};

// adjusts setTimeout time so it's in sync with actual time intervals
// e.g. 5 minutes intervals will happen at 10:05/10:10/10:15 regardless of start time
// TODO: add the ability to set the interval in seconds / minutes / hours
exports.make_interval = function (interval) {
    var d = new Date(), min = d.getMinutes(), sec = d.getSeconds();
    return min % interval === 0 && sec === 0 ? 0 : ((60 * (interval - (min % interval))) - sec) * 1000;
};