/*
// Code to expand and collapse a div element.
// uses core.js
*/

function prepareExpandContent(){
    //check browser supports dom scripting
    if(!document.getElementsByTagName) return false;
    if(!document.createElement) return false;
    
    //find and check all <div> elements in page
    var divs = document.getElementsByTagName('div');    
    for (var i=0; i < divs.length; i++){
        //process only divs with a class of 'expandcontainer'
        if(new RegExp('\\bexpandcontainer\\b').test(divs[i].className)){           
            var container = divs[i];
            //colapse inner div
            for(var x=0; x< container.childNodes.length; x++){
                if((container.childNodes[x].nodeName == 'DIV') || (container.childNodes[x].nodeName == 'BLOCKQUOTE') ){
                    var xcontent = container.childNodes[x]
                    xcontent.className = 'collapsed';
                    continue;
                }
            }            
            //create expand link 
            if( xcontent.offsetHeight < (xcontent.scrollHeight-10) ){   
                var para = document.createElement('p');
                para.className = "expandcontrol";
                
                var lnk = document.createElement('a');
                lnk.onclick = function (){expandContent(this); return false;};
                lnk.className = "expandcontrol";
                lnk.title = "Expand and view all";
                lnk.href = '#';
                
                var lnkText = document.createTextNode('[+]Expand');
                
                lnk.appendChild(lnkText);
                para.appendChild(lnk);
                container.appendChild(para);
            }
        }
    }
}

function expandContent(elem){ 
    //Hook into emlements on page, based off of triggering element
    expanddiv = elem.parentNode.parentNode;
    for(var x=0; x< expanddiv.childNodes.length; x++){
        if( (expanddiv.childNodes[x].nodeName == 'DIV') || (expanddiv.childNodes[x].nodeName == 'BLOCKQUOTE') ){
            xcontent = expanddiv.childNodes[x];
            continue;
        }
    }
    xbutton = elem;
    //Expand or collapse div and update link
    if (xcontent.className != "collapsed")
    {
        xcontent.style.height = '';
        xcontent.className = "collapsed";
        var lnkText = document.createTextNode('[+]Expand');   
        xbutton.title = "Expand and view all";
        xbutton.replaceChild(lnkText, xbutton.firstChild);
    }
    else
    {
        if(xcontent.id == ''){
            xcontent.id = 'expandcontent-' + new Date().getTime();
            var elementId = xcontent.id;
        }else{
            var elementId = xcontent.id;
        }
        resizeHeight(elementId, (xcontent.scrollHeight-10), 100);
        xcontent.className = "expanded";
        var lnkText = document.createTextNode('[-]Minimize');   
        xbutton.title = "Minimize content";
        xbutton.replaceChild(lnkText, xbutton.firstChild);
    }
    
    return true;
}

//Add to window.onload
addLoadEvent(prepareExpandContent);


