﻿
var doRefresh = true;

// DISPLAY TYPE

function setDisplayType(type)
{
    SiteAjax.SetDisplayType(
		type,
		callback_setDisplayType
		);
		
	toggleView(type);
}

function callback_setDisplayType(res)
{

}

// SORTING & FILTERS

function setSortParameter(parameter)
{
    SiteAjax.SetSortParameter(
		parameter,
		callback_setValueRefresh
		);
}

function setSortType(type)
{
    SiteAjax.SetSortType(
		type,
		callback_setValueRefresh
		);
}

function setTagDisplayCount(count)
{
    SiteAjax.SetTagDisplayCount(
		count,
		callback_setValueRefresh
		);
}

function callback_setValueRefresh(res)
{
    if (doRefresh)
    {
        __doPostBack('');
    }
}

function setFilterParameter(type, parameter)
{
    SiteAjax.SetFilterParameter(
		type,
		parameter,
		callback_setFilterParameter
		);
}

function callback_setFilterParameter(res)
{
    if (doRefresh)
    {
        window.location.reload();
    }
}

// ALL FILTERS

function clearAllFilters()
{
    setFilterParameter(-1, '');
}

function closeFilters()
{
    document.getElementById("FilterFormats").style.display = "none";
    document.getElementById("FilterKeywords").style.display = "none";
    document.getElementById("FilterLicenses").style.display = "none";
    document.getElementById("FilterTags").style.display = "none";
    
    setFooter();
}

// TAG FILTER

function filterByTag()
{
    SiteAjax.FilterByTag(callback_filterByTag);
}

function callback_filterByTag(res)
{
    if (res.error != null)
    {
        window.location.reload();
    }
    else
    {
        closeFilters();
        document.getElementById("FilterTags").style.display = "block";
        document.getElementById("FilterTags").innerHTML = res.value;
    }
    
    setFooter();
}

function setTagFilter(tag)
{
    setFilterParameter(3, tag);
}

// LICENSE FILTER

function filterByLicense()
{
    SiteAjax.FilterByLicense(callback_filterByLicense);
}

function callback_filterByLicense(res)
{
    if (res.error != null)
    {
        window.location.reload();
    }
    else
    {
        closeFilters();
        document.getElementById("FilterLicenses").style.display = "block";
        document.getElementById("FilterLicenses").innerHTML = res.value;
    }
    
    setFooter();
}

function setLicenseFilter(license)
{
    setFilterParameter(2, license);
}

// KEYWORD FILTER

function filterByKeyword()
{
    SiteAjax.FilterByKeyword(callback_filterByKeyword);
}

function callback_filterByKeyword(res)
{
    if (res.error != null)
    {
        window.location.reload();
    }
    else
    {
        closeFilters();
        document.getElementById("FilterKeywords").style.display = "block";
        document.getElementById("FilterKeywords").innerHTML = res.value;
    }
    
    setFooter();
}

function setKeywordFilter()
{
    setFilterParameter(1, document.getElementById("tbFilterKeyword").value);
}

// FORMAT FILTER

function filterByFormat()
{
    SiteAjax.FilterByFormat(callback_filterByFormat);
}

function callback_filterByFormat(res)
{
    if (res.error != null)
    {
        window.location.reload();
    }
    else
    {
        closeFilters();
        document.getElementById("FilterFormats").style.display = "block";
        document.getElementById("FilterFormats").innerHTML = res.value;
    }
    
    setFooter();
}

function setFormatFilter(format)
{
    setFilterParameter(0, format);
}