﻿
String.prototype.trim = function() 
{
    return this.replace(/^\s+|\s+$/g, '');
}

function ChangePage(pageSize, currentPage, itemType, orderType, ulPagesID, ulItemsID, pnlLoadingID, showComments, divFooterID, callback) 
{
    ShowLoading(ulItemsID, pnlLoadingID, divFooterID);
    SetCurrentPage(ulPagesID, currentPage);
    SilverlightShow.Services.Items.GetItems(pageSize, currentPage, itemType, orderType, showComments, callback);
}

function ChangeOrderType(pageSize, itemType, orderType, ulPagesID, ulItemsID, pnlLoadingID, ulTabsID, showComments, divFooterID, cookieGroup, cookieName, callback) 
{
    ShowLoading(ulItemsID, pnlLoadingID, divFooterID);
    SetCurrentPage(ulPagesID, 1);
    SetCurrentTab(ulTabsID, orderType);
    SetCookie(cookieGroup, cookieName, orderType, 30);
    SilverlightShow.Services.Items.GetItems(pageSize, 1, itemType, orderType, showComments, callback);
}

function ShowLoading(ulItemsID, pnlLoadingID, divFooterID) 
{
    var itemsUl = document.getElementById(ulItemsID);
    var footerDiv = document.getElementById(divFooterID);
    var loadingPnl = document.getElementById(pnlLoadingID);
    itemsUl.style.display = 'none';
    if (footerDiv != null) 
    {
        footerDiv.style.display = 'none';
    }
    loadingPnl.style.display = 'block';
}

function HideLoading(ulItemsID, pnlLoadingID, divFooterID) 
{
    var itemsUl = document.getElementById(ulItemsID);
    var footerDiv = document.getElementById(divFooterID);
    var loadingPnl = document.getElementById(pnlLoadingID);
    loadingPnl.style.display = 'none';
    itemsUl.style.display = 'block';
    if (footerDiv != null) 
    {
        footerDiv.style.display = 'block';
    }
}

function SetCurrentTab(ulTabsID, orderType) 
{
    var tabsUl = document.getElementById(ulTabsID);
    var liItems = tabsUl.getElementsByTagName('li');
    for (var i = 1; i <= liItems.length; i++) 
    {
        var li = liItems[i - 1];
        li.attributes['class'].value = '';
    }
    var selectedLi = document.getElementById((ulTabsID + orderType));
    selectedLi.attributes['class'].value = 'selected';
}

function SetCurrentPage(ulPagesID, currentPage) 
{
    var pagesUl = document.getElementById(ulPagesID);
    if (pagesUl != null) 
    {
        var liItems = pagesUl.getElementsByTagName('li');
        for (var i = 1; i <= liItems.length; i++) 
        {
            var li = liItems[i - 1];
            var a = li.getElementsByTagName('a')[0];
            if (i != currentPage) 
            {
                a.attributes['class'].value = '';
            }
            else 
            {
                a.attributes['class'].value = 'selected';
            }
        }
    }
}

function SetItems(result, ulItemsID, pnlLoadingID, cutTitle, cutTitleSize, divFooterID) 
{
    var itemsUl = document.getElementById(ulItemsID);

    while (itemsUl.hasChildNodes()) 
    {
        itemsUl.removeChild(itemsUl.firstChild);
    }
    for (var i in result) 
    {
        var li = document.createElement('li');
        var a = document.createElement('a');
        var title = document.createAttribute('title');
        title.value = result[i]['Title'];
        a.attributes.setNamedItem(title);
        var href = document.createAttribute('href');
        href.value = result[i]['Url'];
        a.attributes.setNamedItem(href);

        var text;
        if (cutTitle) 
        {
            text = document.createTextNode(Substring(result[i]['Title'], cutTitleSize));
        }
        else 
        {
            text = document.createTextNode(result[i]['Title']); 
        }
        
        a.appendChild(text);
        li.appendChild(a);
        itemsUl.appendChild(li);
    }
    HideLoading(ulItemsID, pnlLoadingID, divFooterID);
}

function Substring(text, length) 
{
    if (text.length <= length) 
    {
        return text;
    }
    return text.substring(0, length) + '...';
}

function SetCookie(c_group, c_name, value, expiredays) 
{
    var values = new String();
    var c_sub_values_arr = Array();

    var c_values = GetCookie(c_group);
    if (c_values.length > 0) 
    {
        var c_values_arr = Array();
        c_values_arr = c_values.split('&');
        for (var i in c_values_arr) 
        {
            var key_value = c_values_arr[i].trim().split('=');
            c_sub_values_arr[key_value[0]] = key_value[1];
        }
    }

    c_sub_values_arr[c_name] = value;

    for (var key in c_sub_values_arr) 
    {
        values += key + '=' + c_sub_values_arr[key] + '&';
    }
    values = values.substr(0, values.length - 1);
    
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_group + "=" + values + ";expires=" + exdate.toGMTString() + ';path=/';
}

function GetCookie(c_group) 
{
    if (document.cookie.length > 0) 
    {
        c_start = document.cookie.indexOf(c_group + '=');
        if (c_start != -1) 
        {
            c_start = c_start + c_group.length + 1;
            c_end = document.cookie.indexOf(';', c_start);
            if (c_end == -1) 
            {
                c_end = document.cookie.length; 
            }
            return document.cookie.substring(c_start, c_end);
        }
    }
    return '';
} 
