function formatItem (row, n, max, ID, query) {
    return row[1];
}
function formatResult (row, ID) {
    return row[1];
}

var loaderImg = {

    src: '/img/ajax-loader.gif',

    showLoaderImg: function (bg) {
        if (!$('#TB_load').length) { // если уже был поднят thickbox's loader, то не показываем этот
            if (!$('#loaderImg').length) {
                $("body").append(
                    "<div id='loaderImg'>" +
                        "<img src='"+loaderImg.src+"' />" +
                    "</div>"
                );//add loader to the page
            }
            $('#loaderImg').show();//show loader
            if (!!bg) {
                if (!$('#loadOverlay').length) {
                    $("body").append(
                        "<div id='loadOverlay'>" +
                            "&nbsp;" +
                        "</div>"
                    );
                }
                $('#loadOverlay').show();//show loader
                if(detectMacXFF()){
                    $("#loadOverlay").addClass("loadOverlay_bg_MacXFF");//use png overlay so hide flash
                }else{
                    $("#loadOverlay").addClass("loadOverlay_bg");//use background and opacity
                }
            }
        }
    },

    hideLoaderImg: function () {
        $('#loaderImg').hide();//hide loader
        $('#loadOverlay').hide();
    }

};

function detectMacXFF() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
}

var anchorProcessor = function (){

    var parseParams = function (paramsString) {

        if (!paramsString) {
            paramsString = document.location.href;
        }

        var result = paramsString.match(/#(.+)/);
        var paramsObject = [];
        if (result != null && result[1]) {
            for (var i = 0, params = result[1].split("&"); params != null && i < params.length; i++) {
                if (params[i] != null && params[i] != "") {
                    var paramvalue = params[i].split("=");
                    if (paramvalue.length == 2) {
                        paramsObject.push({param: paramvalue[0], value: paramvalue[1]});
                    } else if (paramvalue.length == 1) {
                        paramsObject.push({param: paramvalue[0], value: null});
                    } else if (paramvalue.length > 2) {
                        paramsObject.push({param: paramvalue[0], value: paramvalue.splice(0,1)});
                    }
                }
            }
        }

        return paramsObject;

    };

    return {
        process: function (paramsString) {
            try {
                var loc = null;
                if (!paramsString) {
                    paramsString = document.location.href;
                    loc = document.location;
                }
                var params = parseParams(paramsString);

                if (params.length > 0) {
                    var clearAnchor = false;
                    for (var i = 0; i < params.length; i++) {
                        if (params[i].param == "login") {
                            showLoginDialog();
                            clearAnchor = true;
                        }
                        if (params[i].param == "register") {
                            showRegisterDialog();
                            clearAnchor = true;
                        }
                        if (params[i].param == "email") {
                            $("#email").html(params[i].value);
                            clearAnchor = true;
                        }
                    }

                    if (clearAnchor && loc != null) {
                        loc.replace("#");
                    }
                }
            } catch (e) {
                if (typeof console == "object") {
                    console.log(e.message);
                }
            }

        }
    }

}();

function showFormRestore(immidiate) {
    if (immidiate) {
        $("#formLogin").hide();
        $("#blockRegister").hide();
        $("#blockRegisterVariants").hide();
        $("#formRestore").show();
        return false;
    }
    $("#formLogin").slideUp("slow");
    $("#blockRegister").slideUp("slow");
    $("#blockRegisterVariants").slideUp("slow");
    $("#formRestore").slideDown("slow");
    return false;
}

function showFormLogin(immidiate) {
    if (immidiate) {
        $("#formLogin").show();
        $("#blockRegister").hide();
        $("#blockRegisterVariants").hide();
        $("#formRestore").hide();
        return false;
    }
    $("#formLogin").slideDown("slow");
    $("#blockRegister").slideUp("slow");
    $("#blockRegisterVariants").slideUp("slow");
    $("#formRestore").slideUp("slow");
    return false;
}

function showFormRegister(immidiate) {
    if (immidiate) {
        $("#formLogin").hide();
        $("#blockRegister").show();
        $("#blockRegisterVariants").hide();
        $("#formRestore").hide();
        return false;
    }
    $("#formLogin").slideUp("slow");
    $("#blockRegister").slideDown("slow");
    $("#blockRegisterVariants").slideUp("slow");
    $("#formRestore").slideUp("slow");
    return false;
}

function showFormRegisterVariants(immidiate) {
    if (immidiate) {
        $("#formLogin").hide();
        $("#blockRegister").hide();
        $("#blockRegisterVariants").show();
        $("#formRestore").hide();
        return false;
    }
    $("#formLogin").slideUp("slow");
    $("#blockRegister").slideUp("slow");
    $("#blockRegisterVariants").slideDown("slow");
    $("#formRestore").slideUp("slow");
    return false;
}

function showLoginDialog() {
    var loginBtn = $("#loginBtn");
    showFormLogin(true);
    if (loginBtn) tb_show(loginBtn.attr("title"), loginBtn.attr("href"));
}

function showInviteFriendDialog() {
    var inviteFriendBtn = $("#inviteFriendBtn");
    if (inviteFriendBtn) tb_show(inviteFriendBtn.attr("title"), inviteFriendBtn.attr("href"));
}

function showRegisterDialog() {
    var loginBtn = $("#loginBtn");
    showFormRegisterVariants(true);
    if (loginBtn) tb_show(loginBtn.attr("title"), loginBtn.attr("href"));
}

function writeError(msg) {
    if (!msg) msg = "Ошибка при выполнении запроса";
    $("#message").html("<div class=\"flash-error\">"+msg+"</div>");
}

window.hash = window.location.hash;

function doOnChangeLocationHash(prevHash, hash) {
    debug("hash has been changed from " + prevHash + " to " + hash);
    if (typeof onChangeLocationHash == "function") {
        onChangeLocationHash(prevHash, hash);
    }
}

function initHashListener() {
    setInterval(function()
    {
        if (window.location.hash != window.hash)
        {
            doOnChangeLocationHash(window.hash, window.location.hash);
            window.hash = window.location.hash;
        }
    }, 100);
}

