APE.Shoutbox = new Class({

	Extends: APE.Client,

	Implements: Options,

	options:{
      container: $("chat_container"),
      logs_limit: 10,
      sound: null,
      base_url: '',
      fb_base_url: ''
	},

	initialize: function(options){
		this.setOptions(options);
		//this.container = $(this.options.container) || document.body;
        this.container = $("chat_container");

		this.onRaw('postmsg', this.onMsg);
		this.addEvent('load',this.start);
        this.addEvent('ready',this.ready);
	},

	start: function(core){
		this.core.start({'name': $time().toString()});
	},

    ready: function() {
        $('entry_container').setStyle('display', 'block');
        $('loading_container').setStyle('display', 'none');
    },

	onMsg: function(raw){
      
		var chat_msg = new Element('div', {'class': 'chat_message'});
        // var chat_nick = new Element('h4', {'html' : '<a href="' + this.options.fb_base_url + 'profile/char/' + raw.data.nick + '" target="_parent">' + raw.data.nick + '</a>' });
        
        // var chat_div_nick = new Element('div', {'class': 'chatter_name'});
        // var chat_a_nick = new Element('a', {'href' : '../viewuser.php?u=' + raw.data.userid, 'style' : 'color: rgb(204,204,204);', 'target':'_parent', 'html' : raw.data.span });
        // chat_a_nick.inject(chat_div_nick);
//        var chat_nick = new Element('h4', {'html' : '<a href="../viewuser.php?u=' + raw.data.userid + '" target="_parent">' + raw.data.nick + '</a>' });

		
        var chat_nick = new Element('div', {'class': raw.data.user_class, 'html' :  '<a href="../viewuser.php?u=' + raw.data.userid + '" target="_parent">' + decodeURIComponent(raw.data.name_tag) + '</a>' });		
        // chat_div_nick.inject(chat_msg);
        
        chat_nick.inject(chat_msg);
        var char_time = new Element('span', {'class': 'time', 'html' : raw.data.time});
        char_time.inject(chat_msg);
        var char_msg = new Element('p', {'html' : decodeURIComponent(raw.data.msg)});
        char_msg.inject(chat_msg);

        var container = $("chat_container");

        chat_msg.inject(container);

        this.scrollMsg();

	},
    rand_chars: function(){
		var keylist="abcdefghijklmnopqrstuvwxyz123456789"
		var temp=''
		var plength=5;
		for (i=0;i<plength;i++){
			temp+=keylist.charAt(Math.floor(Math.random()*keylist.length))
		}
		return temp;
	},
    reset: function() {
      this.core.clearSession();
          if(this.els.pipeContainer){
              this.els.pipeContainer.dispose();
              this.els.more.dispose();
          }
          this.core.initialize(this.core.options);
    },
    scrollMsg: function(){
      var container = $("chat_container");
      var scrollSize = container.getScrollSize();
      container.scrollTo(0,scrollSize.y);
	}

});

