var LoginMsg = Class.create({
		initialize: function(elem){
			this.root = elem;
			
			this.overlay = $('overlayer');
			this.boxNotLogged = $('not-logged');
			this.boxWithoutNick = $('without-nick');
			
			Event.observe($('psCloseButtonNext'), 'click', function(event){
				Event.stop(event);
				
				Element.hide($('overlayer'));
				Element.hide($('not-logged'));
			});
			
			Event.observe($('psCloseButtonNext2'), 'click', function(event){
				Event.stop(event);
				
				Element.hide($('overlayer'));
				Element.hide($('without-nick'));
			});
			
			Event.observe($('psButtonNext'), 'click', function(event){
				Event.stop(event);
				
				document.location = '/auth/login';
				return false;
			});
			
			Event.observe($('psButtonNext2'), 'click', function(event){
				Event.stop(event);
				
				document.location = '/user/edit';
				return false;
			});
			
			Event.observe($('overlayer'), 'click', function(event){
				Event.stop(event);
				
				Element.hide($('overlayer'));
				Element.hide($('not-logged'));
				Element.hide($('without-nick'));
			});
		},
		
		check: function(){
			var err = false;

			new Ajax.Request('/auth/check', {
				asynchronous: false,
				onSuccess: function(transport) {
					if (transport.responseText == 'false') {
						this.msgNotLogged();
						err = true;
					} else {
						if(!Cookie.get('TT_NICK') || Cookie.get('TT_NICK') == '') {
							this.msgWithoutNick();
							err = true;
						}
					}
				}.bind(this)
			});
			
			if(!err) {
				return true;
			} else {
				return false;
			}
		},
		
		msgNotLogged: function() {
			this.viewport();

			var numbers = document.viewport.getScrollOffsets();
			heightWind = document.viewport.getHeight();
			heightPopup = this.boxNotLogged.getHeight();
			
			if(heightWind > heightPopup){
      			halfHeigtWind = heightWind/2;
				halfHeightPopup =  heightPopup/2;
				correctHeight = halfHeigtWind - halfHeightPopup;
			} else {
				correctHeight  = 10;
			}
			
			if ((numbers[1]) > 0) {
				Element.setStyle(this.boxNotLogged, {
					top: (numbers[1] + parseInt(correctHeight)) + 'px'
				});
			} else {
				Element.setStyle(this.boxNotLogged, {
					top: (parseInt(correctHeight)) + 'px'
				});
			}
			
			Element.setStyle(this.overlay, {
				height: this.pageY + 'px'
			});

			Element.show(this.overlay);
			Element.show(this.boxNotLogged);
		},
		
		msgWithoutNick: function() {
			this.viewport();

			var numbers = document.viewport.getScrollOffsets();
			heightWind = document.viewport.getHeight();
			heightPopup = this.boxWithoutNick.getHeight();
			
			if(heightWind > heightPopup){
      			halfHeigtWind = heightWind/2;
				halfHeightPopup =  heightPopup/2;
				correctHeight = halfHeigtWind - halfHeightPopup;
			} else {
				correctHeight  = 10;
			}
			
			if ((numbers[1]) > 0) {
				Element.setStyle(this.boxWithoutNick, {
					top: (numbers[1] + parseInt(correctHeight)) + 'px'
				});
			} else {
				Element.setStyle(this.boxWithoutNick, {
					top: (parseInt(correctHeight)) + 'px'
				});
			}
			
			Element.setStyle(this.overlay, {
				height: this.pageY + 'px'
			});

			Element.show(this.overlay);
			Element.show(this.boxWithoutNick);
		},
		
		viewport: function(){
			this.pageX = (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth;
			this.pageY = (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
		}
	});
