var CustomDDB = function()
{
   this.ids = {};
   
   this.initialize = function(id)
   {
      if (!controls.$(id)) return;
      this.ids[id] = id;
      controls.addEvent(document.body, 'click', function()
	  {
        if (!controls.$(id)) return;
	     controls.display('list_' + id, 'none');
	     controls.removeClass('select_' + id, 'open');
	     controls.removeClass('container_' + id, 'open');
	  });
	  var bind = this, click = function(e)
	  {
	     var display = controls.getStyle('list_' + id, 'display');
		 for (var uid in bind.ids) if (controls.$('list_' + uid)) controls.display('list_' + uid, 'none');
	     controls.display('list_' + id, (display == 'none') ? '' : 'none');
	     
	     display == 'none' ? controls.addClass('select_' + id, 'open') : controls.removeClass('select_' + id, 'open');
	     display == 'none' ? controls.addClass('container_' + id, 'open') : controls.removeClass('container_' + id, 'open');
		 controls.stopEvent(e || event);
	  }; 
	  controls.addEvent('val_' + id, 'click', click);
	  controls.addEvent('select_' + id, 'click', click);
	  setInterval(function()
	  {
        if (!controls.$(id)) return;
	     var cls = controls.$(id).className; 
		 if (cls == 'error') 
		 {
		    controls.addClass('container_' + id, cls);
			controls.addClass('list_' + id, cls);
	     } 
		 else 
		 {
		    controls.removeClass('container_' + id, 'error');
			controls.removeClass('list_' + id, 'error');
	     }
	  }, 200);
   }
};

var cddb = new CustomDDB();

