$(document).ready(function(){

	if ( jQuery.msgRoll ) {
		$(window).scroll(function () { jQuery.messageRoll(); });
		$(window).resize(function () { jQuery.windowResize() });
	}
	
});

jQuery.extend({
	msgRoll: true,
	msgBootRoll: false,
	msgDelay: 4000,
	msgHideDelay: 1000,
	msgPositionTop: 1,
	msgScrollLeft: $(document.documentElement).attr('scrollLeft'),
	
	messageRoll: function() {
		if ( jQuery.msgBootRoll ) {
			var mb = $('#bm_message_box');
			var m  = $('#bm_message');
			var p  = $(document.documentElement);

			if ( (mb.attr('offsetTop') - jQuery.msgPositionTop) <= p.attr('scrollTop') ) {

				yLeft = (mb.attr('offsetWidth') - m.attr('offsetWidth')) / 2 + mb.attr('offsetLeft') - p.attr('scrollLeft');

				if ( jQuery.msgPositionTop != m.attr('offsetTop')  ) {
					mb.css('height', mb.attr('clientHeight') + "px");
					m.css({ display: 'block', top: jQuery.msgPositionTop+'px', left: yLeft+'px', position: 'fixed'});
				}
				else if ( jQuery.msgScrollLeft != p.attr('scrollLeft') )
					jQuery.msgScrollLeft = p.attr('scrollLeft');

				m.css('left', yLeft );
			}

			else if ( m.attr('offsetTop') == jQuery.msgPositionTop ) {
				m.css({ display: 'block', top: '', left: '', position: ''});
			}
		}
	},
	
	windowResize: function() {
		var mb = $('#bm_message_box');
		var m  = $('#bm_message');
		var p  = $(document.documentElement);
	
		if ( (mb.attr('offsetTop') - jQuery.msgPositionTop) <= p.attr('scrollTop') ) {
			yLeft = (mb.attr('offsetWidth') - m.attr('offsetWidth')) / 2 + mb.attr('offsetLeft') - p.attr('scrollLeft');
			m.css('left', yLeft+'px');
		}
	},
	
	bmAlert: function( message, type ) {
		var m  = $('#bm_message');
	
		( type == 'error' ) ? m.addClass('bm_message_bad') : m.addClass('bm_message_good');
		m.html(message);
	
		if ( jQuery.msgRoll ) {
			jQuery.msgBootRoll = true;
			m.css('display', 'block');
			m.animate({opacity:'1'}, 300);
	
			if ( jQuery.msgTimeOut ) 
				window.clearTimeout(jQuery.msgTimeOut);
			
			jQuery.msgTimeOut = window.setTimeout("jQuery.bmAlertHide()", jQuery.msgDelay);
			jQuery.messageRoll();
		}
	},
	
	bmAlertHide: function() {
		$('#bm_message').animate({opacity:'0'}, {duration: jQuery.msgHideDelay, complete: function(){$('#bm_message').hide();}});
	}

});

function bmAlert( message, type ) {
	jQuery.bmAlert( message, type );
}