$(document).ready(function(){
   v = new Validation();
   
   v.focus('questionformname', 'imię i nazwisko');
   v.focus('questionformemail','adres e-mail');
   v.focus('questionformcont','wiadomość');
   
  $('#questionform').submit(function(){
   
    v.resetForm();
	
	if($('#questionformname').val() == 'imię i nazwisko'){
		$('#questionformname').val('');
	}
	if($('#questionformemail').val() == 'adres e-mail'){
		$('#questionformemail').val('');
	}
	if($('#questionformcont').val() == 'wiadomość'){
		$('#questionformcont').val('');
	}
	
    v.empty('questionformname','Uzupełnij imię i nazwisko');
    v.email('questionformemail','Nieprawidłowy adres e-mail');
    v.empty('questionformcont','Uzupełnij treść');
    
    if(v.err>0){
      return false;
    }
    
  });
});

function Validation() {
    this.err = 0;
    var regEmail = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
    var errorClass = 'inputError';
    var errorTag = 'span';
    var errorMsgClass = 'error_msg';
    var noticeMsgClass = 'notice_msg';
  
  this.resetForm = function(){
    this.err = 0;
    $('.'+errorMsgClass).remove();
    $("*").each(function(i){
      if($(this).hasClass(errorClass)){
        $(this).removeClass(errorClass);
      }
    });
  }
  this.resetForm();
    
  this.empty = function(id, msg){
    if($('#'+id).val()==''){
      notify(id);
      showMsg(id, msg);
      this.err++;
    }
  }
  
  this.email = function(id, msg){
    if(!regEmail.test($('#'+id).val())){
      notify(id);
      showMsg(id, msg);
      this.err++;
    }
  }
  
  
  
  notify = function(id){
    $('#'+id).addClass(errorClass);
  }
  
  showMsg = function(id, msg ){
    $('#'+id).before('<'+errorTag+' class="'+errorMsgClass+'">'+msg+'</'+errorTag+'>');
  }
  
  
  /*this.focus = function(id, msg){
    $('#'+id).bind('focus', function(){
      $('#'+id+' + .'+errorMsgClass).remove();
      $('#'+id).after('<'+errorTag+' class="'+noticeMsgClass+'">'+msg+'</'+errorTag+'>');
      $('.'+noticeMsgClass).fadeIn('slow');
    });
    $('#'+id).bind('blur', function(){
      $('.'+noticeMsgClass).remove();
    });
  }*/
  this.focus = function(id, val){
    $('#'+id).bind('focus', function(){
      if($('#'+id).val()==val){$('#'+id).val('');}
    });
  }
  
  this.mouseover = function(id, msg){
    $('#'+id).bind('mouseover', function(){
      $('.'+errorMsgClass).remove();
      $('#'+id).after('<'+errorTag+' class="'+noticeMsgClass+'">'+msg+'</'+errorTag+'>');
      $('.'+noticeMsgClass).fadeIn('slow');
    });
    $('#'+id).bind('mouseout', function(){
      $('.'+noticeMsgClass).remove();
    });
  }
  
}