window.sampleLayout = new function() {
	eval(estrada.namespace);
	var layout = null;
	$.tilt.ready(function(layoutHelper) {
	  var body = $(document.body);
	  var g = layoutHelper.authoring;
	  var pB = $.presentationHelper.behaviors;
	  pB.googleAnalytics();
	  var sitecontext = gel('site-context');
		var content = gel('content');
		var content2 = gel('content-2');
		var context = gel('context');
		var branding = gel('branding');
		var search = gel('search');
		var feeds = gel('feeds');
		var cqfeeds = gel('cq-feeds');
		var navigation = gel('navigation');
		var extensions = gel('extensions');
		var bricks = gel('bricks');
		var legacy = gel('legacy');
		var sitemap = gel('sitemap');
		var viewnav = gel('view-navigation');
		
		var layout = sampleLayout.layout = frame('page', 
		    frame('page-inner',
		        frame('page-top'),
			    cols(
			        area('branding'),
			        frame('belt',
			            cols(
			                area('snav'),
			                area('tools')
			            )
			        )
			       
			    ),
			    area('global'),
			    area('bottom-global'),
			    cols(
			        frame('left', 
			            area('nav'), 
			            area('ads')
			        ), 
			        frame('right',
			            area('banner'),
			            area('location'), // breadcrumbs+title
			            cols(
			                frame('main',
			                    area('content'),
			                    frame('promo-extra',
			                        cols(
			                            area('promo'),
			                            cols(
			                                area('extra'),
			                                area('resource')
			                            )
			                        )
			                    )
			                ), 
			                area('related')
			            )
			        )
			),
			    cols (
			        area('flinks'),
			        area('ftext')
			),
			area('share')
	    )).build(document.body);
			
		layoutHelper.layout = layout;
		if (viewnav) {
		  layoutHelper.viewnav = $('ul', viewnav).get(0);
		}
		if (g.meta.pagetype) {
		  body.addClass('l-' + g.meta.pagetype);
		}
		else {
		  body.addClass('l-inner');
		}
		g.meta.view && body.addClass('l-' + g.meta.view);
			
		layout.push({
			tools: 'search'
		});
      
		layout.push(grab(navigation, {
			breadcrumbs: 'location',
			"children": 'nav'
		}));
		
		layout.push(grab(sitecontext, {
		    snav: 'snav',
		    tools: 'tools',
			global: 'global',
			flinks: 'flinks',
			ftext: 'ftext'
		}));
		
		layout.push({
		  'branding-tools': sitecontext
		});
			
		layout.push(grab(content, {
		    page: 'content',
			'extended-page': 'content',
			banner: 'banner',
			main: 'content',
			related: 'related'
		}));
		layout.push(grab(feeds, {
			content: 'content',
			promo: 'promo',
			extra: 'extra',
			related: 'related',
			tools: 'tools',
			ads: 'ads'
		}));
		
		layout.push(grab(content2, {
			'page-links': 'related',
			'content-copy': 'content'
		}));

		layout.push(grab(content, {
			ads: 'left'
		}));
		
        	layout.push({
			content: 'legacy'
		});
		
		layout.push({
			content: 'sitemap'
		});
		// push by id
		layout.push({
			content: 'sitemap',
			content: 'legacy',
			content: 'extensions'
		});
		layout.push({
			content: 'bricks'
		});
		if (bricks) {
			bricks.className = "";
		}
		if (extensions) {
			extensions.className = "";
		}
		if (search) {
			search.className = "";
		}
		$.contentQuery(layoutHelper);

		// add TCC :: to the title 
		document.title = "TCC :: " + document.title;


		if ($.presentationHelper.uiHandler.items['site-context']) {
			layout.push({
		    		branding: $.presentationHelper.uiHandler.items['site-context']['site-logo']
		  	});
		  	layout.push({
		    		share: $.presentationHelper.uiHandler.items['site-context']['share']
		  	});
		}

		if ($.presentationHelper.uiHandler.items.feeds) {
		  layout.push({
		    resource: $.presentationHelper.uiHandler.items.feeds.resource
		  });

		}
		// let's bind behaviors to elements
		layout.bind('drop-down-menu').to($('#l-global .global').get(0));
		layout.bind('pretty-search').to(document);
		layout.bind('isolate-submits').to(document);
		layout.bind('date-selector').to(document);
		layout.bind('category-tree').to(document);
		layout.bind('grid-visibility').to(document);
		layout.bind('first-li').to(document);
		layout.bind('tiny-mce').to(document);
		layout.bind("pretty-crumbs").to("location");
		layout.bind("url-highlight").to("global");
		layout.bind("limit-global").to("global");
		layout.bind("last-li").to("global");
		layout.bind("last-div").to("related");
		layout.bind("event-items").to($('.event-items').get(0));
		layout.bind("home-news").to($('.home-news').get(0));
				
		
		
		layoutHelper.complete(function() {
			rem(content);
			rem(context);
			rem(feeds);
			rem(navigation);
			rem(branding);
			rem(sitecontext);
		});
	});

	attachEvent(document, 'layouterror', function(errors) {
		var msg = '';
		foreach(errors, function(error) {
			msg = '\n\t' + error.name + ': ' + error.message;
		});
		alert('layout errors occured:' + msg);
	});
	
	function gel(id) {
		return document.getElementById(id);
	};

	function rem(n) {
		n && n.parentNode.removeChild(n);
	};

};

estrada.behavior("home-news").is({
	bind: function(node) {
		$('img:gt(0)', node).remove();
		$('p:gt(0)', node).remove();
		$('img', node).attr('align', 'left');
	}
});

estrada.behavior("event-items").is({
	bind: function(node) {
		$('li', node).each(function() {
			var item = $(this);
			var fieldNode = $("span abbr", item);
			if (fieldNode.length > 0) {
				var date = $.dates.parse(fieldNode.attr("title"));
				item.addClass($.dates.format(date, 'MMM'));
			}
			$('span', item).remove();
			$('div', item).addClass('event');
			item.prepend($.div().addClass('calendar').text($.dates.format(date, 'd')));

		});
	}
});

////////////////////////////////////////////////////////////////////
// mark the current global link
////////////////////////////////////////////////////////////////////
estrada.behavior("url-highlight").is({
	bind: function(node) {
		$("a[href='" + window.location.href + "']", node).each(function() {
			var item = $(this);
			var parent = item.parent();
			parent.addClass('l-current');
			parent.prepend($.div().html(item.html()));
			//parent.div().html(item.html());
			item.remove();

		});
	}
});

////////////////////////////////////////////////////////////////////
// limit the number of links to 7
////////////////////////////////////////////////////////////////////
estrada.behavior("limit-global").is({
	bind: function(node) {
		$('>ul>li:gt(6)', node).remove();
	}
});

////////////////////////////////////////////////////////////////////
// change the text of the first link in the breadcrumbs to 'Home'
////////////////////////////////////////////////////////////////////
estrada.behavior("pretty-crumbs").is({
	bind: function(node) {
		var oBreadcrumbs;
		if (oBreadcrumbs = first(getElements(node, "div", "breadcrumbs"))) {
			var oHome = first(oBreadcrumbs.getElementsByTagName("a"));
			if (oHome) {
				oHome.innerHTML = "Home";
				oHome.parentNode.className += " l-home-link";
			}
		}
	}
});

