var regTel = /^\+?[0-9\ \(\)\-]+[0-9\ \(\)\-]$/i;
var regEmail = /^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$/i; 
var regText = /^[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s-]+$/i;

var messages = new Array();
messages[0] = "To pole jest wymagane.";
messages[1] = "To nie jest poprawny adres e-mail.";
messages[2] = "To nie jest poprawny numer telefonu.";
messages[3] = "To nie jest poprawne imię i nazwisko.";

function validate_input($el) {
  var form_status = true;
  var el_val = $el.val();
  var el_name = $el.attr("name");
  var el_req = $el.attr("class").split(" ")[0];
  
  if (!(el_val.length > 0) && (el_req == 'required')) {
       error_message($el, 0);
       form_status = false;
  }
  else {
    remove_message($el);
  }
    
  if (el_val.length > 0 ) {
    switch (el_name) {
      case 'email' :
	  	if (el_val == 'e-mail') {
			form_status = false;
			error_message($el, 0);
		}
		else {
			if (!regEmail.test(el_val)) {
				error_message($el, 1);
				form_status = false;
			}
			else {
				remove_message($el);
			}
		}
      break;
      case 'telefon' :
	  	if (el_val == 'nr telefonu') {
			form_status = false;
			error_message($el, 0);
		}
		else {
			if (!regTel.test(el_val) || (el_val.length < 9)) {
				error_message($el, 2);
				form_status = false;
			}
			else {
				remove_message($el);
			}
		}
      break;
      case 'imie' :
		  if (el_val == 'imię') {
		  	form_status = false;
		  	error_message($el, 0);
		  }
		  else {
		  	if (!regText.test(el_val)) {
		  		error_message($el, 3);
		  		form_status = false;
		  	}
		  	else {
		  		remove_message($el);
		  	}
		  }
      break;
	  case 'rodzaj_zabiegu' :
  	 		if (el_val == 'rodzaj zabiegu') {
		  		form_status = false;
		  		error_message($el, 0);
		  	}
		  	break;	
    }
  }
  
  return form_status;
  
  
}

function error_message($el, nr) {
  	$el.addClass("error_message");
	$el.parent().find('.input_message').html(messages[nr]);
}

function remove_message($el) {
  $el.parent().find('.input_message').html("");
  $el.removeClass("error_message");
}

function validate_all($form_el) {
  var form_status = true;
  $form_el.find('input[type=text]').each(function() {
    if (!validate_input($(this))) {
      form_status = false;
    }
  });
  return form_status;
}

$(document).ready(function() {
	$('input[type=text]').blur(function() {
		validate_input($(this));
	});
  /*$('form').submit(function() {
    if(!validate_all($(this))) {
      return false;
    }
  });*/
  $('input').focus(function() {
  		if ( ($(this).attr("id") == 'imie') && ($(this).val() == 'imię') ) {
			$(this).val("");
		}
		if ( ($(this).attr("id") == 'rodzaj_zabiegu') && ($(this).val() == 'rodzaj zabiegu') ) {
			$(this).val("");
		}
		if ( ($(this).attr("id") == 'telefon') && ($(this).val() == 'nr telefonu') ) {
			$(this).val("");
		}
		if ( ($(this).attr("id") == 'email') && ($(this).val() == 'e-mail') ) {
			$(this).val("");
		}
  });
});
