function toggle(obj) {
	var el = document.getElementById(obj);
	el.style.display = (el.style.display != 'block' ? 'block' : 'none' );
}

function populateTrigger(trigger, target) {

	triggers.push(trigger);
	triggers[trigger] = target;
	
	var trigger = document.getElementById(trigger);	
	
	addEvent(trigger, "click", function(e) { 
		
		if (!e) var e = window.event; 
		toggle(triggers[this.id]);  

		// same as return false -- which doesn't work using attachEvent/addEventListener as nothing gets passed back from these methods per the spec //
		//for mozilla/gecko
		if (e.preventDefault) 
			e.preventDefault(); 
		//for ie
		else e.returnValue = false; } );
	
	// prevent circular memory leak in IE/Win with the closure in addEvent //
	trigger = null;
	target = null;
	
}

function cleanScreen(e) {
	
	var targetClick = false;

	if (!e) var e = window.event;
	if (e.target) { target =  e.target; }
	else { target =  e.srcElement; }

	// look at the element's ID which you clicked
	target_id = target.id;
	
	// loop through all triggers to see if you clicked it, if so, set targetClick to true
	triggers.each(function(i) {
		if ( (target_id == i) ) {
		targetClick = true; }
	});
	
	// if you didnt click a trigger, hide the menu
	if (!targetClick) {
		triggers.each(function(i) {
			clean(triggers[i]); 
		})
	}
	
	
}

function clean(obj) {
	var el = document.getElementById(obj);
	el.style.display = "none";
}

//Resigs winner in the addEvent recode contest
function addEvent( obj, type, fn ) 
{ 
   if (obj.addEventListener) 
      obj.addEventListener( type, fn, false ); 
   else if (obj.attachEvent) 
   { 
      obj["e"+type+fn] = fn; 
      obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } 
      obj.attachEvent( "on"+type, obj[type+fn] ); 
   } 
} 

var triggers = [];
populateTrigger("browse-trigger", "browse-items");
document.body.onclick = function(e) { cleanScreen(e); };

/* need to switch to MenuManager class with method to 
MenuManager.addTrigger('browse-trigger', 'browse-items'); */
