/* 
	As a way to further the separation of layer abstractions, it is good practice to 
	never use inline functions (i.e. onmouseover="someFunction();") within html tags.
	Instead, get used to using the DOM to modify identified elements.  The fuction, 
	getElementsByClassName, facilitates the objective of selecting multiple elements
	with the same function purpose to modify or add dynamic behavior.  Adding a queue
	data structure adds a first-in-first-out organizing priciple for executing function
	calls for a given event
*/
bodyOnloadTaskQueue = new Queue();
window.onload = runTasks();

function getElementsByClassName(className, tag, elm)
{
	var testClass = new RegExp('\\b'+className+'\\b');
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function Queue()
{
  var queue=new Array();
  var queueSpace=0;
  this.enqueue=function(element)
  {
    queue.push(element);
  }
  this.dequeue=function()
  {
    if (queue.length)
    {
      var element=queue[queueSpace];
      if (++queueSpace*2 >= queue.length)
      {
        for (var i=queueSpace;i<queue.length;i++) queue[i-queueSpace]=queue[i];
        queue.length-=queueSpace;
        queueSpace=0;
      }
      return element;
    }
    else
    {
      return undefined;
    }
  }
}
function runTasks()
{			
	var task;
	do
	{
	
		task = bodyOnloadTaskQueue.dequeue();		
		
		if(task)
		{
			task();
		}		
	}while(task);
}
function activateTabbedMenus()
{
	tabs = getElementsByClassName("tabbed-menu");	
	for(i = 0; i < tabs.length; i++)
	{   						
		tabs[i].onclick = tab; 
	}
	tabs = getElementsByClassName("tabbed-menu2");	
	for(i = 0; i < tabs.length; i++)
	{   						
		tabs[i].onclick = tab2; 
		tabs[i].style.cursor = "pointer"; 
	}
}

function InsertFlashMovie(src, height, width)
{
  document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="'+ width +'" height="'+ height +'"><param name="movie" value="'+src+'"><param name="quality" value="high"><EMBED SRC="'+src+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"  WIDTH="'+width+'" HEIGHT="'+height+'" WMODE="TRANSPARENT" MENU="FALSE" BGCOLOR="BLACK"></EMBED></object>');
}
