dc={
triggerElements:'h3',	parentElementId:null,	uniqueCollapse:false,	trigger:'trigger',
triggeropen:'expanded',
hideClass:'hide',
showClass:'show',
closedPic:'/images/plus.gif',
closedAlt:'expand section',
openPic:'/images/minus.gif',
openAlt:'collapse section',
init:function(e){
var temp;
if(!document.getElementById || !document.createTextNode){return;}
if(!dc.parentElementId){
temp=document.getElementsByTagName(dc.triggerElements);
} else if(document.getElementById(dc.parentElementId)){
temp=document.getElementById(dc.parentElementId).getElementsByTagName(dc.triggerElements);
}else{
return;
}
dc.tempLink=document.createElement('a');
dc.tempLink.setAttribute('href','#');
dc.tempLink.appendChild(document.createElement('img'));
for(var i=0;i<temp.length;i++){
if(dc.cssjs('check',temp[i],dc.trigger) || dc.cssjs('check',temp[i],dc.triggeropen)){
dc.makeTrigger(temp[i],e);
}
}
var changealls=dc.getElementsByClassName(document,'span','excoll');
for(var i=0;i<changealls.length;i++){
dc.addEvent(changealls[i],'click',dc.changeAll,false);
}
},
makeTrigger:function(o,e){
var tl=dc.tempLink.cloneNode(true);
var tohide=o.nextSibling;
while(tohide.nodeType!=1)
{
tohide=tohide.nextSibling;
}
o.tohide=tohide;
if(!dc.cssjs('check',o,dc.triggeropen)){
dc.cssjs('add',tohide,dc.hideClass);
tl.getElementsByTagName('img')[0].setAttribute('src',dc.closedPic);
tl.getElementsByTagName('img')[0].setAttribute('alt',dc.closedAlt);
o.setAttribute('title',dc.closedAlt);
}else{
dc.cssjs('add',tohide,dc.showClass);
tl.getElementsByTagName('img')[0].setAttribute('src',dc.openPic);
tl.getElementsByTagName('img')[0].setAttribute('alt',dc.openAlt);
o.setAttribute('title',dc.openAlt);
dc.currentOpen=o;
}
dc.addEvent(o,'click',dc.addCollapse,false);
o.insertBefore(tl,o.firstChild);
dc.addEvent(tl,'click',dc.addCollapse,false);
tl.onclick=function(){return false;}
o.onclick=function(){return false;}
},
addCollapse:function(e){
var action,pic;
if (self.screenTop && self.screenX){
window.resizeTo(self.outerWidth + 1, self.outerHeight);
window.resizeTo(self.outerWidth - 1, self.outerHeight);
}
if(dc.uniqueCollapse && dc.currentOpen){
dc.currentOpen.getElementsByTagName('img')[0].setAttribute('src',dc.closedPic);
dc.currentOpen.getElementsByTagName('img')[0].setAttribute('alt',dc.closedAlt);
dc.currentOpen.setAttribute('title',dc.closedAlt);
dc.cssjs('swap',dc.currentOpen.tohide,dc.showClass,dc.hideClass);
dc.cssjs('remove',dc.currentOpen,dc.triggeropen);
dc.cssjs('add',dc.currentOpen,dc.trigger);
}
var o=dc.getTarget(e);
if(o.tohide){
if(dc.cssjs('check',o.tohide,dc.hideClass)){
o.getElementsByTagName('img')[0].setAttribute('src',dc.openPic);
o.getElementsByTagName('img')[0].setAttribute('alt',dc.openAlt);
o.setAttribute('title',dc.openAlt);
dc.cssjs('swap',o.tohide,dc.hideClass,dc.showClass);
dc.cssjs('add',o,dc.triggeropen);
dc.cssjs('remove',o,dc.trigger);
}else{
o.getElementsByTagName('img')[0].setAttribute('src',dc.closedPic);
o.getElementsByTagName('img')[0].setAttribute('alt',dc.closedAlt);
o.setAttribute('title',dc.closedAlt);
dc.cssjs('swap',o.tohide,dc.showClass,dc.hideClass);
dc.cssjs('remove',o,dc.triggeropen);
dc.cssjs('add',o,dc.trigger);
}
dc.currentOpen=o;
dc.cancelClick(e);
}
else{
dc.cancelClick(e);
}
},
changeAll:function(e){
var target=dc.newGetTarget(e);
var nodes=document.getElementById('glean').childNodes;
var within=false;
var o, tohide;
for(var i=0;i<nodes.length;i++){
if (nodes[i].nodeType!=1) continue;
if (nodes[i].nodeName.toLowerCase()=='h2'){
if (nodes[i].hasChildNodes() && nodes[i].firstChild==target){
within=true;
} else within=false;
continue;
} else if (nodes[i].nodeName.toLowerCase()=='h3'){
o=nodes[i];
continue;
} else if (nodes[i].nodeName.toLowerCase()=='div'){
tohide=nodes[i];
}
if (!within) continue;
if (o.className.trim()!=dc.trigger && o.className.trim()!=dc.triggeropen) continue;
if (tohide.className.trim()!=dc.showClass && tohide.className.trim()!=dc.hideClass) continue;
if(target.innerHTML=='[expand all]'){
o.getElementsByTagName('img')[0].setAttribute('src',dc.openPic);
o.getElementsByTagName('img')[0].setAttribute('alt',dc.openAlt);
o.setAttribute('title',dc.openAlt);
dc.cssjs('set',tohide,dc.hideClass,dc.showClass);
dc.cssjs('add',o,dc.triggeropen);
dc.cssjs('remove',o,dc.trigger);
}else if (target.innerHTML=='[collapse all]'){
o.getElementsByTagName('img')[0].setAttribute('src',dc.closedPic);
o.getElementsByTagName('img')[0].setAttribute('alt',dc.closedAlt);
o.setAttribute('title',dc.closedAlt);
dc.cssjs('set',tohide,dc.showClass,dc.hideClass);
dc.cssjs('remove',o,dc.triggeropen);
dc.cssjs('add',o,dc.trigger);
}
}
if (target.innerHTML=='[expand all]') {
target.innerHTML='[collapse all]';
} else if (target.innerHTML=='[collapse all]') {
target.innerHTML='[expand all]';
}
dc.cancelClick(e);
},
getTarget:function(e){
var target = window.event ? window.event.srcElement : e ? e.target : null;
if (!target){return false;}
while(!target.tohide && target.nodeName.toLowerCase()!='body')
{
target=target.parentNode;
}
return target;
},
newGetTarget:function(e){
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) targ = targ.parentNode;
return targ;
},
cancelClick:function(e){
if (window.event){
window.event.cancelBubble = true;
window.event.returnValue = false;
return;
}
if (e){
e.stopPropagation();
e.preventDefault();
}
},
addEvent: function(elm, evType, fn, useCapture){
if (elm.addEventListener)
{
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
} else {
elm['on' + evType] = fn;
}
},
cssjs:function(a,o,c1,c2){
switch (a){
case 'swap':
o.className=!dc.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
break;
case 'set':
o.className=o.className.replace(c1,c2);
break;
case 'add':
if(!dc.cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
break;
case 'remove':
var rep=o.className.match(' '+c1)?' '+c1:c1;
o.className=o.className.replace(rep,'');
break;
case 'check':
return new RegExp("(^|\\s)" + c1 + "(\\s|$)").test(o.className)
break;
}
},
getElementsByClassName:function(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
oElement = arrElements[i];
if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement);
}
}
return (arrReturnElements);
}
}
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
dc.addEvent(window, 'load', dc.init, false);