/**
 * @author jmeilinger
 */
$(document).ready(function() {
    WireupDropDownLinkMenus('#contentwrapper');
});

function WireupDropDownLinkMenus(parent) {
    $(parent).find('.DropDownLinkMenu').each(function(i) {
        var CurrentDropDownMenu = $(this);
        var $Selector = CurrentDropDownMenu.find('.selectedCategory');

        CurrentDropDownMenu.find('ul').hide();

        //Create dropdown.
        $("<div class='DropDownMenu'></div>").appendTo(CurrentDropDownMenu);
        CurrentDropDownMenu.find('a').each(function(i) {
            $("<a href=\"" + $(this).attr("href") + "\">" + $(this).text() + "</a>").appendTo(CurrentDropDownMenu.find(".DropDownMenu"));
        });
        CurrentDropDownMenu.find('.DropDownMenu').hide();
        //$Selector.click(function() { $(this).parent().find('.filterDropDown').toggle('fast'); });

        $Selector.click(function() {
            var dd = $(this).parent().find('.DropDownMenu');
            if (dd.is(":hidden")) {
                currentOpenDD = dd;
                dd.slideDown(100);
                dd.mouseover(function() { ddcancelclosetime(); });
                dd.mouseout(function() { ddclosetime(); });

            } else {
                dd.hide();
            }
        });

        $Selector.mouseover(function() {
            var dd = $(this).parent().find('.DropDownMenu');
            if (dd.is(":hidden")) {
                // do nothing
            } else {
                ddcancelclosetime();
            }
        });
        $Selector.mouseout(function() {
            var dd = $(this).parent().find('.DropDownMenu');
            if (dd.is(":hidden")) {
                // do nothing
            } else {
                ddclosetime();
            }
        });
    });

}
var currentOpenDD = null;
var ddclosetimer = null;

function ddclosetime() {
    window.clearTimeout(ddclosetimer);
    ddclosetimer = window.setTimeout(ddclose, 2000);
}
function ddclose() {
    window.clearTimeout(ddclosetimer);
    ddclosetimer = null;
    if (currentOpenDD) {
        currentOpenDD.hide();
        currentOpenDD = null;
    }
}

function ddcancelclosetime() {
    if (ddclosetimer) {
        window.clearTimeout(ddclosetimer);
        ddclosetimer = null;
    }
}
