
	var ShoutBOX = {
		pseudo: '',
		ajax : null,
		timeRequester: null,
		firstView: true,
	
		getUserPseudo: function() {
			var a = new Ajax('./shoutbox/getUserPseudo.shoutbox.php', {});
			a.onComplete = ShoutBOX.onReponse;
		},
		
		createForm: function() {
			
			var formContener = E('formContener');
			
			var F = E().create('form',	{id: 'shoutBoxSender', method: 'POST'});
			var R = E().create('span',	{id: 'reponseServ'});
			var N = E().create('input',	{type: 'text', id: 'sb_name', name: 'sb_name', value: ShoutBOX.pseudo});
			var M = E().create('input',	{type: 'text', id: 'sb_text', name: 'sb_text', value: 'Tapez votre message ici!'});			
			var V = E().create('input',{ type: 'submit',id: 'sb_send', name: 'sb_send', value:'Dire !'});			
			var lN = E().create('label', {innerHTML: 'Pseudo:', htmlFor: 'sb_name'});
			
			F.appendChild(lN);
			F.appendChild(N);
			F.appendChild(M);
			F.appendChild(V);
			F.appendChild(R);
			formContener.appendChild(F);
			
			M.onfocus = function() {
				this.value = '';
				this.style.borderColor = '#7E7E9E';
				R.innerHTML = '';
			}

			M.onkeydown = function() {
				var n = 100 - M.value.length;
				M.style.borderColor = n<0? '#CC0000' : '#7E7E9E';
				R.innerHTML = n<0 ? ' Attention les messages sont limités à 100 charactères ! ' : n;
				if(n<0) {
					M.value = M.value.substr(0, 100);
				}
			}

			Event.add(F, 'submit', ShoutBOX.onSubmitMess);

			V.onmouseover = lN.onmouseover = function() {
				this.style.backgroundColor = '#505090';
				return false;
			}
			V.onmouseout  = lN.onmouseout  = function() {
				this.style.backgroundColor = '#505050';
				return false;
			}
		},
		
		cleanMess: function(t) {
			var s = /&/;
			while(t.search(s)!= -1) 
			{
				t = t.replace(s, '');
			}
			return t;
		},
			
		onSubmitMess: function(ev) {
			var pseudo  = ShoutBOX.cleanMess(E('sb_name').value);
			var message = ShoutBOX.cleanMess(E('sb_text').value);
			
			if(pseudo == '' || message == '') {
				E('reponseServ').innerHTML = 'Pas de Pseudo ou de Message vide';
			} else {
				
				E('reponseServ').innerHTML ='';
				var data2send = 'pseudo='+pseudo+'&message='+message;
				var a = new Ajax('./shoutbox/addMessage.shoutbox.php', {params: data2send});
				a.onComplete = ShoutBOX.onReponse;
			}
			
			
			ShoutBOX.scrollDown();
			
			return false;
		},
		
		scrollDown: function() {
			var comments = E('allComments');
			comments.scrollTop = comments.scrollHeight;
		},
			
		onReponse: function(xhr, rep) {
			if(rep.ERROR) E('reponseServ').innerHTML = rep.ERROR_MESSAGE;
			else {
				switch(rep.type) {					
					case 'userPseudo'	:	ShoutBOX.pseudo = rep.pseudo; ShoutBOX.createForm();	break;
					case 'messageSent'	:	E('sb_text').value = ''; ShoutBOX.getMessages();				break;
					case 'messagesGet'	:	ShoutBOX.appendMessages(rep.messages);						break;
					default			:	break;
				}
			}
		},
			
		getMessages: function() {
			if(null == ShoutBOX.ajax) {					
				ShoutBOX.ajax = new Ajax();
				ShoutBOX.ajax.onComplete = ShoutBOX.onReponse;
			} 
			if(null != ShoutBOX.timeRequester) ShoutBOX.ajax.stopStep(ShoutBOX.timeRequester);			
			ShoutBOX.timeRequester = ShoutBOX.ajax.playStep('./shoutbox/getMessages.shoutbox.php', {}, 5);
			
			//~ ShoutBOX.scrollDown();
			
		},
		
		appendMessages: function(messages) {
			var comments = E('allComments');
			comments.empty();
			I(messages).each(
				function(i, e) {
					var p = E().create('p', {innerHTML: '<strong>'+e.name+' : </strong><span>'+e.text+'</span>'});
					comments.appendChild(p);
				}
			);
			if(ShoutBOX.firstView) {
				ShoutBOX.scrollDown();
				ShoutBOX.firstView = false;
			}
		},	
		
		run: function() {
			if(E('shoutBoxApp')) {
				
				var m = E().create('div', {id: 'allComments'});
				var f = E().create('div', {id: 'formContener'});
				
				E('shoutBoxApp').appendChild(m);
				E('shoutBoxApp').appendChild(f);
				
				ShoutBOX.getUserPseudo();
				ShoutBOX.getMessages();
			}
		}
	}
	
	
	Event.add(window, 'load', ShoutBOX.run);
		