function UploadExtensionCheck (id, extensions, errorString)
{
  this.id = id;
  this.extensions = extensions;
  this.errorString = errorString;
  var element = document.getElementById(id + 'Upload-input');
  element.extensionChecker = this;
  $(element).change(function () {
    this.extensionChecker.check(this);
  });
}
UploadExtensionCheck.prototype.check = function (element) {
  var valid = false;
  var value = element.value;
  if (value == '')
  {
    valid = true;
  }
  else
  {
    var extension = value.slice(value.lastIndexOf('.') + 1).toLowerCase();
    for (var i = 0; i < this.extensions.length; i++)
    {
      if (this.extensions[i] == extension)
      {
        valid = true;
      }
    }
  }
  this.setErrorString(valid)
  return valid;
}
UploadExtensionCheck.prototype.setErrorString = function (valid) {
  $('#' + this.id + '-entry > div.form-entry-elements > div.form-error ').each(function () {
    this.parentNode.removeChild(this);
  });
  if (!valid)
  {
    var divId = Math.floor(Math.random() * 100000);
    $('#' + this.id + '-entry > div.form-entry-elements').prepend('<div id="' + divId + '" class="form-error">' + this.errorString + '</div>');
    $('#' + divId).effect('pulsate', {times: 3 });
  }
}


