// Functions that convert a number to a string etc
// i.e. date to "12 May 2007" say



//-------------------------------------------------------------------------------
// private method to format the state of a library item when it is viewed in the
// library view
//
function Cli_FormatItemStateForLibraryView( state )
{
    switch( state )
    {
        case 1  : return 'new';
        case 2  : return 'queued';
        case 3  : return 'backoff';
        case 4  : return 'connecting';
        case 5  : return 'bookmarked';
        case 6  : return 'downloading';
        case 7  : return 'error';
        case 8  : return 'deleted';
        case 9  : return 'paused'; // Cli_ItemStatusPaused
        case 10 : return 'Ready to play';  // Cli_ItemStatusDownloaded
        case 11 : return 'partiallyViewed';
        case 12 : return 'viewed';
        case 13 : return 'buy to own'; // Cli_ItemStatusBuyToOwn
        
        default : return 'unknown';
    } 
}

//-------------------------------------------------------------------------------
// format a comma seperated list of categories for display in the library
//
function Cli_FormatCategoryListForLibrary( categoryList ) // : div
{
    var createEl = document.createElement;
    var categoryDiv = createEl( "div" );
    
    if (categoryList!=null && categoryList!='') 
    {
        var cats = categoryList.split( ',' );
        var formatted = "";
        
        var i;
        for( i = 0; i < cats.length; i++ )
        {
            var inner = createEl( "div" );
            categoryDiv.appendChild( inner );
            inner.innerText = cats[ i ];
            
            inner.className = "cat catindex" + i;
        }
    }
    
    return categoryDiv;
}

//-------------------------------------------------------------------------------
//
function Cli_FormatDownloadAvailabilityDaysForLibrary( item ) // : div
{
    var div = document.createElement( "div" );
    div.className = "value";
    
    var days = item.DownloadAvailabilityDays;

    //TODO: debug
    var rawDiv = document.createElement( "div" );
    rawDiv.innerText = days + " s:" + item.DownloadAvailabilityStart + " e:" + item.DownloadAvailabilityEnd;
    rawDiv.style.display = "none";
    
    if( days < 0 )
    {
        if( days < -1 )
            div.innerText = "in " + (days * -1) + " days";
        else
            div.innerText = "in 1 day";
    }
    else
    {
        if( days < 1 )
            div.innerText = "Last day";
        else if( days == 1 )
            div.innerText = days + " day";
        else if( days > 1000 )
            div.innerText = "";
        else
            div.innerText = days + " days";
    }
    
    div.appendChild( rawDiv );

    return div;
}

//-------------------------------------------------------------------------------
//
function Cli_FormatContentExpiryForLibrary( item ) // : div
{
    var div = document.createElement( "div" );
    div.className = "value";
    
    var days = item.ContentExpiryDays;

    //TODO: debug
    var rawDiv = document.createElement( "div" );
    rawDiv.innerText = days + " ce: " + item.ContentExpiryDate;
    rawDiv.style.display = "none";
    
    if( days < 0 )
    {
        //div.innerText = "no longer available to view";
    }
    else
    {
        if( days < 1 )
            div.innerText = "Last day";
        else if( days == 1 )
            div.innerText = days + " day";
        else if( item.SubscriptionType == "pay-to-keep" )
            div.innerText = "Buy to Own";
        else if( days > 1000 )
            div.innerText = "";
        else
            div.innerText = days + " days";
    }
    
    div.appendChild( rawDiv );

    return div;
}
