var BadgerLib = {
	m_oTimeout: null,
	m_oTimer: null,
	m_oBadger: null,
	m_iWidth: 107,
	m_iHeight: 110,
	m_iCurrentX: -1,
	m_iCurrentY: -1,

	start: function(o) {
		if (!o) { o = { iMinSeconds: 60, iMaxSeconds: 60 * 5 }; }
		var i = Math.floor(Math.random() * 1000) + 1000;
		i = (i % (o.iMaxSeconds - o.iMinSeconds)) + o.iMinSeconds + 1;

		BadgerLib.m_oTimeout = setTimeout(BadgerLib.animateBadger, i * 1000);
	},

	animateBadger: function() {
		BadgerLib.m_oBadger = BadgerLib.ensureBadger();
		if (BadgerLib.m_oBadger == null) return;

		BadgerLib.m_iCurrentX = BadgerLib.getWidth();
		BadgerLib.m_iCurrentY = 400;
		BadgerLib.setBadgerPosition();
		BadgerLib.m_oBadger.style.visibility = 'visible';

		if (BadgerLib.m_oTimeout != null) clearTimeout(BadgerLib.m_oTimeout);
		if (BadgerLib.m_oTimer != null) clearInterval(BadgerLib.m_oTimer);

		BadgerLib.m_oTimer = setInterval(BadgerLib.doAnimate, 50);
	},
	
	setBadgerPosition: function() {
		BadgerLib.m_oBadger.style.left = BadgerLib.m_iCurrentX + 'px';
		BadgerLib.m_oBadger.style.top = BadgerLib.m_iCurrentY + 'px';
	},

	doAnimate: function() {
		var rndX = Math.floor(Math.random()*10) + 10;
		var rndY = Math.floor(Math.random()*21) - 15;

		BadgerLib.m_iCurrentX -= rndX;
		BadgerLib.m_iCurrentY += rndY;

		BadgerLib.setBadgerPosition();

		if (BadgerLib.m_iCurrentX + BadgerLib.m_iWidth < 0 || BadgerLib.m_iCurrentY + BadgerLib.m_iHeight < 0)
		{
			BadgerLib.m_oBadger.style.visibiliy = 'hidden';
			clearInterval(BadgerLib.m_oTimer);
			BadgerLib.m_oTimer = null;
		}

	},

	ensureBadger: function() {
		var o = document.getElementById('__badger');
		if (o != null) return o;

		if (!document.createElement) return null;

		o = document.createElement('img');
		o.src = 'MexicanBadger.gif';
		o.id = '__badger';

		o.style.width = BadgerLib.m_iWidth + 'px';
		o.style.height = BadgerLib.m_iHeight + 'px';
		
		o.style.visibility = 'hidden';
		o.style.position = 'absolute';
		o.zIndex = 0;

		document.body.appendChild(o);
	
		return o;
	},

	getWidth: function() {
		if (typeof(window.innerWidth) == 'number') {
			//Non-IE
			return window.innerWidth;
		} else if (document.documentElement && document.documentElement.clientWidth) {
			//IE 6+ in 'standards compliant mode'
			return document.documentElement.clientWidth;
		} else if (document.body && document.body.clientWidth) {
			//IE 4 compatible
			return document.body.clientWidth;
		}
		return 1000;
	}
};