﻿listRefreshBtnId = null;
function SearchResults_OnItemCommand(refreshBtnId, listConfigId, paramName, paramValue) 
{
    try 
    {
        listRefreshBtnId = refreshBtnId;
        PageMethods.SearchResults_OnItemCommand(paramName, paramValue, listConfigId, SearchResults_Refresh, SearchResults_OnItemCommandFail);
    }
    catch (error) 
    {
        alert('A script error occurred: ' + error.description);
    }
}
function SearchResults_OnItemCommandFail(exception) 
{
    alert(exception._message);
}
function SearchResults_Refresh(refreshBtnId) {
    var refreshBtn = null;
    if (refreshBtnId == undefined || refreshBtnId == null) {
        refreshBtn = $get(listRefreshBtnId);
        listRefreshBtnId = null;
    }
    else {
        refreshBtn = $get(refreshBtnId);
    }   
    if (refreshBtn == null) 
    {
        alert('Refresh control not found');
        return;
    }
    refreshBtn.click();
}
function SelectAlphaChar(theChar, fieldName, onload)
{
    var listWrapper=$get(fieldName);
    var inputArray=listWrapper.getElementsByTagName('input');
    var linkArray=listWrapper.getElementsByTagName('a');
    var valueField;
    var deselect=false;
    
    for(var i=0; i<inputArray.length; i++)
    {
        if(inputArray[i].id != null && inputArray[i].id.match('AlphaCharHField') != null)
        {
            valueField=inputArray[i];
            if(theChar=='-')
            {
                valueField.value='';
                deselect=true;
            }
            else if(valueField.value.length<1||valueField.value!=theChar||(onload&&valueField.value==theChar))
            {
                valueField.value=theChar;
            }  
            else
            {
                valueField.value='';
                deselect=true;
            }     
        }                
    }

    for(var i=0; i<linkArray.length; i++)
    {
        if(linkArray[i].id != null && linkArray[i].id.match('CharBtn') != null && linkArray[i].innerHTML.toLowerCase() == theChar.toLowerCase() && !deselect)
        {
            linkArray[i].className = 'selectedAlphaCar';
        }
        else
        {
            linkArray[i].className = '';
        }
    }
}
var durationPerItem = 600;
function ToggleGroupedListItems(button, groupId) 
{
    var searchStr = 'div.' + groupId;
    var status = $(searchStr).data('status');
    if (status != 'closed') 
    {
        $(searchStr).slideUp(durationPerItem);
        $(searchStr).data('status', 'closed');
        button.className = 'groupedHeader closedGroup';
    }
    else 
    {
        $(searchStr).slideDown(durationPerItem);
        $(searchStr).data('status', 'open');
        button.className = 'groupedHeader openGroup';
    }
}
function OnFilterTextBoxKeyPress(textbox, e) {
    // depends on event helper script
    var evt = e.get_domEvent();
    if (KeyPressed(evt, 13)) {
        var lcId = $(textbox.get_element()).data('LcId');
        var btnClientId = null;
        eval('btnClientId=SearchBtnClientId' + lcId + ';');
        e.set_cancel(true);
        $get(btnClientId).click();
        return false;
    }
    return true;
}
function SetListAjaxLoader(listContainerClientId, listLoaderPanelClientId) {
    var containerId = '#' + listContainerClientId;
    var loaderId = '#' + listLoaderPanelClientId;    
    if ($(containerId).length) {
        var width = $(containerId).width();
        if(width > 0) $(loaderId).width(width);
        var height = $(containerId).height();
        if (height > 0) $(loaderId).height(height);
    }
}
function OrderBy(refreshBtnId, orderByClientId, fieldName, orderDir) {
    var orderByArray = GetOrderByArray(orderByClientId);
    var orderBy = GetOrderBy(orderByArray, fieldName);
    for (var i = 0; i < orderByArray.length; i++) {
        var tmpOrd = orderByArray[i];
        tmpOrd.Active = false;
    }
    if (orderDir == null || orderDir == '') {
        orderByArray = new Array();
    }
    else if (orderBy == null) {
        orderBy = CreateOrderBy(fieldName, orderDir, true);
        orderBy.Active = true;
        orderByArray.unshift(orderBy);    
    }
    else {
        orderBy.OrderDirection = orderDir;
        orderBy.Active = true;
        orderByArray.unshift(orderBy);
    }    
    
    SetOrderByField(orderByArray, orderByClientId);     
    SearchResults_Refresh(refreshBtnId);
}
function GetOrderBy(orderByArray, fieldName) {
    for (var i = 0; i < orderByArray.length; i++) {
        var orderBy = orderByArray[i];
        if (orderBy.FieldName == fieldName) {
            return orderBy;
        }
    }
    return null;
}
function RemoveOrderBy(orderByArray, fieldName) {
    for (var i = 0; i < orderByArray.length; i++) {
        var orderBy = orderByArray[i];
        if (orderBy.FieldName == fieldName) {
            orderByArray.remove(i);
        }
    }
}
function GetOrderByArray(orderByClientId) {
    var orderByField = $get(orderByClientId);
    var currentValue = orderByField.value;
    var orderByArray = new Array();
    if (currentValue != null && currentValue.length > 0) {
        if (currentValue.indexOf(';') > -1) {
            var orderByStrings = currentValue.split(';');
            for (var i = 0; i < orderByStrings.length; i++) {
                orderByArray[orderByArray.length] = CreateOrderByFromString(orderByStrings[i]);
            }
        }
        else {
            orderByArray[orderByArray.length] = CreateOrderByFromString(currentValue);
        }
    }
    return orderByArray;
}
function CreateOrderByFromString(str) {
    var orderProps = str.split('|');
    var fieldName = orderProps[0];
    var orderDir = orderProps[1];
    var active = orderProps[2];
    return CreateOrderBy(fieldName, orderDir, active);
}
function SetOrderByField(orderByArray, orderByClientId) {
    var orderByStr = '';
    var processedFields = new Array();
    for (var i = 0; i < orderByArray.length; i++) {
        var orderBy = orderByArray[i];
        if (processedFields.indexOf(orderBy.FieldName) == -1) {
            orderByStr += (i > 0 ? ';' : '') + orderBy.FieldName + '|' + orderBy.OrderDirection + '|' + orderBy.Active;
            processedFields[processedFields.length] = orderBy.FieldName;
        }
    }
    $get(orderByClientId).value = orderByStr;
}
function CreateOrderBy(fieldName, orderDir, active) {
    return { FieldName: fieldName, OrderDirection: orderDir, Active: active };
}
if (!Array.prototype.indexOf){
    Array.prototype.indexOf = function(elt /*, from*/) {
        var len = this.length;
        var from = Number(arguments[1]) || 0;
        from = (from < 0) ? Math.ceil(from) : Math.floor(from);
        if (from < 0) from += len;
        for (; from < len; from++) {
            if (from in this && this[from] === elt) return from;
        }
        return -1;
    }
}
Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
};
