if (window.Website == null || window.Website == undefined) {
	Website = { };	
}

Website.Blog = { };
Website.Blog.Years = { };
Website.Blog.Panels = { };

// Holds references to relevant objects in the blog.
Website.Blog.Objects = new Array();

Website.Blog.Init = function(blog) {
	
	// Initialise blog panels.
	Website.Blog.Panels.Init(blog);
}

Website.Blog.Panels.Init = function(blog) {
	var panels = blog.getElements(".panel");
	
	for (var p = 0; p < panels.length; p++) {
		var panel = panels[p];	
		var object = { };
		
		var wrapper = panel.getElement(".contentWrapper");
		
		if (wrapper) {
			var text = wrapper.getElement(".content");
			
			if (text) {
				var hideShowLink = panel.getElement("A.show, A.hide");
				var readMoreLink = panel.getElement(".readMore");
				
				var heading = text.getElement("H2");
				var pargs = text.getElements("P");
				var parg = text.getElement(".summary");

				// Don't provide expansion links if there is only one paragraph.
				if (parg == null) {
					hideShowLink.setStyle("display", "none");
					readMoreLink.setStyle("display", "none");
				
				} else if (hideShowLink && readMoreLink) {	
					var wrapperHeight = wrapper.getHeight();
					var headingHeight = Website.Base.GetHeight(heading);
					var pargHeight = Website.Base.GetHeight(parg);
					
					if (parg && Website.Vars.IsMSIE) {
						pargHeight -= 10;	
					}
					
					wrapper.MaxHeight = wrapperHeight;
					wrapper.MinHeight = headingHeight + pargHeight;
					
					wrapper.setStyle("height", wrapper.MinHeight);
					
					object.Wrapper = wrapper;
					object.ReadMore = readMoreLink;
					object.HideShow = hideShowLink;
					
					hideShowLink.Index = p;
					readMoreLink.Index = p;
					
					if (!Website.Vars.IsMSIE) {
						Website.Animations.Fade(hideShowLink, Website.Animations.ArrowStartOpacity, Website.Animations.ArrowEndOpacity);
					}
					
					hideShowLink.addEvent("click", function() { Website.Blog.Panels.Toggle(this); });
					readMoreLink.addEvent("click", function() { Website.Blog.Panels.Toggle(this); });
				}
					
				Website.Blog.Objects.push(object);
			}
		}
	}
}

Website.Blog.Panels.Toggle = function(item) {
	var object = Website.Blog.Objects[item.Index];
	
	if (object.Visible == true) {
		Website.Blog.Panels.Hide(object);
	} else {
		Website.Blog.Panels.Show(object);	
	}
}

Website.Blog.Panels.Show = function(object) {
	Website.Blog.Panels.Animate(true, object, "Hide article...", object.Wrapper.MaxHeight);
}

Website.Blog.Panels.Hide = function(object) {
	Website.Blog.Panels.Animate(false, object, "Show article...", object.Wrapper.MinHeight);
}

Website.Blog.Panels.Animate = function(show, object, title, height) {
	var img = object.HideShow.getElement("IMG");
	
	object.Visible = show;
	object.HideShow.setProperty("title", title);
	
	if (img != null) {
		img.setProperty("title", title);
		img.setProperty("alt", title);
	}
	
	if (show) {
		if (object.HideShow) { object.HideShow.addClass("hide"); }
		if (object.ReadMore) { object.ReadMore.setStyle("display", "none"); }
		
	} else {
		if (object.HideShow) { object.HideShow.removeClass("hide"); }
		if (object.ReadMore) { object.ReadMore.setStyle("display", "inline"); }
	}
	
	if (object.Wrapper.Effect != null) {
		object.Wrapper.Effect.cancel();	
	}	
	
	object.Wrapper.Effect = new Fx.Morph(object.Wrapper, { duration: 450, transition: Fx.Transitions.Sine.easeOut });
	object.Wrapper.Effect.start({ 'height': height });
}