var helpWindow;
var infoWindow;
var bibleWindow;



/* 
*** window.open features ***
*
* channelmode = { yes | no | 1 | 0 } Specifies whether to display the window in theater mode and show the channel band. The default is no. 
* directories = { yes | no | 1 | 0 } Specifies whether to add directory buttons. The default is yes. 
* fullscreen = { yes | no | 1 | 0 } Specifies whether to display the browser in full-screen mode. The default is no. Use full-screen mode carefully. Because this mode hides the browser's title bar and menus, you should always provide a button or other visual clue to help the user close the window. ALT+F4 closes the new window. A window in full-screen mode must also be in theater mode (channelmode).  
* height = number Specifies the height of the window, in pixels. The minimum value is 100. 
* left = number Specifies the left position, in pixels. This value is relative to the upper-left corner of the screen. The value must be greater than or equal to 0.  
* location = { yes | no | 1 | 0 } Specifies whether to display the input field for entering URLs directly into the browser. The default is yes. 
* menubar = { yes | no | 1 | 0 } Specifies whether to display the menu bar. The default is yes. 
* resizable = { yes | no | 1 | 0 } Specifies whether to display resize handles at the corners of the window. The default is yes. 
* scrollbars = { yes | no | 1 | 0 } Specifies whether to display horizontal and vertical scroll bars. The default is yes. 
* status = { yes | no | 1 | 0 } Specifies whether to add a status bar at the bottom of the window. The default is yes. 
* titlebar = { yes | no | 1 | 0 } Specifies whether to display a title bar for the window. This parameter is ignored unless the calling application is an HTML Application or a trusted dialog box. The default is yes. 
* toolbar = { yes | no | 1 | 0 } Specifies whether to display the browser toolbar, making buttons such as Back, Forward, and Stop available. The default is yes. 
* top = number Specifies the top position, in pixels. This value is relative to the upper-left corner of the screen. The value must be greater than or equal to 0.  
* width = number Sets the width of the window, in pixels. The minimum value is 100. 
*
*/


function openHelp(url)
{
  var height = window.screen.height - 150;
  var width  = 285;
	var availW = parseInt((window.screen.width-(width+15)));
	var availH = 0;
	var winPos = 'top=' + availH + ',left=' + availW + ',';
	var winSize = 'height=' + height + ',width=' + width + ',';
	var winOptions = 'toolbar=yes,status=no,menubar=no,scrollbars=1,resizable=yes,location=no'
	if (!helpWindow || helpWindow.closed)
	{
		helpWindow = window.open(url,'helpWindow', winPos + winSize + winOptions);
	}
	else
	{
		helpWindow.close();
		helpWindow = window.open(url,'helpWindow', winPos + winSize + winOptions)
	}	
}

function openPopup(windowObj, WindowName, URL, width, height, options)
{
  if (width == null)
    width = 479;
  if (height == null)
    height = 353;

	var availW = parseInt((window.screen.width - width) / 2);
	var availH = parseInt((window.screen.height - height) / 2);
	var winPos = 'top=' + availH + ',left=' + availW + ',';
	if (options == null)
		options = ',toolbar=yes,status=no,menubar=no,scrollbars=1,resizable=yes,location=no'
	else
		options = ',' + options;
		
	if (!windowObj || windowObj.closed)
	{
		windowObj = window.open(URL, WindowName, winPos + 'height=' + height + ',width=' + width + options);
	}
	else
	{
		windowObj.location.href = URL;
		windowObj.focus();
	}
	return windowObj;
}


function getForm(formName)
{
		if (window.navigator.appName.toLowerCase().indexOf('netscape') > -1) 
			return document.forms[formName];
		else 
			return document.forms(formName);
}


function body_load()
{
  $(window).bind('resize', window_resize);
  
  if (typeof(page_load) != 'undefined')
    page_load();
    
  window_resize();
}

function window_resize(e)
{
	var contentHeight = document.body.clientHeight - 115;
	$('#pageTemplate_ContentDiv').height(contentHeight);
	$('#LeftBorder').height(contentHeight);

	if (typeof(calendar_resize) != 'undefined')
		calendar_resize();
}

function elem(elementId)
{
  return document.getElementById(elementId);
}


function help_click()
{
  openHelp(helpURL);
}

function info_click()
{
	openHelp(infoURL);
}

function bible_click()
{
	var w = 500;
	var h = 600;
  
	bibleWindow = openPopup(bibleWindow, 'BibleWindow', bibleURL, w, h, 'toolbar=yes,status=yes,menubar=no,scrollbars=1,resizable=yes,location=no');
}

function hideTemplateMenu()
{
  mnu = document.getElementById('pageTemplate_MainMenu_div');
	if (mnu != null)
			mnu.style.display = 'none';		
}

function showTemplateMenu()
{
  var mnu = document.getElementById('pageTemplate_MainMenu_div');
  if (mnu != null)
    mnu.style.display = '';
}

function setMainTitle(titleText)
{
  var objTitle = document.getElementById('pageTemplate_MainTitle');
  if (objTitle != null)
    objTitle.innerHTML = titleText;
}



/* GENERIC HELPER FUNCTIONS */

function isNumeric(sText)
{
  var c;
  var validChars = '0123456789.';
  
  if (sText == '')
    return false;
    
  for(i=0; i<sText.length; i++)
  {
    c = sText.charAt(i);
    if (validChars.indexOf(c) == -1)
    {
      if ((i==0) && (c == '-'))
        continue;
      return false;
    }
  }
  return true;
}

function trim(s) 
{
  // Remove leading spaces and carriage returns
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function isValidEmail(emailText)
{
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (filter.test(emailText))
    return true;
  else
    return false;
}


