module.exports = {

name: 'Headings must be in ascending order',

validate: function($, fail) {
  var headings = $('h1, h2, h3, h4, h5, h6');
  var headingLevels = headings.map(function(index, heading) {
    return { heading: heading, level: parseInt(heading.tagName[1]) };
  });
  eachCons(headingLevels, 2).forEach(function(pair) {
    if (pair[1].level > (pair[0].level + 1)) {
      fail("Headings are not in order:", pair[0].heading, pair[1].heading);
    }
  })
}

}

function eachCons(a, n) {

var r = []
for (var i = 0; i < a.length - n + 1; i++) {
  r.push(range(a, i, n))
}
return r

}

function range(a, i, n) {

var r = []
for (var j = 0; j < n; j++) {
  r.push(a[i + j])
}
return r

}