function wrapIndex( idx, max ) {
	var mp1 = max + 1;
	if ( idx < 0 ) {
		idx += mp1; // slight optimization to avoid modulo arithmetic when |idx| <= max+1
		if ( idx < 0 ) {
			idx %= mp1;
			if ( idx !== 0 ) {
				idx += mp1;
			}
		}
		return idx;
	}
	if ( idx > max ) {
		idx -= mp1; // slight optimization to avoid modulo arithmetic when max+1 < idx <= 2*(max+1)
		if ( idx > max ) {
			idx %= mp1;
		}
		return idx;
	}
	return idx;
}
Wraps an index on the interval `[0,max]`.

@param {integer} idx - index
@param {NonNegativeInteger} max - maximum index
@returns {NonNegativeInteger} index

@example
var idx = wrapIndex( -1, 10 );
// returns 10

idx = wrapIndex( 13, 10 );
// returns 2

idx = wrapIndex( 6, 10 );
// returns 6