/*
 * Common front-end page bootstrapping.  Requires dojo.
 */

/* Set up image rollover handling, with preload */
dojo.addOnLoad(function() {
	dojo.query('img[rollover]').forEach(function(n) {
		var i = new Image();
		i.src = n.getAttribute('rollover');

		// Save this for restoring on mouseout
		n.setAttribute('rollout', n.src);

		dojo.connect(n, 'onmouseover', n, function() {
			n.src = n.getAttribute('rollover');
		});
		dojo.connect(n, 'onmouseout', n, function() {
			n.src = n.getAttribute('rollout');
		});

		for(var a = n; a; a = a.parentNode) {
			if(a.nodeName.toLowerCase() == 'a') {
				dojo.style(a, {outline: '0'});
				dojo.connect(a, 'onfocus', n, function() {
					n.src = n.getAttribute('rollover');
				});
				dojo.connect(a, 'onblur', n, function() {
					n.src = n.getAttribute('rollout');
				});
			}
		}
	});

	dojo.query('input[rollover]').forEach(function(n) {
		var i = new Image();
		i.src = n.getAttribute('rollover');

		// Save this for restoring on mouseout
		n.setAttribute('rollout', n.src);

		dojo.connect(n, 'onmouseover', n, function() {
			n.src = n.getAttribute('rollover');
		});
		dojo.connect(n, 'onmouseout', n, function() {
			n.src = n.getAttribute('rollout');
		});
		dojo.connect(n, 'onfocus', n, function() {
			n.src = n.getAttribute('rollover');
		});
		dojo.connect(n, 'onblur', n, function() {
			n.src = n.getAttribute('rollout');
		});
	});
});

/* Pseudo-label for the site-search field */
dojo.addOnLoad(function() {
	dojo.query('#search input[type=text]').forEach(function(n) {
		var className = 'uservalue';
		if(n.value == '') {
			dojo.removeClass(n, className);
			n.value = 'Search';
		} else {
			dojo.addClass(n, className);
		}

		dojo.connect(n, 'onfocus', n, function() {
			if(!dojo.hasClass(n, className)) {
				n.value = '';
				dojo.addClass(n, className);
				n.focus();
			}
		});

		dojo.connect(n, 'onblur', n, function() {
			if(n.value == '') {
				dojo.removeClass(n, className);
				n.value = 'Search';
			}
		});
		
		if(n.form) {
			dojo.connect(n.form, 'onsubmit', n, function(e) {
					if(!dojo.hasClass(this, className)) {
						this.value = '';
					}
				});
		}
	});
});
