(function() {
    // imports
    var Cloud = MT.UI.Cloud,
        Regex = MT.Utils.Regex,
        Json = MT.Utils.Json;
    
    $(document).ready(function() {
        
        var viewport = $("#reset_cloud");
        
        var inputbox = $(".inputbox", viewport);
        var defaultText = inputbox.val();
        
        if (Regex.EMAIL_VALIDATOR().test(defaultText)) {
            defaultText = "your email";
            inputbox.removeClass("no-focus");
        }
        
        inputbox.focus(function(e) {
            e.stopPropagation();
            e.preventDefault();
            
            var _inputbox = $(this);
            if (_inputbox.val() == defaultText) {
                _inputbox.val("");
                _inputbox.removeClass("no-focus");
            }
        });
        inputbox.blur(function(e) {
            e.stopPropagation();
            e.preventDefault();
            
            var _inputbox = $(this);
            if (_inputbox.val() == "") {
                _inputbox.addClass("no-focus");
                _inputbox.val(defaultText);
            }
        });
        
        $("form", viewport).submit(function(e) {
            e.preventDefault();
            e.stopPropagation();
            
            var email_or_username = $(".inputbox", viewport).val();
            
            //if (Regex.EMAIL_VALIDATOR().test(email)) {
            $.ajax({
                type: "POST",
                url: "/reset",
                data:{
                    "email_or_username": email_or_username
                },
                dataType:"json",
                beforeSend: function() {
                    Cloud.Messages.showInProcess(viewport)
                },
                success: function(data, status) {
                    Cloud.Messages.showSuccess(viewport);
                },
                
                error: function(xhr, error) {
                    var response = Json.evaluate(xhr.responseText);
                    if (xhr.status == 404) {
                        Cloud.Messages.showCustomError(viewport, "There's no account registered with this email address.");
                    } else {
                        Cloud.Messages.showError(viewport);
                    }
                },
                
                complete: function(data, status) {
                    
                }
            })
            /*} else {
                Cloud.Messages.showCustomError(viewport, "Enter a valid email address, please.");
            }*/
        });
    });
})();