//
// Globals
//

// Environment
var Context = {};

// Configuration
var Config = {};
Context['config'] = Config;

// Build channels and categories
Config['channels'] = ConfigData['channels'];
Config['channel'] = {};
Config['category'] = {};
var channels = ConfigData['channels'];
for ( var i=0; i < channels.length; i++ ) {
	if ( Config['channel'][channels[i]['channelName']] ) { alert('Error: Channel ' + channels[i]['channelName'] + ' already exists compiling initial channels list.'); }
	Config['channel'][channels[i]['channelName']] = channels[i];
	Config['channel'][channels[i]['channelName']]['channelBookmarkName'] = channels[i]['channelName'].replace(/[^a-zA-Z0-9]/g, '');
}
var categories = ConfigData['categories'];
for ( var i=0; i < categories.length; i++ ) {
	Config['channel'][categories[i]['channelName']]['categories'].push(categories[i]);
	if ( Config['category'][categories[i]['categoryName']] ) { alert('Error: Category ' + categories[i]['categoryName'] + ' already exists compiling initial categories list.'); }
	Config['category'][categories[i]['categoryName']] = categories[i];
	Config['category'][categories[i]['categoryName']]['channelBookmarkName'] = Config['category'][categories[i]['categoryName']]['channelName'].replace(/[^a-zA-Z0-9]/g, '');
	Config['category'][categories[i]['categoryName']]['categoryBookmarkName'] = Config['category'][categories[i]['categoryName']]['categoryName'].replace(/[^a-zA-Z0-9]/g, '');
}
Config['categoryBookmark']={};
for ( var i=0; i < categories.length; i++ ) {
	var category = categories[i];
	var bookmarkName = category['categoryName'].replace(/[^a-zA-Z0-9]/g, '');
	if ( Config['categoryBookmark'][bookmarkName] ) { alert('Error: Category Bookmark ' + bookmarkName + ' already exists compiling initial category bookmarks list.'); }
	Config['categoryBookmark'][bookmarkName] = category;
}

// Sort channels
//channels.sort(function ( a, b ) { if ( a.channelName > b.channelName ) return 1; if ( a.channelName < b.channelName ) return -1; return 0; });

// Sort categories
//for ( var i=0; i < channels.length; i++ ) {
//	channels[i]['categories'].sort(function ( a, b ) { if ( a.categoryName > b.categoryName ) return 1; if ( a.categoryName < b.categoryName ) return -1; return 0; });
//}


// Default category
Config['defaultChannelName'] = 'Top Stories';
Config['defaultCategoryName'] = 'Top Stories';


Context['cachedCategories'] = [];		// List of categories currently cached
Config['maxCachedCategories'] = 10;		// Max categories to cache (to preserve memory)
Config['cacheTimeout'] = 285;			// Number of seconds before cached headlines time out

Config['refreshTimeout'] = 300;			// Number of seconds before headlines are automatically refreshed

