window.sampleLayout = new function() {
	eval(estrada.namespace);
	eval($.tilt.globals);
	var layout = null;
	var pB = $.presentationHelper.behaviors;
	$.tilt.ready(function(layoutHelper) {
	  var body = $(document.body);
	  var g = layoutHelper.authoring;
	  //var pB = $.presentationHelper.behaviors;
	  var pL = $.presentationHelper.layout;
	  
	  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 layout = sampleLayout.layout = frame('page', frame('page-inner',
		  frame('page-top'),
			frame('wrap-head-search',cols(area('header'), area('search'))),
			frame('wrap-global',area('global')),
			frame('wrap-hotnews',area('hotnews')),
			frame('wrap-special',area('special')),
			frame('wrap-promo',area('promo')),
			frame('wrap-left-right',cols(
			  frame('left', area('nav'), area('ads')), 
			  frame('right',
			    frame('wrap-banner',area('banner')),
			    frame('wrap-location',area('location')),
			    cols(area('main'), area('related')),
			    frame('wrap-columns',frame('columns',
			      cols(area('columns1'), area('columns2'))))))),
			frame('wrap-pageinfo',area('pageinfo')),
			frame('wrap-btm',frame('btm',cols(area('btmleft'),area('btmright')))),
			frame('wrap-footer',frame('footer',area('footlinks'),area('foottext'))))).build(document.body);
			
		layoutHelper.layout = layout;
		pL.addContent($('#l-main'));
		
		if (g.meta['content-owner']) {
		  $('#l-pageinfo').append('<div class="page-info"><span class="label">Owner:</span><span class="content-owner">' 
			+ g.meta['content-owner'] + '</span>'
		    	+ '<span class="label">Last Update:</span><span class="published-date">' 
			+ g.meta['published-date'] + '</span></div>');
		}
			
		layout.push({
			search: 'search'
		});
		
	//	$('#l-tools').append('<div class="page-tools">'
  //    		+ '<a class="print" href="#print">Print this page</a>'
  //    		+ '<a class="email" href="#email">Email this page</a>');
          
		layout.push(grab(navigation, {
			breadcrumbs: 'location',
			"page": 'nav'
		}));

		// add breadcrumbs to l-pageinfo

		var hld = $('#l-pageinfo')
		hld.prepend('<div id="l-pageinfo-breadcrumbs" />');
		hld.append('<div class="clear-float" />');
		$('.breadcrumbs').clone().prependTo('#l-pageinfo-breadcrumbs').prepend('<span class="label">You are here</span>');

		
		
		layout.push(grab(document.getElementById("site-context"), {
		  'header': 'site-context',
		  tools: 'tools',
		  global: 'global',
		  'resources': 'btmright',
		  'footer-links': 'footlinks',
		  'footer-text': 'foottext'
		}));
		
		layout.push({
		  'header': 'site-context'
		});
				

		layout.push(grab(content, {
		  page: 'main',
		  main: 'main',
		  tabbed: 'main',
		  ads: 'ads',
		  related: 'related',
		  'page-links': 'related',
		  rss: 'main',
		  main: 'main',
		  content: 'main',
		  'extended-page': 'main',
		  banner: 'banner',
		  'slideshow': 'main'
		}));

		
    rotatingImageHandler(feeds);
		
		layout.push(grab(feeds, {
			main: 'main',
			content: 'main',
			tools: 'tools',
			btmleft: 'btmleft',
			hotnews: 'hotnews',
			allpromo: 'promo',
      related: 'related'
		}));
		
		layoutHelper.columnize(layout, $(feeds).find('.promo,.extra'), layoutHelper.body.find('#l-columns1,#l-columns2'));
		
		layout.push(grab(content2, {
			'page-links': 'related',
			'content-copy': 'main'
		}));

	//	layout.push(grab(content, {
	//		ads: 'left'
	//	}));

		// push by id
		layout.push({
			main: 'legacy'
		});
		layout.push({
			main: 'sitemap'
		});
		layout.push({
			main: 'extensions'
		});
		layout.push({
			main: 'bricks'
		});

		if (bricks) {
			bricks.className = "";
		}
		if (extensions) {
			extensions.className = "";
		}
		if (search) {
			search.className = "";
		}
		
		var feedsArea = (layoutHelper.pageType == 'home') ? 'special' : 'main';
    $.presentationHelper.uiHandler.render(layout, {
      feeds: {
        slideshow: feedsArea,
        spotlight: feedsArea
      }
    });
				
		// let's bind behaviors to elements
		//layout.bind('rotating-image-1').to("content");
		layout.bind('drop-down-menu').to($('#l-global .global').get(0));
		layout.bind('leaving-site-links').to(document);
		layout.bind('date-range-formatter').to($('#l-promo ul').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("breadcrumbs").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("print-page").to($('#l-tools a[href$=#print]').get(0));
		layout.bind("email-page").to($('#l-tools a[href$=#email]').get(0));
		layout.bind("email-owner").to($('#l-pageinfo span.content-owner').get(0));
	//	layout.bind("news-reel").to("content");
		layout.bind("allpromo").to("promo");
	//	layout.bind("hot-news").to("hotnews");
		layout.bind("btmleft").to("btmleft");		
		$('.l-main #l-promo').shadowInner();
		$('.l-main #l-extra').shadowInner();
	//	$(' .l-main-related #l-related').shadowInner();
		
		//pB.googleAnalytics();
		
		/*
		pL.func.push(function(layoutHelper, done) {
		  pB.tabbedContent($('#l-main'));
		  done();
		});
		*/
				
		layoutHelper.complete(function() {
		  rem(content);
		  rem(context);
		  rem(feeds);
		  rem(navigation);
		  rem(branding);
		});
	});
	
	function gel(id) {
		return document.getElementById(id);
	};

	function rem(n) {
		n && n.parentNode.removeChild(n);
	};

};

////////////////////////////////////////////////////////////////////
// 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()));
			item.remove();
		});
	}
});
////////////////////////////////////////////////////////////////////
// limit the number of links to 6
////////////////////////////////////////////////////////////////////
estrada.behavior("limit-global").is({
	bind: function(node) {
		var oLi, arrLi = node.getElementsByTagName("li");
		while (arrLi.length > 6) {
			oLi = arrLi[arrLi.length-1];
			oLi.parentNode.removeChild(oLi);
		}
	}
});

function rotatingImageHandler(feeds) {
	var holder = $('.spotlight');
	if (holder.length > 0) {
		holder.removeClass('extra');
		var items = $('li', holder);
		if (items.length > 0) {
			var idx = Math.floor(items.length * Math.random());
			var current = items.eq(idx);
			var link = $('<a href="' + current.find('.pageurl').text() + '" />');
			link.append(current.find('img'));
			$('#l-main').prepend($('<div />').addClass('rotating-image').append(link));
		}
		holder.remove();
	}
}

estrada.behavior("news-reel").is({
	bind: function(node) {
	
        // if newsreel class add styling div's
        $('#l-content .news-reel').each(function() { 
        
            $('.primaryimage', node).wrap('<div id="l-pimg" />');
            $('.subtitle', node).wrap('<div id="l-stit" />');
            $('.abstract', node).wrap('<div id="l-abs" />');
            $('#lower1', node).text('1');
            $('#lower1', node).addClass('l-first');
            $('#lower2', node).text('2');
            $('#lower3', node).text('3');
            $('#lower4', node).text('4');
            // $('#l-f6').addClass('f6-info').append('<span class="label">Utilities</span>');
        });
        
        $('#l-lower .slot').remove();
        $('#l-lower span').remove();
        
        $('#l-content .newsreel').each(function() { 
        
            $('.primaryimage', node).wrap('<div id="l-pimg" />');
            $('.subtitle', node).wrap('<div id="l-stit" />');
            $('.abstract', node).wrap('<div id="l-abs" />');
        });
	}
});


estrada.behavior("allpromo").is({
	bind: function(node) {
	
        	// if allpromo class add styling div's for each element
        	$('#l-promo .allpromo').each(function() { 

	    		var holder=$(this);
			var newholder=$(this);
			var idxhold = 0;

			$(holder.find('li.article > div')).each(function(idx) {
				var itemNode = $(this);
				var item = $('<div id="l-promo' + (idx+1) + '" />');
				var link = itemNode.find('a.readon');				
				item.append('<span class="label">' + '<h3>' + link.text() + '</h3>' +  '</span>');
				item.append(itemNode.find('img'));
				item.append(itemNode.find('.abstract'));
				link.addClass('readon');
				item.append(link);

				if (idx == 0) {
					// add a styling div after first item

					holder.append(item);
					holder.append('<div id="l-promo-more" />');
					holder.div().addClass('clear-float');
					newholder = $('#l-promo-more');
				}  
				if (idx > 0) {
					newholder.append(item);
				}
				idxhold = idx + 1;
			});
			// create a class representing the number of li's
			holder.addClass('promo-has-' + idxhold);
			newholder.div().addClass('clear-float');
        	});
		$('.allpromo .content-query').remove();
	}
});
estrada.behavior("btmleft").is({
	bind: function(node) {
	
        	// if allpromo class add styling div's for each element
        	$('#l-btmleft .btmleft').each(function() { 

	    		var holder=$(this);
			var newholder=$(this);
			var idxhold = 0;

			$(holder.find('li.article > div')).each(function(idx) {
				var itemNode = $(this);
				var item = $('<div id="l-btm' + (idx+1) + '" />');
				var link = itemNode.find('a.readon');				
				item.append('<span class="label">' + '<h3>' + link.text() + '</h3>' +  '</span>');
				item.append(itemNode.find('.abstract'));
				link.addClass('readon');
				item.append(link);

				if (idx == 0) {
					// add a styling div after first item

					holder.append(item);
					holder.append('<div id="l-btm-more" />');
					holder.div().addClass('clear-float');
					newholder = $('#l-btm-more');
				}  
				if (idx > 0) {
					newholder.append(item);
				}
				idxhold = idx + 1;
			});
			// create a class representing the number of li's
			holder.addClass('l-btm-has-' + idxhold);
			newholder.div().addClass('clear-float');
        	});
		$('.btmleft .content-query').remove();
	}
});

estrada.behavior("hot-news").is({
	bind: function(node) {

		$('.hotnews li.article > div').each(function(idx) {

			var itemNode = $(this);

			var ab = itemNode.find('div.abstract').text();
			var link = itemNode.find('a.title');

			// limit to 75 char in length
			var linktext = link.text();
			var newstr = (linktext + ">>" + ab).slice(0,74);

			// create the new link with title text and abstract
			link.text(newstr + " ...");
		});

		$('.hotnews .article div.abstract').remove();

		var item = $('#l-hotnews .hotnews');
		item.prepend('<div class="pager"><a class="prev" /><a class="next" /></div>');
		item.prepend('<span class="label">' + "Hot News" + '</span>');
	}
});









