Saucy = {
	
	init: function() {
		Saucy.initPrintLinks();
		Saucy.initRecipe();
		Saucy.initShare();
		Saucy.initHovers();
		Saucy.initSignup();
		Saucy.initBlogPosts();
	},

	initHovers: function() {
		$$('#content ul#recipes li').each(function(el) {
			el.observe('mouseover', function(e) { el.addClassName('hover'); });
			el.observe('mouseout', function(e) { el.removeClassName('hover'); });
		});
	},

	initPrintLinks: function() {
		$$('a.print').each(function(el) {
			el.observe('click', function(e) {
				window.print();
				Event.stop(e);
			});
			el.setStyle({visibility:'visible'});
		});
	},

	initRecipe: function() {
		if ($('RecipeCookbooks') != null) {
			new Ajax.Autocompleter('RecipeCookbooks', 'RecipeCookbooks_autocomplete', '/cookbooks/autocomplete', {
				paramName: 'search',
				updateElement: function(li) {
					var cookbook = li.innerHTML.stripTags();
					var list = $F('RecipeCookbooks');
					if (list.include(',')) list = list.replace(/^(.*),[^,]+/, "$1, ");
					else list = '';
					$('RecipeCookbooks').value = list + cookbook;
				}
			});
		}
	},

	initShare: function() {
		$$('fieldset.share-address.hide').each(function(el) {
			el.hide();
			el.previous().insert('<div class="add-container"><a class="add" href="#">Share with another friend or family member</a></div>').down('a.add').observe('click', function(e) {
				el.previous().down('a.add').hide();
				el.show();
				Event.stop(e);
			});
		});

		$$('input.share').each(function(el) {
			var nameEl = el.up('fieldset').down('input.share.name');
			var emailEl = el.up('fieldset').down('input.share.email');
			new Ajax.Autocompleter(el, el.id+'_autocomplete', '/addresses/autocomplete', {
				updateElement: function(li) {
					nameEl.value = li.down('span.name').innerHTML.stripTags().unescapeHTML();
					emailEl.value = li.down('span.email').innerHTML.stripTags().unescapeHTML();
				}
			});
		});
	},

	initSignup: function() {
		var text = $('sign_up_text');
		
		if (text) {
			$('sign_up_form_link').observe('click', function (e) {
				$('sign_up_form').setStyle({display: ''});
				text.setStyle({display: 'none'});
				
				$('UserName').focus();
				
				Event.stop(e);
			});
			
			$('LoginPassword').focus();
		}
	},

	initBlogPosts: function() {
		if ($('blog-posts')) {
			new Ajax.Updater('blog-posts', '/blog/blog-posts/');
		}
	}
};

document.observe('dom:loaded', Saucy.init);

