$(function() {
    jQuery.extend(jQuery.validator.messages, {
        required: "Lütfen bu alanı boş bırakmayınız.",
        maxlength: jQuery.format("En fazla {0} karakter girebilirsiniz."),
        minlength: jQuery.format("En az {0} karakter girmelisiniz."),
        rangelength: jQuery.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),
        email: "Geçersiz e-posta adresi.",
        number: "Geçersiz telefon numarası.",
        url: "Geçersiz web adresi.",
        dateDE: "Geçersiz tarih formatı.",
        numberDE: "Lütfen yalnızca rakam giriniz.",
        digits: "Yalnızca rakam girebilirsiniz.",
        equalTo: "Lütfen aynı bilgi tekrar giriniz.",
        range: jQuery.format("Geben Sie bitten einen Wert zwischen {0} und {1}."),
        max: jQuery.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
        min: jQuery.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),
        creditcard: "Lütfen geçerli kredi kartı numarası giriniz."
    });

    jQuery.validator.addMethod("relativeUrl", function(value, element) {
        var regex = /^([a-zA-Z0-9_\-\/\:\.#]+)$/i;
        return this.optional(element) || regex.test(value);
    }, "Geçersiz web adresi. Adres içerisinde Türkçe karakter kullanmayınız.");

    jQuery.validator.addMethod("phoneareacode", function(value, element) {
        var regex = /^([2-9][0-9]{2})$/i;
        return this.optional(element) || regex.test(value);
    }, "Geçersiz alan kodu. Lütfen alan kodunu kontol ediniz.");

    jQuery.validator.addMethod("email", function(value, element, param) {
        value = value.replace(/^\s|\s$/g, ""); //trims string
        var regex = new RegExp("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$", "i");
        return this.optional(element) || regex.test(value);
    }, "Geçersiz e-posta adresi.");



    jQuery.validator.addMethod("attr", function(value, element, param) {
        var retVal = true;
        var args = arguments;
        var tthis = this;

        if ($(element).attr("key") != undefined && $(element).attr("key") != null) {
            if (param.length > 1) {
                $.each(param[1], function(e) {

                    if (!$.validator.methods[e].apply(tthis, [$(element).attr(param[0]), element, this])) {
                        retVal = false;
                        return false;
                    }
                });
            } else {
                retVal = true;
            }

        } else {

            retVal = false;
        }

        return retVal;

    }, "Lütfen seçim yapınız.");

    jQuery.validator.addMethod("maxDate", function(value, element, param) {
        if (Date.parse($(element).val()) > param)
            return false;

        return true;
    }, 'Başlangıç tarihi bitiş tarihinden küçük olmalıdır.');


    jQuery.validator.addMethod("minDate", function(value, element, param) {

        if (param == null) return true;
        var currentDate = param[0];
        var controlDate = param[1];


        if (currentDate < controlDate)
            return false;
        return true;
    }, 'Başlangıç tarihi bitiş tarihinden küçük olmalıdır.');




    jQuery.validator.addMethod("internetfriendly", function(value, element, param) {
        value = value.replace(/^\s|\s$/g, ""); //trims string
        var regex = new RegExp("^([a-zA-Z0-9_\-]+)$", "i");
        return this.optional(element) || regex.test(value);
    }, "Bu alana Türkçe karakter ve özel karakterler giremezsiniz.");

    jQuery.validator.addMethod("password", function(value) {
        return /^(([a-zA-Z]+[0-9]{1}[a-zA-Z]*[0-9]+([a-zA-Z]*[0-9]*)*)|([a-zA-Z]+[0-9]{2,}([a-zA-Z]*[0-9]*)*)|([0-9]{1}[a-zA-Z]+[0-9]+)([a-zA-Z]*[0-9]*)*|([0-9]{2,}[a-zA-Z]+)([a-zA-Z]*[0-9]*)*)$/.test(value);
    }, 'Şifreniz en az 2 rakam ve en az 1 harf içermeli, Türkçe karakter içermemeli.');


    jQuery.validator.addMethod("decimal", function(value) {
        return /^(([a-zA-Z]+[0-9]{1}[a-zA-Z]*[0-9]+([a-zA-Z]*[0-9]*)*)|([a-zA-Z]+[0-9]{2,}([a-zA-Z]*[0-9]*)*)|([0-9]{1}[a-zA-Z]+[0-9]+)([a-zA-Z]*[0-9]*)*|([0-9]{2,}[a-zA-Z]+)([a-zA-Z]*[0-9]*)*)$/.test(value);
    }, 'Bu alana yalnızca ondalık sayı girebilirsiniz.');


    jQuery.validator.addMethod("username", function(value, element, param) {
        return this.optional(element) || /^([a-zA-Z0-9_\.@-]){4,50}$/.test(value);
    }, "Kullanıcı adınız en az 4 karakterden oluşmalıdır.");



    jQuery.extend(jQuery.validator.prototype, {
        destroy: function() {
            this.resetForm();
            $(this.currentForm)
		        .unbind("focusin")
		        .unbind("focusout")
		        .unbind("keyup")
		        .unbind("click");
            $.removeData(this.currentForm, 'validator');
            //_alert('destroyed');
        }
    });
});

