sheepHerdNumber

by alanbeech

HTML

<input data-type="PigHerdNumber">

JavaScript

var sheepHerdNumber = (function () {

  // local vars
  var elementIndex;
  var element;

  var init = function (e, i) {
    elementIndex = i;
    element = e;

    addFields();
    blockUKFieldChange();
    bindKeyDown();
    bindKeyUp();
    //hideOriginalField();
  };

  var bindKeyDown = function () {
    $('#SheepHerdNumber' + elementIndex).keydown(function (e) {
      // allow backspace
      if(e.keyCode == 8) return true;
      
      // limit length
      var value = $(this).val();
      if (value.length>5)
      {
        return false;
      }
    });
  };
  
  var bindKeyUp = function () {
    var i = elementIndex;
    var e = element;
    $('#SheepHerdNumber' + elementIndex).keyup(function (e) {
      var value = $(this).val().toUpperCase();

      // white upcassed back to ui
      $(this).val(value);

      var isValid = checkValid(e,i);
      
      // copy to original element
      (value =='' && !isValid) ? element.val('') : element.val('UK ' + $(this).val());
    });
  };
  
  var checkValid = function(e, i) {
  	var value = $("#SheepHerdNumber" + i).val();
    if (value.length==5)
    {
      var char1 = value[0];
      var char2 = value[1];
      var char3 = value[2];
      var char4 = value[3];
      var char5 = value[4];
      
      //alert($.isNumeric(char5));
      // just check that the last 4 chars ar numeric
      if (!($.isNumeric(char2) && $.isNumeric(char3) && $.isNumeric(char4) && $.isNumeric(char5)))
      {
        showIndalidMessage(true, 'invalid herd number');        
        return false;
      }
      
    }
    
    if (value.length==6)
    {
      var char1 = value[0];
      var char2 = value[1];
      var char3 = value[2];
      var char4 = value[3];
      var char5 = value[4];
      var char6 = value[5];
      
      // just check that the last 4 chars ar numeric
      if (!($.isNumeric(char3) && $.isNumeric(char4) && $.isNumeric(char5) && $.isNumeric(char6)))
      {
        showIndalidMessage(true, 'invalid herd...