text: /*!
  
   * jQuery Placeholder Plugin v2.3.0
  
   * https://github.com/mathiasbynens/jquery-placeholder
  
   *
  
   * Copyright 2011, 2015 Mathias Bynens
  
   * Released under the MIT license
  
   */
  
  (function(factory) {
  
      if (typeof define === 'function' && define.amd) {
  
          // AMD
  
          define(['jquery'], factory);
  
      } else if (typeof module === 'object' && module.exports) {
  
          factory(require('jquery'));
  
      } else {
  
          // Browser globals
  
          factory(jQuery);
  
      }
  
  }(function($) {
  
  
  
      /****
  
       * Allows plugin behavior simulation in modern browsers for easier debugging. 
  
       * When setting to true, use attribute "placeholder-x" rather than the usual "placeholder" in your inputs/textareas 
  
       * i.e. <input type="text" placeholder-x="my placeholder text" />
  
       */
  
      var debugMode = false; 
  
  
  
      // Opera Mini v7 doesn't support placeholder although its DOM seems to indicate so
  
      var isOperaMini = Object.prototype.toString.call(window.operamini) === '[object OperaMini]';
  
      var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini && !debugMode;
  
      var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini && !debugMode;
  
      var valHooks = $.valHooks;
  
      var propHooks = $.propHooks;
  
      var hooks;
  
      var placeholder;
  
      var settings = {};
  
  
  
      if (isInputSupported && isTextareaSupported) {
  
  
  
          placeholder = $.fn.placeholder = function() {
  
              return this;
  
          };
  
  
  
          placeholder.input = true;
  
          placeholder.textarea = true;
  
  
  
      } else {
  
  
  
          placeholder = $.fn.placeholder = function(options) {
  
  
  
              var defaults = {customClass: 'placeholder'};
  
              settings = $.extend({}, defaults, options);
  
  
  
              return this.filter((isInputSupported ? 'textarea' : ':input') + '[' + (debugMode ? 'placeholder-x' : 'placeholder') + ']')
  
                  .not('.'+settings.customClass)
  
                  .not(':radio, :checkbox, :hidden')
  
                  .bind({
  
                      'focus.placeholder': clearPlaceholder,
  
                      'blur.placeholder': setPlaceholder
  
                  })
  
                  .data('placeholder-enabled', true)
  
                  .trigger('blur.placeholder');
  
          };
  
  
  
          placeholder.input = isInputSupported;
  
          placeholder.textarea = isTextareaSupported;
  
  
  
          hooks = {
  
              'get': function(element) {
  
  
  
                  var $element = $(element);
  
                  var $passwordInput = $element.data('placeholder-password');
  
  
  
                  if ($passwordInput) {
  
                      return $passwordInput[0].value;
  
                  }
  
  
  
                  return $element.data('placeholder-enabled') && $element.hasClass(settings.customClass) ? '' : element.value;
  
              },
  
              'set': function(element, value) {
  
  
  
                  var $element = $(element);
  
                  var $replacement;
  
                  var $passwordInput;
  
  
  
                  if (value !== '') {
  
  
  
                      $replacement = $element.data('placeholder-textinput');
  
                      $passwordInput = $element.data('placeholder-password');
  
  
  
                      if ($replacement) {
  
                          clearPlaceholder.call($replacement[0], true, value) || (element.value = value);
  
                          $replacement[0].value = value;
  
  
  
                      } else if ($passwordInput) {
  
                          clearPlaceholder.call(element, true, value) || ($passwordInput[0].value = value);
  
                          element.value = value;
  
                      }
  
                  }
  
  
  
                  if (!$element.data('placeholder-enabled')) {
  
                      element.value = value;
  
                      return $element;
  
                  }
  
  
  
                  if (value === '') {
  
                      
  
                      element.value = value;
  
                      
  
                      // Setting the placeholder causes problems if the element continues to have focus.
  
                      if (element != safeActiveElement()) {
  
                          // We can't use `triggerHandler` here because of dummy text/password inputs :(
  
                          setPlaceholder.call(element);
  
                      }
  
  
  
                  } else {
  
                      
  
                      if ($element.hasClass(settings.customClass)) {
  
                          clearPlaceholder.call(element);
  
                      }
  
  
  
                      element.value = value;
  
                  }
  
                  // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
  
                  return $element;
  
              }
  
          };
  
  
  
          if (!isInputSupported) {
  
              valHooks.input = hooks;
  
              propHooks.value = hooks;
  
          }
  
  
  
          if (!isTextareaSupported) {
  
              valHooks.textarea = hooks;
  
              propHooks.value = hooks;
  
          }
  
  
  
          $(function() {
  
              // Look for forms
  
              $(document).delegate('form', 'submit.placeholder', function() {
  
                  
  
                  // Clear the placeholder values so they don't get submitted
  
                  var $inputs = $('.'+settings.customClass, this).each(function() {
  
                      clearPlaceholder.call(this, true, '');
  
                  });
  
  
  
                  setTimeout(function() {
  
                      $inputs.each(setPlaceholder);
  
                  }, 10);
  
              });
  
          });
  
  
  
          // Clear placeholder values upon page reload
  
          $(window).bind('beforeunload.placeholder', function() {
  
  
  
              var clearPlaceholders = true;
  
  
  
              try {
  
                  // Prevent IE javascript:void(0) anchors from causing cleared values
  
                  if (document.activeElement.toString() === 'javascript:void(0)') {
  
                      clearPlaceholders = false;
  
                  }
  
              } catch (exception) { }
  
  
  
              if (clearPlaceholders) {
  
                  $('.'+settings.customClass).each(function() {
  
                      this.value = '';
  
                  });
  
              }
  
          });
  
      }
  
  
  
      function args(elem) {
  
          // Return an object of element attributes
  
          var newAttrs = {};
  
          var rinlinejQuery = /^jQuery\d+$/;
  
  
  
          $.each(elem.attributes, function(i, attr) {
  
              if (attr.specified && !rinlinejQuery.test(attr.name)) {
  
                  newAttrs[attr.name] = attr.value;
  
              }
  
          });
  
  
  
          return newAttrs;
  
      }
  
  
  
      function clearPlaceholder(event, value) {
  
          
  
          var input = this;
  
          var $input = $(this);
  
          
  
          if (input.value === $input.attr((debugMode ? 'placeholder-x' : 'placeholder')) && $input.hasClass(settings.customClass)) {
  
              
  
              input.value = '';
  
              $input.removeClass(settings.customClass);
  
  
  
              if ($input.data('placeholder-password')) {
  
  
  
                  $input = $input.hide().nextAll('input[type="password"]:first').show().attr('id', $input.removeAttr('id').data('placeholder-id'));
  
                  
  
                  // If `clearPlaceholder` was called from `$.valHooks.input.set`
  
                  if (event === true) {
  
                      $input[0].value = value;
  
  
  
                      return value;
  
                  }
  
  
  
                  $input.focus();
  
  
  
              } else {
  
                  input == safeActiveElement() && input.select();
  
              }
  
          }
  
      }
  
  
  
      function setPlaceholder(event) {
  
          var $replacement;
  
          var input = this;
  
          var $input = $(this);
  
          var id = input.id;
  
  
  
          // If the placeholder is activated, triggering blur event (`$input.trigger('blur')`) should do nothing.
  
          if (event && event.type === 'blur' && $input.hasClass(settings.customClass)) {
  
              return;
  
          }
  
  
  
          if (input.value === '') {
  
              if (input.type === 'password') {
  
                  if (!$input.data('placeholder-textinput')) {
  
                      
  
                      try {
  
                          $replacement = $input.clone().prop({ 'type': 'text' });
  
                      } catch(e) {
  
                          $replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
  
                      }
  
  
  
                      $replacement
  
                          .removeAttr('name')
  
                          .data({
  
                              'placeholder-enabled': true,
  
                              'placeholder-password': $input,
  
                              'placeholder-id': id
  
                          })
  
                          .bind('focus.placeholder', clearPlaceholder);
  
  
  
                      $input
  
                          .data({
  
                              'placeholder-textinput': $replacement,
  
                              'placeholder-id': id
  
                          })
  
                          .before($replacement);
  
                  }
  
  
  
                  input.value = '';
  
                  $input = $input.removeAttr('id').hide().prevAll('input[type="text"]:first').attr('id', $input.data('placeholder-id')).show();
  
  
  
              } else {
  
                  
  
                  var $passwordInput = $input.data('placeholder-password');
  
  
  
                  if ($passwordInput) {
  
                      $passwordInput[0].value = '';
  
                      $input.attr('id', $input.data('placeholder-id')).show().nextAll('input[type="password"]:last').hide().removeAttr('id');
  
                  }
  
              }
  
  
  
              $input.addClass(settings.customClass);
  
              $input[0].value = $input.attr((debugMode ? 'placeholder-x' : 'placeholder'));
  
  
  
          } else {
  
              $input.removeClass(settings.customClass);
  
          }
  
      }
  
  
  
      function safeActiveElement() {
  
          // Avoid IE9 `document.activeElement` of death
  
          try {
  
              return document.activeElement;
  
          } catch (exception) {}
  
      }
  
  }));
  
  