$(document).ready(function () {
	$('a.target-blank').click(function(e){
		useTargetBlank(this);
		e.preventDefault();
		return false;
	});
	
	
    checkIfMoreIsNeeded();

    $("div.comment img").each(function () {
        if ($(this).attr('src') == '' || $(this).attr('src') == 'a') {
            $(this).attr("src", defaultUserIconPath);
        }
    });

    $("div.flag-dialog textarea").keydown(function (evt) {

        if ($(this).val().length >= 250) {
            if (evt.keyCode != '46' && evt.keyCode != '8') {
                evt.preventDefault();
            }
        }
    });
});
function menuSearchClicked() {
   
    var searchWord = $("input[name=search-keywords]").val().trim();

    if (searchWord != "" && searchWord != "search") {

        window.location = articleSearchUrl + "?searchWord=" + searchWord;
    }
    return false;
}

function searchInputKeypress(event) {

    var searchWord = $(this).val().trim();
    var charCode;

    if (event && event.which) {
        charCode = event.which;
    } else if (window.event) {
        event = window.event;
        charCode = event.keyCode;
    }

    if (charCode == '13' && searchWord != "" && searchWord != "search") {
        window.location = articleSearchUrl + "?searchWord=" + searchWord;

    }
}

function searchInputClicked() {

    $(this).attr('value', "");
}


function panelButtonClickHandler(event) {

    var $target = $(event.target);

    if (!($target.parent().hasClass("selected"))) {

        if ($target.parent().parent().children(".panel-button").hasClass("selected")) {
            $target.parent().parent().children(".panel-button").removeClass("selected");
        }

        $target.parent().addClass("selected");
        $("div.container.tab div.panel ul").hide();
        $("div.panel ul." + $target.attr("id")).show();
    }

    return false;
}

function refreshSidebarTabs(filter) {

    $("div.panel-button a[id=" + filter + "]").parent().hide();
    $("div.panel-button a[id=" + filter + "]").parent().removeClass("selected");
    $("div.panel-button a[id!=" + filter + "]").first().parent().addClass("selected");
    $("div.panel ul[class!=" + filter + "]").first().show();
}

function seeAllButtonClicked(event) {

    var currentFilter = $("div.panel-button[class*=selected] a").attr("id");

    event.data.form.AddItem("sort", currentFilter);
    event.data.form.Submit();

    return false;
};

function checkIfMoreIsNeeded() {
    var container = $('#menu-bar .inner');

    var maxWidth = 660;
    var moreWidth = 60;
    var categories = new Array();
    var addMoreButton = false;
    var repeatFor = false;

    var currentWidth = moreWidth;
    
    var index = 0;
    $('#menu-bar .inner > a').each(function(){
        categories[index] = $(this);
        index++;
    });

    //first size check
    for (var i in categories) {
        currentWidth += $(categories[i]).width() + 12;
        if (currentWidth > maxWidth) {
            categories[i]['hide'] = true;
            addMoreButton = true;
        }
    }

    //check if active is hidden
    for (var i in categories) {
        if ($(categories[i]).hasClass('active') && categories[i]['hide'] == true) {
            repeatFor = true;
        }
    }

    //if active is hidden we repeat the size check, this time we make space for the active element
    if (repeatFor) {
        //var currentWidth = moreWidth + getMaxWidth($('#menu-bar .inner > a'));
        var currentWidth = moreWidth + $(container).find('a.active').width();
        for (var i in categories) {
            currentWidth += $(categories[i]).width() + 12;
            if (currentWidth > maxWidth) {
                categories[i]['hide'] = true;
                addMoreButton = true;
            }
            else {
                categories[i]['hide'] = false;   
            }
        }
    }

    //if more button is needed we insert it in the page. also we bind the hover event on it
    if (addMoreButton) {
        $(container).append($('<ul/>', { 'class': 'more' }));
        $(container).find('ul.more').append($('<li/>', { 'class': 'button' })).append($('<li/>', { 'class': 'list' }).append($('<ul/>')));
        $(container).find('ul.more li.button').append($('<a/>', {'class': 'action','text': 'More'}));

        $(container).find('ul.more').hover(function () {
            $(container).find('ul.more li.list ul').css('display','block');
        }, function () {
            $(container).find('ul.more li.list ul').hide();
        });
    }

    //we insert the hidden categories in the more section
    for (var i in categories) {
        if (categories[i]['hide'] == true) {
            //if is active category then we insert it in the menu bar
            if ($(categories[i]).hasClass('active')) {
                //$(container).find('ul.more li.button').append($(categories[i]));
                $(categories[i]).insertAfter($(container).find('ul.more'));
                $(container).find('ul.more a.action').addClass('arrow');
            } else {
                $(categories[i]).remove();
                $(container).find('ul.more .list ul').append($('<li/>').append(categories[i]));
            }
        }
    }

    $(container).find('ul.more li.list ul').addClass('background-color-2').css('min-width',($(container).find('ul.more').width())+'px');
}

function getMaxWidth(arr) {
    var first = true;
    var max = 0;
    $(arr).each(function () {
        if (first) {
            max = $(this).width();
            first = false;
        } else if ($(this).width() > max) {
            max = $(this).width();
        }
    });

    return max;
}
