$(function() {
  $('input#copies, input#pages').live('keyup', calculatePrices);
});

function calculatePrices() {
  var copies = parseInt($('input#copies').val());
  var pages = parseInt($('input#pages').val());
  var copies_error = false;
  var pages_error = false;
  
  if (!copies || copies < 15) {
    $('input#copies').addClass('error');
    copies_error = true;
  }
  else {
    $('input#copies').removeClass('error');
    copies_error = false;
  }
  
  if (!pages || pages < 28 || pages > 220) {
    $('input#pages').addClass('error');
    pages_error = true;
  }
  else {
    $('input#pages').removeClass('error');
    pages_error = false;
  }
  
  if (copies_error || pages_error) {
    $('#st .price').addClass('info').html('15+ copies<br/>28&ndash;60 pages');
    $('#pb .price, #lh .price').addClass('info').html('15+ copies<br/>28&ndash;220 pages');
    $('#le .price').addClass('info').html('50+ copies<br/>50&ndash;220 pages');
  }
  else {
    $('.price').removeClass('info');
  
    for (var index in prices['pb_copy_range']) {
      var range = prices['pb_copy_range'][index];
      
      if (copies >= range[0] && copies <= range[1]) {
        var row = index;
        break;
      }
    }
    
    if (typeof(row) == 'undefined') {
      var row = prices['pb_copy_range'].length - 1;
    }
    
    for (var index in prices['pb_page_range']) {
      var range = prices['pb_page_range'][index];
      
      if (pages >= range[0] && pages <= range[1]) {
        var col = index;
        break;
      }
    }
    
    if (typeof(col) == 'undefined') return false;
    
    var price = prices['pb_price_grid'][row][col].toFixed(2);
    
    var re = /([0-9]{1,2}).([0-9]{2})/;
    var price_split = re.exec(price);
    
    if (pages < 61) {
      $('#yearbook-prices #st .prices .price').removeClass('info');
      $('#yearbook-prices #st .prices .price, #yearbook-prices #pb .prices .price').html('&pound;' + price_split[1] + '<span class="pence">.' + price_split[2] + '</span>');
    }
    else {
      $('#yearbook-prices #st .prices .price').addClass('info').html('15+ copies<br/>28&ndash;60 pages');
      $('#yearbook-prices #pb .prices .price').html('&pound;' + price_split[1] + '<span class="pence">.' + price_split[2] + '</span>');
    }
    
    var lh_price = (parseFloat(price) + 4).toFixed(2);
    var lh_price_split = re.exec(lh_price);
     
    $('#yearbook-prices #lh .prices .price').html('&pound;' + lh_price_split[1] + '<span class="pence">.' + lh_price_split[2] + '</span>');
    
    if (pages >= 50 && copies >= 50) {
      var le_price = (parseFloat(price) + 6).toFixed(2);
      var le_price_split = re.exec(le_price);
      
      $('#yearbook-prices #le .prices .price').html('&pound;' + le_price_split[1] + '<span class="pence">.' + le_price_split[2] + '</span>');
    }
    else {
      $('#le .price').addClass('info').html('50+ copies<br/>50&ndash;220 pages');
    }
  }
}
