﻿sfHover = function () {
    var sfEls = document.getElementById("navbar").getElementsByTagName("LI");
    for (var i = 0; i < sfEls.length; i++) {
        sfEls[i].onmouseover = function () {
            this.className += " sfhover";
        }
        sfEls[i].onmouseout = function () {
            this.className = this.className.replace(new RegExp(" sfhover\\b"), "");
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

function pageLoad() { //AJAX Load Function
    $('#login .username').watermark('username');
    $('#login .login-password-holder').watermark('password');

    $('#login .login-password-holder').focus(function () {
        $(this).hide();
        $('#login .login-password').show();
        $('#login .login-password').focus();
    });
    $('#login .login-password').focusout(function () {
        if ($(this).val().length == 0) {
            $(this).hide();
            $('#login .login-password-holder').show();
        }
    });

    $('#registerbuttonlink').click(function () {
        $("#register").modal({
            onOpen: function (dialog) {
                $.get('/policies/tos/tos.20110531.txt', function (data) {
                    $('#register-TOS').html(data.replace(/\n/g, "<br>"));
                });

                dialog.overlay.fadeIn(400, function () {
                    dialog.data.hide();
                    dialog.container.fadeIn('fast', function () {
                        dialog.data.slideDown(400);
                    });
                });
            },
            onClose: function (dialog) {
                dialog.data.fadeOut(400, function () {
                    dialog.container.hide('fast', function () {
                        dialog.overlay.slideUp(400, function () {
                            $.modal.close();
                        });
                    });
                });
            },
            appendTo:"form"
        });

        return false;
    });

    $("#login-button-wrapper a").click(function () {
        $("#login-button-wrapper .button")[0].click();
        return false;
    });

    $("#recover").click(function () {
        var email = prompt('Please enter your email address to recover your username and/or password. This may take 1-2 minutes.', '');
        if (email != null && email != '') {
            $(".tRecover")[0].value = email;
            $(".bRecover")[0].click();
        }
        return false;
    });

    $("#usermenu-wrapper").mouseleave(
        function () {
            $("#usermenu").css("display", "none");
            $(".usermenu-arrowhl").attr("class", "usermenu-arrow");
        }
    );
    $("#usermenu-username,.usermenu-arrow").mouseenter(
        function () {
            $("#usermenu").css("display", "block");
            $(".usermenu-arrow").attr("class", "usermenu-arrowhl");
        }
    );
}

jQuery(function ($) {
    //SEARCH SUGGEST
    var isearch = 0;
    $("#nav-search .text").keydown(
        function (e) {
            if (e.keyCode == 38) {//UP
                if ($("#nav-search li").length >= isearch && isearch > 0) {
                    $("#nav-search li").removeClass('selected');
                    isearch--;
                    if (isearch > 0) $("#nav-search li").eq(isearch - 1).addClass('selected');
                }
                return false;
            }
            if (e.keyCode == 40) {//DOWN
                if ($("#nav-search li").length > isearch) {
                    $("#nav-search li").removeClass('selected');
                    isearch++;
                    $("#nav-search li").eq(isearch - 1).addClass('selected');
                }
                return false;
            }
            if (e.keyCode == 13 && isearch > 0) {
                window.location.href = $("#nav-search li").eq(isearch - 1).find("a").attr("href");
                return false;
            }
        }
    );
    $("#nav-search .text").mouseover(
        function () {
            $("#nav-search li").removeClass('selected');
            isearch = 0;
        }
    );

    $("#nav-search .text").keypress(
        function (e) {
            if (e.keyCode == 13 && isearch > 0) return false;
        }
    );
    var ajr = null;
    $("#nav-search .text").keyup(
        function (e) {
            if (e.keyCode != 13 && (e.keyCode < 37 || e.keyCode > 40)) isearch = 0;
            else return false;
            if ($(this).val().trim().length > 2) {
                if (ajr != null) ajr.abort();
                ajr = $.ajax({
                    url: '/scripts/ajax/suggest/video/?q=' + encodeURIComponent($(this).val()) + '&s=8',
                    success: function (data) {
                        if (data.trim().length > 0) {
                            $('#nav-search .suggest').html(data);
                            $("#nav-search .suggest").fadeIn("fast");
                            $("#nav-search li").mousemove(
                                function () {
                                    $("#nav-search li").removeClass('selected');
                                    $(this).addClass('selected');
                                    isearch = $("#nav-search li").index(this) + 1;
                                }
                            );
                            $("#nav-search li").mousedown(
                                function () {
                                    window.location.href = $(this).find("a").attr("href");
                                }
                            );
                        } else {
                            $("#nav-search .suggest").fadeOut("fast");
                            setTimeout(function () { $("#nav-search .suggest").html(""); }, 100);
                        }
                    }
                });
            } else {
                $("#nav-search .suggest").fadeOut("fast");
            }
        }
    );

    $("#nav-search .text").focus(
        function () {
            if ($(this).val().length > 3) {
                $("#nav-search .suggest").fadeIn("fast");
            }
        }
    );
    $("#nav-search .text").focusout(
        function () {
            $("#nav-search .suggest").fadeOut("fast");
        }
    );

    //VALIDATE REGISTRATION
    var regValidated = [false, false, false, false, false];

    function regValidate() {
        var isValid = true;
        $.each(regValidated, function (i, v) {
            if (v == false) isValid = false;
        });
        if (!isValid) $(".bRegister").attr("disabled", "disabled"); else $(".bRegister").removeAttr('disabled');
        return isValid;
    }

    $(".tbxRegUsername").focusout(function () {
        //1st alpha#,mid 1-23 alpha# -_,last alpa#, fails on 2+ [ -_],note:1-25 char
        if (this.value.match(/^[a-z0-9]((?![-_ ]{2})[\w- ]){1,23}[a-z0-9]$/gi)) { $("#tbxRegUsername_Validate").attr("class", "checkmark16x16"); regValidated[0] = true; }
        else { $("#tbxRegUsername_Validate").attr("class", "xmark16x16"); regValidated[0] = false; }
        regValidate();
    });
    $(".tbxRegEmail").focusout(function () {
        if (this.value.match(/^\w[A-Z0-9._%+-]*@(?:[A-Z0-9-]+\.)+[A-Z-]{1,3}\w$/gi)) { $("#tbxRegEmail_Validate").attr("class", "checkmark16x16"); regValidated[1] = true; }
        else { $("#tbxRegEmail_Validate").attr("class", "xmark16x16"); regValidated[1] = false; }

        if (this.value == $(".tbxRegEmailConfirm")[0].value) { $("#tbxRegEmailConfirm_Validate").attr("class", "checkmark16x16"); regValidated[2] = true; }
        else { $("#tbxRegEmailConfirm_Validate").attr("class", "xmark16x16"); regValidated[2] = false }
        regValidate();
    });
    $(".tbxRegEmailConfirm").focusout(function () {
        if (this.value == $(".tbxRegEmail")[0].value) { $("#tbxRegEmailConfirm_Validate").attr("class", "checkmark16x16"); regValidated[2] = true; }
        else { $("#tbxRegEmailConfirm_Validate").attr("class", "xmark16x16"); regValidated[2] = false; }
        regValidate();
    });
    $(".tbxRegPassword").focusout(function () {
        if (this.value.match(/[a-z0-9]{8,12}/i)) { $("#tbxRegPassword_Validate").attr("class", "checkmark16x16"); regValidated[3] = true }
        else { $("#tbxRegPassword_Validate").attr("class", "xmark16x16"); regValidated[3] = false; }

        if (this.value == $(".tbxRegPasswordConfirm")[0].value) { $("#tbxRegPasswordConfirm_Validate").attr("class", "checkmark16x16"); regValidated[4] = true; }
        else { $("#tbxRegPasswordConfirm_Validate").attr("class", "xmark16x16"); regValidated[4] = false; }
        regValidate();
    });
    $(".tbxRegPasswordConfirm").focusout(function () {
        if (this.value == $(".tbxRegPassword")[0].value) { $("#tbxRegPasswordConfirm_Validate").attr("class", "checkmark16x16"); regValidated[4] = true; }
        else { $("#tbxRegPasswordConfirm_Validate").attr("class", "xmark16x16"); regValidated[4] = false; }
        if (regValidate()) $(".bRegister")[0].focus(); else $(".tbxRegUsername")[0].focus();
    });
    $(".tbxRegPasswordConfirm").focus(function () {
        $("#tbxRegPasswordConfirm_Validate").removeAttr("class");
        $(".bRegister").removeAttr('disabled');
    });

    $('.tbxRegUsername').live('keydown', function (e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".tbxRegEmail")[0].select(); } });
    $('.tbxRegEmail').live('keydown', function (e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".tbxRegEmailConfirm")[0].select(); } });
    $('.tbxRegEmailConfirm').live('keydown', function (e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".tbxRegPassword")[0].select(); } });
    $('.tbxRegPassword').live('keydown', function (e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".tbxRegPasswordConfirm")[0].select(); } });
    $('.bRegister').live('keydown', function (e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".tbxRegUsername")[0].select(); } });
});
