var sH = {
  // initialisation function, call with load
  init: function() {
    if (!document.getElementById) return;

    // containerdiv
    sH.project_docs = document.getElementById('project_docs');
    

    if (sH.project_docs) {
      // get rows in project_docs
      var all_rows = sH.project_docs.getElementsByTagName('tr');
  		// loop though inputs
  		for (var i = 0; i < all_rows.length; i++) {
  			// get the row element
  			var trs = all_rows[i];
  			if (trs.className.search('main') != -1) {
        	sH.addEvent(trs, 'click', sH.sh, false);
  			}
      }
    }


  },
  

	sh: function(e) {
		var target = sH.find_target(e);
  		if (!target) return;
  	// determine what has been clicked
  	//var clked = target.id;

  	//alert (target.tagName);

    // we want to replace the folde image, so lets get it's id
    var im = target.id.replace(/link_(\d+)/, 'im_$1');


  	if (target.tagName != 'A') {
      return;
    }

  	var el = target.parentNode;

  	while(el.tagName != 'TR') {
      el = el.parentNode;
    }
    

    // for some reason next row is different for IE and firefox, firefox needs
    // nextSibling twice?
    var sib = el.nextSibling;
    if(sib.tagName != 'TR') {
      sib = el.nextSibling.nextSibling;
    }

    if (sib.className == '') {
      sib.className = 'hidden';
      target.innerHTML = '[+]';
      document.getElementById(''+im+'').src = '../images/folder.gif';
      return false;
    } else {
      sib.className = '';
      target.innerHTML = '[-]';
      document.getElementById(''+im+'').src = '../images/folder_full.gif';
      return false;
    }
    

	},

	// function to add event listener, also caches events so they can be removed when the
	// page unloads to avoid memory leaks in IE
  addEvent: function(elm, evType, fn, useCapture) {
		// for W3C DOM complience
    if (elm.addEventListener) {
      elm.addEventListener(evType, fn, useCapture);
      return true;
    }
		// for IE...
		else if (elm.attachEvent) {
      var r = elm.attachEvent('on' + evType, fn);
      //EventCache.add(elm, evType, fn);
      return r;
    } else {
			// for anyone else not IE or Moz... Safari etc
      elm['on' + evType] = fn;
    }
  },

	// function to add event listener, also caches events so they can be removed when the
	// page unloads to avoid memory leaks in IE
  removeEvent: function(elm, evType, fn, useCapture) {
		// for W3C DOM complience
    if (elm.removeEventListener) {
      elm.removeEventListener(evType, fn, useCapture);
      return true;
    }
		// for IE...
		else if (elm.detachEvent) {
      var r = elm.detachEvent('on' + evType, fn);
      //EventCache.add(elm, evType, fn);
      return r;
    }
  },
	
	// cross-browser get target
	find_target: function(e) 	{
		var target; 	
		// for IE, target is held in window.event array
		if (window.event && window.event.srcElement) 
			target = window.event.srcElement;
		else if (e && e.target)
			target = e.target;
		if (!target)
			return null;
			
		return target;
	}
	
}

sH.addEvent(window, 'load', sH.init, false);
// flush events on unload to avoid memory probs in IE
//sH.addEvent(window, 'unload', EventCache.flush, false);



