var collapseDivs, collapseLinks;

function createDocumentStructure (tagName) {
			
	if (document.getElementsByTagName) {
    
    	var elements = document.getElementsByTagName(tagName);
    
 		collapseDivs = new Array(elements.length);
    
  		collapseLinks = new Array(elements.length);
    
    	for (var i = 0; i < elements.length; i++) {
      				
    		var element = elements[i];
      
    		var siblingContainer;
      
    		if (document.createElement && (siblingContainer = document.createElement('div')) && siblingContainer.style) {
        
    			var nextSibling = element.nextSibling;
        
    			element.parentNode.insertBefore(siblingContainer, nextSibling);
        
    			var nextElement = elements[i + 1];
        
    			while (nextSibling != nextElement && nextSibling != null) {
          
    				var toMove = nextSibling;
          
    				nextSibling = nextSibling.nextSibling;
          
    				siblingContainer.appendChild(toMove);
        
    			}
        				
    			siblingContainer.style.display = 'none';
        
    			collapseDivs[i] = siblingContainer;
        
    			createCollapseLink(element, siblingContainer, i);
    
			}
      
			else {
      
			// no dynamic creation of elements possible
        	
        	return;
      				
      		}
    
    	}
    
    	createCollapseExpandAll(elements[0]);
  
  	}

}

function createCollapseLink (element, siblingContainer, index) {
  
  	var span;
  
  	if (document.createElement && (span = document.createElement('span'))) {
    
    	span.appendChild(document.createTextNode(String.fromCharCode(160)));
    
    	var link = document.createElement('a');
    
    	link.collapseDiv = siblingContainer;
    
    	link.href = '#';
    
    	link.appendChild(document.createTextNode('SHOW'));
    
    	link.onclick = collapseExpandLink;
    
    	collapseLinks[index] = link;
    
    	span.appendChild(link);
    
    	element.appendChild(span);
  
  	}

}

function collapseExpandLink (evt) {
  
	if (this.collapseDiv.style.display == '') {
    
		this.parentNode.parentNode.nextSibling.style.display = 'none';
    
		this.firstChild.nodeValue = 'SHOW';
  
	}
  
	else {
    
		this.parentNode.parentNode.nextSibling.style.display = '';
    
		this.firstChild.nodeValue = 'HIDE';
  
	}

	if (evt && evt.preventDefault) {
    
  		evt.preventDefault();
  
  	}
  
  	return false;

}
