///////////////////////////
//Filter by Date

function DateFilterFunc(ds, row, index){
	var dateString = row['@date'];	
	var stringLen = dateString.length;
    return (dateString.slice((stringLen-4)) == DateFilterFunc.date) ? row : null;
}

function FilterByDate(date){
    DateFilterFunc.date = date;
    dsInTheNews.removeFilter(DateFilterFunc, !date);
    if (date) 
        dsInTheNews.addFilter(DateFilterFunc, true);
}


//////////////////////////
//Detail Region Effects

var gEffectInProgress = null;
var gPendingSetRowIDRequest = -1;

function fadeInContent(notificationType, notifier, data)
{
	if (notificationType != "onPostUpdate")
		return;
	var effect = new Spry.Effect.Fade('mainContentInner', { to: 100, from: 0, duration: 500, finish: function() {
		
		gEffectInProgress = null;
		if (gPendingSetRowIDRequest >= 0)
		{
			var id = gPendingSetRowIDRequest;
			gPendingSetRowIDRequest = -1;
			fadeOutContentThenSetRow(id);
		}
	}});
	
	var effect2 = new Spry.Effect.Fade('selCategory', { to: 100, from: 0, duration: 500, finish: function() {
		
		gEffectInProgress = null;
		if (gPendingSetRowIDRequest >= 0)
		{
			var id = gPendingSetRowIDRequest;
			gPendingSetRowIDRequest = -1;
		}
	}});
	
	effect.start();
	effect2.start();
	/*
equalLayout();
*/
}

Spry.Data.Region.addObserver('mainContentInnerSpan', fadeInContent);

function fadeOutContentThenSetRow(rowID){
    if (gEffectInProgress) {
        gPendingSetRowIDRequest = rowID;
        return;
    }
    if (rowID == dsData.getCurrentRowID()) 
        return;
    
    gEffectInProgress = new Spry.Effect.Fade('mainContentInnerSpan', {
        to: 0,
        from: 100,
        duration: 500,
        finish: function(){
            dsData.setCurrentRow(rowID);
        }
    });
    gEffectInProgress.start();
}
