/*
    Class: MEMOZ.memozlist
*/
MEMOZ.memozlist = function() {

}
YAHOO.extend(MEMOZ.memozlist, MEMOZ.base, {

    _className: "MEMOZ.memozlist",

    allowAddMemoz: false,
    memozFinderTmp: '',
    memozes: [],
    
    listEl: null,
    
    /*
    	Method: setAllowAddMemoz
    	Parameters:
    		allowAddMemoz - <bool>
    */
    setAllowAddMemoz: function(allowAddMemoz) {
        this.allowAddMemoz = allowAddMemoz;
    },

    /*
    	Method: setMemozes
    	Parameters:
    		memozes - [array]
    */
    setMemozes: function(memozes) {
        this.memozes = memozes;
    },
    
    /*
    	Method: drawMemoz
    	Adds a list item with the clickable memoz name to the DOM
    	
    	Parameters:
    		obj - object
    */
    drawMemoz: function(obj) {
    	var me = this;
		var liEl = document.createElement('li');
		liEl.id = 'memozlistitem'+obj.id;
		liEl.innerHTML = "<a id='memozlink"+obj.id+"' href='./?memoz="+obj.id+"'>"+obj.name + 
			" <span style='font-size: 80%; color: #999;'>("+obj.owner.name+")</span>" + 
			"</a>";
        /*
        YAHOO.util.Event.on('memozlink'+obj.id,'click',function(e, obj) { 
        	me.selectUser(obj.id); 
        }, {id: obj.id});
		*/
		this.listEl.appendChild(liEl);		
	},
        
    run: function() {
    
    	var me = this;
    	
    	this.listEl = $('memozlistUl');
    	for (var i = 0; i < this.memozes.length; i++) {
    		this.drawMemoz(this.memozes[i]);
    	}    	

		this.dlgAddMemoz = new MEMOZ.dialog(
			'dlgAddMemoz', {ref: me, fn: 'memozAdded'}, { action: 'addMemoz', groupId: 0 }, [
			{ type: 'text', id: 'Name', def: '', submitAs: 'memozName', focus: true }
		]);
    		
		// Initialize buttons

		if (this.allowAddMemoz) {
            this.btnAddMemoz = new YAHOO.widget.Button('btnAddMemoz', {
                onclick: { fn: function() { me.dlgAddMemoz.show(); }}
            });
        } else {
        	YAHOO.util.Dom.setStyle('btnAddMemoz','display','none');
        }
        
        // Memoz finder
        
        YAHOO.util.Event.on('memozFinder','focus',function() { me.startMemozFinder(); });
        YAHOO.util.Event.on('memozFinder','blur',function() { me.endMemozFinder(); });
        
    },

	memozAdded: function(json) {

    	if (json.error == 0) {
			this.memozes.push( { id: json.id, name: json.name } );
			this.drawMemoz(this.memozes[this.memozes.length-1]);
		}
    
    },
    
    startMemozFinder: function() {
    	var me = this;
    	this.memozFinderInt = setInterval(function() { me.memozFinder(); }, 100);
    },
    
    endMemozFinder: function() {
    	var me = this;
    	clearInterval(this.memozFinderInt);
    },  
    
    memozFinder: function() {

		var memozname = $('memozFinder').value;
		if (memozname == this.memozFinderTmp) return;
		this.memozFinderTmp = memozname;

		var rExp = new RegExp(memozname,'i');
		var memoz;
		for (var i = 0; i < this.memozes.length; i++) {
			if (memoz = this.memozes[i]) {
				if (memozname == '' || memoz.name.search(rExp) > -1 || memoz.owner.name.search(rExp) > -1) {
					YAHOO.util.Dom.setStyle('memozlistitem'+memoz.id,'display','');
				} else {
					YAHOO.util.Dom.setStyle('memozlistitem'+memoz.id,'display','none');
				}
			}
		}
    
    }

});
