(function(){
	var S = shrubbery;
	var Sh = S.html;

	S.callOnLoad(function(){				
		
		var menu = Sh.getElementsByClassName('s-menu')[0];
		
		var RichMenu = S.Class.create({
			__init__: function(el){
				this.element = el;
				this.setup(el);
			},
			setup: function(ul){
				var items = ul.getElementsByTagName('li');
				for(var i=0;i<items.length;i++){
					var li = items[i];
					var sub = li.getElementsByTagName('ul');
					sub = sub.length ? sub[0] : null;							
					var item = {li: li, ul: sub, menu: this};
					S.event.addListener(li, 'mouseover', item, function(e){
						Sh.addClass(this.li, 's-menu-over');
						if(this.ul){
							Sh.show(this.ul, 'block');
						}
					});								
					S.event.addListener(li, 'mouseout', item, function(e){
						Sh.removeClass(this.li, 's-menu-over');
						if(this.ul){									
							Sh.hide(this.ul);
						}
					});
					if(sub){
						Sh.hide(sub);
						Sh.addClass(li, 's-menu-parent');							
						this.setup(sub);
					}
				}
			}
		});
		
		var richMenu = new RichMenu(menu);
		
		var lightbox = {
			fog: Sh.create('s-fog'),
			box: Sh.create('lightbox s-image'),
			show: function(url, w, h, text){
				Sh.clear(this.box);
				this.box.appendChild(Sh.createElement('img', null, {src: url, width: w, height: h}));
				if(text){
					this.box.appendChild(Sh.create('s-caption', text));
				}

				Sh.setStyle(this.box, {marginLeft: -(w/2) + 'px', marginTop: -(h/2) + 'px'});
				Sh.show(this.fog);
				Sh.show(this.box);
				console.log(this.fog.style.display);
			},
			hide: function(url){
				Sh.hide(this.box);
				Sh.hide(this.fog);
			}
		};
		S.event.addListener(lightbox.box, 'click', lightbox, function(e){
			this.hide();
		});
		lightbox.hide();
		document.body.appendChild(lightbox.fog);
		document.body.appendChild(lightbox.box);
		
		
		var images = document.getElementsByTagName('img');
		for(var i=0;i<images.length;i++){
			var img = images[i];
			if(img.alt){						
				var w = img.width;
				var sImg = Sh.create('s-image', [
					Sh.createElement('img', null, {src: img.src, width: w}), 
					Sh.create('s-caption', img.alt)
				]);
				Sh.setStyle(sImg, 'width', w + 'px');
				Sh.replace(img, sImg);
				S.event.addListener(sImg, 'click', img.src, function(e){
					lightbox.show(this, img.width, img.height, img.alt);
				});
			}
		}
		
		/*
		var text = S.$('body-text');
		var nodes = text.childNodes;
		var tocTree = {headline: 'All', children: [], parent: null, level: 0};
		var current = tocTree;
		var uid = 0;
		for(var i=0;i<nodes.length;i++){
			if(S.isElement(nodes[i]) && nodes[i].tagName.match(/^h(\d)$/i)){
				var l = parseInt(RegExp.$1, 10);
				var parent = current;
				while(parent.level >= l){
					parent = parent.parent;
				}
				var headline = nodes[i].innerHTML;
				var name = 'TOC_'+(++uid);
				Sh.update(nodes[i], '<a name="'+name+'">'+headline+'<'+'/a>');
				var entry = {
					headline: headline,
					children: [],
					name: name,
					parent: parent,
					level: l
				};
				parent.children.push(entry);
				current = entry;							
			}
		}
		
		function buildTocUL(entries){
			var ul = Sh.createElement('ul');
			for(var i=0;i<entries.length;i++){						
				var li = Sh.createElement('li', '<a href="#'+entries[i].name+'">'+entries[i].headline+'<'+'/a>');
				if(entries[i].children.length){
					li.appendChild(buildTocUL(entries[i].children));
				}
				ul.appendChild(li);
			}
			return ul;
		}
		
		var tocContainer = S.$('body-text-toc');
		tocContainer.appendChild(buildTocUL(tocTree.children));
		*/
		
		var vscale = Sh.getElementsByClassName('s-layout-vscale');
		S.each(vscale, function(el){
			setTimeout(function(){
				var h = Math.max(700, parseInt(Sh.getStyle(el.parentNode, 'height')))+'px';
				//console.log(h);
				Sh.setStyle(el, 'height', h);
			}, 300);
		});
		
		//console.log('nodes: ' + document.getElementsByTagName('*').length);
		
	});

})();
