﻿window.layoutSpecific = new function() {
	
	eval(estrada.namespace);
	
	this.layout = null;
	this.flash = { };
	this.contentAreas;
	this.toBind = null;
	
	attachEvent(document, "layout", function() {
		document.body.className = "l-inner";
		layoutSpecific.layout = cols(
			frame("promos",
				cols(
					frame("leftContent",
						area("videoPromo"),
						area("relatedItems")
					),
					frame("centerContent",
						area("print"),
						area("pageTitle"),
						area("content")
					)
				)
			),
			frame("links",
				area("sectionTitle"),
				area("navigation"),
				frame("promoArea",
					area("sitePromos"),
					area("sectionPromos"),
					area("pagePromos")
				)
			)
		);
		
		layoutSpecific.contentAreas = grab(document.getElementById("feeds"), {
			pagecontent: "content",
			videopromo: "videoPromo",
			sitepromos: "sitePromos",
			sectionpromos: "sectionPromos",
			pagepromos: "pagePromos"
		});
		layoutManager.grabMore(layoutSpecific.contentAreas, 
			"titling",
			{
				"page": "pageTitle"
			}
		);
		layoutManager.grabMore(layoutSpecific.contentAreas, 
			"context",
			{
				"section-title": "sectionTitle"
			}
		);
		var navigation = document.getElementById("navigation");
		if (navigation) {
			layoutSpecific.contentAreas["navigation"] = [];
			layoutSpecific.contentAreas["navigation"].push(navigation);
		}
		var relateditems = document.getElementById("relateditems");
		if (relateditems && first(relateditems)) {
			layoutSpecific.contentAreas["relatedItems"] = [];
			layoutSpecific.contentAreas["relatedItems"].push(relateditems);
		}
		layoutManager.addContentArea(layoutSpecific.contentAreas, "content", "extensions");
		// Setup the videos area
		foreach(
			[
				layoutSpecific.contentAreas["videoPromo"],
				layoutSpecific.contentAreas["sitePromos"],
				layoutSpecific.contentAreas["sectionPromos"]
			], 
			function(contentAreaArray) {
				commonLayout.ImageGalleryFeedHandler(contentAreaArray);
			}
		);
		layoutSpecific.toBind = [];
		layoutSpecific.toBind.push(["print", "print"]);
		var relatedItems = layoutSpecific.contentAreas["relatedItems"] ? layoutSpecific.contentAreas["relatedItems"][0] : null;
		if (!relatedItems) {
			layoutSpecific.toBind.push(["movePromos", "promoArea"]);
		}
	});
	
	estrada.behavior("movePromos").is({
		bind: function(node) {
			var leftContent = document.getElementById("l-leftContent");
			if (leftContent) {
				leftContent.appendChild(node);
			}
		}
	})
}
