var formValid = false; // this is var that tell us is the form valid or not
var formAction = "";

$(document).ready(function() {



jQuery.validator.setDefaults({
	debug: true,
	success: "valid",
        submitHandler: function() {
                formValid = true; // set var to true, form is valid ;)
        }
});;

//We dont have method for alphanum so we must create one

jQuery.validator.addMethod("alphanumeric", function(value, element) {
return this.optional(element) || !/[^a-z0-9]/i.test(value);
}, "alphanumeric");

/*
* Validation of signup form
*/

$("#signupForm").validate({
  rules: {
    number: {

      required: true,
      numberDE: true,
      minlength: 7,
      remote: {
        url: $('#signupForm').attr('action'),
        type: "post",
        data: {
          validateNumber: 1,
          prefix: function() {
            return $("#prefix").val();
          }
        }
      }

    },
    nickname: {

        required: true,
        minlength: 3,
        maxlength: 10,
        alphanumeric: true,
        remote: {
          url: $('#signupForm').attr('action'),
          type: "post",
          data: {
            validateNickname: 1
          }
        }
    },
    terms: {

        required: true

    }
  },
  messages: {
        number: {

                required: 'Erforderlich! Die Handynummer darf nur die Zahlen 0-9 enthalten',
                minlength: 'Die Handynummer muss 7 Zeichen lang sein',
                remote: 'Diese Handynummer ist bereits registriert, ist Deine Handynummer korrekt angegeben so <a href="passwort-vergessen.html">klicke hier</a> um Dein Passwort abzufragen'

        },
        nickname: {

                minlength: 'Der Nickname muss mindestens 3 Zeichen lang sein',
                maxlength: 'Der Nickname darf hächstens 10 Zeichen lang sein',
                alphanumeric: 'Im Nickname können Sie nur die Buchstaben A-Z und die Zahlen 0-9 verwenden',
                required: 'Erforderlich!',
                remote: 'Dieser Nickname wird bereits verwendet'

        },
        terms: {

                required: 'Du musst Die AGB\'s akzeptieren'
        }
  }
}); //end of validate

/*
* Attach ajax form
*/
	//Attach form
	var options = {
                target:        '#signup',   // target element(s) to be updated with server response
                beforeSubmit:  showRequest,  // pre-submit callback
                success:       showResponse  // post-submit callback
              };

        var parentForm = $('#signupForm');

        parentForm.ajaxForm(options); //add ajaxForm
        formAction = $('#signupForm').attr('action');

});//end of onready

function showRequest(formData, jqForm, options) {

        //First we need to check if form is valid
        if (formValid == false) {
                return false;
        } else { //form is valid show loading screen

                $('#signup').html('<div class="ajaxloader">Loading...</div>');

        }

}

function showResponse(responseText, statusText)  {

        //get status
        var status = $('#ok').attr('status');

        //Ok now based on status we can display everything

        //Status is 1 so its everything ok, success
        if (status == 1) {

                var user   = $('#ok').attr('user');
                var pass   = $('#ok').attr('pass');
                var number = $('#ok').attr('number');


                $('#signup').prepend('<div align="center" class="barLoader"></div>');
                //Now we should check db in 5 seconds
                var checkingInterval = setInterval( function() {

                        $.post(formAction, { validateStatus: '1', nickname: user, password: pass, number: number },
                        function(data){

                                if (data == 'true') {

                                        clearInterval(checkingInterval);
                                        $('#signup').html('<div align="center"><h2>Willkommen!</h2></div>');
                                        window.location = "member.html";

                                }

                        });

                }, 5000 ); //5000 is 5 seconds


        }


}
