/**
 * Index page for potomacforum.org website
 *
 * PHP version 5
 *
 * @category  Potomac_Forum
 * @package   Core
 * @author    Dave Stevenson <dave@potomacforum.org>
 * @copyright 2003-2008 Dave Stevenson, Potomac Forum
 * @license   closed source, property of Potomac Forum
 * @version   SVN: $Id$
 */

// initialize behaviors and stuff
window.onload = init;

// resize iframe on event details pages
window.onresize = iframeResize;

// Initialize TinyMCE
if (typeof(tinyMCE) == 'object') {
	tinyMCE.init({
		mode        : "exact",
		elements    : "upcoming_content,details_content,past_content,reg_extra_info,reg_footer",
		theme       : "advanced",
		content_css : "/formatting.css",
        width       : '650px',
		plugins     : "advimage,advlink,contextmenu,filemanager,imagemanager,paste,preview,spellchecker,table,xhtmlxtras",
		accessibility_warnings  : true,
		apply_source_formatting : true,
		convert_fonts_to_spans  : true,
        font_size_style_values  : "normal,10pt,12pt,14pt,16pt",
		theme_advanced_buttons1 : "fontsizeselect,forecolor,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,|,indent,outdent,|,bullist,numlist,|,sup,sub,abbr,acronym,charmap,hr,|,link,unlink,anchor,",
		theme_advanced_buttons2 : "undo,redo,removeformat,|,selectall,cut,copy,paste,pastetext,pasteword,|,tablecontrols,|,image,insertfile,|,code,spellchecker,help",
		theme_advanced_buttons3 : "",
        theme_advanced_toolbar_location : "top",
		table_cell_limit : 100,
		table_row_limit  : 30,
		table_col_limit  : 5,
		indentation      : '12pt'
	});
}

/**
 * Initializes behaviors
 * @return void
 */
function init () 
{
	initBehavior('onsubmit', 'contactForm', 'return validateContactForm()');
	initBehavior('onsubmit', 'productForm', 'return validateProductForm()');				
	initBehavior('onsubmit', 'mailingForm', 'return validateMailingForm()');				
	initBehavior('onchange', 'export', 'document.forms[0].submit()');
	//iframeResize();
}

/**
 * Initializes behavior functions for an element
 * @param b = behavior name
 * @param i = id of element
 * @param c = code to run
 * @return void
 */
function initBehavior(b, i, c) 
{
	var e = i ? document.getElementById(i) : null;
	if (e) eval('e.' + b + ' = function() {' + c + '}');
}

/**
 * Resize iframe to fit window
 * @return void
 */
function iframeResize () 
{
	var xtra = navigator.appName == 'Microsoft Internet Explorer' ? 290 : 155;
	if (document.getElementById('iframe'))
		document.getElementById('iframe').height = document.documentElement.offsetHeight - document.getElementById('iframe').offsetTop - xtra;
}

/**
 * Toggle navigation menu hide/show
 * @return void
 */
function toggleNavMenu() 
{
	if (document.getElementById('sidebar').style.display == 'block') {
		document.getElementById('sidebar').style.display        = 'none';
		document.getElementById('nav-menu-open').style.display  = 'inline';
		document.getElementById('nav-menu-close').style.display = 'none';
	}
	else {
		document.getElementById('sidebar').style.display        = 'block';
		document.getElementById('nav-menu-open').style.display  = 'none';
		document.getElementById('nav-menu-close').style.display = 'inline';
	}
}

/**
 * Toggle event block extra info hide/show
 * @param integer id - event ID
 * @return void
 */
function toggleEventBlock(id) 
{
	if (document.getElementById('block-more-' + id).style.display == 'block') {
		document.getElementById('block-more-' + id).style.display  = 'none';
		document.getElementById('block-open-' + id).style.display  = 'inline';
		document.getElementById('block-close-' + id).style.display = 'none';
	}
	else {
		document.getElementById('block-more-' + id).style.display  = 'block';
		document.getElementById('block-open-' + id).style.display  = 'none';
		document.getElementById('block-close-' + id).style.display = 'inline';
	}
}

/**
 * Display alert and return false
 * @param string msg - alert message
 * @return false
 */
function die(msg) {
	alert(msg);
	return false;
}

/**
 * Validate contact form
 * @return void
 */
function validateContactForm() 
{
	if (document.forms[0].email.value == '')
		return die('Please enter your email address!');
	else if (document.forms[0].body.value == '')
		return die('Please enter a message!');
	else
		document.forms[0].submit();
}

/**
 * Validate product form
 * @return void
 */
function validateProductForm() 
{
	if (document.forms[0].email.value == '')
		return die('Please provide your email address!');
	else if (document.forms[0].first_name.value == '')
		return die('Please provide your first name!');
	else if (document.forms[0].last_name.value == '')
		return die('Please provide your last name!');
	else if (document.forms[0].phone.value == '')
		return die('Please provide your phone number!');
	else if (document.forms[0].agency.value == '')
		return die('Please provide your agency/department!');
	else
		document.forms[0].submit();
}

/**
 * Validate mailing list form
 * @return void
 */
function validateMailingForm() 
{
	if (document.forms[0].email.value == '')
		return die('Please provide your email address!');
	else if (document.forms[0].first_name.value == '')
		return die('Please provide your first name!');
	else if (document.forms[0].last_name.value == '')
		return die('Please provide your last name!');
	else
		document.forms[0].submit();
}