function init_onload() 
{
  textObj.lastText = document.getElementById('butong_image');
  for(var i = 0; i < icons.length; i++)
  {
    icons[i].init_enlight(icons[i].start, icons[i].index);
  }
}

function Content() {
  this.old_menu_item = null;
  this.current_content = null;
}

Content.downlightMenu = function ()
{
  if(Content.old_menu_item == null) return;
  Content.old_menu_item.style.fontWeight = 'normal';
}

Content.highlightMenu = function (item)
{
  if(Content.old_menu_item == item) return;
  if(Content.old_menu_item != null)
  {
    Content.downlightMenu();
  }
  item.style.fontWeight = 'bold';
  Content.old_menu_item = item;
}

Content.close = function ()
{
  var main = document.getElementById('main');
  main.style.display = 'none';
  var first_image = document.getElementById('first_image');
  first_image.style.display = 'block';
  gallery_size_small = true;
}

Content.hideMenuSiblings = function(current_item)
{
  var nodes = current_item.parentNode.childNodes;
  for(var i = 0; i < nodes.length; i++)
    {
      if(nodes[i] == current_item)
	{
	  setOpacity(nodes[i], 1);
	}
      else
	{
	  nodes[i].style.opacity = null;
	  nodes[i].style.filter = null;
	  //	  setOpacity(nodes[i], 0.3);
	}
    }
}

Content.hideSiblings = function()
{
  var nodes = Content.current_content.parentNode.childNodes;
  for(var i = 0; i < nodes.length; i++)
    {
      if(nodes[i].tagName == 'DIV' && nodes[i].className == 'content_thumbnails')
	{
	  nodes[i].style.display = 'none';
	}
    }
}

Content.display = function(id)
{
  if(typeof id == 'string')
  {
    var content_menu_id = 'content_menu_'+id;
    var content_menu = document.getElementById(content_menu_id);
  }
  else
  {
    var content_menu = id;
    var arr = content_menu.id.split('_');
    id = arr[2];
    Content.highlightMenu(content_menu);
    Content.hideMenuSiblings(content_menu);
  }

  var content_id = 'content_'+id;
  var elem = document.getElementById(content_id);

  if(Content.current_content == elem) return;
  Content.current_content = elem;
  if(Content.current_content != null)
  {
    Content.hideSiblings();
  }
  if(elem)
    elem.style.display = 'inline-block';
  return true;
}

  var gallery_size_small = true;


function gallery_enlarge()
{
  var shrink = document.getElementById('shrink');
  var enlarge = document.getElementById('enlarge');
  
  var content_area = enlarge.parentNode.parentNode.parentNode;

  // swap out magnifying glass
  shrink.style.display = 'block';
  enlarge.style.display = 'none';

  // change the css
  content_area.className = 'content_area_big';
  
  // set the image pool
  gallery_size_small = false;

  // update the current image
  displayOther(0);
}

function gallery_shrink()
{
  var shrink = document.getElementById('shrink');
  var enlarge = document.getElementById('enlarge');
  
  var content_area = enlarge.parentNode.parentNode.parentNode;

  // swap out magnifying glass
  shrink.style.display = 'none';
  enlarge.style.display = 'block';

  // change the css
  content_area.className = 'content_area';

  // set the image pool
  gallery_size_small = true;

  // update the current image
  displayOther(0);
}


function setOpacity(elem, opacity)
{
  if(opacity <= this.dimmed_opacity)
  {
    opacity = this.dimmed_opacity;
  }
  else if(opacity >= this.displayed_opacity)
  {
    opacity = this.displayed_opacity;
  }
  var ieOpacity = 'alpha(opacity='+ (opacity*100) +')';

  elem.style.opacity = opacity+'';
  elem.style.filter = ieOpacity;
}

function clearOpacity(elem)
{
  elem.style.opacity = null;
  elem.style.filter = null;
}

var current_content = false;
var current_icon = false;

function displayContent(icon)
{
  /*  if(imagery && imagery.slideshow_running)
    imagery.stop(imagery);
  imagery.hide();
  */

  var first_image = document.getElementById('first_image');
  first_image.style.display = 'none';

  if(current_icon && current_icon != icon)
    {
      clearOpacity(current_icon);
    }
  current_icon = icon;

  setOpacity(icon, 1);

  var arr =  icon.id.split('_');
  current_content = arr[1];
  var content_id = 'content_'+arr[1];
  var content = document.getElementById(content_id);
  var main = document.getElementById('main');
 
  main.style.display = 'inline';
  main.innerHTML = content.innerHTML;
  Content.display(arr[1]+'x0');

}

function hideContent(menu)
{
  menu.style.display = 'none';
  setOpacity(menu, 0);
}

var displayedImage = null;
var displayedText = null;
var displayedClass_name = false;
var displayedSub_index = false;
var displayedImg_index = false;

var move_thumbnails_index_threshold_large_gallery = 13;
var move_thumbnails_index_threshold_small_gallery = 7;
var hidden_thumbnails = 0;

function moveThumbnails(thumbnails, index, old_index)
{
  if(gallery_size_small)
    var move_thumbnails_index_threshold = move_thumbnails_index_threshold_small_gallery;
  else
    var move_thumbnails_index_threshold = move_thumbnails_index_threshold_large_gallery;

   if(old_index < index)
  {
    if(index > move_thumbnails_index_threshold)
    {
      hide = index - move_thumbnails_index_threshold;
      hidden_thumbnails = 0;
      for(var i = 0; hidden_thumbnails < hide; i++)
      {
	if(thumbnails[i].tagName == 'IMG')
	{
	    thumbnails[i].style.display = 'none';
	    hidden_thumbnails++;
	}
      }
    }
  }
  if(old_index > index)
  {
    if(index <= move_thumbnails_index_threshold)
    {
      for(var i = 0; hidden_thumbnails >= 0; i++)
      {
	if(thumbnails[i].tagName == 'IMG')
	{
	  thumbnails[i].style.display = null;
	  hidden_thumbnails--;
	}
      }
    }
    else
    {
      var unhide = index - old_index;
      for(var i = thumbnails.length-1; unhide > 0; i--)
      {
	if(thumbnails[i].tagName == 'IMG')
	{
	  if(thumbnails[i].style.display == 'none')
	  {
	    thumbnails[i].style.display = null;
	    unhide--;
	  }
	}
      }
    }
  }
}

function displaySelectedContent(class_name, sub_index, img_index)
{
  if(current_content === false)
    return;


  var fc = document.getElementById('first_content_'+current_content);
  fc.style.display = 'none';

  var sc = document.getElementById('selected_content_'+current_content);
  sc.style.display = 'block';

  setDisplayNodes(sc);
  
  displayedClass_name = class_name;
  displayedSub_index = sub_index;
  old_index = displayedImg_index;
  displayedImg_index = img_index;

  displayOther(0, old_index);

  return;
}


function displayOther(direction, old_index)
{
  if(direction != 0)
  {
    old_index = displayedImg_index;
    displayedImg_index += direction;
  }

  var current_thumbnails_id = 'content_'+current_content+'x'+displayedSub_index;
  var current_thumbnails = document.getElementById(current_thumbnails_id);
  moveThumbnails(current_thumbnails.childNodes, displayedImg_index, old_index);

  eval_str = 'var txt_array = content_text_'+current_content;
  eval(eval_str);

  if(displayedImg_index == txt_array[displayedSub_index].length)
    displaySelectedContent(displayedClass_name, displayedSub_index, 0);
  if(displayedImg_index == -1)
    displaySelectedContent(displayedClass_name, displayedSub_index, txt_array[displayedSub_index].length-1);
  
  highlightThumbnail(current_thumbnails, displayedImg_index);

  // get the folder for images
  var folder = 'images/'+displayedClass_name+'/';
  var extension = '.png';

  // pick from the larger set of images if the gallery is magnified
  if(!gallery_size_small)
  {
    folder += 'large/';
    extension = '.jpg';
  }

  var img_src = folder + displayedClass_name;

  var i1 = displayedSub_index+1;
  var i2 = displayedImg_index+1;
  i2 = (i2 < 10) ? '0'+i2 : ''+i2;
  img_src += i1 + i2 + extension;

  displayedImage.src = img_src;
  displayedText.innerHTML = txt_array[displayedSub_index][displayedImg_index];

}
function displayNext()
{
  displayOther(1);
}

function displayPrevious()
{
  displayOther(-1);
}

function setDisplayNodes(parent)
{
  var children = parent.childNodes;
  displayedText = null;
  for(var i = 0; i < children.length; i++)
  {
    if(children[i].tagName == 'IMG')
    {
      displayedImage = children[i];
    }
    if(children[i].tagName == 'DIV')
    {
      displayedText = children[i];
      return;
    }
  }
}

function highlightThumbnail(parent, img_index)
{
  var imgs = parent.childNodes;
  var j = 0;
  for(var i = 0; i < imgs.length; i++)
  {
    if(imgs[i].tagName == 'IMG' && imgs[i].className.substr(0,5) != 'arrow')
    {
      if(img_index == j)
      {
	setOpacity(imgs[i], 1);
      }
      else
      {
	clearOpacity(imgs[i]);
      }
      j++;
    }
  }

}

var submenuMovesLeft = 0;
var displayed_submenu_items = 5;
var submenu_move_interval = null;
var submenu_moved_distance = 0;

function submenuMove(direction)
{
  var menu = document.getElementById('content_menu_area');
  var multiple = false;
  var move = 0;

  if(direction == 'right')
  {
    move = -90;
    submenuMovesLeft++;
  }
  else
  {
    move = 90;
    submenuMovesLeft--;
  }
  var items = 0;

  for(i = 0; i < menu.childNodes.length; i++)
  {
    if(menu.childNodes[i].tagName == 'DIV')
      {
	items++;
      }
  }

  if(items > 10)
  {
    move_items = 10;
  }
  else
  {
    move_items = items;
  }

  distance = move * (move_items - displayed_submenu_items);

  
  submenu_move_interval = window.setInterval(function() {
      move_submenu_items(menu.childNodes, distance);
     }, 20);


  var left_arrow = document.getElementById('menu_arrow_left');
  if(submenuMovesLeft > 0)
    // display left arrow
     left_arrow.style.display = 'block';
  else
    // hide it
     left_arrow.style.display = 'none';

  var right_arrow = document.getElementById('menu_arrow_right');
  if(submenuMovesLeft > 0) //(items - displayed_submenu_items))
    // hide right arrow
     right_arrow.style.display = 'none';
  else
    // display it
     right_arrow.style.display = 'block';
}

function move_submenu_items(nodes, distance)
{
  var move = distance / 20;  
 
  if(Math.abs(submenu_moved_distance + move) > Math.abs(distance))
  {
    move = distance - submenu_moved_distance;
    submenu_move_interval = window.clearInterval(submenu_move_interval);
    submenu_moved_distance = 0;
  }
  else
  {
    submenu_moved_distance += move;
  }

  for(i = 0; i < nodes.length; i++)
  {
    if(nodes[i].tagName = 'DIV')
      {
	var left = nodes[i].style.left;
	pos = left.substr(0,left.length-2) * 1;
	pos += move;
	nodes[i].style.left = pos+'px';
      }
  }
}

function submenuMoveOld(direction)
{
  var menu = document.getElementById('content_menu_area');
  var move = 0;

  if(direction == 'right')
  {
    move = -90;
    submenuMovesLeft++;
  }
  else
  {
    move = 90;
    submenuMovesLeft--;
  }
  var items = 0;

  for(i = 0; i < menu.childNodes.length; i++)
  {
    if(menu.childNodes[i].tagName == 'DIV')
      {
	items++;
	var left = menu.childNodes[i].style.left;
	pos = left.substr(0,left.length-2) * 1;
	pos += move;
	menu.childNodes[i].style.left = pos+'px';
      }
  }

  var left_arrow = document.getElementById('menu_arrow_left');
  if(submenuMovesLeft > 0)
    // display left arrow
     left_arrow.style.display = 'block';
  else
    // hide it
     left_arrow.style.display = 'none';

  var right_arrow = document.getElementById('menu_arrow_right');
  if(submenuMovesLeft >= (items - displayed_submenu_items))
    // hide right arrow
     right_arrow.style.display = 'none';
  else
    // display it
     right_arrow.style.display = 'block';
}


