﻿var timerlen = 5;
var slideAniLen = 500;
var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

function excerpts(sContainer) {

    // this node exists in some pages to stop this sub running 
    if ( document.getElementById('nojavascript') != null )
    { return ; } 

    var i  = 0;
    var firstParagraph = true ;
    var parNode = document.getElementById(sContainer);
    var nextNode =  document.getElementById(sContainer).firstChild;
    var anchorText = "";
    var newNodeAnchor = document.createElement("a");
    var innerText = "";
    var anchorHREF = "";
    var lastHeadingNode = "";  
    var newHeading = document.createElement("h1");
   
    if ( nextNode == null ) 
        { return ; }

    //Loop through the container until we find the heading to get our anchortext
    while ( nextNode.tagName != 'H1' )
    {
        nextNode = nextNode.nextSibling ;
    }

	anchorText=nextNode.innerHTML; 
	nextNode.style.display='none'; 
	lastHeadingNode = nextNode;
	newHeading.innerHTML = nextNode.innerHTML;

	
	// Now we search for the first paragraph	
	while ( nextNode.tagName != 'P' )
    {
        nextNode = nextNode.nextSibling ;
    }	

    // Loop through the other elements in the container
    while ( nextNode.parentNode.id == sContainer ) 
    {
	    
		    if ( nextNode.tagName == 'P' ) {
		        i = i+1;
		        
		        if ( firstParagraph ) {	
		        
		             // We create an anchor that will expand the original paragraphs when clicked    
		            newNodeAnchor = document.createElement("a");
		            
                    firstParagraph = false ;
		        
		            //we add a slidedown to the anchortext
	        
		           anchorHREF = "javascript:Show('content" + i + "')";
		            }  
		        else
		           { 
		           anchorHREF = anchorHREF + ";Show('content" + i + "')"; 
		        }
		        
		        // we name our paragraph so that we can show it later
		        nextNode.id= "content" + i ;
		       
		        //we hide our original paragraph
		        nextNode.style.display='none'; 
            
            }
            
            if ( nextNode.tagName == 'H2' ) {
	            // For each H2 heading we create a new div that will contain our excerpt and we give it a name so that we can hide it later

		        firstParagraph = true ;
		        
		        nextNode.style.display='none';
		        
	            anchorText=nextNode.innerHTML; 
	            
		        //we insert our excerpt and anchor into the document just before our last heading
		        newNodeAnchor.href = anchorHREF + ";";
		        
		        newNodeAnchor.appendChild(newHeading);
		        
		        parNode.insertBefore( newNodeAnchor, lastHeadingNode);
		        
		        lastHeadingNode = nextNode;
		                
		        newHeading = document.createElement("h2");
		        newHeading.innerHTML = nextNode.innerHTML;
            }
             
            if ( nextNode.nextSibling != null ) 
               {
                nextNode = nextNode.nextSibling; }
            else
               {   
                // write the last paragraph
		        
		        //we insert our anchor into the document just before our H2
		        newNodeAnchor.href = anchorHREF + ";"
		        
		        newNodeAnchor.appendChild(newHeading);
		        parNode.insertBefore(newNodeAnchor, lastHeadingNode);	    
	            return; }
            
    }
             
}

