// ------------------------------------
var NewsManager =
// ------------------------------------
{
	_monthNames : [ 'janvier', 'f&eacute;vrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'ao&ucirc;t', 'septembre', 'octobre', 'novembre', 'd&eacute;cembre' ],
	_items : new Array(),
	_tableElement: null,
	_yearDropDown: null,
	_entityNameDropDown: null,
	_panelElement: null,

	initialize : function(tableElement, yearDropDown, entityNameDropDown)
	{
		NewsManager._tableElement = $(tableElement);
		NewsManager._yearDropDown = $(yearDropDown);
		NewsManager._entityNameDropDown = $(entityNameDropDown);

		for (var i = 0; i < NewsManager._items.length; i++)
		{
			// Populate years and entity names dropdown
			NewsManager.addOption(NewsManager._yearDropDown, NewsManager._items[i].date.getFullYear(), false);
			NewsManager.addOption(NewsManager._entityNameDropDown, NewsManager._items[i].entityName, true);
		}
		NewsManager.update();
		
		// Determine whether we should automatically pop the news iframe
		// For example, the user requests page /en_US/News/News.shtml#NewsSS20101020, 
		// it will open the iframe with /en_US/Content/News/NewsSS20101020.shtml
		if (window.location.hash != null && window.location.hash != '' && window.location.hash != '#')
		{
			var pos = window.location.pathname.lastIndexOf('/');
			var url = window.location.pathname.substr(0, pos + 1).replace('/News/', '/Content/News/') + window.location.hash.replace('#', '') + '.shtml';
			IframeManager.create(url, {width: 600});
			window.location.hash = '';
		}
	},
	
	initializePanel : function(panelElement)
	{
		NewsManager._panelElement = $(panelElement);
		NewsManager.updatePanel();
	},
	
	update: function()
	{
		NewsManager._tableElement.find('tbody tr[class!="emptyMessage"]').remove();

		var empty = true;
		var html = '';
		for (var i = 0; i < NewsManager._items.length; i++)
		{
			var mustAdd = true;
			if (NewsManager._yearDropDown.val() != '' &&
				NewsManager._yearDropDown.val() != NewsManager._items[i].date.getFullYear())
			{
				mustAdd = false;
			}
			
			if (mustAdd)
			{
				empty = false;
				html +=
					'<tr><td class="center">' +
						NewsManager.formatDate(NewsManager._items[i].date) +
					'</td><td><a class="iframePopup" href="../../JavaScript/' +
						NewsManager._items[i].url +
					'">' +
						NewsManager._items[i].title +
					'</a></td></tr>';
			}
		}

		NewsManager._tableElement.find('tbody').append(html);
		NewsManager._tableElement.find('tbody tr:even[class!="emptyMessage"]').addClass('alternate');
		NewsManager._tableElement.find('a.iframePopup').click(NewsManager.itemClick);
		NewsManager._tableElement.find('tbody tr.emptyMessage').css('display', empty ? '' : 'none');
	},
		
	updatePanel : function()
	{
		NewsManager._panelElement.empty();
		if (NewsManager._items.length == 0)
		{
			NewsManager._panelElement.css('display', 'none');
		}
		else
		{
			var html = '<label>&Agrave; la une</label>';
			for (var i = 0; i < NewsManager._items.length && i < 3; i++)
			{
				html += 
					'<img class="separator" src="../../Images/panel_separator.gif" />' +
					'<a class="iframePopup" href="../../JavaScript/' +
					NewsManager._items[i].url +
					'">' +
					NewsManager._items[i].title +
					'</a>';
			}
			html += 
				'<img class="separator" src="../../Images/panel_separator.gif" />' + 
				'<a class="more" href="../News/News.shtml">plus...</a>';
			
			NewsManager._panelElement.append(html);
			NewsManager._panelElement.find('a.iframePopup').click(NewsManager.itemClick);
		}
	},
	
	itemClick: function()
	{
		IframeManager.create($(this).attr('href'), {width: 600});
		return false;
	},

	addItem : function(date, entityName, title, url)
	{
		NewsManager._items.push(new NewsItem(date, entityName, title, url));
	},
	
	addOption : function(selectElement, value, ascending)
	{
		var added = false;
		var existingOptions = selectElement.children('option');
		for (var i = 0; i < existingOptions.size(); ++i)
		{
			if (existingOptions.get(i).value == '')
			{
				continue;
			}
			if (existingOptions.get(i).value == value)
			{
				added = true;
				break;
			}
			else if (
				(ascending == true && existingOptions.get(i).value > value) ||
				(ascending == false && existingOptions.get(i).value < value))
			{
				$(existingOptions.get(i)).before(
					'<option value="' + value + '">' + value + '</option>'
				);
				added = true;
				break;
			}
		}
		
		if (!added)
		{
			selectElement.append(
				'<option value="' + value + '">' + value + '</option>'
			);
		}
	},

	formatDate : function(date)
	{
		var formatted = date.getDate() + ' ' + NewsManager._monthNames[date.getMonth()] + ' ' + date.getFullYear();
		return formatted;
	}
};
//---------------------------------------------------------------------------

function NewsItem(date, entityName, title, url)
{
	this.date		= date;
	this.entityName = entityName;
	this.title		= title;
	this.url		= url;
}

//---------------------------------------------------------------------------
// Create news entries here
//---------------------------------------------------------------------------
NewsManager.addItem(
	new Date(2011, 2, 30), 'Symbility Solutions Inc.', 'Symbility signe un contrat avec La Capitale Assurances G&eacute;n&eacute;rales', './../fr_CA/Content/News/NewsSS20110330.shtml'
);
NewsManager.addItem(
	new Date(2010, 3, 6), 'Symbility Solutions Inc.', 'Symbility conclut une entente de trois ans avec le Groupe Promutuel', './../fr_CA/Content/News/NewsSS20100406.shtml'
);
NewsManager.addItem(
	new Date(2009, 11, 1), 'Symbility Solutions Inc.', 'Nommination d\'Andrew deGroot au poste de vice-pr&eacute;sident des ventes et des activit&eacute;s de commercialisation mondiales chez Symbility', './../fr_CA/Content/News/NewsSS20091201.shtml'
);
NewsManager.addItem(
	new Date(2009, 7, 17), 'Symbility Solutions Inc.', 'Ellipta adopte la solution Innovation-Symbility pour le march&eacute; britannique', './../fr_CA/Content/News/NewsSS20090817.shtml'
);
NewsManager.addItem(
	new Date(2009, 6, 23), 'Symbility Solutions Inc.', 'RSA adopte la solution Innovation-Symbility pour le march&eacute; britannique', './../fr_CA/Content/News/NewsSS20090723.shtml'
);
NewsManager.addItem(
	new Date(2009, 5, 23), 'Symbility Solutions Inc.', 'Nomination de Richard Adair au poste de vice-pr&eacute;sident ex&eacute;cutif chez Symbility Solutions Inc.', './../fr_CA/Content/News/NewsSS20090623.shtml'
);
NewsManager.addItem(
	new Date(2009, 3, 1), 'Symbility Solutions Inc.', 'Symbility Solutions signe une entente commerciale avec Promutuel Lanaudi&egrave;re', './../fr_CA/Content/News/NewsSS20090401.shtml'
);
NewsManager.addItem(
	new Date(2009, 2, 23), 'Symbility Solutions Inc.', 'Symbility annonce la conclusion d\'une entente avec la soci&eacute;t&eacute; Farmers Mutual United Insurance Company', './../fr_CA/Content/News/NewsSS20090323.shtml'
);
NewsManager.addItem(
	new Date(2009, 2, 12), 'Symbility Solutions Inc.', 'Symbility Solutions conclut une entente avec Chubb', './../fr_CA/Content/News/NewsSS20090312.shtml'
);
NewsManager.addItem(
	new Date(2006, 10, 21), 'Symbility Solutions Inc.', 'Symbility Solutions continue son expansion au Qu&eacute;bec', './../fr_CA/Content/News/NewsSS20061121.shtml'
);
NewsManager.addItem(
	new Date(2006, 6, 24), 'Symbility Solutions Inc.', 'Symbility Solutions signe une entente commerciale avec Sinisoft Inc., bas&eacute;e au Qu&eacute;bec', './../fr_CA/Content/News/NewsSS20060724.shtml'
);

//---------------------------------------------------------------------------
