/****************************************************************************

	^^^ Press Release Source File ^^^
	
	Sinan Baltacioglu, June 2007
		
****************************************************************************/

// File info
var FILE_PATH 			= "src/pressrelease/";
var PRESS_RELEASE_XML	= "pressrelease.xml";
// Handles
var NO_JS_HANDLE		= "nojscontainer";	// the handle of the no javascript div
var MAINBOX_HANDLE 		= "mainbox";		// the handle of the maincontent on the press releases
var PRESSBOX_HANDLE		= "pressrelease";   // the handle of the container of the press tags
var LOAD_ALL_TYPE		= "all";

/****************************************************************************
	SYSTEM CONSTANTS and Vars FOR APPLICATION
****************************************************************************/
// Globals
var g_xmlDoc; // The global XML document object
var g_loadType;  // The type of press release load to do (all or standard)
var g_maxReleasesOnFrontPage = 4; // The number of releases to show on the front page

/***************************************************************************************************
	initPressReleases(); // Load only the max for front page releases
	initPressReleases('all'); // Load the entire file
***************************************************************************************************/
function initPressReleases(flag)
{
	g_loadType = flag;
	if( document.getElementById && document.childNodes && document.createElement )
	{
		var noJsElement = document.getElementById(NO_JS_HANDLE);
		document.getElementById(MAINBOX_HANDLE).removeChild(noJsElement);
		document.getElementById(PRESSBOX_HANDLE).style.display = 'block';
				
		loadXML();
	}
}

/***************************************************************************************************
	Load the xml file
***************************************************************************************************/
function loadXML()
{
	var fileToLoad = FILE_PATH + PRESS_RELEASE_XML;

	if (window.ActiveXObject)
	{
		// Load XML for M$
		g_xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		g_xmlDoc.async = false;
		g_xmlDoc.load(fileToLoad);
		
		if(g_loadType == LOAD_ALL_TYPE)
		{
			pullAllReleases();
		}
		else
		{
			pullFrontPageReleases();
		}
	}
	else if (document.implementation && document.implementation.createDocument)
	{
		// Load xml for Firefox etc.
		g_xmlDoc = document.implementation.createDocument("", "", null);
		g_xmlDoc.load(fileToLoad);	

		if(g_loadType == LOAD_ALL_TYPE)
		{
			g_xmlDoc.onload = pullAllReleases;
		}
		else
		{
			g_xmlDoc.onload = pullFrontPageReleases;
		}
	}
	else
	{
		alert('Sorry, your browser does not support our press releases script.');
	}
}

/****************************************************************************
	Pull the front page releases
****************************************************************************/
function pullFrontPageReleases()
{
	var releaseHtml = "";
	// Go through the XML file and pull out the entries and load up their data
	var root = g_xmlDoc.getElementsByTagName('press_releases')[0];
	// Get all the entries in the XML
	var entries = root.getElementsByTagName('release');
	// For each entry in the list
	for(var i = 0; i < g_maxReleasesOnFrontPage; i++)
	{
		releaseHtml += "<a href=\"" + entries[i].getElementsByTagName('link')[0].childNodes[0].nodeValue + "\" class=\"reg_link\">";
		releaseHtml += entries[i].getElementsByTagName('title')[0].childNodes[0].nodeValue;
		releaseHtml += "</a><hr>"
	}
	releaseHtml += "<a href=\"press_more_releases.html\" class=\"reg_link\">Read More &raquo;</a>";
	
	// Load up the press releases
	document.getElementById(PRESSBOX_HANDLE).innerHTML = releaseHtml;
}

/****************************************************************************
	Pull all the releases
****************************************************************************/
function pullAllReleases()
{
	var releaseHtml = "";
	// Go through the XML file and pull out the entries and load up their data
	var root = g_xmlDoc.getElementsByTagName('press_releases')[0];
	// Get all the entries in the XML
	var entries = root.getElementsByTagName('release');
	// For each entry in the list
	releaseHtml += "<ul class=\"body_text\">";
	for(var i = 0; i < entries.length; i++)
	{
		releaseHtml += "<li>";
		releaseHtml += "<a href=\"" + entries[i].getElementsByTagName('link')[0].childNodes[0].nodeValue + "\" class=\"reg_link\">";
		releaseHtml += entries[i].getElementsByTagName('title')[0].childNodes[0].nodeValue;
		releaseHtml += "</a><br>"
		
		if(entries[i].getElementsByTagName('date')[0].childNodes[0].nodeValue != "null")
		{
			releaseHtml += entries[i].getElementsByTagName('date')[0].childNodes[0].nodeValue;
		}
		
		releaseHtml += "</li>";
	}
	releaseHtml += "</ul>";	
	// Load up the press releases
	document.getElementById(PRESSBOX_HANDLE).innerHTML = releaseHtml;
}
		