// Kick things off.
jQuery(document).ready(function() {
	RPM.go();
});

// Module pattern.
// http://www.yuiblog.com/blog/2007/06/12/module-pattern/
var RPM = (function($) {
	return {
		// Fire everything in RPM.init
		go: function() {
			for (var i in RPM.init) {
				RPM.init[i]();
			}
		},
		// Auto-called by RPM.go
		init: {
			// Empty search box when focused.
			footer_search: function() {
				if (!$('#footer_search').length) {
					return;
				}

				var input = $('#footer_search_input');
				var placeholder_supported = 'placeholder' in document.createElement('input');
				
				var text = input.attr('placeholder');

				// Check if HTML5 placeholder="..." supported.
				if (!placeholder_supported) {
					input.val(text);

					input.focus(function() {
						if (input.val() === text) {
							input.val('');
						}
					}).blur(function() {
						if (!input.val()) {
							input.val(text);
						}
					});
				}
			},
			email_newsletter: function() {
				if (!$('#signup').length) {
					return;
				}

				var input = $('#email_newsletter');
				var placeholder_supported = 'placeholder' in document.createElement('input');
				
				var text = input.attr('placeholder');

				// Check if HTML5 placeholder="..." supported.
				if (!placeholder_supported) {
					input.val(text);

					input.focus(function() {
						if (input.val() === text) {
							input.val('');
						}
					}).blur(function() {
						if (!input.val()) {
							input.val(text);
						}
					});
				}
			},
			
			facebook_menu: function(){
				if (!$('#rpnet_menu, #rpnet_menu_trigger').length) {
					return;
				}
				var menu = $('#rpnet_menu');
				var menu_item = menu.find('a');
				var trigger = $('#rpnet_menu_trigger');
				trigger.click(
					function(){
						var x = trigger.offset().left - 0 + 'px';

						if (menu.is(':visible')) {
							menu.hide();
							trigger.removeClass('active');
						}
						else {
							menu.show().css({
								left: x
							});
							trigger.addClass('active');
						}
						this.blur();
						return false;
					}
				);
				$(document).mousedown(function(ev) {
					if (!$(ev.target).closest('#rpnet_menu_trigger, #rpnet_menu').length) {
						menu.hide();
						trigger.removeClass('active');
					}
				});

				$(window).resize(function() {
					menu.hide();
				});
			}
		},
		misc: {
			//
			// Equalize height function.
			//
			equalize: function(jq_arr) {
			    var tallest = 0;

				jq_arr.each(function() {
					var this_height = $(this).height();

					if (this_height > tallest) {
						tallest = this_height;
					}
				}).css({
					height: tallest
				});
			},
			//
			// Adjust height, based on siblings.
			//
			adjust_height: function(jq_arr) {
				jq_arr.each(function() {
					var el = $(this);
					var this_margin = 2 * parseInt(el.css('margin-bottom'), 10);
					var parent_height = el.parent().height();
					var sibling_height = 0;
					var sibling_margin = 0;

					el.siblings().each(function() {
						sibling_height += $(this).height();
						sibling_margin += parseInt($(this).css('margin-bottom'), 10);
					});

					var new_height = parent_height - sibling_height - sibling_margin - this_margin;

					$(this).css({
						height: new_height
					});
				});
			}
		}
	};
// Pass in jQuery ref.
})(jQuery);
