﻿jQuery.noConflict();

jQuery(function ($) {//on page ready

    if (!$('#container').hasClass('gscom')) {
        //$('#container').addClass('gscom');
    }

    var absoluteImagePath = "";
    absoluteImagePath += (location.protocol.indexOf("https") > -1) ? "https://" : "http://";
    absoluteImagePath += (location.hostname.indexOf("support.geeksquad.com") > -1) ? "www-origin.geeksquad.com" : "ssl.gs.manage.net";

    $('.track_outgoing_link, .track_portal_link').each(function (index) {
        var prtcl = location.protocol;
        if ($(this).children('img').length > 0) {//if the parent has a button class then append the white icon
            return;
        }
        else if ($(this).parent().hasClass('bestbuy')) {//if the anchor's parent has a bestbuy class then it is the logo
            return;
        }
        else if ($(this).attr('href').indexOf('support.geeksquad') > -1) {
            return;
        }
        else if ($(this).parent().hasClass('no-external-icon')) {
            return;
        }
        else if ($(this).parent().hasClass('button')) {//check to see if the child node is a <img> tag if true append white image
            //var path = (prtcl.indexOf("https") != -1) ? "https://ssl.gs.manage.net" : "http://geeksquad.com";
            $(this).append('<img class="external_link_icon" src="' + absoluteImagePath + '/images/sm_white_external_link.png" />'); //images/sm_white_external_link.png  + prtcl + '//www.geeksquad.com/assets/0/73/128/129/6105cda0-d4c8-4a70-9b49-2b7087d4e20f.png
        }
        else {//default is to insert the orange icon after the link
            //var path = (prtcl.indexOf("https") != -1) ? "https://ssl.gs.manage.net" : "http://geeksquad.com";
            $(this).after('<img class="external_link_icon" src="' + absoluteImagePath + '/images/sm_orange_external_link.png" />'); //images/sm_orange_external_link.png ' + prtcl + '//www.geeksquad.com/assets/0/73/128/129/27792605-e9bb-4bfb-9ad5-1e1b3e4e85db.png
        }
    });

    //setup AJAX
    jQuery.ajaxSetup({
        dataType: "jsonp",
        jsonp: "action"
    });

    //check for web fonts
    isFontFaceSupported.ready(function (supported) {
        if (!supported) { $('body').addClass('nofontface'); }
        else { $('body').addClass('fontface'); }
    });

    var mto; //menu timeout

    //menu navigation
    $('#nav li').hover(
    function () {
        if (mto) {
            window.clearTimeout(mto);
        }
        $(this).parent().find('.menu_shown').removeClass('menu_shown');
        $(this).addClass('menu_shown');

    },
    function () {
        mto = window.setTimeout(hideAllMenus, 600);
    });

    $('#nav li ul').mouseover(function () {
        if (mto) {
            window.clearTimeout(mto);
        }
    });

    function hideAllMenus() {
        $('#nav li.menu_shown').removeClass('menu_shown');
    }

    $.fn.makeMenuColumns = function () {
        var className = "menu_col_";
        //outer loop of all first child list elements
        this.each(function () {
            var maxRows = 6;
            var numOfWrappers = 1;
            var parentID = '#' + $(this).parent().attr('id');
            //inner loop of list items within inner UL
            $(this).children().each(function (index) {
                $(this).addClass(className + numOfWrappers);
                if ((index + 1) % maxRows === 0) {
                    numOfWrappers++;
                }
            });

            for (var i = 1; i <= numOfWrappers; i++) {
                $(parentID + ' .' + className + i).wrapAll('<div class="menu_column_wrapper" />');
            }
        });
    }

    //global nav
    var adjustedWidth = (navigator.platform == 'iPad') ? '100px' : '117px';
    $('#nav > li:last').css('width', adjustedWidth);
    //get number of top level list elements on the global nav
    var navElements = $('#nav > li').length;
    //get number of top left list elements that should have their child ul positioned right
    var numOfRightElements = Math.round(navElements / 2);
    //position child ul lists to the right on all the right most top level list elements
    for (var i = numOfRightElements; i < navElements; i++) {
        $('#nav > li:eq(' + i + '):last ul').css({ 'left': 'auto', 'right': '0px' });
    }

    $('#nav li ul .menu_list_wrapper').makeMenuColumns();

    //search box
    $('.search_box').focus(function () {
        if ($(this).val() == 'Search...') { $(this).val(''); }
        $(this).parent().find('.search_dd').slideDown('fast');
    });
    $('.search_box').keypress(function (event) {
        if (event.keyCode == 13) {
            ShowAllSearchResults($(this).parent());
        }
    });
    $('.search_box').keyup(function (event) {
        $(this).parent().find('.search_load').show();
        RefreshSearchResults($(this).parent());
    });
    $('.search_btn, .view_all').click(function () {
        ShowAllSearchResults($(this).closest('div.search'));
    });
    $('body').click(function () {
        if ($('.search_box').val() == '') { $('.search_box').val('Search...'); }
        $('.search_dd').slideUp('fast');
        $('.search_load').hide();
    });
    $('.search_box, .search_dd').click(function (event) {
        event.stopPropagation();
    });

});            //end page ready function

//search box functions
function RefreshSearchResults(searchDiv) {
    var searchTextbox = searchDiv.find('input.search_box');
    //    var searchHidden = searchDiv.find('.search_dd input[type=hidden]')[0];
    //    $(searchHidden).val($(searchTextbox).val());
    //    __doPostBack($(searchHidden).attr('id'), '');
    jQuery.get("http://www.geeksquad.com/searchservice.svc/search", { query: searchTextbox.val() }, function (data) {
        var searchResults = searchDiv.find('.searchResults');
        var resultTemplate = searchDiv.find('.resultTemplate');

        jQuery('.search_load').hide();
        searchResults.empty();
        if (data && data.d) {
            resultTemplate.tmpl(data.d).appendTo(searchResults);
            //if there are search results display the view all link otherwise hide it

            if (data.d.length > 0) {
                searchTextbox.parent().find('.search_dd').slideDown('fast');
                $('.view_all a').css('visibility', 'visible');
                $('.search_btn').removeClass('disable');
            }
            else {
                searchTextbox.parent().find('.search_dd').slideUp('fast');
                $('.view_all a').css('visibility', 'hidden');
                $('.search_btn').addClass('disable');
            }

        }

    });
}

function ShowAllSearchResults(searchDiv) {
    var searchTextbox = searchDiv.find('input.search_box');
    window.location = 'http://www.geeksquad.com/search/default.aspx?query=' + searchTextbox.val();
}
function EndAsyncRequest() {
    jQuery('.search_load').hide();
}
