﻿$(function() {

    $.validator.addMethod("pin", function(value, element) {
        return this.optional(element) || /^[0-9]{4}$/.test(value);
    }, "must be 4 numbers");


    $("#fSignup").validate({
        invalidHandler: function(form, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                // alert(errors);
                // $("txtUsername").addClass("debug");
            }
        },
        errorPlacement: function(error, element) {
            error.remove();
            $("#lblForUsername").addClass("bold red");
        }
    });

    $("#fSavePin").validate({
        submitHandler: function(form) {
            $("#pinloader").show();
            $("#lblSavePinSuccess").hide(); $("#lblSavePinError").hide(); // reset

            $.ajax({
                url: "/savepin",
                data: { username: form.hdnUsername.value, pin: form.txtPin.value },
                dataType: "json",
                success: function(data, textStatus, XMLHttpRequest) {
                    $("#pinloader").hide();
                    var oldTargAddr = $("#aTargAddr").text();
                    var idxDash = oldTargAddr.indexOf("-");
                    var oldPin = oldTargAddr.substring(idxDash + 1, idxDash + 5);
                    var newTargAddr = oldTargAddr.replace(oldPin, form.txtPin.value);
                    $("#aTargAddr").attr("href", "mailto:" + newTargAddr + "?subject=just%20checking%20out%20%40LinkTwitApp%20and%20all%20its%20goodness...&body=http%3A%2F%2Fwww.linktwit.com");
                    $("#aTargAddr").text(newTargAddr);
                    $("#lblSavePinSuccess").text("pin saved successfully");
                    $("#lblSavePinSuccess").show();


                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    // alert('url = ' + this.url);
                    // alert('XMLHttpRequest = ' + XMLHttpRequest + '; textStatus = ' + textStatus + '; errorThrown = ' + errorThrown)
                    $("#lblSavePinError").text("System error while trying to save your pin. Please try again later");
                    $("#lblSavePinError").show();
                    $("#pinloader").hide();
                }
            });
        },
        invalidHandler: function(form, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                // alert(errors + " errors");
                // $("txtUsername").addClass("debug");
            }
        },
        errorPlacement: function(error, element) {
            error.remove();
            $("#lblSavePinSuccess").hide();
            $("#lblSavePinError").text("must be 4 digits");
            $("#lblSavePinError").show();
        }
    });

    $("#fSaveBitlyCreds").validate({
        submitHandler: function(form) {
            $("#bitlyloader").show();
            $("#lblSaveBitlyCredsSuccess").hide(); $("#lblSaveBitlyCredsError").hide(); // reset

            $.ajax({
                url: "/savebitlycreds",
                data: { username: form.hdnUsername.value, bitlyAPILogin: jQuery.trim(form.bitlyAPILogin.value), bitlyAPIKey: jQuery.trim(form.bitlyAPIKey.value) },
                dataType: "json",
                success: function(data, textStatus, XMLHttpRequest) {
                    if (!data.success) { // our custom errors
                        $("#lblSaveBitlyCredsSuccess").text(data.message);
                    } else {
                        $("#lblSaveBitlyCredsSuccess").text("saved successfully");
                    }
                    $("#lblSaveBitlyCredsSuccess").show();
                    $("#bitlyloader").hide();
                },
                error: function(data, XMLHttpRequest, textStatus, errorThrown) {
                    // alert('url = ' + this.url);
                    $("#lblSaveBitlyCredsError").text("System error while trying to save your bit.ly creds. Please try again later.");
                    $("#lblSaveBitlyCredsError").show();
                    $("#bitlyloader").hide();
                }
            });
        },
        invalidHandler: function(form, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                // alert(errors + " errors");
                // $("txtUsername").addClass("debug");
            }
        },
        errorPlacement: function(error, element) {
            error.remove();
            $("#lblSaveBitlyCredsError").show();
        }
    });




});