// JavaScript Document
jQuery.noConflict();

jQuery(document).ready(function(){
    initNewsLibrary();
});

var jsonResponse;

function initNewsLibrary(){
    var libraries = jQuery("#selection input[type='checkbox']:checked");
    jsonResponse = "";
    getNewsLibraries(libraries, true);
    
    jQuery("#selection input[type='checkbox']").click(function(){
        getNewsLibraries(jQuery("#selection input[type='checkbox']:checked"), false);
    });
}

function getNewsLibraries(libraries, firstCall){
    var libraryString = '';
    
    for(var i = 0; i < libraries.length; i++){
        if(i > 0)
            libraryString += ',';
        libraryString += jQuery(libraries[i]).attr("value");
    }
    
    retrieveNewsItems(libraryString, firstCall);
}


/* Retrieves the data  */
function retrieveNewsItems(newsLibraryIds, firstCall){
    var searchUrl = "NewsService.aspx?callback=?&nid=" + newsLibraryIds;

        jQuery.getJSON(searchUrl, {}, function(data){
            var resultHtml = '';
            
            data.items.sort(function(objFirst, objSecond){
                return (createDateObject(objSecond.date).getTime() - createDateObject(objFirst.date).getTime())
            });

	

          
            jQuery.each(data.items, function(i,item){
                if(i < 6){
                    resultHtml += "<div class='archiveItem";
                    resultHtml += "'><div class='narrowSubpageGradientBG'></div><div class='header'><a href='" + item.newsUrl + "'><span class='title'>" + item.header + "</span><br /><span class='date'>(" + outputDate(item.date) + " " + item.category + ")</span></a></div>";

/*                    resultHtml += "<div class='body'>" + outputTeaserText(item.text);
                    resultHtml += "</div><!--END:teaserContent --></div><!--END:element -->";
*/                
                }
            });
            
            jQuery("#teaserContainer").empty();
            jQuery("#teaserContainer").append(resultHtml);
            
        });
}

/* Creates a date object based on the database date string representation */
function createDateObject(dateString){
    var arr = dateString.split("T");
    var date = arr[0].split("-");
    var time = arr[1].split(":");

    var jsDate = new Date(date[0], parseInt(date[1], 10)-1, parseInt(date[2], 10), time[0], time[1], time[2]);   

    return jsDate;
}

/* Creates a date string based on the database date string representation */
function outputDate(dateString){
    var arr = dateString.split("T");
    var date = arr[0].split("-");
    return date[2] + "-" +  date[1] + "-" + date[0];
}

/* Returns the correctly formatted teaser string depending on weather there is an image assigned the news story */
function outputTeaserText(teaserText){
    if(teaserText.length > 0){
        if(teaserText.length > 116){
            if(teaserText.indexOf(" ", 116) > -1)
                teaserText = teaserText.substr(0, teaserText.indexOf(" ", 116)) + "...</p>";
        }
        return teaserText;
    }
    else
        return "";
}

