{"version":3,"sources":["jquery.placeholder/jquery.placeholder.js"],"names":["factory","define","amd","module","exports","require","jQuery","$","hooks","placeholder","isOperaMini","Object","prototype","toString","call","window","operamini","isInputSupported","document","createElement","isTextareaSupported","valHooks","propHooks","fn","this","input","textarea","settings","options","extend","customClass","filter","not","bind","focus.placeholder","clearPlaceholder","blur.placeholder","setPlaceholder","data","trigger","get","element","$element","$passwordInput","value","hasClass","set","safeActiveElement","delegate","$inputs","each","setTimeout","event","$input","attr","hide","nextAll","show","removeAttr","focus","removeClass","select","$replacement","id","type","clone","e","elem","newAttrs","rinlinejQuery","attributes","i","specified","test","name","args","placeholder-password","placeholder-id","placeholder-textinput","before","prevAll","addClass","activeElement","exception"],"mappings":"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","file":"jquery.placeholder.min.js","sourcesContent":["/*! http://mths.be/placeholder v2.1.1 by @mathias */\r\n(function(factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD\r\n define(['jquery'], factory);\r\n } else if (typeof module === 'object' && module.exports) {\r\n factory(require('jquery'));\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n}(function($) {\r\n\r\n // Opera Mini v7 doesn't support placeholder although its DOM seems to indicate so\r\n var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';\r\n var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini;\r\n var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini;\r\n var valHooks = $.valHooks;\r\n var propHooks = $.propHooks;\r\n var hooks;\r\n var placeholder;\r\n\r\n if (isInputSupported && isTextareaSupported) {\r\n\r\n placeholder = $.fn.placeholder = function() {\r\n return this;\r\n };\r\n\r\n placeholder.input = placeholder.textarea = true;\r\n\r\n } else {\r\n\r\n var settings = {};\r\n\r\n placeholder = $.fn.placeholder = function(options) {\r\n\r\n var defaults = {customClass: 'placeholder'};\r\n settings = $.extend({}, defaults, options);\r\n\r\n var $this = this;\r\n $this\r\n .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')\r\n .not('.'+settings.customClass)\r\n .bind({\r\n 'focus.placeholder': clearPlaceholder,\r\n 'blur.placeholder': setPlaceholder\r\n })\r\n .data('placeholder-enabled', true)\r\n .trigger('blur.placeholder');\r\n return $this;\r\n };\r\n\r\n placeholder.input = isInputSupported;\r\n placeholder.textarea = isTextareaSupported;\r\n\r\n hooks = {\r\n 'get': function(element) {\r\n var $element = $(element);\r\n\r\n var $passwordInput = $element.data('placeholder-password');\r\n if ($passwordInput) {\r\n return $passwordInput[0].value;\r\n }\r\n\r\n return $element.data('placeholder-enabled') && $element.hasClass(settings.customClass) ? '' : element.value;\r\n },\r\n 'set': function(element, value) {\r\n var $element = $(element);\r\n\r\n var $passwordInput = $element.data('placeholder-password');\r\n if ($passwordInput) {\r\n return $passwordInput[0].value = value;\r\n }\r\n\r\n if (!$element.data('placeholder-enabled')) {\r\n return element.value = value;\r\n }\r\n if (value === '') {\r\n element.value = value;\r\n // Issue #56: Setting the placeholder causes problems if the element continues to have focus.\r\n if (element != safeActiveElement()) {\r\n // We can't use `triggerHandler` here because of dummy text/password inputs :(\r\n setPlaceholder.call(element);\r\n }\r\n } else if ($element.hasClass(settings.customClass)) {\r\n clearPlaceholder.call(element, true, value) || (element.value = value);\r\n } else {\r\n element.value = value;\r\n }\r\n // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363\r\n return $element;\r\n }\r\n };\r\n\r\n if (!isInputSupported) {\r\n valHooks.input = hooks;\r\n propHooks.value = hooks;\r\n }\r\n if (!isTextareaSupported) {\r\n valHooks.textarea = hooks;\r\n propHooks.value = hooks;\r\n }\r\n\r\n $(function() {\r\n // Look for forms\r\n $(document).delegate('form', 'submit.placeholder', function() {\r\n // Clear the placeholder values so they don't get submitted\r\n var $inputs = $('.'+settings.customClass, this).each(clearPlaceholder);\r\n setTimeout(function() {\r\n $inputs.each(setPlaceholder);\r\n }, 10);\r\n });\r\n });\r\n\r\n // Clear placeholder values upon page reload\r\n $(window).bind('beforeunload.placeholder', function() {\r\n $('.'+settings.customClass).each(function() {\r\n this.value = '';\r\n });\r\n });\r\n\r\n }\r\n\r\n function args(elem) {\r\n // Return an object of element attributes\r\n var newAttrs = {};\r\n var rinlinejQuery = /^jQuery\\d+$/;\r\n $.each(elem.attributes, function(i, attr) {\r\n if (attr.specified && !rinlinejQuery.test(attr.name)) {\r\n newAttrs[attr.name] = attr.value;\r\n }\r\n });\r\n return newAttrs;\r\n }\r\n\r\n function clearPlaceholder(event, value) {\r\n var input = this;\r\n var $input = $(input);\r\n if (input.value == $input.attr('placeholder') && $input.hasClass(settings.customClass)) {\r\n if ($input.data('placeholder-password')) {\r\n $input = $input.hide().nextAll('input[type=\"password\"]:first').show().attr('id', $input.removeAttr('id').data('placeholder-id'));\r\n // If `clearPlaceholder` was called from `$.valHooks.input.set`\r\n if (event === true) {\r\n return $input[0].value = value;\r\n }\r\n $input.focus();\r\n } else {\r\n input.value = '';\r\n $input.removeClass(settings.customClass);\r\n input == safeActiveElement() && input.select();\r\n }\r\n }\r\n }\r\n\r\n function setPlaceholder() {\r\n var $replacement;\r\n var input = this;\r\n var $input = $(input);\r\n var id = this.id;\r\n if (input.value === '') {\r\n if (input.type === 'password') {\r\n if (!$input.data('placeholder-textinput')) {\r\n try {\r\n $replacement = $input.clone().attr({ 'type': 'text' });\r\n } catch(e) {\r\n $replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));\r\n }\r\n $replacement\r\n .removeAttr('name')\r\n .data({\r\n 'placeholder-password': $input,\r\n 'placeholder-id': id\r\n })\r\n .bind('focus.placeholder', clearPlaceholder);\r\n $input\r\n .data({\r\n 'placeholder-textinput': $replacement,\r\n 'placeholder-id': id\r\n })\r\n .before($replacement);\r\n }\r\n $input = $input.removeAttr('id').hide().prevAll('input[type=\"text\"]:first').attr('id', id).show();\r\n // Note: `$input[0] != input` now!\r\n }\r\n $input.addClass(settings.customClass);\r\n $input[0].value = $input.attr('placeholder');\r\n } else {\r\n $input.removeClass(settings.customClass);\r\n }\r\n }\r\n\r\n function safeActiveElement() {\r\n // Avoid IE9 `document.activeElement` of death\r\n // https://github.com/mathiasbynens/jquery-placeholder/pull/99\r\n try {\r\n return document.activeElement;\r\n } catch (exception) {}\r\n }\r\n\r\n}));\r\n"]}