﻿var update = false;
var requestMade = false;
var qlistUpdater, pageNum, sortNum, isExpert, userTags, submitTags, forum, group, qListUpdaterIntervalID, autoUpdate, updateMessage;
var updateFrequency = 40000;

function getQListUrl()
{
    var qlistUrl = "";
    submitTags = $("#submitTags").val();
    userTags = $("#userTags").val();    
    forum = getForumString();
    forum = (forum == "") ? $(".ddlForumTable").val() : forum;
    
    group = $(".ddlShowGroup").val();
    index = forum.indexOf("?")+1;
    forum = (index != -1) ? forum.slice(index, forum.length) : "";
    
    submitTags = (submitTags == undefined) ? "" : submitTags;
    userTags = (userTags == undefined) ? "" : userTags;
    pageNum = (pageNum == undefined) ? 1 : pageNum;
    sortNum = (sortNum == undefined) ? "80" : sortNum;
    group = (group == undefined) ? "-2" : group;
    
    qlistUrl = "last="+escape(jQuery.trim($(".lastUpdate").eq(0).text()))+
               "&update="+update+
               "&userTags="+userTags+
               "&submitTags="+submitTags+
               "&PN="+pageNum+
               "&SS="+sortNum+
               "&SG="+group+
               "&"+forum;
    
    return qlistUrl;
}

function getForumString() {
    var fString = "";
    var query = location.search.substring(1);
    var pairs = query.split("&");
    for(var i = 0; i < pairs.length; i++) {
        var pos = pairs[i].indexOf('=');
        if (pos == -1) continue;
        var argname = pairs[i].substring(0,pos);
        var value = pairs[i].substring(pos+1);
        if (argname == "CATID") {
            fString+=(fString.length > 0) ? "&" : "";
            fString+="CATID="+value;
        }
        else if (argname == "FID") {
            fString+=(fString.length > 0) ? "&" : "";
            fString+="FID="+value;
        }
    }
    return fString;
}

function beforeUpdate(xmlhttprequest) 
{    
    $("#animated_refresh").fadeIn(1500);
}

function afterUpdate() 
{    
    requestMade = false;
    $("#submitTagsBtn").css({cursor: "default"});
    if (isExpert) {
        $(".changed", "#htmlContent").each(function(i) {
            var parent = $(this).parent().get(0);
            var bgColor = $(parent).css("backgroundColor");
            if ($(this).hasClass("new")) bgColor = $(this).css("backgroundColor");
            $(this).css("backgroundColor", "#FF9B00");
            var animation = function() {
                $(this).animate({backgroundColor: bgColor}, 4000);
            }.bindThis(this);
            window.setTimeout(animation, 1000);
        });
    }
    $(".ExpertsOnline_display").text($(".ExpertsOnline_hidden").text());
    update = false;
    window.setTimeout("$(\"#animated_refresh\").fadeOut(2000)", 2000);
    pageNum = $(".ddlPager").eq(0).val();
    SetupQuestionList();
    tt_Init("qListPanel");
}

function ToggleUpdater(elem) {
    var text = $(elem).text();
    if (text == 'On') {
        StopUpdating();
        $(elem).text('Off');
    }
    else {
        StartUpdating();
        $(elem).text('On');
    }
}

function SubmitTags() {
    update = true;
    $("#submitTagsBtn").css({cursor: "wait"});
    UpdateQList();
}

function UpdatePage() {
    pageNum = $(".ddlPager").eq(0).val();
    UpdateQList();
}

function UpdateSort(sort, elem) {
    sortNum = sort;
    $(elem).css({cursor: "wait"});
    UpdateQList();
}

function PrevPage() {
    pageNum--;
    $("#pagerPrevLink").unbind("onclick");
    $("#pagerPrevLink").css({cursor: "wait", color: "#FF9B00", textDecoration: "none"});
    UpdateQList();
}

function NextPage() {
    pageNum++;
    $("#pagerNextLink").unbind("onclick");
    $("#pagerNextLink").css({cursor: "wait", color: "#FF9B00", textDecoration: "none"});
    UpdateQList();
}

function Setup() {
    sortNum = "80";
    if (!isExpert) {
        $("#goButton").hide();
    }
    if (autoUpdate) {
        SetupQuestionList();
        StartUpdating();
    }
    else {
        $(".noJS").hide();
        $(".JS").show();
        SetupPager();
    }
}

function StartUpdating() {
    updateInterrupter.start(interruptInterval, interruptMessage);      
    qListUpdaterIntervalID = setInterval("UpdateQList()", updateFrequency);
    
}

function StopUpdating() {
    updateInterrupter.stop();
    clearInterval(qListUpdaterIntervalID);
}

function SetupQuestionList() {
    
    $(".noJS").hide();
    $(".JS").show();
    
    $(".noJS_Update").hide();
    $(".JS_Update").show();
    
    $("#userTags").val(userTags);    
    $("#userTags").bind("keypress", function(e) {
        var key = e.charCode || e.keyCode || 0;
        if (key == 13) {
            update = true;
            UpdateQList();
        }
    });
    
    $("body").bind("keypress", function(e) {
        var key = e.charCode || e.keyCode || 0;
        if (key == 13) {
            return false;
        }
        return true;
    });
    
    SetupPager();
}

function SetupPager() {

    pageNum = parseInt($(".ddlPager").eq(0).val());

    var totPages = parseInt($(".pagerTotalPages").eq(0).text());

    if (totPages > pageNum) {
        $("#pagerNextLink").show();
    }
    if (pageNum > 1) {
        $("#pagerPrevLink").show();
    }
}

function UpdateQList() {
    beforeUpdate();
    if (!requestMade)
    {
        requestMade = true;
        $("#qListPanel").load("/processes/question-list.aspx?" + getQListUrl() + " #htmlContent", {}, afterUpdate);         
    }
}

$(document).ready(function ()
{
    try {
        pageTracker._trackEvent('QuestionList', getForumString());
    } catch (Error)
    {}
    
});
