var blink = function() {};

blink.enable = function() {
  $('input').each(
    function(i, el) {
      if ($(el).data('blink') == undefined) {

        var def = $(el).attr('blink');

        if (def == undefined) {
          return;
        }

        $(el).bind(
          'focus',
          blink.onFocus
        );

        $(el).bind(
          'blur',
          blink.onBlur
        );

        $(el).data('blink-default', def);

        if (!$(el).val()) {
          $(el).val($(el).data('blink-default'));
        }

        $(el).data('blink', true);

        if ($(el).attr('type') == 'password') {
        
          $(el).attr('autocomplete', 'off');

          var clone = $(el).clone();
          $(clone).addClass('blink-clone');
          $(clone).attr('type', 'text');
          $(clone).removeAttr('name');
          $(clone).removeAttr('id');
          $(clone).insertAfter(el);
          $(el).data('clone', clone);
          $(clone).data('el', el);
          $(el).hide();
          $(clone).bind(
            'focus',
            blink.focusClone
          );
          $(clone).bind(
            'blur',
            blink.blurClone
          );
        
          $(el).val($(el).data('blink-default'));

        } else {
          if (!$(el).val()) {
            $(el).val($(el).data('blink-default'));
          }
        }
        
        
        $(clone).val($(el).val());


      }
    }
  );
};

blink.focusClone = function(ev) {
  var clone = ev.target;
  var el = $(clone).data('el');

  $(el).show();
  $(clone).hide();
  
  el.focus();
  el.value = '';
}

blink.onFocus = function(ev) {
  var el = ev.target;
  var def = $(el).data('blink-default');
  if ($(el).val() == def) {
    $(el).val('');
  }
}

blink.onBlur = function(ev) {
  var el = ev.target;
  var def = $(el).data('blink-default');
  if (!$(el).val()) {
    $(el).val(def);

    var clone = $(el).data('clone');

    if (clone) {
      $(clone).show();
      $(el).hide();
    }

  }
}

$(document).ready(
  function() {
    blink.enable();
  }
);

$(document).ajaxComplete(
  function() {
    blink.enable();
  }
);

