/* (C) Copyright IBM Corp. 2008 All Rights Reserved. */
var _memberList = {};


_memberList.members = [];
_memberList.scrollThreshold = 4;
_memberList.memberElementHeight = 28;
//_memberList.personInLine = 4;

_memberList.init = function(widget, widgetParent){
	_memberList.typeAhead_W = widget;
	if (_memberList.holderElement) {
		_memberList.holderElement.innerHTML = "";
		_memberList.holderElement.style.display = "none";
	}
	this.holderElement = null;
	this.widgetParent = widgetParent;
	this.members = [];
	this.repaint();
	dojo.connect(this.typeAhead_W, "_doSelect", this, "add");
}

_memberList.add = function(){
	
	var pObj = null;
	if (this.typeAhead_W.getItem()){
		pObj = this.typeAhead_W.getItem();
	}else {
		var val = this.typeAhead_W.getTextBoxValue();
		if (!val.match(/.*@.*\..*/)) return;
		pObj = {};
		pObj.name = val;
		pObj.userid = val;
	}
	for(var i=0;i<this.members.length;i++){
		if (this.members[i].userid == pObj.userid) {
			this.typeAhead_W.reset();
			return;
		}
	}
	this.members.push(pObj);
	this.repaint(); 
	this.typeAhead_W.reset();
}

_memberList.removeMember = function(/*json*/ user){
	var found = false;
	for(var i=0;i<this.members.length;i++){
		if (this.members[i].userid == user.userid) {
			found = true;
			this.members.splice(i, 1); // remove this user from member list
			break;
		}
	}
	if (!found) return;
	this.repaint();
}

_memberList.repaint = function(){
	if(this.holderElement){
		this.holderElement.innerHTML = "";
		this.holderElement.style.display = "";
		this.holderElement.style.height = "auto"
	}else {
		var divHolder = document.createElement("div");
		divHolder.className = "memberList scroll";
		this.holderElement = divHolder;
		this.widgetParent.parentNode.insertBefore(this.holderElement, this.widgetParent)
	}
	if (this.members.length == 0) {
		//this.widgetParent.style.width = "70%"
		this.holderElement.style.display = "none";
		return;
	}
	//this.widgetParent.style.width = "50%";
	var html = ""
	var membersStr = "";
	for(var i=0; i<this.members.length; i++){
		var personName = this.members[i].name + (this.members[i].member?"<" +this.members[i].member + ">" : "");
		var cardHtml = lconn.core.NameUtil.getHTML(personName, null, this.members[i].userid, null, true);
		html += "<div class='member'><nobr><span class='picon'>&nbsp;&nbsp;</span>&nbsp;"
				+ "<span class='nameContent'>" 
				+ cardHtml
				+ "<input type='button' class='fieldDel' title=\"" + rs_removeMember_title + "\" onclick='_memberList.removeMember(_memberList.members["+i+"])'>" 
				+ "<span class='fieldDelText' title=\"" + rs_removeMember_title + "\">X</span>"
				+ "</span></nobr></div>";
		membersStr += "<" + this.members[i].userid + ">, ";
	}
	html += "<input type='hidden' id=\"receivers\" name=\"receivers\" value=\"" + membersStr + "\">";
	this.holderElement.innerHTML = html;
	if (this.members.length > this.scrollThreshold) {
		this.holderElement.style.overflow = "auto";
		this.holderElement.style.height = this.memberElementHeight * this.scrollThreshold + "px";
		this.holderElement.scrollTop = (this.members.length - this.scrollThreshold) * this.memberElementHeight;
	}
	if ( window.SemTagSvc && SemTagSvc.parseDom && SemTagSvc.service != null ){
            SemTagSvc.parseDom(0,this.holderElement);
    }
}