/***
* Výňatek z knihy "HTML5 a CSS3", vydal Computer Press.
* Autorská práva ke kódu. Nesmí se použít jako materiály k výuce, 
* v kurzech, knihách, článcích a podobně. V případě dotazů nás kontaktujte.
* Ručíme, že kódy ke knize odpovídají svému účelu. 
* Více informací o knize najdete na http://knihy.cpress.cz/k1948.
***/
/// Něco z http://www.morethannothing.co.uk/wp-content/uploads/2010/01/placeholder.js
// Něco z http://plugins.jquery.com/files/jquery-placeholder-0.1.js.txt

(function($){  
  
  $.fn.placeholder = function(){   
    
    function hodnotaJeVypln(vstup){
      return ($(vstup).val() == $(vstup).attr("placeholder"));
    }
    return this.each(function() {  
  
      $(this).find(":input").each(function(){
      
        if($(this).attr("type") == "password"){ 
          
          var nove_pole = $("<input type='text'>");
          nove_pole.attr("rel", $(this).attr("id"));
          nove_pole.attr("value", $(this).attr("placeholder"));
          $(this).parent().append(nove_pole);
          nove_pole.hide();
          
          function ukazVyplHesla(vstup){
            if( $(vstup).val() == "" || hodnotaJeVypln(vstup) ){ 
              $(vstup).hide();
              $('input[rel=' + $(vstup).attr("id") + ']').show();
            };
          };
          
          nove_pole.focus(function(){
            $(this).hide();
            $('input#' + $(this).attr("rel")).show().focus();
          });

          $(this).blur(function(){
             ukazVyplHesla(this, false);
          });

          ukazVyplHesla(this); 
        
        }else{
          
          // Hodnotu nahradí výplňovým textem.
          // Volitelné opětovně nahrávané parametry řeší problém s
          // ukládáním hodnot polí do vyrovnávací paměti v IE a FF.
          function ukazVypln(vstup, reload){
            if( $(vstup).val() == "" || 
              ( reload && hodnotaJeVypln(vstup) ) ){ 
                $(vstup).val($(vstup).attr("placeholder"));
              }
          };
          
          $(this).focus(function(){
            if($(this).val() == $(this).attr("placeholder")){
              $(this).val("");
            };
          });

          $(this).blur(function(){
             ukazVypln($(this), false)
          });
          
          
          ukazVypln(this, true); 
        };
      });
      
      // Zabraňuje formuláři v odeslání výchozích hodnot.
      $(this).submit(function(){  
        $(this).find(":input").each(function(){
          if($(this).val() == $(this).attr("placeholder")){
            $(this).val("");
          }          
        });
      });
      
    });  
  };
  
})(jQuery); 

