

function toObject(elem)
{
    var $elem = elem;
    if(typeof(elem) == "object")
    { 
        return elem;
    }
    else{
            if( elem=document.getElementById(elem))
            { return elem; }
            else { alert("Element with id='"+$elem+"' doesn't exist !"); return false; }
        }
}


function toArray(var_){
    if (var_.length == undefined || typeof(var_)=="string") { var_ = [var_]; }
    return var_;
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null ){ node = document; }
	else{ node = toObject(node); }
		
	if ( tag == null ) { tag = '*'; }
	
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); //^\s{0,2}Jekis\s{0,2}$
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return (classElements.length == 0) ? false : classElements;
}


function LLA(link,LinkClass,parents,classSufix)
{
	classSufix = classSufix || "Active";
    classRegExp = new RegExp(classSufix+'(\s?)+$');
    parents = toArray(parents);
    link = toObject(link);
    
    if (!classRegExp.test(link.className))
    {// if link is NOT active we do this

            for (var i=0; i<parents.length; i++)
            {
                parents[i] = toObject(parents[i]);
                var allLinks = parents[i].getElementsByTagName("div");
                for(var j=0; j<allLinks.length; j++)
                {
                    var currClassName = allLinks[j].className;
                    if(classRegExp.test(currClassName)){
						allLinks[j].className = currClassName.replace(classRegExp,"");
						// restore onclick event from our backup
						if(allLinks[j].onclick_copy){
							allLinks[j].onclick = allLinks[j].onclick_copy;
						}
                    }
                    
                }
                
            }

			activeLinks = getElementsByClass(LinkClass);
			for(var c=0; c<activeLinks.length; c++){
				activeLinks[c].className += classSufix;
			}
			//link.className += classSufix;
            
            // we don't need onclick event, because link is active now and must do nothing
            link.onclick_copy = link.onclick;
			link.onclick = null; 
			//alert(link.onclick);
            
    }
    link.blur();
    
}



function DHO(objectToDisplay,objectsToHide)
{
    var parent;
    var allObjects = getElementsByClass(objectsToHide);
    objectToDisplay = toObject(objectToDisplay);

    if (allObjects){
        for (var i=0; i<allObjects.length; i++)
        {
            allObjects[i].style.display = "none";
        }
    }
    else{
            objectsToHide = toArray(objectsToHide);
            for (var j=0; j<objectsToHide.length; j++)
            {
                    if ( parent = toObject(objectsToHide[j]) ){
                    
                        for (childItem in parent.childNodes) 
                        {
                            if (parent.childNodes[childItem].nodeType == 1){
                                parent.childNodes[childItem].style.display = "none";
                            }
                            
                        }// end for
                        
                    }// end if (parent..)
                    else{ alert("Object or id "+parent+" Does not exist !!!"); }
                    
            }// end for
            
        }// end else
        
    objectToDisplay.style.display = "block";
}












