/*
	PAGE ANNOUNCEMENT.XML 1.0

	download at: http://acidmartin.wemakesites.net/?pageId=PageAnnouncement
	created by: Martin Ivanov
	email: acid_martin@yahoo.com, martin@acidmartin.com
	personal website: http://acidmartin.wemakesites.net/
	portfolio: http://wemakesites.net
	
	IMPORTANT REGULATIONS:
	
	1. IF YOU ARE USING THE OBFUSCATED VERSION OF PAGE ANNOUNCEMENT.XML, IT IS FORBIDDEN TO DEOBFUSCATE AND MODIFY THIS SRCIPT WITHOUT AUTHOR'S WRITTEN PERMISSION. OTHERWISE SUCH ACTIONS WILL BE CONSIDERED VIOLATIONS OF THE COPYRIGHT LAWS AND LEGAL STEPS WILL BE TAKEN.
	
	2. IF YOU HAVE PURCHASED THE SOURCE CODE OF PAGE ANNOUNCEMENT.XML, YOU CANNOT USE THIS SCRIPT ON WEBPAGES WITHOUT
	OBFUSCATING IT. OTHERWISE SUCH ACTIONS WILL BE CONSIDERED VIOLATIONS OF THE COPYRIGHT LAWS AND LEGAL STEPS WILL BE TAKEN.
*/


function closeAnnouncement()
{
	if(announcement.getElementsByTagName('announcementxml')[0].getAttribute('allow-close') == 'true')
	{
		$('announcementModalPanel').style.display = 'none';
		$('announcement').style.display = 'none';
	}
}

function loadAnnouncement(AnnouncementId)
{
	parseAnnoucementFeedFile();
	var announcementXml = announcement.getElementsByTagName('announcementxml')[0];
	var announcements = announcement.getElementsByTagName('announcement');
	if(announcementXml.getAttribute('enabled') == 'true')
	{	
		var annoucementCssFile = document.createElement('link');
		annoucementCssFile.setAttribute('type', 'text/css');
		annoucementCssFile.setAttribute('rel', 'stylesheet');
		annoucementCssFile.setAttribute('href', pageScriptsFolder + '/PageAnnouncement.XML/PageAnnouncement.css');
		document.getElementsByTagName('head')[0].appendChild(annoucementCssFile);
		var announcementModalPanel = document.createElement('div');
		announcementModalPanel.setAttribute('id', 'announcementModalPanel');
		document.getElementsByTagName('body')[0].appendChild(announcementModalPanel);
		$('announcementModalPanel').style.background = announcementXml.getAttribute('modal-panel-background-color');
		$('announcementModalPanel').style.filter = 'alpha(opacity = ' + announcementXml.getAttribute('modal-panel-background-transparency') + '0)';
		$('announcementModalPanel').style.mozOpacity = '.' + announcementXml.getAttribute('modal-panel-background-transparency');
		$('announcementModalPanel').style.opacity = '.' + announcementXml.getAttribute('modal-panel-background-transparency');
		$('announcementModalPanel').style.height = document.documentElement.scrollHeight + 'px';
		if(announcementXml.getAttribute('modal-mode') == 'false')
		{
			$('announcementModalPanel').style.display = 'none';
		}
		var allowCloseAction = 'closeAnnouncement()';
		var closeButtonDisplay = '';
		if(announcementXml.getAttribute('allow-close') == 'false')
		{
			allowCloseAction = '';
			closeButtonDisplay = 'display: none;';
		}
		var displayTitleBar = '';
		if(announcementXml.getAttribute('display-title-bar') == 'false')
		{
			displayTitleBar = 'display: none;';
		}
		var alwaysOnTop = '';
		if(announcementXml.getAttribute('announcement-box-always-on-top') == 'true')
		{
			alwaysOnTop = 'fixed';
		}
		if(announcementXml.getAttribute('announcement-box-always-on-top') == 'false')
		{
			alwaysOnTop = 'absolute';
		}
		var announcementHTML = document.createElement('div');
		announcementHTML.setAttribute('id', 'announcement');
		announcementHTML.setAttribute('unselectable', 'on');
		announcementHTML.className = 'announcement';
		announcementHTML.innerHTML = '<div unselectable="on" class="announcementTitle" style="' + displayTitleBar + ' ;font: ' + announcementXml.getAttribute('titlebar-font') + ' ;background: ' + announcementXml.getAttribute('titlebar-background-color') + '; color: ' + announcementXml.getAttribute('titlebar-foreground-color') + ';"><em style="padding: ' + announcementXml.getAttribute('titlebar-text-offset') + ';">' + announcements[AnnouncementId].getAttribute('title') + '</em></div></div><div class="announcementText" style="font: ' + announcementXml.getAttribute('announcement-font') + ' ; color: ' + announcementXml.getAttribute('announcement-foreround-color') + ' ;background: ' + announcementXml.getAttribute('announcement-background-color') + '; height: 100%;"><div style="padding: ' + announcementXml.getAttribute('announcement-text-offset') + ';">' + announcements[AnnouncementId].childNodes[0].nodeValue + '</div></div><div style="text-align: center; position: absolute; bottom: 0; width: 100%; background: ' + announcementXml.getAttribute('close-panel-background-color') + '; ' + closeButtonDisplay + ';"><input id="announcementCloseButton" type="button" class="announcementCloseButton" value="' + announcementXml.getAttribute('close-button-text') + '" title="' + announcementXml.getAttribute('close-button-text') + '" onclick="' + allowCloseAction + '" style="border: ' + announcementXml.getAttribute('close-button-border-style') + '; width: ' + announcementXml.getAttribute('close-button-width') + '; background: ' + announcementXml.getAttribute('close-button-background-color') + '; font: ' + announcementXml.getAttribute('close-button-font') + '; color: ' + announcementXml.getAttribute('close-button-forecolor') + ';" /></div>';
		announcementHTML.style.position = alwaysOnTop;
		announcementHTML.style.border = announcementXml.getAttribute('border-style');
		announcementHTML.style.fontFamily = announcementXml.getAttribute('fontface');
		announcementHTML.style.width = announcementXml.getAttribute('width') + 'px';
		announcementHTML.style.height = announcementXml.getAttribute('height') + 'px';
		if(announcementXml.getAttribute('announcement-box-position-horizontal') == 'auto')
		{
			announcementHTML.style.marginLeft = '-' + announcementXml.getAttribute('width')/2 + 'px';
		}
		if(announcementXml.getAttribute('announcement-box-position-horizontal') != 'auto')
		{
			announcementHTML.style.left = announcementXml.getAttribute('announcement-box-position-horizontal');
		}
		if(announcementXml.getAttribute('announcement-box-position-vertical') == 'auto')
		{
			announcementHTML.style.marginTop = '-' + announcementXml.getAttribute('height')/2 + 'px';
		}
		if(announcementXml.getAttribute('announcement-box-position-vertical') != 'auto')
		{
			announcementHTML.style.top = announcementXml.getAttribute('announcement-box-position-vertical');
		}
		document.getElementsByTagName('body')[0].appendChild(announcementHTML);
		if(announcementXml.getAttribute('allow-close') == 'true')
		{
			$('announcementCloseButton').focus();
			if(window.attachEvent)
			{
				document.documentElement.attachEvent('onkeydown', 
					function(e)
					{
						var kC = (window.event) ? event.keyCode : e.keyCode;
						var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE
						if(kC == Esc)
						{
							if($('announcementModalPanel') != null)
							{
								$('announcementModalPanel').style.display = 'none';
								$('announcement').style.display = 'none';
							}
						}
					}
				);
			}
			else
			{
				document.documentElement.addEventListener('keypress', 
					function(e)
					{
						var kC = (window.event) ? event.keyCode : e.keyCode;
						var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE
						if(kC == Esc)
						{
							if($('announcementModalPanel') != null)
							{
								$('announcementModalPanel').style.display = 'none';
								$('announcement').style.display = 'none';
							}
						}
					}, true
				);
			}
			if(announcementXml.getAttribute('auto-close') != 'false')
			{
				setTimeout('closeAnnouncement()', announcementXml.getAttribute('auto-close'));
			}
		}
	}
}

function parseAnnoucementFeedFile()
{
	try
	{
		if(window.ActiveXObject)
		{
			announcement = new ActiveXObject("Microsoft.XMLDOM");
			announcement.async = false;
			announcement.load(pageScriptsFolder + '/PageAnnouncement.XML/Announcements.xml');
		}
		else if(document.implementation && document.implementation.createDocument)
		{
			announcement = document.implementation.createDocument("","",null);
			announcement.async = false;
			announcement.load(pageScriptsFolder + '/PageAnnouncement.XML/Announcements.xml');
		}
	}
	catch(e)
	{
		alert(e.description);
	}
}

function $(stringId)
{
	return document.getElementById(stringId);
}