Ojay.Overlay.on('show')._('body').addClass('overlay-open');
Ojay.Overlay.on('hide')._('body').removeClass('overlay-open');

Ojay.onDOMReady(function() {

    Ojay('a').forEach(function(link) {
        link.node.hideFocus = true;
        if (link.hasClass('new-window')) {
            link.node.target = '_blank';
            var title = link.node.title;
            link.node.title = title
                    ? title + ' (Opens in a new window)'
                    : 'This link opens in a new window';
        }
    });
    
    if (/iPhone/i.test(navigator.userAgent)) return;
	
	var mask = new Ojay.PageMask({color: '#E7ECEF', opacity: 0.8});
    var overlay = new Ojay.ContentOverlay({width: 880});
    mask.positionBehind(overlay);
    
    var closeButton = Ojay( Ojay.HTML.div({className: 'close-button'}, 'Close') );
    closeButton.on('click')._(overlay).hide('fade')._(mask).hide('fade');
    overlay.getContainer().insert(closeButton, 'top');
	 
     Ojay('.popup').on('click', function(link, evnt) {

	 evnt.stopDefault();
	 Ojay.HTTP.GET(link.node.href)
     .insertInto(overlay)
     .evalScripts()
	 ._(mask).show('fade')
     ._(overlay).fitToContent().center().show('fade')
         
	 });
   
});

setupTabbedPaginators = function(list, section) {
	var registry = Ojay(list).map(function(el) {
	    return new Ojay.Paginator(el, {
		    rows:	 	1,
			columns: 	1,
			direction:	'horizontal'
		});
	});

    var tabs = new Ojay.Tabs(section);
        tabs.setup();
    	
    var update = function(p) {
    	var Paginator = registry[p-1];
    	if (!Paginator) return;
    	
    	Paginator.wait(Ojay.Tabs.SWITCH_TIME + 0.3).setup().addControls('after');
    	registry[p-1] = null;
    };
    
    tabs.on('pagechange', function(tabs, p) { update(p); });
    update(1);
};

openLoginOverlay = function(overlayLink) {
	(function() {
        if (/iPhone/i.test(navigator.userAgent)) return;
		
         var mask = new Ojay.PageMask({color: '#E7ECEF', opacity: 0.8});
         var overlay = new Ojay.ContentOverlay({width: 880});
         mask.positionBehind(overlay);
		 
		 var closeButton = Ojay( Ojay.HTML.div({className: 'close-button'}, 'Close') );
	 	 closeButton.on('click')._(overlay).hide('fade')._(mask).hide('fade');
	 	 overlay.getContainer().insert(closeButton, 'top');

		 var region = null;
		 
		 Ojay(overlayLink).on('click', function(link, evnt) {
             evnt.stopDefault();
             Ojay.HTTP.GET(link.node.href)
             .insertInto(overlay)
             .evalScripts()
			 ._(mask).show('fade')
             ._(overlay).fitToContent().center().show('fade')._(function() {
                 region = overlay.getRegion();
             });
         });

         // To accomodate changing section sizes
         setInterval(function() {
             overlay.fitToContent();
             if (region) overlay.setPosition(region.left, region.top);
         }, 500);
	})();
};
