// Global JavaScripts

/* Just add class="rollover" to the img tag and make sure your images are named whatever.gif and whatever-o.gif */
/* You can use any kind of images and name them what you like.  The "-o" is the part that matters */
function initrollovers() {
	if (!document.getElementById) return;
	var aPreLoad = new Array();
	var sTempsrc;
	var aImages = document.getElementsByTagName('img');
	for (var i = 0; i < aImages.length; i++) {
		if (aImages[i].className == 'rollover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '-o'+ftype);
			aImages[i].setAttribute('hsrc', hsrc);
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			aImages[i].onmouseover = function() {
				sTempsrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}
			aImages[i].onmouseout = function() {
				if (!sTempsrc) sTempsrc = this.getAttribute('src').replace('-0'+ftype, ftype);
				this.setAttribute('src', sTempsrc);
			}
		}
	}
} 

/* Just add class="preload" to any images so that they'll be loaded in the background for quicker transitions */
function preloadImages() {
	if (!document.getElementById) return;
	var aPreLoad = new Array();
	var aImages = document.getElementsByTagName('img');
	for (var i = 0; i < aImages.length; i++) {
		if (aImages[i].className == 'preload') {
			var src = aImages[i].getAttribute('src');
			aPreLoad[i] = new Image();
			aPreLoad[i].src = src;
		}
	}
}

/*  */
function initforms() {
	if (!document.getElementById) return;
	if ($$('.focusable') == '') return;
	
	var aGRFormRows = $$('div.GRFormRow');
	aGRFormRows.each(function(s) {
		s.getElementsBySelector('.focusable').invoke('observe', 'focus', formrowfocus).invoke('observe', 'blur', formrowblur);
	});
}

function formrowfocus() {
	var selectedRow = this.up('.GRFormRow');
	selectedRow.addClassName('GRFormRowSelected');

}

function formrowblur() {
	var selectedRow = this.up('.GRFormRow');
	selectedRow.removeClassName('GRFormRowSelected');
}

Event.observe(window, 'load', function() {
	preloadImages();
	initrollovers();
	initforms();
});