﻿$(document).ready(function () {
    var prevSearchValue;

    $('a.image').lightBox({
        imageLoading: '../../Content/Images/Layout/lightbox-ico-loading.gif',
        imageBtnClose: '../../Content/Images/Layout/lightbox-btn-close.gif',
        imageBtnPrev: '../../Content/Images/Layout/lightbox-btn-prev.gif',
        imageBtnNext: '../../Content/Images/Layout/lightbox-btn-next.gif'
    });
    $('#bigMenu li').hoverIntent(function () {
        $('ul', this).slideDown(100);
    }, function () {
        $('ul', this).slideUp(100);
    });
    $('#searchTabs ul li a').click(function () {
        $('#searchTabs ul li a').removeClass('selected');
        $(this).addClass('selected');
        $('#searchBox .searchBox').css('color', 'gray');
        $('#searchBox [name="searchType"]').val($(this).attr('id'))

        if (($(this).attr('id') == 'distributors') || ($(this).attr('id') == 'reps')) {
            $('#searchBox .searchBox').val('Zip Code');
            $('#searchBox .searchBox').attr('maxlength', '5');
        } else {
            $('#searchBox .searchBox').val('Keywords');
            $('#searchBox .searchBox').attr('maxlength', '255');
        }
    });
    $('#searchBox .searchBox').focus(function () {
        $(this).css('color', 'black');
        prevSearchValue = $(this).val();
        $(this).val('');
    });
    $('#searchBox .searchBox').blur(function () {
        $(this).css('color', 'gray');
        if ($(this).val() == '') {
            $(this).val(prevSearchValue);
        }
    });
    $('#searchBox .searchButton').click(function () {
        search();
    });
    $('#searchBox .searchBox').keyup(function (e) {
        if (e.keyCode == 13) {
            search();
        }
    });
    var search = function () {
        var link = "/";

        if ($('#searchBox [name="searchType"]').val() == 'distributors') {
            link = link + 'Distributors/';
        }
        if ($('#searchBox [name="searchType"]').val() == 'reps') {
            link = link + 'Representatives/';
        }
        if ($('#searchBox [name="searchType"]').val() == 'products') {
            link = link + 'Search/';
        }

        link = link + $('#searchBox [name="searchBox"]').val();
        window.location.href = link;
    }
    var external = function (name, url, width, height) {
        var left = parseInt((screen.availWidth / 2) - (width / 2));
        var top = parseInt((screen.availHeight / 2) - (height / 2));

        var windowSize = "resizable=yes,menubar=no,scrollbars=yes,directories=no,status=no,location=no,toolbar=no,width=" + width + ",height=" + height + ",left=" + left + ",top=" + top;
        window.open(url, name, windowSize);
    };
    $('.video').click(function (event) {
        if ($(this).attr("data-position") == "external") {
            external('video', $(this).attr("href"), 700, 530);
        } else {
            var file = $(this).attr("data-key");
            var name = $(this).attr("data-name");

            var video = '<div id="internalPlayer"><video width="640" height="360" src="../../Content/Documents/General/' + file + '" type="video/mp4"  id="videoPlayer" controls="controls" preload="none"></video><div class="dataBox"><div class="description">' + name + '</div><img class="close" src="../../Content/Images/Layout/lightbox-btn-close.gif" alt="" /></div></div>';

            if ((navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPod') != -1) || (navigator.userAgent.indexOf('iPad') != -1)) {
                var top = parseInt(85 + pageYOffset);
                $('#player').css('top', top);
                $('#player').css('position', 'Absolute');
            }


            $("#screen").fadeIn("fast");
            $("#player").fadeIn("fast");

            $("#player").append(video); ;

            $('#videoPlayer').mediaelementplayer({
                success: function (player, node) {
                    $('#' + node.id + '-mode').html('mode: ' + player.pluginType);
                }
            });
            $('#player .dataBox img.close').click(function (event) {
                $("#internalPlayer").remove();
                $("#screen").fadeOut("fast");
                $("#player").fadeOut("fast");

                auto = true;
            });
        }
        event.preventDefault();
    });
    $('.pdf').click(function (event) {
        if ($(this).attr("data-position") == "external") {
            external('pdf', $(this).attr("href"), 700, 620);
            event.preventDefault();
        }
    });
    $('.html').click(function (event) {
        if ($(this).attr("data-position") == "external") {
            var url = $(this).attr("href") + "/true"
            external('html', url, 700, 620);
            event.preventDefault();
        }
    });
    $('.link').click(function (event) {
        if ($(this).attr("data-position") == "external") {
            external('html', $(this).attr("href"), 700, 620);
            event.preventDefault();
        }
    });

    $(".bubble").hoverIntent(function () {
        if ($(".documentList").length > 0) {
            var parentWidth = $(".documentList").outerWidth(true);
            var parentOffset = $(".documentList").offset().left;
            var childOffset = $(this).offset().left;
            var direction;

            if ((childOffset - parentOffset + 400) < parentWidth) {
                direction = "east";
            } else {
                direction = "west";
            }
        } else {
            direction = "east";
        }

        var title = $(this).attr("data-name");
        var desc = $(this).attr("data-description");
        createOverlay($(this), direction, "<h3>" + title + "</h3><p>" + desc + "</p>");
        $("img", $(this)).css("border-color", "Black");
    }, function () {
        $("div#overlay").remove();
        $("img", $(this)).css("border-color", "#a09781");
    });
    var createOverlay = function (caller, location, html) {
        $("body").prepend("<div id=\"overlay\">" + html + "</div>");
        var offset = caller.offset();
        var bubble = $("div#overlay");
        var pLeft = offset.left;
        var pTop = offset.top;
        var pHeight = caller.outerHeight(true);
        var pWidth = caller.outerWidth(true);
        var height = bubble.outerHeight(true);
        var width = bubble.outerWidth(true);

        switch (location) {
            case 'east':
                $("div#overlay").css({ 'top': pTop + 10 + 'px', 'left': pLeft + pWidth - 10 + 'px' });
                break;
            case 'west':
                $("div#overlay").css({ 'top': pTop + 10 + 'px', 'left': pLeft - width + 10 + 'px' });
                break;
            case 'north':
                $("div#overlay").css({ 'top': pTop - height - 2 + 'px', 'left': (pLeft + (pWidth / 2) - (width / 2)) + 'px' });
                break;
            default: //south
                $("div#overlay").css({ 'top': pTop + 'px', 'left': pLeft + 'px' });
        }
    }


    $(".add").click(function (event) {
        var key = $(this).attr("href");

        addToCart(key, 1);
        event.preventDefault();
    });

    var addToCart = function (key, qty) {
        var params = "key= " + key + "&qty= " + qty;

        $.ajax({
            type: "POST",
            url: "/User/AddToCart",
            data: params,
            cache: false,
            success: function (msg) {
                if ($("#cartRow").length > 0) {
                    $("#cartRow").replaceWith(msg);
                } else {
                    $("body").append(msg);
                }

                $('#cart').animateHighlight('#C7DF93', 500);

                cartFunctions();
            },
            error: function (jqXHR, textStatus, errorThrown) {
                self.alert(jqXHR);
            }
        });
    };
    var updateCart = function (key, qty) {
        var params = "key= " + key + "&qty= " + qty;

        $.ajax({
            type: "POST",
            url: "/User/UpdateCart",
            data: params,
            cache: false,
            success: function (msg) {
                if ($("#cartRow").length > 0) {
                    $("#cartRow").replaceWith(msg);
                } else {
                    $("body").append(msg);
                }

                cartFunctions();
            },
            error: function (jqXHR, textStatus, errorThrown) {
                self.alert(jqXHR);
            }
        });
    };
    var cartFunctions = function () {
        $('#cartHeader #up').click(function (event) {
            if ($("#cartRow").css('height') != "52px") {
                $("#cartRow").animate({ height: "52px" }, "fast"); //.css('height', '40px');
                $('#up').text('Show');
            } else {
                $('#cartRow').css('height', 'auto');
                height = $('#cartRow').height();
                $('#cartRow').css('height', '52px');
                $("#cartRow").animate({ height: height }, "fast"); //.css('height', 'auto');
                $('#up').text(' Hide ');
            }
            event.preventDefault();
        });
        $(".item .update").click(function () {
            var parent = $(this).parent();
            var key = $(".qty", parent).attr("id");
            var qty = $(".qty", parent).val();

            updateCart(key, qty);

        });
        $(".item .remove").click(function () {
            var parent = $(this).parent();
            var key = $(".qty", parent).attr("id");

            updateCart(key, 0);
        });
    };

    cartFunctions();

    //--  Distributor stuff
    $(".toggle").click(function (event) {
        var link = $(this);
        var id = $('a', link).attr("href");
        var element = $("#" + id);

        if (element.is(":hidden")) {
            element.slideDown(300, function () { $('img', link).attr("src", "../../Content/Images/Layout/collapse.gif"); });
        } else {
            element.slideUp(300, function () { $('img', link).attr("src", "../../Content/Images/Layout/show.gif"); });
        }
        event.preventDefault();
    });

    $.fn.animateHighlight = function (highlightColor, duration) {
        var highlightBg = highlightColor || "#FFFF9C";
        var animateMs = duration || 1000;
        var originalBg = this.css("background-color");

        if (!originalBg || originalBg == highlightBg)
            originalBg = "#FFFFFF"; // default to white 

        jQuery(this)
            .css("backgroundColor", highlightBg)
            .animate({ backgroundColor: originalBg }, animateMs, null, function () {
                jQuery(this).css("backgroundColor", originalBg);
            });
    };

});
