var site = {
	
	lb : false,
	types_images : ["gif", "jpg", "jpeg", "png"],
	types_flash  : ["swf"],
	menuOption   : false,
	
	setupGallery : function()
	{
		if( site.lb ) {site.lb.deactivate()};	
		
		var galleries = dom.byClass("gallery", dom.byId("stage"));
		for(var i = 0; i < galleries.length; i++){
			var tags = dom.byTag("a", galleries[i]);	
			for(var a = 0; a < tags.length; a++){
				tags[a].onclick = function(e)
				{
					var obj = dom.getEventElement(e);
					//	ensure that object is not the image tag
					if( obj.tagName != "a" ) obj = dom.getParentByTag(obj, "a");
					//	init lightbox
					site.lb = new lightbox();
					site.lb.target = dom.byId("stage");
					site.lb.className = "wrapper center";
					site.lb.create();
					site.lb.box.style.backgroundColor = "";
					//	setup display position
					sfx.setOpacity(site.lb.box, 1);
					site.lb.show();
					
					//	if image...
					if( dom.inArray(obj.href.extension(), site.types_images) ){
						//	create and load new image
						var img = new Image();
						img.src = obj.href;
						if( document.all ){
							//	IE doesn't support onload, so we use the httpRequest
							img.onreadystatechange = function(){
								if( img.readyState == "complete" ){
									site.showGallery(obj, img);
								}
							}
						}else{
							img.onload = function(){site.showGallery(obj, img)};
						}
					//	if flash...		
					}else if( dom.inArray(obj.href.extension(), site.types_flash) ){
						site.showFlash(obj);
					}else{
						site.lb.box.style.width = "800px"; 
						site.lb.box.style.top = "100px";
						site.lb.box.innerHTML = "<span style=\"font-size:16px;color:#dedede;\" class=\"ac\">Invalid file type </span>";
					}
					
					dom.cancel(e);
				}
			}	
		}
	},
	
	showGallery : function(obj, img )
	{
		var t   = site.lb.target;
		var box = site.lb.box;
		//	set popup
		box.style.width =  img.width +"px";
		box.className = "loaded";
		//	setup bottom labels
		var dl = dom.getParentByTag(obj, "dl");
		var dt = dom.byTag("dt",dl)[0];
		var dd = dom.byTag("dd",dl);
		var div = dom.create("div");
		div.innerHTML = "<div class=\"cfx label\"><div class=\"fl w50\">"+ (dd[0] ? dd[0].innerHTML : "" ) +"<br />"+ (dd[1] ? dd[1].innerHTML : "" ) +"<br />"+ (dd[2] ? dd[2].innerHTML : "" ) +"</div><div class=\"fl w49 ar\"><a href=\"#\">Close</a></div></div>";
		dom.byTag("a",div)[0].onclick = function(e){
			site.lb.deactivate();
			dom.cancel(e);
		};
		//	add to popup
		site.lb.box.appendChild(img);
		site.lb.box.appendChild(div);
		
		var scrollH  = dom.getScrollDimensions()[1];
		var bodyH    = dom.bodyHeight();
		var centered = (t.offsetHeight / 2) - (box.offsetHeight / 2);
		centered = centered + (scrollH - centered ) + ( img.width < img.height ? -100 : 0 ) + ( scrollH < 50 ? 50 : 0 );
		box.style.marginTop = centered  +"px";
		//	show
		sfx.fadeIn(box);
	},
		
	showFlash : function(obj)
	{
		var fwidth  = 320;
		var fheight = 285;
		
		var t   = site.lb.target;
		var box = site.lb.box;
		box.className = "loaded";
		//	create show area.
		var div = dom.create("div", "lbshowreel");
		div.style.width  = fwidth  +"px";
		div.style.height = fheight +"px";
		//	add
		box.appendChild(div);
		//	label area
		var dl = dom.getParentByTag(obj, "dl");
		var dt = dom.byTag("dt",dl)[0];
		var dd = dom.byTag("dd",dl);
		//	set label area
		var div = dom.create("div");
		div.innerHTML = "<div class=\"cfx label\"><div class=\"fl w50\">"+ (dd[0] ? dd[0].innerHTML : "" ) +"<br />"+ (dd[1] ? dd[1].innerHTML : "" ) +"<br />"+ (dd[2] ? dd[2].innerHTML : "" ) +"</div><div class=\"fl w49 ar\"><a href=\"#\">Close</a></div></div>";
		//	add
		dom.byTag("a",div)[0].onclick = function(e){
				site.lb.deactivate();
				dom.cancel(e);
			};
		box.appendChild(div);
		//	setup display position
		box.style.width = fwidth +"px";
		//	set display position
		var scrollH  = dom.getScrollDimensions()[1];
		var bodyH    = dom.bodyHeight();
		var centered = (t.offsetHeight / 2) - (box.offsetHeight / 2);
		centered = centered + (scrollH - centered ) + ( scrollH < 50 ? 50 : 0 ) ;
		box.style.marginTop = centered  +"px";
		//	play movie...
		sfx.setOpacity(site.lb.box, 99);
		site.playFlashMovie(obj.href, "lbshowreel", fwidth, fheight);
	},
	
	menu : function()
	{
		var timer = false;
		var cur   = false;
		var nav = dom.byId("nav");
		var dl  = dom.byTag("dl", nav);
			
		for(var i = 0; i < dl.length; i++){
			var aa = dom.byTag("a", dl[i]);
			for(var a = 0; a < aa.length; a++){
				aa[a].onmouseover = function(e){
					var lnk = dom.getEventElement(e);
					clearTimeout(timer);
					site.menuShow(dom.getParentByTag(lnk, "dl"));
				}
				aa[a].onmouseout = function(e){
					var lnk = dom.getEventElement(e);
					timer = setTimeout(function(){
							site.menuHide(dom.getParentByTag(lnk, "dl"));
							clearTimeout(timer);
						}, 500);
				}
			}
			
		}
	},
	
	menuHide : function(dl)
	{
		var dd = dom.byTag("dd", dl);
		var a  = dom.byTag("a", dom.byTag("dt", dl)[0])[0];
		dom.swapClass([a], "hover", "");
		for( var d = 0; d < dd.length; d++ ){
			dd[d].style.display = "none";
		}
		
	},
	
	menuShow : function(obj)
	{
		var a  = dom.byTag("a", dom.byTag("dt", obj)[0])[0];
		dom.addClass([a], "hover");
		var dls = dom.byTag("dl", obj.parentNode);
		for( var d = 0; d < dls.length; d++ ){
			if( dls[d] == obj ){
				var dd = dom.byTag("dd", dls[d])[0];
				if( dd ) dd.style.display = "block";
			}else{
				site.menuHide(dls[d]);
			}
		}
		
		
	}, 
	
	playFlashMovie : function(movie, id, fwidth, fheight)
	{
		if( !fwidth )  fwidth  = 320;
		if( !fheight ) fheight = 285;
		swfobject.embedSWF(movie, (!id ? "showreel" : id ), fwidth, fheight, "8.0.0", false, {}, {}, {});
	}
};


