﻿
String.prototype.trim = function() 
{
    return this.replace(/^\s+|\s+$/g, '');
}

function ChangePage(pageSize, currentPage, itemType, orderType, ulPagesID, ulItemsID, pnlLoadingID, showComments, divFooterID, categoryId, callback) 
{
    ShowLoading(ulItemsID, pnlLoadingID, divFooterID);
    SetCurrentPage(ulPagesID, currentPage);
    SilverlightShow.Services.Items.GetItems(pageSize, currentPage, itemType, orderType, showComments, categoryId, callback);
}

function ChangeOrderType(pageSize, itemType, orderType, ulPagesID, ulItemsID, pnlLoadingID, ulTabsID, showComments, divFooterID, cookieGroup, cookieName, categoryId, 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, categoryId, 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(dlstItemsID, pnlLoadingID, divFooterID) 
{
    var dlstItems = document.getElementById(dlstItemsID);
    var footerDiv = document.getElementById(divFooterID);
    var loadingPnl = document.getElementById(pnlLoadingID);
    loadingPnl.style.display = 'none';
    dlstItems.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, dlstItemsID, pnlLoadingID, cutTitle, cutTitleSize, divFooterID) 
{
    var dlstItems = document.getElementById(dlstItemsID);

    var ulItems = dlstItems.getElementsByTagName('ul');
    if (ulItems.length == 1) {
        var itemsUl = ulItems[0];

        while (itemsUl.hasChildNodes()) {
            itemsUl.removeChild(itemsUl.firstChild);
        }

        var alternate = false;
        for (var i in result) {
            var li = GetLiItem(result[i], alternate, cutTitle, cutTitleSize);
            itemsUl.appendChild(li);
            alternate = !alternate;
        }
    }
    else if (ulItems.length == 3) {
        var firstItemsUl = ulItems[1];
        var secondItemsUl = ulItems[2];

        while (firstItemsUl.hasChildNodes()) {
            firstItemsUl.removeChild(firstItemsUl.firstChild);
        }

        while (secondItemsUl.hasChildNodes()) {
            secondItemsUl.removeChild(secondItemsUl.firstChild);
        }

        var alternate = false;
        var secondList = false;
        for (var i in result) {
            var li = GetLiItem(result[i], alternate, cutTitle, cutTitleSize);

            if (i >= Math.ceil(result.length / 2)) {
                secondList = true;
            }

            if (secondList) {
                secondItemsUl.appendChild(li);
            }
            else {
                firstItemsUl.appendChild(li);
            }
            alternate = !alternate;
        }
    }

    HideLoading(dlstItemsID, 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 '';
}

function GetLiItem(resultItem, alternate, cutTitle, cutTitleSize) 
{
    var li = document.createElement('li');
    var classAttr = document.createAttribute('class');
    if (alternate) {
        classAttr.value = 'AspNet-DataList-Alternate';
    }
    else {
        classAttr.value = 'AspNet-DataList-Item';
    }
    li.attributes.setNamedItem(classAttr);
    var a = document.createElement('a');
    var title = document.createAttribute('title');
    title.value = resultItem['Title'];
    a.attributes.setNamedItem(title);
    var href = document.createAttribute('href');
    href.value = resultItem['Url'];
    a.attributes.setNamedItem(href);

    var text;
    if (cutTitle) {
        text = document.createTextNode(Substring(resultItem['Title'], cutTitleSize));
    }
    else {
        text = document.createTextNode(resultItem['Title']);
    }

    a.appendChild(text);
    li.appendChild(a);

    return li;
}

