/*
"COLLAPSIBLE" by Alan J. Hogan (http://alanhogan.com/contact)

Goes with the css. 

Merged with basic-dom (only required bits).

Version: 1.5 QBase April 2008

*/


function toggleCollapse(element) {
if(hasClass(element,'collapsed')) {
removeClass(element, 'collapsed');
addClass(element, 'revealed');
}else{
addClass(element, 'collapsed');
removeClass(element, 'revealed');	
}
};



function replace(haystack, needle, newNeedle) {
var i = haystack.indexOf(needle);
var r = "";
if(i == -1) return haystack;
r += haystack.substring(0,i) + newNeedle;
if( i + needle.length < haystack.length)
r += replace(haystack.substring(i + needle.length, haystack.length), needle, newNeedle);
return r;
};


function spaceTrim(daString){
if(daString.charAt(0) == ' '){
daString=daString.substring(1);
}
if(daString.charAt(daString.length-1) == ' '){
daString=daString.substring(0,(daString.length-1));
}
return daString;
};


function getById(id) 
{ 
var x=0;
if(document.getElementById) //Modern W3C DOM
{
x = document.getElementById(id);
return x;
}
else if(document.all) //IE
{
x = document.all[id];
return x;
} else return false;
};

function hasClass(subjectItem,whichClass){
var tempString;
if(subjectItem) {
tempString = " "+replace(subjectItem.className," ",'  ')+" ";
var loc = tempString.indexOf(" "+whichClass+" ");
if(loc != -1) { return true;}
else {return false;}
}else{return false;
}
};

function removeClass(subjectItem,whichClass){
var tempString;
if(subjectItem) {
tempString = replace(subjectItem.className," ",'  ')
tempString = replace(" "+tempString+" "," "+whichClass+" ",' ');
subjectItem.className = spaceTrim(replace(tempString,"  ",' '));
return true;
}else{return false;
}
};

function addClass(subjectItem,whichClass){
if(subjectItem) {
testString = " "+subjectItem.className+" ";
if(testString.indexOf(" "+whichClass+" ")<0) { //not already in class attibute
subjectItem.className = spaceTrim(subjectItem.className+' '+whichClass);
}
return true;
}else{return false;
}
};


