/* jQuery labelize plugin */
(function($) {
	$.fn.labelize = function(noValueClass) {
		noValueClass = noValueClass || "noValue";
		return $(this).each(function() {
			$(this).hide();
			var text = $(this).text(); //label text
			var field = $('#' + $(this).attr("for")); //input field the label is for
			if (!field) {
				return; // could not find a field to attach to
			}
			//set the label text, if attribule value has no value yet
			if (field.val() === '' || field.val() === text) {
				field.val(text).addClass("noValue");
			}
			field.focus(function() {
				//on focus clear the default label
				if ($(this).val() === text) {
					$(this).val('').removeClass(noValueClass);
				}
			}).blur(function() {
				//on blur, return the default value if field still empty
				if ($(this).val() === '') {
					$(this).val(text).addClass(noValueClass);
				}
			});
			function emptyDefaultValue() {
				if (!field) {
					return;
				}
				if (field.val() === text) {
					field.val('');
				}
			}
			//remove default values on form submit
			$(this).parents("form").submit(emptyDefaultValue);
			//hack for the asp.net web forms madness
			$('a[href*=__doPostBack]').click(emptyDefaultValue);
		});
	};
})(jQuery);

(function($) {
	$.fn.internalLinks = function() {
		$(this).find('a:not(:has(img))').filter(function() {
			return $(this).attr('href').indexOf('mailto') === -1 && (!this.hostname || this.hostname === location.hostname);
		}).after(' <span class="internalLink">►</span>');
	};
})(jQuery);

(function($) {
	$.fn.externalLinks = function() {
		$(this).find('a:not(:has(img))').filter(function() {
			return this.hostname && this.hostname !== location.hostname;
		}).after(' <span class="externalLink">→</span>');
	};
})(jQuery);

$(document).ready(function($) {
	$('.noscript').hide();
	$('.script').show();
	$('*[class~=initialValue]').labelize();
	$('#main .highlight, #main .announcementGroup .function').internalLinks();
	$('#main, #footer .socialMediaLinks').externalLinks();
	$("#main .grid_3 img").each(function() {
		$(this).before("<span class=\"imageAltContainer\">" + this.alt + "</span>");
	});
});