function showGallery(name) {
   jQuery("#theGallery").empty();
   jQuery("#theGallery").galleria({data_source: "#" + name, keep_source: true, height: "447px",});
}

function generateMenus() {
   var menu = jQuery("#menu");
   jQuery(".categorybox").each( function() {
      var entry = document.createElement("li");
      entry.innerHTML = this.title;
      entry.className = "menuitem";
      var submenu = document.createElement("ul");
      var galleries = jQuery(".gallerybox",jQuery(this)).each( function() {
         var subentry = document.createElement("li");
         subentry.innerHTML = this.title;
         subentry.targetGallery = this.id;
         jQuery(subentry).click(function() { showGallery(this.targetGallery); });
         submenu.appendChild(subentry);
      });
      entry.appendChild(submenu);
      menu.append(entry);
   });
   menu.append('<li class="menuitem"><a href="/reid">Blog</a></li>');
}

function selectImage(n) {
	var imagename = "#me" + n;
	jQuery(".meboxes:not("+imagename+")").css("visibility","hidden");
	jQuery(imagename).css("visibility", "visible");
}

	
function updateReid(x, y) {
   /*
    * All of the magic numbers here were determined empirically.
    * (120,240) is the point my shoulder rotates around in the
    * different drawings, and the slopes cut out a range that looks
    * reasonably natural.
    */
	if(y != 240) {
		var slope = (x-120)/(240-y);
		if(slope <= 0)
			{ selectImage("0"); }
		else if(slope > 3)
			{ selectImage("1"); }
		else if(slope > 1.8)
			{ selectImage("2"); }
		else
			{ selectImage("3"); }
	}
}

function menuOver(e) {
	var evt=window.event || e; //cross browser event object
	updateReid(evt.clientX, evt.clientY);
	jQuery("ul",this).css("display","block");
}

function menuOff(e) {
   selectImage("0");
   jQuery("ul",this).css("display","none");
}

jQuery(document).ready( function() {
   generateMenus();
   jQuery(".menuitem").hover(menuOver,menuOff);
   jQuery("#menu li li").hover(menuOver,menuOff);
});

/*window.onmousemove=function(e){
	var evt=window.event || e //cross browser event object
	updateReid(evt.clientX, evt.clientY)
}*/
