
var helpContentLoaded = false;

(function ($) {
    $.fn.tabSlideOut = function (callerSettings) {
        var settings = $.extend({
            tabHandle: '.handle',
            speed: 300,
            action: 'click',
            tabLocation: 'left',
            topPos: '200px',
            leftPos: '20px',
            fixedPosition: false,
            positioning: 'absolute',
            pathToTabImage: null,
            imageHeight: null,
            imageWidth: null,
            onLoadSlideOut: helpAutoSlideOutOnLoad || false,
            slideOutCallBackFunction: function () {}
        }, callerSettings || {});

        settings.tabHandle = $(settings.tabHandle);
        var obj = this;
        if (settings.fixedPosition === true) {
            settings.positioning = 'fixed';
        } else {
            settings.positioning = 'absolute';
        }

        //ie6 doesn't do well with the fixed option
        if (document.all && !window.opera && !window.XMLHttpRequest) {
            settings.positioning = 'absolute';
        }



        //set initial tabHandle css

        if (settings.pathToTabImage != null) {
            settings.tabHandle.css({
                'background': 'url(' + settings.pathToTabImage + ') no-repeat',
                'width': settings.imageWidth,
                'height': settings.imageHeight
            });
        }

        settings.tabHandle.css({
            'display': 'block',
            'textIndent': '-99999px',
            'outline': 'none',
            'position': 'absolute'
        });

        obj.css({
            'line-height': '1',
            'position': settings.positioning
        });


        var properties = {
            containerWidth: parseInt(obj.outerWidth(), 10) + 'px',
            containerHeight: parseInt(obj.outerHeight(), 10) + 'px',
            tabWidth: parseInt(settings.tabHandle.outerWidth(), 10) + 'px',
            tabHeight: parseInt(settings.tabHandle.outerHeight(), 10) + 'px'
        };

        //set calculated css
        if (settings.tabLocation === 'top' || settings.tabLocation === 'bottom') {
            obj.css({ 'left': settings.leftPos });
            settings.tabHandle.css({ 'right': 0 });
        }

        if (settings.tabLocation === 'top') {
            obj.css({ 'top': '-' + properties.containerHeight });
            settings.tabHandle.css({ 'bottom': '-' + properties.tabHeight });
        }

        if (settings.tabLocation === 'bottom') {
            obj.css({ 'bottom': '-' + properties.containerHeight, 'position': 'fixed' });
            settings.tabHandle.css({ 'top': '-' + properties.tabHeight });

        }

        if (settings.tabLocation === 'left' || settings.tabLocation === 'right') {
            obj.css({
                'height': properties.containerHeight,
                'top': settings.topPos
            });

            settings.tabHandle.css({ 'top': 0 });
        }

        if (settings.tabLocation === 'left') {
            obj.css({ 'left': '-' + properties.containerWidth });
            settings.tabHandle.css({ 'right': '-' + properties.tabWidth });
        }

        if (settings.tabLocation === 'right') {
            obj.css({ 'right': '-' + properties.containerWidth });
            settings.tabHandle.css({ 'left': '-' + properties.tabWidth });

            $('html').css('overflow-x', 'hidden');
        }

        //functions for animation events

        //settings.tabHandle.click(function (event) {
        //    event.preventDefault();
        //});

        var slideIn = function () {

            if (settings.tabLocation === 'top') {
                obj.animate({ top: '-' + properties.containerHeight }, settings.speed).removeClass('open');
            } else if (settings.tabLocation === 'left') {
                obj.animate({ left: '-' + properties.containerWidth }, settings.speed).removeClass('open');
            } else if (settings.tabLocation === 'right') {
                obj.animate({ right: '-' + properties.containerWidth }, settings.speed).removeClass('open');
            } else if (settings.tabLocation === 'bottom') {
                obj.animate({ bottom: '-' + properties.containerHeight }, settings.speed).removeClass('open');
            }

        };

        var slideOut = function () {

            if (settings.tabLocation == 'top') {
                obj.animate({ top: '-3px' }, settings.speed).addClass('open');
            } else if (settings.tabLocation == 'left') {
                obj.animate({ left: '-3px' }, settings.speed).addClass('open');
            } else if (settings.tabLocation == 'right') {
                obj.animate({ right: '-3px' }, settings.speed).addClass('open');
            } else if (settings.tabLocation == 'bottom') {
                obj.animate({ bottom: '-3px' }, settings.speed).addClass('open');
            }
        };

        var clickScreenToClose = function () {
            obj.click(function (event) {
                event.stopPropagation();
            });

            $(document).click(function () {
                slideIn();
            });
        };

        var clickAction = function () {

            settings.tabHandle.unbind('click');
            settings.tabHandle.click(function (event) {

                if (obj.hasClass('open')) {

                    slideIn();

                } else {

                    slideOut();

                    if (slideOutCallBackFunction) {

                        slideOutCallBackFunction();
                    }
                }
            });

            clickScreenToClose();
        };

        var hoverAction = function () {
            obj.hover(
                function () {
                    slideOut();
                },

                function () {
                    slideIn();
                });

            settings.tabHandle.click(function (event) {
                if (obj.hasClass('open')) {
                    slideIn();
                }
            });
            clickScreenToClose();

        };

        var slideOutOnLoad = function () {
            slideIn();
            setTimeout(slideOut, 500);
        };

        //choose which type of action to bind
        if (settings.action === 'click') {
            clickAction();
        }

        if (settings.action === 'hover') {
            hoverAction();
        }

        if (settings.onLoadSlideOut) {
            slideOutOnLoad();
        };

    };
})(jQuery);

$(document).ready(function () {

    $('#m_btnNext').unbind('click');
    $('#m_btnNext').click(function (event) {

        if ($(this).closest('form').attr("isValid") != null && $(this).closest('form').attr("isValid") == "false")
            return;
        //if ($(this).closest('form:invalid').length > 0) {
        if ($(this).closest('form').attr("isValid") != null) {
            $(this).closest('form').find('input:visible[required="required"]').each(function () {
                if (!this.validity.valid) {
                    $(this).focus();
                    return false;
                }
            });
            return;
        }

        $('#m_btnNext').attr("disabled", true).html("<img src='/eSecuritel/HITS/WebSite/images/nexbuttonloader.gif'>").css("padding", "8px");

        $('#m_btnPrevious').attr("disabled", true);
        var input = $("<input>").attr("type", "hidden").attr("name", "btnNext")
        $(this).closest('form').append($(input)).submit();

    });

    $('#m_btnPrevious').unbind('click');
    $('#m_btnPrevious').click(function (event) {

        $('#m_btnNext').attr("disabled", true);
        $('#m_btnPrevious').attr("disabled", true).html("<img src='/eSecuritel/HITS/WebSite/images/nexbuttonloader.gif'>").css("padding", "8px");;
        var input = $("<input>").attr("type", "hidden").attr("name", "btnPrevious")
        $(this).closest('form').append($(input)).submit();

    });

    var $loading = $('#overlay').hide();

    //$(".handle").click(function () {

        //if (helpContentLoaded === false) {

        //    $.ajax({
        //            url: "../Layout/helpContent/",
        //            type: "GET",
        //            data: ""
        //        })
        //        .done(function(data) {

        //            $("#helpContent").html(data.helpContent);

        //        helpContentLoaded = true;
        //    });
        //}
    //});

    $(document)
          .ajaxStart(function () {
              $loading.show();
          })
          .ajaxStop(function () {
              $loading.hide();
          })
          .ajaxError(function () {
              alert("Request failed.");
              $loading.hide();
          });
});

$(function () {
    $('.slide-out-div').tabSlideOut({
        tabHandle: '.handle',                     //class of the element that will become your tab
        pathToTabImage: '/eSecuritel/HITS/WebSite/images/help.png', //path to the image for the tab //Optionally can be set using css
        imageHeight: '122px',                     //height of tab image           //Optionally can be set using css
        imageWidth: '40px',                       //width of tab image            //Optionally can be set using css
        tabLocation: 'right',                      //side of screen where tab lives, top, right, bottom, or left
        speed: 300,                               //speed of animation
        action: 'click',                          //options: 'click' or 'hover', action to trigger animation
        topPos: '180px',                          //position from the top/ use if tabLocation is left or right
        leftPos: '20px',                          //position from left/ use if tabLocation is bottom or top
        fixedPosition: false,                      //options: true makes it stick(fixed position) on scroll
        slideOutCallBackFunction: slideOutCallBackFunction

    });

    if (helpAutoSlideOutOnLoad === true) {
        $(".handle").click();
    }

});

