
         /* Thingamajig variables ************************************** */
         var gEntries = new Array();
         var gEntriesCount = 0;
         var gTableWidth = 500;
         var gTableHeight = 500;
         var gThumbHeight = 50;
         var gThumbWidth = 50;
         var gThumbsPerRow = 7;
         var gCurrentID = 'Thingamajig_Entry_0';

         function ThingamajigInitialize(width, height, thumbWidth, thumbHeight, thumbsPerRow){
                  gTableWidth = width;
                  gTableHeight = height;
                  gThumbHeight = thumbHeight;
                  gThumbWidth = thumbWidth;
                  gThumbsPerRow = thumbsPerRow;
         }

         function ThingamajigClear(){
                  gEntries = new Array();
                  gEntriesCount = 0;
                  gTableWidth = 500;
                  gThumbHeight = 50;
                  gThumbWidth = 50;
                  gThumbsPerRow = 7;
                  gCurrentID = 'Thingamajig_Entry_0';
         }

         function ThingamajigAddEntry(thumbPath, imagePath, description, width, height, alt, caption){
                  var temp_array = new Array(thumbPath, imagePath, description, height, width, alt, caption);
                  gEntries[gEntriesCount] = temp_array;
                  gEntriesCount = gEntriesCount + 1;
         }

         function ThingamajigDisplayEntry(idnum){
                  var id = "Thingamajig_Entry_" + idnum;

				  //alert(id);
				  //alert(gCurrentID);

                  var current = document.getElementById(gCurrentID);
                  var to_be_current = document.getElementById(id);

				  //alert(to_be_current.nodeName);

                  current.style.display = 'none';
                  to_be_current.style.display = 'block';

                  gCurrentID = id;
         }

         function HtmlCodeForElement(elementArray, elementNum, display){
                  var returnString = '';
                  var id = 'Thingamajig_Entry_' + elementNum;

                  returnString += '<div id="' + id + '" style="display:' + display + '">';
                  returnString += '<table border="0" width="' + gTableWidth + '" cellpading="0" cellspacing="0">';
                  returnString += '<tr>';
				  returnString += '<td width="25">&nbsp;</td>';
				  returnString += '<td align="left" valign="top" height="' + gTableHeight + '">' + elementArray[2] + '</td>';
                  returnString += '<td width="' + elementArray[4] + '" valign="top"><img src="' + elementArray[1] + '" width="' + elementArray[4] + '" height="'+ elementArray[3] +'" alt="' + elementArray[5] + '" /></td>';

                  returnString += '</tr>';
                  returnString += '</table>';
                  returnString += '</div>';

                  return returnString;
         }

         function HtmlCodeForThumbs(){
                  var returnString = '';
                  var x = 0;

                  returnString += '<table border="0" width="100%" cellpading="0" cellspacing="0">';
                  returnString += '<tr>';
                  while(x < gEntriesCount){
                        if(x > 0 && x % gThumbsPerRow == 0){
                           //end a line and start a new one
                           returnString += '</tr>';
                           returnString += '<tr>';

                           //place current entry
                           returnString += '<td align="center" bgcolor="white"><a href="#thingamajig" class="thumbBox" id="link_' + x + '">';
                           returnString += '<img src="' + gEntries[x][0] + '" width="' + gThumbWidth + '" height="'+ gThumbHeight +'" alt="' + gEntries[x][6] + '" border="0" /><br />';
                           returnString += ' ' + gEntries[x][6] + '</a>';
                           returnString += '</td>';
                        }else{
                           //place current entry
                           returnString += '<td align="center" bgcolor="white"><a href="#thingamajig" class="thumbBox" id="link_' + x + '">';
                           returnString += '<img src="' + gEntries[x][0] + '" width="' + gThumbWidth + '" height="'+ gThumbHeight +'" alt="' + gEntries[x][6] + '" border="0" /><br />';
                           returnString += ' ' + gEntries[x][6] + '</a>';
                           returnString += '</td>';
                        }

                        x++;
                  }

                  if(x % gThumbsPerRow != 0){
                     var y = gThumbsPerRow - (x % gThumbsPerRow);
					 //alert(y + " " + x + " " + gThumbsPerRow);
                     returnString += '<td colspan="' + y +'">&nbsp;</td>';
                  }

                  returnString += '</tr>';
                  returnString += '</table>';

                  return returnString;
         }

         function WriteThingamajig(){
                  var outputString = "";
                  var x = 0;
                  var target = "scriptTarget";

                  outputString += '<a name="thingamajig" id="thingamajig"></a>';
                  outputString += '<table border="0" width="' + gTableWidth + '" cellpading="0" cellspacing="0">';
                  outputString += '<tr>';
                  outputString += '<td>';

                  while(x < gEntriesCount){
					  	if(x == 0){
							outputString += HtmlCodeForElement(gEntries[x], x, 'block');
						}else{
                        	outputString += HtmlCodeForElement(gEntries[x], x, 'none');
						}
						x++;
                  }

                  outputString += '</td>';
                  outputString += '</tr>';

				  outputString += '<tr>';
                  outputString += '<td height="15">';
                  outputString += '&nbsp;';
                  outputString += '</td>';
                  outputString += '</tr>';

                  outputString += '<tr>';
                  outputString += '<td>';
                  outputString += HtmlCodeForThumbs();
                  outputString += '</td>';
                  outputString += '</tr>';

                  outputString += '</table>';

                  document.write(outputString);
				  //alert(outputString)
                  //document.getElementById(target).innerHTML = outputString;
         }

		 function addEvent(elm, evType, fn, useCapture){
			if(elm.addEventListener){
				elm.addEventListener(evType, fn, useCapture);
				return true;
			}else if (elm.attachEvent){
				var r = elm.attachEvent('on' + evType, fn);
				return r;
			}else {
				elm['on' + evType] = fn;
			}
		 }

		 function AddThingamajigListeners(e){
			if(!document.getElementsByTagName('a')){
				return;
			}

			var all_cells = document.getElementsByTagName('a');

			for(var i = 0; i < all_cells.length; i++){
				var cell = all_cells[i];

				if( cell.className && (' ' + cell.className + ' ').indexOf(' thumbBox ') != -1){
					addEvent(cell, 'click', getCellID, false);
				}
			}//end for
		 }

		 function getCellID(e){
			var el;
			if(window.event && window.event.srcElement){
				el = window.event.srcElement;
				window.event.returnValue = false;
			}

			if(e && e.target){
				el = e.target;
				e.preventDefault();
			}

			if(!el){
				return;
			}

			//alert(el.nodeName.toLowerCase())
			//alert(el.parentNode.nodeName.toLowerCase())

			while(el.nodeName.toLowerCase() != 'td' && el.nodeName.toLowerCase() != 'a'){
				el = el.parentNode;
			}

			var link_id = el.id;
			//alert(el.id);
			var idnum = link_id.slice(5);
			//alert(idnum)
			ThingamajigDisplayEntry(idnum);
			return false;

		 }

		 addEvent(window, 'load', AddThingamajigListeners, false);