Рони, в который раз спасибо Вам огромное за помощь.
Решил самостоятельно вот таким образом, правда, как-то очень топорно вышло, но я очень рад, что у меня хоть как-то получилось.
function SwitcherHandleBuilder(elementsClass,parentMode){
var parentMode = parentMode || false;
var className = elementsClass;
var elementsCollection = Array.prototype.slice.call(document.getElementsByClassName(className));
var collectionCount = elementsCollection.length;
// alert(collectionCount)
var makeSelfSwitcherHandler = function(element){
return function(event){
var event = fixEvent(event,this);
var target = event.target;
// alert(target.tagName+" "+target.classList.contains(className)+" "+className);
if(!target.classList.contains(className)){
return;
} else {
if(!parentMode){
element.classList.toggle('opened');
} else{
element.parentNode.classList.toggle('opened');
}
}
event.stopPropagation();
};
};
for(var counter = 0; counter<collectionCount; counter++){
var element = elementsCollection[counter];
element.addEventListener('click',makeSelfSwitcherHandler(element));
};
};
// SwitcherHandleBuilder(@param - string, @param=false (boolean -> Optional)))(передаем класс для обработки и включаем "Родительский режим" когда класс opened присвоится родителю элемента
SwitcherHandleBuilder("selfSwitcher");
SwitcherHandleBuilder("switchParent",true);
SwitcherHandleBuilder("switcherLevel_1");