'use strict'; (function($) { $.fn.phAnim = function( options ) { var settings = $.extend({}, options), label, ph; function getLabel(input) { return $(input).parent().find('label'); } function makeid() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; for( var i=0; i < 5; i++ ) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } return this.each( function() { if( $(this).attr('id') == undefined ) { $(this).attr('id', makeid()); } if( getLabel($(this)).length == 0 ) { if( $(this).attr('placeholder') != undefined ) { ph = $(this).attr('placeholder'); $(this).attr('placeholder', ''); $(this).parent().prepend(''); } } else { $(this).attr('placeholder', ''); if(getLabel($(this)).attr('for') == undefined ) { getLabel($(this)).attr('for', $(this).attr('id')); } } $(this).on('focus', function() { label = getLabel($(this)); label.addClass('active focusIn'); }).on('focusout', function() { if( $(this).val() == '' ) { label.removeClass('active'); } label.removeClass('focusIn'); }); }); }; }(jQuery)); $(document).ready(function() { $('input').phAnim(); });