		var MeetingBuilderAccordion = new Class({
			initialize: function(togglers, folds) {
				this.folds = $$(folds);
				$$(togglers).each(function(toggler, index) {
					this.folds[index].addClass('expanded');
					this.attach(toggler, this.folds[index]);
				}, this);
			},
			attach: function(toggler, fold) {
				toggler.addEvent('click', function(event) {
					event.preventDefault();
					if (fold.hasClass('collapsed')) {
						fold.removeClass('collapsed').addClass('expanded');
						fold.parentNode.getElements('legend img')[0].set('src', '/lead/meetingbuilder/img/accordion_open.gif')
					} else {
						fold.removeClass('expanded').addClass('collapsed');
						fold.parentNode.getElements('legend img')[0].set('src', '/lead/meetingbuilder/img/accordion_close.gif')
					}
				}.bind(this));
			}
		});
		function updateStep3 (box, type) {
			if ($('li' + box.get('id'))) {
				alert('You have already added this item.');
			} else {
				var li = new Element('li', {'id': 'li' + box.get('id')});
				var url = new Element('input', {'type': 'hidden', 'name': 'url', 'value': box.retrieve('url')}).inject(li);
				var id = new Element('input', {'type': 'hidden', 'name': 'id', 'value': box.get('id')}).inject(li);
				var title = document.createTextNode(box.retrieve('title'));
				var cb = new Element('input', {'type': 'checkbox', 'name': 'title', 'id': 'box' + box.get('id'), 'value': title.nodeValue, 'checked': 'checked'}).inject(li);
				var span = new Element('span', {'class': 'step3subhead'}).appendText(box.retrieve('slug')).inject(li);
				var br = new Element('br').inject(li);
				var label = new Element('label', {'for': 'box' + box.get('id')}).grab(title).inject(li);
				if (window.retrieve('guest') && type === 'curriculum') {
					$E('ol#meetingList').grab(li, 'top');
				} else if (window.retrieve('guest') && type !== 'curriculum') {
					li.inject($E('ol#meetingList'));
				} else if (!window.retrieve('guest') && type === 'curriculum') {
					li.inject($E('ol#meetingList'));
				} else if (!window.retrieve('guest') && type !== 'curriculum') {
					$E('ol#meetingList').grab(li, 'top');
				}
				$$('#stepThree fieldset')[0].addClass('step3');
			}
		};
		function browseCurriculumCategories(container) {
			$$('#searchResults .articlesSearchHeadRight a').each(function(a) {
				a.addEvent('click', function(event) {
					event.preventDefault();
					var requester = new Request({
						url: a.get('href'),
						method: 'get',
						onSuccess: function(responseText) {
							container.innerHTML = responseText;
							browseCurriculumCategories(container);
						}
					});
					requester.send();
				});
			});
			$$('#searchResults div.collection').each(function(div) {
				div.getElements('a').each(function(a) {
					a.addEvent('click', function(event) {
						event.preventDefault();
						var requester = new Request({
							url: '/lead/meetingbuilder/ajax/browse.html?type=article&collectionid=' + div.get('id'),
							method: 'get',
							onSuccess: function(responseText) {
								container.innerHTML = responseText;
								curriculumBrowseComplete(container);
							}
						});
						requester.send();
					});
				});
			});
		};
		function curriculumBrowseComplete(container) {
			var boxes = [];
			$('closeSearch').addEvent('click', function(event) {
				container.setStyle('display', 'none');
				$('overlay').tween('opacity', '0').setStyles({'height': '0', 'display': 'none'});
			});
			$$('#searchResults input[type^=checkbox]').each(function(box) {
				box.addEvent('click', function(event) {
					if (box.get('checked') === 'checked' || box.checked) {
						var id = box.get('id');
						box.store('date', $('date' + id));
						box.store('title', $('title' + id).firstChild.nodeValue);
						box.store('rating', $('rating' + id));
						box.store('slug', $('slug' + id).firstChild.nodeValue);
						box.store('url', $('title' + id).get('href'));
						boxes.push(box);
					} else {
						boxes.erase(box);
					}
				});
			});
			$('saveResults').addEvent('click', function(event) {
				boxes.each(function(box) { 
					updateStep3(box, 'curriculum');
					var results = new Element('div', {'class': 'individualResults', 'id': 'div' + box.get('id')});
					var cb = new Element('input', {'type': 'checkbox', 'checked': 'checked', 'value': box.get('id')}).addEvent('click', function(event) {
						if (cb.get('checked') !== 'checked' || !cb.checked) {
							$('div' + cb.get('value')).destroy();
							$('li' + cb.get('value')).destroy();
						}
					});
					var cbCell = new Element('div', {'class': 'tableCell'}).grab(cb).inject(results);
					var dateCell = new Element('div', {'class': 'tableCell'}).addClass('dateCell').grab(box.retrieve('date')).inject(results);
					var titleCell = new Element('div', {'class': 'tableCell'}).addClass('titleCell').appendText(box.retrieve('title')).inject(results);
					var ratingCell = new Element('div', {'class': 'tableCell'}).addClass('ratingCell').grab(box.retrieve('rating')).inject(results);
					results.inject($('meetingBuilderSearch'));
				});
				boxes.empty;
				container.setStyle('display', 'none');
				$('overlay').tween('opacity', '0').setStyles({'height': '0', 'display': 'none'});
			});
			new AjaxPaging('#searchResults .moreLink', container, {
				onFinish: function(links, container) {
					curriculumBrowseComplete(container);
				}
			});
			externalLinks($$('#searchResults a.external'));
		};
		function meetingBuilderSearchComplete(elem, container) {
			new InputClear({elems: $('newSearchType')});
			new Search($('newSearch'), container, {
				url: '/lead/meetingbuilder/ajax/search_pop_over.html?type=word&filter=curriculum&contenttype=curriculum&query=',
				events: 'submit',
				cache: false,
				onFinish: function(elem, container) {
					meetingBuilderSearchComplete(elem, container);
				}
			});
			var boxes = [];
			$('overlay').set('tween').setStyles({
				'top': -$(window).getScroll().y,
				'height':$(window).getScrollSize().y+$(window).getScroll().y,
				'visibility': 'visible',
				'display': 'block'
			}).tween('opacity', '0.7');
			$('lightbox').setStyles({'display': 'block', 'visibility': 'visible'});
			var w = (Browser.Engine.presto) ? window.innerWidth/2: window.getScrollSize().x/2;
			$('lightbox').setStyles({'top': '375px', 'left': w - ($('lightbox').getScrollSize().x/2) + 'px'});
			$('closeSearch').addEvent('click', function(event) {
				$('lightbox').setStyle('display', 'none');
				$('overlay').tween('opacity', '0').setStyles({'height': '0', 'display': 'none'});
			});
			$$('#searchResults input[type^=checkbox]').each(function(box) {
				box.addEvent('click', function(event) {
					if (box.get('checked') === 'checked' || box.checked) {
						var id = box.get('id');
						box.store('date', $('date' + id));
						box.store('title', $('title' + id).firstChild.nodeValue);
						box.store('rating', $('rating' + id));
						box.store('slug', $('slug' + id).firstChild.nodeValue);
						box.store('url', $('title' + id).get('href'));
						boxes.push(box);
					} else {
						boxes.erase(box);
					}
				});
			});
			$('saveResults').addEvent('click', function(event) {
				boxes.each(function(box) { 
					updateStep3(box, 'curriculum');
					var results = new Element('div', {'class': 'individualResults', 'id': 'div' + box.get('id')});
					var cb = new Element('input', {'type': 'checkbox', 'checked': 'checked', 'value': box.get('id')}).addEvent('click', function(event) {
						if (cb.get('checked') !== 'checked' || !cb.checked) {
							$('div' + cb.get('value')).destroy();
							$('li' + cb.get('value')).destroy();
						}
					});
					var cbCell = new Element('div', {'class': 'tableCell'}).grab(cb).inject(results);
					var dateCell = new Element('div', {'class': 'tableCell'}).addClass('dateCell').grab(box.retrieve('date')).inject(results);
					var titleCell = new Element('div', {'class': 'tableCell'}).addClass('titleCell').appendText(box.retrieve('title')).inject(results);
					var ratingCell = new Element('div', {'class': 'tableCell'}).addClass('ratingCell').grab(box.retrieve('rating')).inject(results);
					results.inject($('meetingBuilderSearch'));
				});
				boxes.empty;
				$('lightbox').setStyle('display', 'none');
				$('overlay').tween('opacity', '0').setStyles({'height': '0', 'display': 'none'});
			});
			new AjaxPaging('#searchResults .moreLink', container, {
				onFinish: function(links, container) {
					meetingBuilderSearchComplete(elem, container);
				}
			});
			externalLinks($$('#searchResults a.external'));
		};
		window.addEvent('domready', function() { 
			new InputClear({ elems: $$('input[type^=text]').combine($$('input[type^=password]'))});
			var tooltips = new Tips($$('.tooltip, .toggler'), {
				className: 'showTip'
			});
			if ($('saveToCabinetLogin')) {
				var ajaxLogin = new Login($('saveToCabinetLogin'), {
					url: '/system/ajax/ajax_login.html',
					onFinish: function() {
						$('savePlanFields').setStyle('display', 'block');
						$('saveToCabinetLogin').destroy();
					}
				});
			}
			new MeetingBuilderAccordion($$('.toggler'), $$('.accordion .container'));
			$$('#printPlan a').each(function(a) {
				a.addEvent('click', function(event) {
					event.preventDefault();
					var toAdd = [];
					$$('#meetingList input[type^=hidden]').each(function(field) {
						if (field.get('name') === 'id') {
							toAdd.include(field.get('value'));
						}
					});
					window.open('/lead/meetingbuilder/print.html?id=' + toAdd.join(','), 'printWindow', 'width=600,height=400,toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizble=1');
				});
			});
			$$('#emailPlan a').each(function(a) {
				a.addEvent('click', function(event) {
					event.preventDefault();
					var toAdd = [];
					$$('#meetingList input[type^=hidden]').each(function(field) {
						if (field.get('name') === 'id') {
							toAdd.include(field.get('value'));
						}
					});
					window.open('/lead/meetingbuilder/email.html?id=' + toAdd.join(','), 'printWindow', 'width=600,height=400,toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizble=1');
				});
			});
			var lightbox = createOverlay('div', 'lightbox');
			$$('#groupPlanSearch fieldset').each(function(fieldset,index) {
				var e = (Browser.Engine.trident) ? 'click': 'change';
				var collectionid = fieldset.getElements('input.collectionid')[0].get('value');
				var meetingBuilderSearch = new CheckboxSearch(fieldset.getElements('input[type^=checkbox]'), $$('.accordion .container')[index], {
					url: '/lead/meetingbuilder/ajax/checkboxsearch.html?type=keyword&contenttype=article&order=newest&collectionid=' + collectionid + '&query=',
					events: e,
					onFinish: function(elem, container) {
						if (container.hasClass('collapsed')) container.removeClass('collapsed').addClass('expanded');
						container.getElements('fieldset.sortBy input[type^=radio]').each(function(button) {
							button.addEvent('click', function(event) {
								meetingBuilderSearch.options.url = '/lead/meetingbuilder/ajax/checkboxsearch.html?type=keyword&contenttype=article&collectionid=' + collectionid + '&order=' + button.get('value') + '&query=';
								meetingBuilderSearch.getResults(elem);
							});
						});
						$$('.tableColumn input[type^=checkbox]').each(function(box) {
							box.store('slug', container.getParent('fieldset').getElements('legend a')[0].firstChild.nodeValue);
							box.store('title', $('title' + box.get('id')).firstChild.nodeValue);
							box.addEvent('click', function(event) {
								if (box.get('checked') === 'checked' || box.checked === true) {
									updateStep3(box, 'builder');
								} else if ($('li' + box.get('id'))) {
									$('li' + box.get('id')).destroy();
								} else if ($('meetingList').getElements('li').length === '0') {
									$$('#stepThree fieldset')[0].removeClass('step3');
								}
							});
						});
						new AjaxPaging('.container .moreLink', container);
						externalLinks(container.getElements('a.external'));
					}
				});
			});
			$('biblestudyBrowse').addEvent('click', function(event) {
				event.preventDefault();
				var requester = new Request({
					url: '/lead/meetingbuilder/ajax/browse.html?type=collection&collectionid=5043,4790,4789,4788,4787,4786',
					method: 'get',
					onSuccess: function(responseText) {
						lightbox.innerHTML = responseText;
						$('overlay').set('tween').setStyles({
							'top': -$(window).getScroll().y,
							'height':$(window).getScrollSize().y+$(window).getScroll().y,
							'visibility': 'visible',
							'display': 'block'
						}).tween('opacity', '0.7');
						$('lightbox').setStyles({'display': 'block', 'visibility': 'visible'});
						var w = (Browser.Engine.presto) ? window.innerWidth/2: window.getScrollSize().x/2;
						$('lightbox').setStyles({'top': '375px', 'left': w - ($('lightbox').getScrollSize().x/2) + 'px'});
						$('closeSearch').addEvent('click', function(event) {
							$('lightbox').setStyle('display', 'none');
							$('overlay').tween('opacity', '0').setStyles({'height': '0', 'display': 'none'});
						});
						browseCurriculumCategories(lightbox);
					}
				});
				requester.send();
			});
			var curriculumSearch = new Search($('meetingBuilderSearch'), lightbox, {
				url: '/lead/meetingbuilder/ajax/search_pop_over.html?type=word&contenttype=curriculum&query=',
				cache: false,
				onFinish: function(elem, container) {
					$$('#sortByFields input[type^=radio]').each(function(button) {
						button.addEvent('click', function(event) {
							curriculumSearch.options.url = '/lead/meetingbuilder/ajax/search_pop_over.html?type=word&contenttype=curriculum&order='
								+ button.get('value') + '&query=';
							curriculumSearch.options.preventDefault = false;
							curriculumSearch.getResults(elem);
							curriculumSearch.options.preventDefault = true;
						});
					});
					meetingBuilderSearchComplete(elem, container);
				}
			});
		});