$(document).ready( function() {
  $("#username").blur( function() { checkUsername() } );
  $("#password").blur( function() { checkPassword() } );
  $("#passwordconfirm").blur( function() { checkPassword() } );
  $("#email").blur( function() { checkEmail() } );
//  $("#confirm_mode").blur( function() { checkChapca() } );
  $("#website").blur( function() { checkWebsite() } );
  $("#szuldatum_ev").blur( function() { checkSzuldatum() } );
  $("#szuldatum_ho").blur( function() { checkSzuldatum() } );
  $("#szuldatum_nap").blur( function() { checkSzuldatum() } );
  $("#register").submit( function() { return checkRegister() } );
});


function checkRegister() {
  if(
    checkUsername() &&
    checkPassword() &&
    checkEmail() &&
    checkSzuldatum() &&
    checkWebsite() &&
    checkAccepts()
    ) {
    return true;
  } else {
    return false;
  }
}

function checkAccepts() {
  //resetting border
  $("#forumaccept").css("border", "1px solid #999");
  $("#forumaccept ../../div").hide();
  $("#fotozzaccept").css("border", "1px solid #999");
  $("#fotozzaccept ../../div").hide();

  if($("#forumaccept").attr("checked")!=true) {
    $("#forumaccept").css("border", "1px solid #999");
    $("#forumaccept ../../div").html("A regisztrációhoz el kell fogadnia a szabályzatot!");
    $("#forumaccept ../../div").show();
    return false;
  }
  
  if($("#fotozzaccept").attr("checked")!=true) {
    $("#fotozzaccept").css("border", "1px solid #999");
    $("#fotozzaccept ../../div").html("A regisztrációhoz el kell fogadnia a szabályzatot!");
    $("#fotozzaccept ../../div").show();
    return false;
  }
  
  return true;
}

function checkSzuldatum() {
  //resetting border
  $("#szuldatum_ev").css("border", "1px solid #999");
  $("#szuldatum_ho").css("border", "1px solid #999");
  $("#szuldatum_nap").css("border", "1px solid #999");
  $("#szuldatum_ev ../../div").hide();

  if( !(($("#szuldatum_ev").val() != '' && $("#szuldatum_ho").val() != '' && $("#szuldatum_nap").val() != '') || ($("#szuldatum_ev").val() == '' && $("#szuldatum_ho").val() == '' && $("#szuldatum_nap").val() == '')) ) {
    $("#szuldatum_ev").css("border", "1px solid #FF4200");
    $("#szuldatum_ho").css("border", "1px solid #FF4200");
    $("#szuldatum_nap").css("border", "1px solid #FF4200");
    $("#szuldatum_ev ../../div").html("Az év, a hónap és a nap mezõk csak együtt tölthetõk ki.");
    $("#szuldatum_ev ../../div").show();
    return false;
  }

  return true;

}

function checkUsername() {
  //resetting border
  $("#username").css("border", "1px solid #999");
  $("#username ../div").hide();
  
  // allowed characters, min 3, max 70 characters
  pattern = /^[-a-z0-9_\ áéóúíöüőű.,()\^+~\[\]]{3,70}$/i;
  if(!pattern.test($("#username").val())) {
    $("#username").css("border", "1px solid #FF4200");
    $("#username ../div").html("A felhasználónév legalább 3, legfeljebb 70 karakter hosszú lehet. A magyar ABC kis- és nagybetûi mellett a következõ karakterek használhatók: [szóköz]_-.,()^+~[]");
    $("#username ../div").show();
    return false;
  }

  // check to see if the given name is still available
  $("#username").css("border", "1px solid #FF4200");
  $("#username ../div").html("A felhasználónév ellenõrzése folyamatban...");
  $("#username ../div").show();

  $.ajax({ 
    type: "GET", 
    url: "/hu/regisztracio?check=username&value="+$("#username").val(), 
    success: 
      function(msg){ 
        if(msg > 0) {
          $("#username").css("border", "1px solid #FF4200");
          $("#username ../div").html("Ez a felhasználónév már foglalt! Válasszon másik nevet.");
          $("#username ../div").show();
          return false;
        } else {
          $("#username").css("border", "1px solid #999");
          $("#username ../div").hide();
        }
      }, 
    error: 
      function() {
        $("#username").css("border", "1px solid #FF4200");
        $("#username ../div").html("Hiba a felhasználónév ellenõrzése során. Ha a hiba több próbálkozás után is fennáll, akkor írjon az oldal szerkesztõjének az at[kukac]pixinfo.com címre.");
        $("#username ../div").show();
        return false;
     }
  });

  return true;

}

function checkPassword() {
  //resetting border
  $("#password").css("border", "1px solid #999");
  $("#password ../div").hide();
  $("#passwordconfirm").css("border", "1px solid #999");
  $("#passwordconfirm ../div").hide();
  
  // min 3 characters
  if($("#password").val().length < 6) {
    $("#password").css("border", "1px solid #FF4200");
    $("#password ../div").html("A jelszó nem lehet rövidebb 6 karakternél!");
    $("#password ../div").show();
    return false;
  }

  // max 70 characters
  if($("#password").val().length > 255) {
    $("#password").css("border", "1px solid #FF4200");
    $("#password ../div").html("A jelszó nem lehet hosszabb 255 karakternél!");
    $("#password ../div").show();
    return false;
  }
  
  // two fields must be the same
  if($("#password").val() != $("#passwordconfirm").val()) {
    $("#passwordconfirm").css("border", "1px solid #FF4200");
    $("#passwordconfirm ../div").html("A két jelszó nem azonos!");
    $("#passwordconfirm ../div").show();
    return false;
  }
  
  return true;
 
}


function checkEmail() {
  //resetting border
  $("#email").css("border", "1px solid #999");
  $("#email ../div").hide();
  
  // max 70 characters
  if($("#email").val().length > 128) {
    $("#email").css("border", "1px solid #FF4200");
    $("#email ../div").html("Az e-mail cím nem lehet hosszabb 128 karakternél!");
    $("#email ../div").show();
    return false;
  }
  
  // is the e-mail address valid
  if( !isEmailAddressValid( $("#email").val() ) ) {
    $("#email").css("border", "1px solid #FF4200");
    $("#email ../div").html("Az e-mail cím formailag hibás!");
    $("#email ../div").show();
    return false;
  }

  $.ajax({ 
    type: "GET", 
    url: "/hu/regisztracio?check=email&value="+$("#email").val(), 
    success: 
      function(msg){ 
        if(msg > 0) {
          $("#email").css("border", "1px solid #FF4200");
          $("#email ../div").html("Ezzel az e-mail címmel már regisztrált felhasználónevet. Ha nem emlékszik a felhasználónévre és a jelszóra, akkor használja a <a href='http://pixinfo.com/hu/emlekezteto/'>jelszó emlékeztetõ</a> szolgáltatást. ");
          $("#email ../div").show();
          return false;
        } else {
          $("#email").css("border", "1px solid #999");
          $("#email ../div").hide();
        }
      }, 
    error: 
      function() {
        $("#email").css("border", "1px solid #FF4200");
        $("#email ../div").html("Hiba az e-mail cím ellenõrzése során. Ha a hiba több próbálkozás után is fennáll, akkor írjon az oldal szerkesztõjének az at[kukac]pixinfo.com címre.");
        $("#email ../div").show();
        return false;
     }
  });

  return true;
    
}


function checkChapca() {
  //resetting border
  $("#confirm_mode").css("border", "1px solid #999");
  $("#confirm_mode ../div").hide();

  // exactly 6 characters
  if($("#confirm_mode").val().length != 6) {
    $("#confirm_mode").css("border", "1px solid #FF4200");
    $("#confirm_mode ../div").html("Az képen pontosan 6 karakter van!");
    $("#confirm_mode ../div").show();
    return false;
  }
  
  return true;
}


function checkWebsite() {
  //resetting border
  $("#website").css("border", "1px solid #999");
  $("#website ../div").hide();

  // is the url valid
  if( $("#website").val()!='' && $("#website").val() != 'http://' && !isUrl( $("#website").val() ) ) {
    $("#website").css("border", "1px solid #FF4200");
    $("#website ../div").html("Az honlap cím formailag hibás!<br />A cím elején szerepelnie kell a http:// résznek<br />Ha nem kíván honlapot megadni, akkor hagyja a mezõt üresen.");
    $("#website ../div").show();
    return false;
  }    

  // check to see if the given website is real
  if( $("#website").val()!='' && $("#website").val() != 'http://' && isUrl( $("#website").val() ) ) {
    $("#website").css("border", "1px solid #FF4200");
    $("#website ../div").html("A honlap cím ellenõrzése folyamatban...");
    $("#website ../div").show();

    $.ajax({ 
      type: "GET", 
      url: "/hu/regisztracio?check=website&value="+$("#website").val(), 
      success: 
        function(msg){
          if(msg < 1) {
            $("#website").css("border", "1px solid #FF4200");
            $("#website ../div").html("Ezen a címen nem érhetõ el honlap!");
            $("#website ../div").show();
            return false;
          } else {
            $("#website").css("border", "1px solid #999");
            $("#website ../div").hide();
          }
        }, 
      error: 
        function() {
          $("#website").css("border", "1px solid #FF4200");
          $("#website ../div").html("Hiba a honlapcím ellenõrzése során. Ha a hiba több próbálkozás után is fennáll, akkor hagyja a mezõt üresen  és írja meg a felhasználónevét és a honlap címet az oldal szerkesztõjének az at[kukac]pixinfo.com címre.");
          $("#website ../div").show();
          return false;
       }
    });
    return true;
  }
  
  return true;

}


