(function() {
	var lihash = {},
		ihash = {};
	
	/**
	 *	Validate that at least an email and description is included. d
	 */
	$('#form-bug').submit(function(e) {
		if (! ihash.email.value) {
			e.preventDefault();
			alert('An email is required.');
		}
		else if (! ihash.description.value) {
			e.preventDefault();
			alert('A description is required.');
		}
	});
	
	/**
	 *	Hide and show elements based on the subject
	 */
	var updateStatus = function(status) {
		lihash['00N70000001hR8u'].className = 'hide';
		lihash['00N70000001hR9X'].className = 'hide';
		lihash['00N70000001hR9w'].className = 'hide';
		lihash['00N70000001hR8V'].className = 'hide';
		lihash['00N70000001hR9h'].className = 'hide';
		lihash['00N70000001hRAp'].className = 'hide';
		
		var buttons = lihash.submit.getElementsByTagName('input');
		buttons[0].className = 'hide';
		buttons[1].className = '';
		lihash.description.className = '';
		
		switch (status) {
			case 'Unsupported Financial Institution':
				lihash['00N70000001hR9h'].className = '';
				
			case 'International Support':
				lihash['00N70000001hRAp'].className = '';
				
			case 'Account Login Problems':
				lihash['00N70000001hR8u'].className = '';
				lihash['00N70000001hR9X'].className = '';
				lihash['00N70000001hR8V'].className = '';
				break;
				
			case 'General Inquiry':
			case 'Media Inquiry':
			case 'Close Account':
			case 'Partnership Inquiry':
				break;
				
			case 'Report a Bug':
			case 'Product Request':
				lihash['00N70000001hR9w'].className = '';
				break;

			default:
				lihash.description.className = 'hide';
				buttons[0].className = '';
				buttons[1].className = 'hide';
				break;
		}
	};

	$('#form-bug input').each(function(i, node) {
		var name = node.name;
		lihash[name] = node.parentNode;
		ihash[name] = node;

		if ('00N70000001hRAG' === name) {
			node.value = navigator.userAgent || navigator.vendor;
		}
	});

	$('#form-bug select').each(function(i, node) {
		var name = node.name;
		lihash[name] = node.parentNode;
		ihash[name] = node;
		
		if ('reason' === name) {
			$(node).change(function() {
				var value = '', opt, index = this.selectedIndex;

				if (0 <= index) {
					opt = this.options[index];
					value = opt.value || opt.text;
				}

				updateStatus(value);
			});
		}
	});

	$('#form-bug textarea').each(function(i, node) {
		var name = node.name;
		lihash[name] = node.parentNode;
		ihash[name] = node;
	});
}());