(function(w, d){

function $id(id) {
	return d.getElementById(id);
};
function $class(parent, className, tagName) {
	var result;
	if (parent.getElementsByClassName) {
		result = parent.getElementsByClassName(className);
	} else {
		if (!tagName)
			tagName = '*';
		result = [];
		var tags = parent.getElementsByTagName(tagName);
		for (var i = 0; i < tags.length; i++)
			if (tags[i].className.indexOf(className) != -1)
				result.push(tags[i]);
	}
	return result;
};

w.golf = {
	arrangeSponsors: function() {
		function verticalAlign(items) {
			var f = function() {
				this.style.marginTop = (73 - this.height)/2 + 'px';
			};
			var i, img;
			for (i = 0; i < items.length; i++) {
				img = items[i].getElementsByTagName('img')[0];
				if (img) {
					if (img.complete) {
						f.call(img);
					} else {
						img.onload = f;
					}
				}
			}
		};
		var s = $id('sponsor');
		if (s && !w.core) {
			var items = $class(s, 'single');
			if (items.length) {
				verticalAlign(items);
			} else {
				items = $class(s, 'global');
				verticalAlign(items);

				golf.fader('sponsor', 'global');
			}
		}
		golf.fader('header', 'global');
	},

	handleInputs: (function() {
		var focus = function(event) {
			event = event || w.event;
			var t = event.target || event.srcElement;
			if (t && t.nodeType == 1 && t.tagName == 'INPUT' && t.getAttribute('type') == 'text' && t.value == t.defaultValue)
				t.value = '';
		},
		blur = function(event) {
			event = event || w.event;
			var t = event.target || event.srcElement;
			if (t && t.nodeType == 1 && t.tagName == 'INPUT' && t.getAttribute('type') == 'text' && t.value == '')
				t.value = t.defaultValue;
		};
		return function() {
			var header = $id('header');		
			if (header.addEventListener) {
				header.addEventListener('focus', focus, true);
				header.addEventListener('blur', blur, true);
			} else {
				header.attachEvent('onfocusin', focus);
				header.attachEvent('onfocusout', blur);
			}
		};
	})(),
	fader: function(element, className) {
		element = $id(element);
		if (element) {
			var items = $class(element, className, 'div');
			var finish, index = 0, zIndex = 2, elm;
			var fx = new secoya.fx({
				from: 0,
				to: 100,
				duration: 1,
				callback: function(x) {
					lightCore.setOpacity(elm, x);
				},
				finish: function() {
					setTimeout(finish, 5000);
				}
			});
			finish = function() {
				index++;
				if (index >= items.length)
					index = 0;
				elm = items[index];
				elm.style.zIndex = zIndex++;
				if (element && element.parentNode)
					fx.start();
				else {
					element = item = fx = finish = null;
				}
			};
			if (items.length > 1) {
				index = Math.floor(Math.random() * items.length);
				elm = items[index];
				fx.start();
			} else if (items.length == 1) {
				lightCore.setOpacity(items[0], 100);
			}
		}
	}
};

})(window, document);
