$(document).ready(function(){


    var nameInput = $("#scheduleShowingName");
    var emailInput = $("#scheduleShowingEmail");
    var phoneInput = $("#scheduleShowingPhone");
    var commentsInput = $("#scheduleShowingComments");
    var submitInput = $("#scheduleShowingSubmit");
    
    $("#scheduleShowingSubmit").before('<input type="hidden" id="javascript" name="javascript" value="js is enabled" />');

    //Microsoft CDN used for speed.
    $.getScript("http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js",function() {
        jQuery.validator.addMethod("phone", function(phone_number, element) {
            phone_number = phone_number.replace(/[\+\(\)\- \.]+/g, "");
            return this.optional(element) || phone_number.length > 9 && phone_number.match(/^[\d]{10,}/);
        }, "Please specify a valid phone number<br/>Example: 604 251 5900");

        $("#scheduleShowingForm").validate({
            rules: {
                flname: {
                    required: true,
                    minlength: 3
                },

                email: {
                    required: true,
                    email: true
                },

                phone: {
                    onsubmit: false,
                    phone: true
                }
            },

            messages: {
                flname: "First & last name too short",
                email: "Invalid email address",
                phone: "Invalid phone number"
            },

            errorElement: "div",
            errorClass: "alert",


            errorPlacement: function(error, element) {
                element.after(error);
            },

            success: function(label) {
                // set &nbsp; as text for IE
                label.html("OK").addClass("valid");
            },

            invalidHandler: function(form, validator) {
                var errors = validator.numberOfInvalids();
                if (errors) {
                    var message = errors == 1
                    ? 'Missing 1 field. '
                    : 'Missing ' + errors + ' fields.';

                    if (!validator.element(nameInput)) {
                        message = "Invalid Name."
                    } else if (!validator.element(emailInput)) {
                        message = "Invalid Email Address."
                    } else if (!validator.element(phoneInput)) {
                        message = "Invalid Phone Number."
                    }

                    $("#scheduleShowingErrors").html(message);
                    $("#scheduleShowingErrors").show();
                } else {
                    $("#scheduleShowingErrors").hide();
                }
            },

            submitHandler: function(form) {
            
                $("#scheduleShowingForm").css("visibility", "hidden");
                $("#scheduleShowingForm div label").css("visibility", "hidden");
                $("#scheduleShowingProgress").css("display", "block");
                $("#scheduleShowingDiv h3").html("Sending...");

                $.getScript("/js/jquery.form.js", function() {
                    $("#scheduleShowingForm").ajaxSubmit({
                        success: function (responseText) {
                            $("#scheduleShowing").html("<h3 style=\"color: #3F9301;\">Thank You!</h3><p>We will contact you <b>within 24 hours</b> to schedule your viewing.</p>");
                            //pageTracker._trackPageview("/sayThankYou.do?success=true");
                            _gaq.push(['_trackPageview', '/sayThankYou.do?success=true']);
                        }
                    });
                });
                

            }



        });
    });

    


    

    nameInput.focus(function() {
        nameInput.prev("label").removeClass("show").addClass("hide");
    });

    nameInput.blur(function() {
        if (nameInput.val() == "") {
            nameInput.prev("label").removeClass("hide").addClass("show");
        }
    });


    

    emailInput.focus(function() {
        emailInput.prev("label").removeClass("show").addClass("hide");
    });

    emailInput.blur(function() {
        if (emailInput.val() == "") {
            emailInput.prev("label").removeClass("hide").addClass("show");
        }
    });



    

    phoneInput.focus(function() {
        phoneInput.prev("label").removeClass("show").addClass("hide");
    });

    phoneInput.blur(function() {
        if (phoneInput.val() == "") {
            phoneInput.prev("label").removeClass("hide").addClass("show");
        }
    });



    

    commentsInput.focus(function() {
        commentsInput.prev("label").removeClass("show").addClass("hide");
    });

    commentsInput.blur(function() {
        if (commentsInput.val() == "") {
            commentsInput.prev("label").removeClass("hide").addClass("show");
        }
    });


    nameInput.prev("label").removeClass("hide").addClass("show");
    emailInput.prev("label").removeClass("hide").addClass("show");
    phoneInput.prev("label").removeClass("hide").addClass("show");
    commentsInput.prev("label").removeClass("hide").addClass("show");
});

