$.fn.monobind = function(eventType, callback) {
	return this.unbind(eventType, callback).bind(eventType, callback);
};

var nsp = window.nsp || {};

nsp.browserDetect = function() {
	var browserOutOfDate = true,
		alert = document.getElementById("alertMessages");
	if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
		var verFF = new Number(RegExp.$1);
		if (verFF >= 4) {
			browserOutOfDate = false;
		}
	}
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
		var verIE = new Number(RegExp.$1);
		if (verIE >= 7) {
			browserOutOfDate = false;
		}
	}
	if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { //will also pick up Chrome
		var verSafari = new Number(RegExp.$1);
		if (verSafari >= 5) {
			browserOutOfDate = false;
		}
	}
	if (browserOutOfDate && alert) {
		var alertContent = alert.innerHTML,
			browserAlertMessage = '<p style="color:#A7473D;">Your browser may not be compatible with this site. Some content or applications may not work as intended. We highly recommend downloading the most current version of <a href="http://http://www.google.com/chrome/" target="_blank">Google Chrome</a>, <a href="http://http://windows.microsoft.com/en-US/internet-explorer/products/ie/home" target="_blank">Microsoft Internet Explorer</a> or <a href="http://http://www.mozilla.com/en-US/firefox/new/" target="_blank">Mozilla Firefox</a>.</p>';
		alert.innerHTML = browserAlertMessage + alertContent;
	}
}

nsp.common = {
	intervalBanner: null,
	rotateBanner: function(index) {
		$('#bannerSelect li').removeClass('active');
		$('#bannerSelect li:eq(' + index + ')').addClass('active');
		$('#banners li.active, #banners li:eq(' + index + ')').fadeToggle(500, null, function() {
			$(this).toggleClass('active');
		});
	},
	cycleBanner: function() {
		var activeBanner = $('#banners li.active').index('#banners li'),
			lengthBanners = ($('#banners li').length - 1),
			nextBanner = 0;
		if (activeBanner < lengthBanners) {
			nextBanner = activeBanner += 1;
		}
		nsp.common.rotateBanner(nextBanner);
	},
	onclick_bannerSelectLinks: function(e) {
		e.preventDefault();
		nsp.common.intervalBanner = window.clearInterval(nsp.common.intervalBanner);
		if (!($(this).parent().hasClass('active'))) {
			nsp.common.rotateBanner($('#bannerSelect a').index($(this)));
			$('.btn, .button').button();
		}
	},
	
	
	
	
	
	
	init: function() {
		
		$('#bannerSelect a').monobind('click', nsp.common.onclick_bannerSelectLinks);
		if ($('#banners li').length > 1) {
			nsp.common.intervalBanner = self.setInterval('nsp.common.cycleBanner()', 10000);
		}
		
		
	}
}
	
   
nsp.onloadEvents = {
    register: function(fn) {
        this.events.push(fn);
    },
    init: function() {
        var me = this;
        $.each(me.events, function(i, o) {
            if (typeof me.events[i] == 'function') {
            	me.events[i]();
            }
        });
    },
    events: []
}










$(document).ready(function() {
	nsp.browserDetect();
	nsp.common.init();
	nsp.onloadEvents.init(); //run last
});

