var countStart = 999;
var countDest = 0;
var countCurr = 0;

var mapprojects = new Array();

function counterInit()
{
    countDest = projects.length;
    countCurr = countStart;
    document.getElementById("RunningCounter").firstChild.nodeValue = countCurr;
    counterTick()
}
function counterTick()
{
    countCurr -= parseInt(1+(countStart - countDest)/8);
    if(countCurr < countDest)
    {
        countCurr = countDest;
    }
    else
    {
        setTimeout(counterTick, 50);
    }
    document.getElementById("RunningCounter").firstChild.nodeValue = countCurr;
}

function querystring(name)   // returns a named value from the querystring
{
   var tmp = ( location.search.substring(1) );
   var i   = tmp.toUpperCase().indexOf(name.toUpperCase()+"=");

   if ( i >= 0 )
   {
      tmp = tmp.substring( name.length+i+1 );
      i = tmp.indexOf("&");
      return unescape( tmp = tmp.substring( 0, (i>=0) ? i : tmp.length ));
   }

   return("");
}

function sortByAlphabet()
{
    document.getElementById("SortByName").className = "currentlySelected";
    document.getElementById("SortByTime").className = "";
    if(sortBy != 'name')
    {
        sortBy = 'name';
        sortDir = 'asc';
    }
    else if(sortDir == 'asc')
    {
        sortDir = 'desc';
    }
    else
    {
        sortDir = 'asc';
    }
    
    createCookie("sortBy_article",sortBy,365);
    createCookie("sortDir_article",sortDir,365);
    
    refreshPage();    
}

function sortByTime()
{
    document.getElementById("SortByName").className = "";
    document.getElementById("SortByTime").className = "currentlySelected";
    if(sortBy != 'time')
    {
        sortBy = 'time';
        sortDir = 'desc';
    }
    else if(sortDir == 'asc')
    {
        sortDir = 'desc';
    }
    else
    {
        sortDir = 'asc';
    }
    
    createCookie("sortBy_article",sortBy,365);
    createCookie("sortDir_article",sortDir,365);
    
    refreshPage();    
}

function refreshPage()
{
    var fullUrl = document.location;
    
    //alert(fullUrl.toString().substring(0, fullUrl.toString().indexOf("?")));
    
    var urlToGo = fullUrl.toString().substring(0, fullUrl.toString().indexOf("?"));
    
    urlToGo += "?page=" + querystring("page") + "&sortBy=" + sortBy + "&sortDir=" + sortDir;
    //alert('going to ' + urlToGo);
    document.location = urlToGo;
    
    return false;
}

function navigate(direction)
{
    if(direction == "next")
    {
        page++;
        if(page > maxpage)
        {
            page = maxpage;
        }
    }
    else
    {
        page--;
        if(page < 1)
        {
            page = 1;
        }
    }
    buildList();  
}
function changeDisplayMode(mode)
{
    display = mode; // 'list', 'thumbs' or 'map'
    createCookie("display_article",mode,365);
    page = 1;

    document.getElementById("ModeThumbnails").className = "";
    document.getElementById("ModeList").className = "";

    switch(display)
    {
        case "list":
            pageSize = PAGE_SIZE_LIST;
            document.getElementById("ModeList").className = "currentlySelected";
            break;
        case "thumbs":
            pageSize = PAGE_SIZE_THUMBS;
            document.getElementById("ModeThumbnails").className = "currentlySelected";
            break;
    }
    maxpage = parseInt(projects.length / pageSize) + 1;
    buildList()
}

function buildList()
{
    counterInit();

    // Hide all view modes
    workListNode.style.display = "none";
    workThumbnailsNode.style.display = "none";
    
    
    var sortedProjects = projects;
    
    // remove all children previously set
    if (workListNode.hasChildNodes())
    {
        while (workListNode.childNodes.length >= 1)
        {
            workListNode.removeChild(workListNode.firstChild);
        } 
    }
    if (workThumbnailsNode.hasChildNodes())
    {
        while (workThumbnailsNode.childNodes.length >= 1)
        {
            workThumbnailsNode.removeChild(workThumbnailsNode.firstChild);
        } 
    }
    
    
    // Correctly set the paging counters and links
    document.getElementById("PagingCounter").firstChild.nodeValue = (projects.length>0?((page-1) * pageSize + 1):0) + " - " + (((page * pageSize)<projects.length)?(page*pageSize):projects.length);
    if(page == 1)
    {
        document.getElementById("PagingPrev").className = "previousInactive";
    }
    else
    {
        document.getElementById("PagingPrev").className = "previousActive";
    }
    if(page == maxpage)
    {
        document.getElementById("PagingNext").className = "nextInactive";
    }
    else
    {
        document.getElementById("PagingNext").className = "nextActive";
    }
    
    // Next, create the list
    for(var i = ((page-1) * pageSize); i < (page * pageSize); i++)
    {
        if(sortedProjects[i])
        {
            var project = sortedProjects[i];
            var workListNodeChild = document.createElement("LI");
            
            var workListNodeChildLink = document.createElement("A");
            workListNodeChildLink.href = project.url;
            workListNodeChildLink.className = "workListNumber";
            var workListNodeChildLinkText = document.createTextNode(project.publicationDate);
            workListNodeChildLink.appendChild(workListNodeChildLinkText);
            
            var workListNodeChildLink2 = document.createElement("A");
            workListNodeChildLink2.href = project.url;
            workListNodeChildLink2.className = "workListTitle";
            var workListNodeChildLink2Text = document.createTextNode(project.articleTitle);
            workListNodeChildLink2.appendChild(workListNodeChildLink2Text);
            
            workListNodeChild.appendChild(workListNodeChildLink);
            workListNodeChild.appendChild(workListNodeChildLink2);
            
            var workListNodeChildYears;
            workListNodeChildYears = document.createTextNode(project.introText);
            workListNodeChild.appendChild(workListNodeChildYears);
            
            workListNode.appendChild(workListNodeChild);
        }
    }
    
    // create the thumbnails and mark active items
    for(var i = 0; i < sortedProjects.length; i++)
    {
        sortedProjects.onPage = false;
    }
    for(var i = ((page-1) * pageSize); i < (page * pageSize); i++)
    {
        if(sortedProjects[i])
        {
            
            var project = sortedProjects[i];
            project.onPage = true;
            
            var thumbLi = document.createElement("LI");

            var thumbA = document.createElement("A");
            thumbA.href = project.url;

            var txtDIV = document.createElement("DIV");
            var txtDIVHeader = document.createElement("H1");
            txtDIVHeader.appendChild(document.createTextNode(project.articleTitle));
            txtDIV.appendChild(txtDIVHeader);
            var txtDIVBody = document.createElement("P");
var newsDate = project.publicationDate.replace(/-/ig, '.');
newsDate = newsDate.substr(0, 6) + newsDate.substr(8, 2);
            txtDIVBody.appendChild(document.createTextNode(newsDate));
            txtDIVBody.appendChild(document.createElement("BR"))
            txtDIVBody.appendChild(document.createTextNode(project.introText));
            txtDIV.appendChild(txtDIVBody);
            txtDIV.className = "tekstje";
            thumbA.appendChild(txtDIV);
            
            var thumbImg = document.createElement("IMG");
            var re = /src=\"(([^\"])+)\"/;
            var m = re.exec(project.thumbURL);
            if(m != null && m[1] != null)
            {
                project.thumbUrlExtracted = m[1];
                thumbImg.src = "_homethumb2.php?src=" + m[1];
            }
            else
            {
                thumbImg.src = "_homethumb2.php?src=blank2.jpg";
            }
            thumbA.appendChild(thumbImg);
            thumbLi.appendChild(thumbA);
                        
            workThumbnailsNode.appendChild(thumbLi);
        }
    }
    // Display the correct view mode
    switch(display)
    {
        case "thumbs":
            workThumbnailsNode.style.display = "block";
            break;
        case "list":
            workListNode.style.display = "block";
            break;
    }
    

}

var PAGE_SIZE_THUMBS = 6;
var PAGE_SIZE_LIST = 20;

var page = 1;
var sortBy = readCookie("sortBy_article");
if(!sortBy)
{
    sortBy = 'time';
}
switch(sortBy)
{
    case 'name':
        document.getElementById("SortByName").className = "currentlySelected";
        break;
    case 'time':
        document.getElementById("SortByTime").className = "currentlySelected";
        break;
}

var sortDir = readCookie("sortDir_article");
if(!sortDir)
{
    sortDir = 'desc';
}
var display = readCookie("display_article")
if(!display)
{
    display = 'thumbs'
}
var focusedLocation = "0";

var pageSize;
switch(display)
{
    case 'thumbs':
        pageSize = PAGE_SIZE_THUMBS;
        document.getElementById("ModeThumbnails").className = "currentlySelected";
        break;
    case 'list':
        pageSize = PAGE_SIZE_LIST;
        document.getElementById("ModeList").className = "currentlySelected";
        break;
    default:
        pageSize = PAGE_SIZE_THUMBS;
        document.getElementById("ModeThumbnails").className = "currentlySelected";
        display = 'thumbs';
        break;
}

// Main HTML nodes
var contentNode = document.getElementById("Content");
var workListNode = document.getElementById("ArticleList");
var workThumbnailsNode = document.getElementById("ArticleThumbnails");



// Project list is shorter on filtered pages

var maxpage = parseInt(projects.length / pageSize) + 1;

buildList();

