// This script uses jQuery to retrieve the news XML file and display the contents
$(document).ready(function(){

	$.ajax({
		type: "GET",
		url: "XML/News.xml",
		dataType: "xml",
		success: function(xml) {
			var EntityName = $(xml).find('EntityName').text();
			var PageURL = $(xml).find('PageURL').text();
			var PageAnchor = "#" + EntityName + "ID_";
			
			var PreviewNum = $(xml).find('PreviewNum').text();
			var PreviewLength = $(xml).find('PreviewLength').text();
			var PreviewMoreLink = $(xml).find('PreviewMoreLink').text();
			
			var LatestNum = $(xml).find('LatestNum').text();
			var NewsItems = $(xml).find('item').length;
			var NewsItemID = GetIDFromURLAnchor();
			var Counter = 0;
			
			$('#NewsItemsInfo').html('Found ' + NewsItems + ' news articles.');

			$(xml).find('item').each(function(){
					
				var NewsID = $(this).find('id').text();
				var NewsTitle = $(this).find('title').text();
				var NewsDate = $(this).find('date').text();
				var NewsContent = $(this).find('content').text();
				NewsContent = NewsContent.replace(/\r|\n|\r\n/g, "<p>");
				
				Counter++;
				
				if ($("select#ddlNewsSelector").length > 0)
				{
					// Populate select#ddlNewsSelector with XML data. TEMPLATE: <option>News Title #1 - News Date #1 | News Content #1</option>
					$('<option value="' + NewsID + '"></option>').html(NewsTitle + ' - ' + NewsDate + ' | ' + Left(NewsContent, PreviewLength) + '...').appendTo('#ddlNewsSelector');
					
					// If finished processing last XML Item, populate UISelect Dropdown
					if (Counter == NewsItems) {
					  // Use UISelect to do display formated News Previews in a dropdown from select#ddlNewsSelector
						$('select#ddlNewsSelector').selectmenu({
							style:'dropdown', 
							menuWidth: 398,
							maxHeight: 300,
							format: UISelect_Formatting
						});
						
						// Color strip the Dropdown list
						 $(".ui-selectmenu-menu li:even").css("background-color", "#fbf7f1");
						 $(".ui-selectmenu-menu li:odd").css("background-color", "#faf2e4");

						 // Reload page with selected News Item displayed
						 $("select#ddlNewsSelector").bind("change",function()
						{
							location.href = PageURL + PageAnchor + $(this).val();
							location.reload();
						}
					);
					}
				}

				if ($("div.NewsItems").length > 0)
				{
					if (NewsItemID == "")
					{
						$('<div class="Title"></div>').html(NewsTitle).appendTo('.NewsItems');
						$('<div class="Date"></div>').html(NewsDate).appendTo('.NewsItems');
						$('<div class="Content"></div>').html(NewsContent).appendTo('.NewsItems');
					}
					else
					{
						if (NewsID == NewsItemID)
						{
							$('<div class="Title"></div>').html(NewsTitle).appendTo('.NewsItems');
							$('<div class="Date"></div>').html(NewsDate).appendTo('.NewsItems');
							$('<div class="Content"></div>').html(NewsContent).appendTo('.NewsItems');
						}
					}
				}
				
				if ($("div.NewsItemsLatest").length > 0 && Counter <= LatestNum)
				{
					$('<div class="Title"></div>').html(NewsTitle).appendTo('.NewsItemsLatest');
					$('<div class="Date"></div>').html(NewsDate).appendTo('.NewsItemsLatest');
					$('<div class="Content"></div>').html(NewsContent).appendTo('.NewsItemsLatest');
				}
				
				if ($("div.NewsItemsPreview").length > 0 && Counter <= PreviewNum)
				{
					$('<div class="Title"></div>').html('<a href="' + PageURL + PageAnchor + NewsID +'">' + NewsTitle + '</a>').appendTo('.NewsItemsPreview');
					$('<div class="Date"></div>').html(NewsDate).appendTo('.NewsItemsPreview');
					$('<div class="Content"></div>').html(Left(NewsContent, PreviewLength) + '...<br /><a href="' + PageURL + PageAnchor + NewsID +'">'+ PreviewMoreLink + '<a>').appendTo('.NewsItemsPreview');
				}
			});
		}
	});
	
	
	
	
	
});

/*
$.each( [1,5,3], function(i, n){
  alert( "Item #" + i + ": " + n );
});
*/

function Left(str, n)
{
   if (n <= 0)
         return "";
   else if (n > String(str).length)
         return str;
   else
         return String(str).substring(0,n);
}


//UISelect: a custom format option callback
var UISelect_Formatting = function(text){
	var newText = text;
	//array of find replaces
	var findreps = [
		{find:/^([^\-]+) \- /g, rep: '<span class="ui-selectmenu-item-title">$1</span>'},
		{find:/([^\|><]+) \| /g, rep: '<span class="ui-selectmenu-item-date">$1</span>'},
		{find:/([^\|><\(\)]+) (\()/g, rep: '<span class="ui-selectmenu-item-content">$1</span>$2'},
		{find:/([^\|><\(\)]+)$/g, rep: '<span class="ui-selectmenu-item-content">$1</span>'}
		//{find:/(\([^\|><]+\))$/g, rep: '<span class="ui-selectmenu-item-footer">$1</span>'}
	];
	
	for(var i in findreps){
		newText = newText.replace(findreps[i].find, findreps[i].rep);
	}
	return newText;
}


function GetIDFromURLAnchor()
{
	var PageURL = document.location.toString();
	var PageURLAnchor = "";
	var ID = "";
	
	// If URL contains an anchor, extract it
	if (PageURL.match('#'))
	{
		PageURLAnchor = PageURL.split('#')[1];
		
		// If Anchor contains an ID divider (_), extract the ID
		if (PageURLAnchor.match('_'))
			ID = PageURLAnchor.split('_')[1];
	}
	
  return (ID);
}