/*
		File: init-page-events.js
		Description: Performs initialization for the main site Events page.
*/

window.onload= function(){
  initOnClicksEvents();
  adjustLayout_Events_Intro();

  // add more calls here
//  activateBookListMgr_Events();  
}

var screenHeight = 0;
var adjustmentCounter = 0;

//var booklistMgr = new booklistManager();
//var sectionImageMgr = new sectionImageManager();

// This function is used for non-AJAX display events (e.g. entry PHP pages)
function activateBookListMgr_Events()
{
  var preloadImageNames = "";
  var elem = $('booklist_image_list');
  if(elem != null)
  {
//    debugAlert("activateBookListMgr_Events AAA");  
    var preloadImageNames = $F('booklist_image_list');
    
    if(preloadImageNames != "")
    {
//    debugAlert("activateBookListMgr_Events BBB image list is " + preloadImageNames);      
      var booklistMgr = new booklistManager();            
      booklistMgr.init(preloadImageNames, "userfiles/image/", "PHP");
    }
  }
}



function initFlashItems()
{
  var hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
//  initFlash_a1(hasInnerText);
//  initFlash_a2(hasInnerText);
  
}

function initFlash_a1(hasInnerText)
{
  var elem = $('flash_name_a1');
  if (elem != null)
  {
    var swfName = "";
   // var hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;

    if(hasInnerText)
      swfName = elem.innerText;
    else
      swfName = elem.textContent;

    if (swfName != null && swfName != "")
    {
      var so = new SWFObject(swfName, "mymovie", "250", "120", "8", "#FFFFFF");
      if (so != null)
        so.write("tinarsIntro_part_a1");
    }
  }
}

function initFlash_a2(hasInnerText)
{
  var elem = $('flash_name_a2');
  if (elem != null)
  {
    var swfName = "";

    if(hasInnerText)
      swfName = elem.innerText;
    else
      swfName = elem.textContent;

    if (swfName != null && swfName != "")
    {
  //    var so = new SWFObject(swfName, "mymovie", "250", "130", "8", "#FFFFFF");
      var so = new SWFObject(swfName, "mymovie", "210", "120", "8", "#FFFFFF");
      if (so != null)
        so.write("tinarsIntro_part_a2");
    }
  }
}


function initOnClicksEvents()
{
		// For each subnav button, assign event handler callback
		var btn = null;

		btn = $('btnTinarsIntro');
		if (btn)
		{
		if(btn.addEventListener)
				btn.addEventListener('click', fetch_tinars_intro, false);
		else if(btn.attachEvent)
				btn.attachEvent('onclick', fetch_tinars_intro);
		}
		btn = $('btnSeason');
		if (btn)
		{
		if(btn.addEventListener)
				btn.addEventListener('click', fetch_tinars_season, false);
		else if(btn.attachEvent)
				btn.attachEvent('onclick', fetch_tinars_season);
		}
		btn = $('btnPagesEvents');
		if (btn)
		{
		if(btn.addEventListener)
				btn.addEventListener('click', fetch_pages_events, false);
		else if(btn.attachEvent)
				btn.attachEvent('onclick', fetch_pages_events);
		}
		btn = $('btnEventDetails');
		if (btn)
		{
		if(btn.addEventListener)
				btn.addEventListener('click', fetch_event_details, false);
		else if(btn.attachEvent)
				btn.attachEvent('onclick', fetch_event_details);
		}

}

function fetch_tinars_intro()
{
		clearSubNavButtons();
		var btn = $('btnTinarsIntro');
		if (btn.parentNode)
		{
			btn.parentNode.className = "menu_item_selected";
			btn.parentNode.parentNode.className = "menu_btn_frame_selected";
		}

		var hdr = $('bl_content_box_hdr_title');
		if (hdr)
		{
			hdr.innerHTML = "<p>What is TINARS?</p>";
		}
		var url = 'db_scripts/db_get_content_by_type_AJAX.php';
		var pars = 'contentType=ct_tinars_intro';
		var ajaxRequest = new Ajax.Request(
		url,
		{
				method: 'get',
				parameters: pars,
				onComplete: showData_ContentItem_Events_Intro
		});
}

function fetch_tinars_season()
{

		clearSubNavButtons();
		var btn = $('btnSeason');
		if (btn.parentNode)
		{
			btn.parentNode.className = "menu_item_selected";
			btn.parentNode.parentNode.className = "menu_btn_frame_selected";
		}

		var url = 'db_scripts/db_get_content_by_type_AJAX.php';		
		var pars = 'contentType=ct_tinars_season';
		var ajaxRequest = new Ajax.Request(
		url,
		{
				method: 'get',
				parameters: pars,
				onComplete: showData_EventSchedule
		});
}


function fetch_pages_events()
{

		clearSubNavButtons();
		var btn = $('btnPagesEvents');
		if (btn.parentNode)
		{
			btn.parentNode.className = "menu_item_selected";
			btn.parentNode.parentNode.className = "menu_btn_frame_selected";
		}

		var hdr = $('bl_content_box_hdr_title');
		if (hdr)
		{
			hdr.innerHTML = "<p>Pages Upcoming Events</p>";
		}
		
		var url = 'db_scripts/db_get_content_by_type_AJAX.php';
		var pars = 'contentType=ct_pages_season';
		var ajaxRequest = new Ajax.Request(
		url,
		{
				method: 'get',
				parameters: pars,
				onComplete: showData_EventSchedule
		});
}

/* Not used */
function fetch_other_events()
{

    clearSubNavButtons();
    var btn = $('btnOtherEvents');
    if (btn.parentNode)
    {
      btn.parentNode.className = "menu_item_selected";
      btn.parentNode.parentNode.className = "menu_btn_frame_selected";
    }

    var hdr = $('bl_content_box_hdr_title');
    if (hdr)
    {
      hdr.innerHTML = "<p>Upcoming Events</p>";
    }
    
    var url = 'db_scripts/db_get_content_by_type_AJAX.php';
    var pars = 'contentType=ct_otherevents_season';
    var ajaxRequest = new Ajax.Request(
    url,
    {
        method: 'get',
        parameters: pars,
        onComplete: showData_EventSchedule
    });
}

function fetch_event_details()
{
		clearSubNavButtons();
		var btn = $('btnEventDetails');
		if (btn.parentNode)
		{
			btn.parentNode.className = "menu_item_selected";
			btn.parentNode.parentNode.className = "menu_btn_frame_selected";
		}

		var url = 'db_scripts/db_get_content_by_type_AJAX.php';
		var pars = 'contentType=ct_event_details&s=current';
		var ajaxRequest = new Ajax.Request(
		url,
		{
				method: 'get',
				parameters: pars,
				onComplete: showData_ItemDetail_Events
		});
}

function fetch_events_for_period(idx)
{
	var type = $F('content_type'); 
	var season = $F('season_'+ idx);
	var year = $F('year_'+ idx);
	
	var url = 'db_scripts/db_get_content_by_type_AJAX.php';		
	var pars = 'contentType='+type;
	pars += '&y='+year;
	pars += '&s='+season;

	var ajaxRequest = new Ajax.Request(
	url,
	{
			method: 'get',
			parameters: pars,
			onComplete: showData_EventSchedule
	});

	
}



function getEventItemDetail(idx)
{
	var url = 'db_scripts/db_get_content_by_type_AJAX.php';
	var pars = 'contentType=ct_event_details&id=' + idx;
	var ajaxRequest = new Ajax.Request(
	url,
	{
			method: 'get',
			parameters: pars,
			onComplete: showData_ItemDetail_Events
	});
}



function showData_EventSchedule(ajaxRequest)    
{
  try
  {
    var response = eval("(" + ajaxRequest.responseText + ")");
    if(response.error)
      alert("Eval Error:" + response.error);
    else
    {
      var target = $('bl_content_display_area');
      target.innerHTML = decodeAJAX(response.contentData.mainHTML);
      // We don't show a book list for the event season schedule

      showHeaderTitle(decodeAJAX(response.contentData.headerTitle));
      
      target = $('bl_sublink_container');
      target.innerHTML = decodeAJAX(response.contentData.archiveListHTML);
      
      target = $('bl_book_list_container');
      target.innerHTML = "&nbsp;";

      if (response.contentData.contentType == "ct_tinars_season")
      {
        $('bl_sublink_container').className = 'visibleBlock';
      }
      else if (response.contentData.contentType == "ct_pages_season")
      {
        $('bl_sublink_container').className = 'visibleBlock';
      }
      else
      {
        $('bl_sublink_container').className = 'hiddenBlock';
      }        
      
      setTimeout('adjustLayout_Events()', 0);      
    }      
  }
  catch(e)
  {
    if (e instanceof Error) 
      alert('showData_EventSchedule:\n' + e.name + ': ' + e.message + '\n' + ajaxRequest.responseText);
  }
}

function showData_ContentItem_Events_Intro(ajaxRequest)
{
  try
  {
    var response = eval("(" + ajaxRequest.responseText + ")");
    if(response.error)
      alert("Eval Error:" + response.error);
    else
    {
      var target = null;
      if(response.contentData.mainHTML != null)
      {
        target = $('bl_content_display_area');
        target.innerHTML = decodeAJAX(response.contentData.mainHTML);
      }
      
      if(response.contentData.booklistHTML != null)
      {
        target = $('bl_book_list_container');
        if (target != null)        
	        target.innerHTML = decodeAJAX(response.contentData.booklistHTML);
      }
      else
      {
        target = $('bl_book_list_container');
        if(target!= null)
          target.innerHTML = "&nbsp;";
      }
      
      // hide any sublink containers
      if($('bl_sublink_container') != null)
        $('bl_sublink_container').className = 'hiddenBlock';

      setTimeout('init_ibox()', 0);       
      
      showHeaderTitle(decodeAJAX(response.contentData.headerTitle));  
      setTimeout('adjustLayout_Events_Intro()', 0);
      
    }
  }
  catch(e)
  {
    if (e instanceof Error) 
      alert('showData_ContentItem:\n' + e.name + ': ' + e.message + '\n' + ajaxRequest.responseText);
  }
}


function showData_ItemDetail_Events(ajaxRequest)    
{
  try
  {
    var response = eval("(" + ajaxRequest.responseText + ")");
    if(response.error)
      alert("Eval Error:" + response.error);
    else
    {
//      if(response.contentData.booklistImages != null)
//      {
//        var preloadImageNames = decodeAJAX(response.contentData.booklistImages);
//        var booklistMgr = new booklistManager();        
//        booklistMgr.init(preloadImageNames, "userfiles/image/", "AJAX");
//      }
    
    
      var target = $('bl_content_display_area');
      if (target == null)
        debugAlert("Software Error: showData_ItemDetail_Events - Cannot find Target")
      target.innerHTML = decodeAJAX(response.contentData.mainHTML);

      if(response.contentData.booklistHTML != null)
      {
          target = $('bl_book_list_container');
        if (target != null)        
          target.innerHTML = decodeAJAX(response.contentData.booklistHTML);

        setTimeout('init_ibox()', 0);
      }
      else
      {
        target = $('bl_book_list_container');
        if (target != null)        
          target.innerHTML = "&nbsp;";
      }

      // hide any sublink containers
      if($('bl_sublink_container') != null)
        $('bl_sublink_container').className = 'hiddenBlock';
        
      showHeaderTitle(decodeAJAX(response.contentData.headerTitle));
      doLayoutAdjustment();        
    }
  }
  catch(e)
  {
    if (e instanceof Error) 
      alert('showData_ItemDetail_Events:\n' + e.name + ': ' + e.message + '\n' + ajaxRequest.responseText);
  }
}



function doLayoutAdjustment()
{
  // reset the global var 
  screenHeight = 0;
  adjustmentCounter = 0;  
  setTimeout('dynamicAdjustLayout_Events()', 0);

//  if (booklistMgr != null)
//    doAppearSequence(0);

}

function dynamicAdjustLayout_Events()
{
  var newHeight = adjustLayout_Events();
  if (newHeight != screenHeight || adjustmentCounter < 50)    // iteration count of 100 allows for up 10 secs of image load time before we abandon adjustments
  {
    adjustmentCounter++;
    setTimeout('dynamicAdjustLayout_Events()', 100);
  }
  
  screenHeight = newHeight;  
}

function adjustLayout_Events()
{
  // get natural heights from elements that can be read.
  var booklist_table_1 = xHeight("booklist_table_1");  
  var booklist_table_2 = xHeight("booklist_table_2");  
  var b1_content_table = xHeight("b1_content_table");  
  
  var maxHeight = Math.max(booklist_table_1, booklist_table_2 ) + 70; // get heights of booklist plus the vertical offset
  maxHeight = Math.max(maxHeight, b1_content_table );
  
  var minHeight = 480; // minimum acceptable height for bl_frame
  maxHeight = Math.max(maxHeight, minHeight );
  
  maxHeight += 250; // add the fixed height of "bl_header" + "bl_tabbar" plus a little extra margin.  
  
  xHeight("bl_frame", maxHeight);
  
}

function adjustLayout_Events_Intro()
{
//  initFlashItems(); // init the flash elements before adjusting the layout
//  xHeight("bl_frame", 2444);  // precalculated height of page
  xHeight("bl_frame", 3444);  // precalculated height of page
    
  adjustLayout_Events();
}
   

