$(document).ready(function() {
    $("#tabs").tabs();
});

var oldData;
var newData;

$(function() {
    oldData = {
        "firstName": $("input[name='firstName']").val(),
        "lastName": $("input[name='lastName']").val(),
        "email": $("input[name='email']").val(),
        "password1": $("input[name='password1']").val(),
        "password2": $("input[name='password2']").val(),
        "passwordQuestion": $("input[name='passwordQuestion']").val(),
        "passwordAnswer": $("input[name='passwordAnswer']").val()
    };

    $("button[name='save']").live("click", function() {
        //debugger;
        newData = {
            "FirstName": $("input[name='firstName']").val() == oldData.firstName ? "" : $("input[name='firstName']").val(),
            "LastName": $("input[name='lastName']").val() == oldData.lastName ? "" : $("input[name='lastName']").val(),
            "Email": $("input[name='email']").val() == oldData.email ? "" : $("input[name='email']").val(),
            "NewPassword": $("input[name='password1']").val() == oldData.password1 ? "" : $("input[name='password1']").val(),
            "PasswordQuestion": $("input[name='passwordQuestion']").val() == oldData.passwordQuestion ? "" : $("input[name='passwordQuestion']").val(),
            "PasswordAnswer": $("input[name='passwordAnswer']").val() == oldData.passwordAnswer ? "" : $("input[name='passwordAnswer']").val(),
            "PasswordAsPlainText": ""
        };

        var isChanged = false;

        for (var item in newData) {
            if (newData[item] != "") {
                isChanged = true;
                break;
            }
        }

        if (isChanged = true) {

            showPasswordBox();
            //sendData(newData);

        }

    });

    $("button[name='cancel']").live("click", function() {

    });

});

function showPasswordBox() {
    $MyU.showMessage("<div id='passwordBox'><p>Lütfen şifrenizi giriniz</p><input id='pass' type='password' class='text ui-corner-all icon-key'/></div>");
    $("#messageBox").dialog("option",
            									"buttons",
            									{
            									    Vazgeç: function() {
            									        $(this).dialog('close');
            									    },
            									    Tamam: function() {
            									        newData.PasswordAsPlainText = $("input#pass").val();
            									        sendData(newData);

            									    }
            									}
            								);

}

function sendData(dataToSend) {
    $.ajax({
        type: "POST",
        dataType: "json",
        data: dataToSend,
        url: "/Profile/Update",
        success: function(response) {
            if (response.IsSuccess) {
                //debugger;
                //alert(response.Message);
                $MyU.hideMessage();
            }
            else {
                //debugger;
                alert(response.Message);
                $MyU.hideMessage();
            }
        }
    });
} $(function() {
    var name = $("#newUser input[name='name']"),
			email = $("#newUser input[name='email']"),
			email2 = $("#newUser input[name='email2']"),
			password1 = $("#newUser input[name='password1']"),
			password2 = $("#newUser input[name='password2']"),
			attempt = $("#newUser input[name='attempt']"),
			allFields = $([]).add(name).add(email).add(email2).add(password1).add(password2).add(attempt),
			tips = $(".validateTips");

    function updateTips(t) {
        tips.text(t).effect("highlight", {}, 1500);
    }

    function checkLength(o, n, min, max) {

        if (o.val().length > max || o.val().length < min) {
            o.addClass('ui-state-error');
            updateTips(n + " uzunluğu " + min + " ile " + max + " arasında olmalıdır.");
            return false;
        } else {
            return true;
        }

    }

    function checkRegexp(o, regexp, n) {

        if (!(regexp.test(o.val()))) {
            o.addClass('ui-state-error');
            updateTips(n);
            return false;
        } else {
            return true;
        }

    }

    function checkEqual(str1, str2, n) {

        if (str1.val() == str2.val())
            return true;
        else {
            str1.addClass('ui-state-error');
            str2.addClass('ui-state-error');
            updateTips(n);
            return false;
        }
    }

    $("#newUser").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 500,
        modal: true,
        //show: "fold",
        buttons: {
            Vazgeç: function() {
                $(this).dialog('close');
            },
            'Tamam': function() {
                var bValid = true;
                allFields.removeClass('ui-state-error');

                bValid = bValid && checkRegexp(name, /^[a-z]([0-9a-z_])+$/i, "Kullanıcı adı a-z arasındaki harfler (Türkçe harf kullanmayınız), alt çizgi (_) ve 0-9 arasındaki rakamlardan oluşmalıdır. Bir harf ile başlamalıdır.");
                bValid = bValid && checkLength(name, "Kullanıcı adı", 3, 16);
                bValid = bValid && checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Geçerli bir e-posta adresi giriniz.");
                bValid = bValid && checkEqual(email, email2, "E-Posta adresleri aynı değil.");
                bValid = bValid && checkRegexp(password1, /^([0-9a-zA-Z])+$/, "Şifre a-z arasındaki harfler (Türkçe harf kullanmayınız) ve 0-9 arasındaki rakamlardan oluşmalıdır.");
                bValid = bValid && checkLength(password1, "Şifre", 5, 16);
                bValid = bValid && checkEqual(password1, password2, "Şifre aynı değil.");
                bValid = bValid && checkRegexp(attempt, /^([a-zA-Z])+$/, "Doğrulama metni a-z arasındaki harflerden oluşmalıdır.");

                if (bValid) {
                    $.ajax({
                        type: "POST",
                        dataType: "json",
                        url: "/Membership/Signup",
                        data: { userName: name.val(), password: password1.val(), email: email.val(), myCaptcha: $("input[name='myCaptcha']").val(), attempt: attempt.val() },
                        beforeSend: function() {
                        },
                        success: function(result) {

                            allFields.removeClass('ui-state-error');

                            if (result.Data == 0) {
                                $("#newUser").dialog('close');
                                $MyU.messageBox("Aktivasyon", result.Message);
                            }
                            else if (result.Data == "Captcha") {
                                updateTips(result.Message);
                                loadCaptcha();
                            }

                            else if (result.Data == 6) {
                                name.addClass('ui-state-error')
                                updateTips(result.Message);
                            }

                            else if (result.Data == 7) {
                                email.addClass('ui-state-error')
                                updateTips(result.Message);
                            }

                            else if (result == 1) {
                                name.addClass('ui-state-error')
                                updateTips(result.Message);
                            }
                        }
                    });
                }
            }
        },
        close: function() {
            allFields.val('').removeClass('ui-state-error');
            tips.text("");
        },
        open: function() {
            loadCaptcha();
        }
    });


});

function PwdReminder() {
    var username = $("#loginUsername").attr("value");
    var url = "/uyelik/sifrehatirlatma";
    if (username.length > 0) {
        url = url + "?u=";
        url = url + username;
    }

    window.location = url;
}

$(function() {
    var name = $("#loginUser input[name='name']"),
			password1 = $("#loginUser input[name='password1']"),
			rememberMe = $("#loginUser input[name='rememberMe']"),
			allFields = $([]).add(name).add(password1),
			tips = $(".validateTips");

    function updateTips(t) {
        tips.text(t).effect("highlight", {}, 1500);
    }

    function checkLength(o, n, min, max) {

        if (o.val().length > max || o.val().length < min) {
            o.addClass('ui-state-error');
            updateTips(n + " uzunluğu " + min + " ile " + max + " arasında olmalıdır.");
            return false;
        } else {
            return true;
        }

    }

    function checkRegexp(o, regexp, n) {

        if (!(regexp.test(o.val()))) {
            o.addClass('ui-state-error');
            updateTips(n);
            return false;
        } else {
            return true;
        }

    }

    function PostLogin() {
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/Membership/Signin",
            data: { userName: name.val(), password: password1.val(), rememberMe: rememberMe[0].checked },
            beforeSend: function() {
            },
            success: function(result) {
                allFields.removeClass('ui-state-error');
                if (result.IsSuccess == true) {
                    //$("#loginUser").dialog('close');
                    window.location.reload();
                }
                else {
                    name.addClass('ui-state-error');
                    password1.addClass('ui-state-error');
                    updateTips(result.Message);
                }
            },
            error: function(result) {
                name.addClass('ui-state-error');
                password1.addClass('ui-state-error');
                updateTips(result.Message);
            }
        });
    }

    $("#loginUser").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 500,
        height: 280,
        modal: true,
        //			show: "fold",
        buttons: {
            Vazgeç: function() {
                $(this).dialog('close');
            },
            'Tamam': function() {
                var bValid = true;
                allFields.removeClass('ui-state-error');

                bValid = bValid && checkLength(name, "Kullanıcı Adı", 3, 16);
                bValid = bValid && checkLength(password1, "Şifre", 5, 16);
                bValid = bValid && checkRegexp(name, /^[a-z]([0-9a-z_])+$/i, "Username may consist of a-z, 0-9, underscores, begin with a letter.");
                bValid = bValid && checkRegexp(password1, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9");

                if (bValid) {
                    $("#PleaseWait").removeClass("invisible");
                    $("#PleaseWait").addClass("visibleBlock");
                    //debugger;
                    setTimeout(PostLogin, 100);
                }
            }
        },
        close: function() {
            allFields.val('').removeClass('ui-state-error');
            tips.text("");
        },
        open: function() {
            $("#loginUser input[name='name']").trigger("focus");
            $(this).keyup(function(event) {
                if (event.keyCode == 13) {
                    $("#loginUser").dialog("option", "buttons").Tamam();
                }
            });

        }
    });


});

function loadCaptcha() {
    $("#captchaBox").load("/CaptchaImage/Show");
}