function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.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)
}

function radio(button){
var radiobuttons = button.parentNode.childNodes;
for(var i=0;i<radiobuttons.length;i++){if(radiobuttons[i].className == 'selectedrbutton') 
    radiobuttons[i].className = 'rbutton';}
button.className = 'selectedrbutton';
}


function toggleDomain(node){
        radio(node); var ns = getElementsByClassName(node, 'span', 'ns')[0].innerHTML; var i;
        var languagebox = document.getElementById('languagebox');
        var language = null;
        if(languagebox != null)
        {
        var selectedlanguage = getElementsByClassName( languagebox, 'div', 'selectedrbutton');
        if(selectedlanguage.length > 0) {
            var s_lang = getElementsByClassName( selectedlanguage[0], 'span', 'lang');
            if(s_lang.length > 0) language = s_lang[0].innerHTML;
            } 
        }
        if(language == null) language = 'All';

	var results =  getElementsByClassName( document.getElementById('partialmatches') , 'li', "itemblock");	
        if(ns == 'All'){ for(i=0; i<results.length;i++){ show(results[i]); } }
		else for(i=0;i<results.length;i++)
		{
			var domain = getElementsByClassName( results[i] , 'span', "domain");
			if(domain[0].innerHTML == ns) 
                            {
                            if(language == 'All') show(results[i]);    
                            else if(language == 'English')
                                 {
                                 if(hasLanguage(results[i], language) || hasConcept(results[i])) show(results[i]);
                                 else hide(results[i]);
                                 }
                             else 
                                 {                                 
                                 if(hasLanguage(results[i], language)) show(results[i]);
                                 else hide(results[i]); 
                                 }
                            }
			else hide(results[i]);
		}
                var noresults = document.getElementById('noresults');
                if(hasResults(results)) hide(noresults);
                else show(noresults);
}

function toggleLanguage(node){
        radio(node);
        var selecteddomain = getElementsByClassName( document.getElementById('domainbox'), 'div', 'selectedrbutton');
        var domain;
        if(selecteddomain.length > 0) domain = getElementsByClassName( selecteddomain[0], 'span', 'ns')[0].innerHTML;
        else domain = 'All';
        var ns = getElementsByClassName(node, 'span', 'lang')[0].innerHTML; var i;
        var results =  getElementsByClassName( document.getElementById('partialmatches') , 'li', "itemblock");
        if(ns == 'All') 
		{
			for(i=0; i<results.length;i++){ 
                        if(domain == 'All') show(results[i]); 
                        else {
                                var thisdomain = getElementsByClassName( results[i] , 'span', "domain")[0].innerHTML;
                                if(thisdomain == domain) show(results[i]);
                             }                        
                        }
		}
		else
		for(i=0;i<results.length;i++)
		{
                        var thisdomain = getElementsByClassName( results[i] , 'span', "domain")[0].innerHTML;
			if(ns == 'English')
			{                            
                            if(domain == 'All') 
                                { if(hasLanguage(results[i], ns) || hasConcept(results[i])) show(results[i]);}
                            else if(thisdomain == domain) 
                                { if(hasLanguage(results[i], ns) || hasConcept(results[i])) show(results[i]);
                                  else hide(results[i]);  
                                }
                            else hide(results[i]);
			}
			else
			{
				if(hasLanguage(results[i], ns)) {
                                if (domain != 'All')  { if (thisdomain == domain) show(results[i]); }
                                else show(results[i]);
                                }
				else { hide(results[i]); }
			}
		}
                var noresults = document.getElementById('noresults');
                if(hasResults(results)) hide(noresults);
                else show(noresults);
}

function hasLanguage(itemblock, lang){
var languages = getElementsByClassName( itemblock , 'span', "language"); 
for(var i=0;i<languages.length;i++){ if(languages[i].innerHTML == lang) return true;} return false; }
function hasConcept(itemblock){ if(itemblock.getAttribute('kn') == 'true') return true; return false; }
function hasResults(results){ for(var i=0;i<results.length;i++) {if(results[i].style.display != 'none') return true;} return false;}
function show(node){if(node.style.display == 'none') node.style.display = '';}
function hide(node){if(node.style.display != 'none') node.style.display = 'none';}
