jQuery.fn.blink = function(options) {
  this.settings = jQuery.extend({
    type   : 'element',
    mode   : 'fade',
    bcolor : 'transparent',
    bspeed : 500,
    fspeed : 'normal'
  }, options || {});
	
  var el = this;
	
  return this.each(function() {
	
    var elem = this;
	
    if(el.settings.type == 'text'){
      //テキスト
      var org = jQuery(this).css('color');
      jQuery(elem).attr('intervalID', setInterval(function() {
        (jQuery(elem).css('color') != org) ? jQuery(elem).css('color', org)
          : jQuery(elem).css('color', el.settings.bcolor);
      }, el.settings.bspeed) );
    } else if(el.settings.type == 'element'){
      //要素
      if(el.settings.mode == 'blink'){
        //通常
        jQuery(elem).attr('intervalID', setInterval(function() {
          (jQuery(elem).css('opacity') == 0) ? jQuery(elem).css('opacity', 1.0)
            : jQuery(elem).css('opacity', 0.0);
        }, el.settings.bspeed) );
      } else if(el.settings.mode == 'fade'){
        //フェード
//		if( jQuery(elem).attr("intervalID") != undefined ) { clearInterval( jQuery(elem).attr("intervalID") ); jQuery(elem).removeAttr("intervalID"); }
        jQuery(elem).attr('intervalID', setInterval(function() {
          (jQuery(elem).css('opacity') == 0) ? jQuery(elem).animate({opacity: 1.0}, el.settings.fspeed)
            : jQuery(elem).animate({opacity: 0.0}, el.settings.fspeed);
        }, el.settings.bspeed) );
      }
    }
  });
}
