﻿function OrgChartActivateDesc(ochart, odescid) {
    var oItem = ochart;
    var oDesc = document.getElementById(odescid);
    
    if (!oDesc)
        return;
    
    var oDescList =  document.getElementById("orgUnitView");    
    var oDescListItems = oDescList.getElementsByTagName("div");
    for (var i=0; i < oDescListItems.length; i++) {
        manipulateObjectClass(oDescListItems[i], "remove", "selected");
    }
    
    var oChartList =  document.getElementById("orgChartView");
    var oChartListItems = oChartList.getElementsByTagName("a");
    for (var j=0; j < oChartListItems.length; j++) {
        manipulateObjectClass(oChartListItems[j], "remove", "selected");
    }
    
    manipulateObjectClass(oDesc, "add", "selected");
    manipulateObjectClass(oItem, "add", "selected");    
}

function SubscriptionCustomOptions(action, objectName) {    
    var oDiv = document.getElementById(objectName);
    if (!oDiv)
        return;
        
    if (action == 'show')
        manipulateObjectClass(oDiv, "remove", "hide");
    else
        manipulateObjectClass(oDiv, "add", "hide");
        
}

function PopupHide(modalid, contentid) {
    var oModal = document.getElementById(modalid);
    var oPContent = document.getElementById(contentid);    
    if (!oModal || !oPContent)
        return;
    
    manipulateObjectClass(oModal, "remove", "show");
    manipulateObjectClass(oPContent, "remove", "show");   
}

function ShowLinksJSHidden()
{
    var links = getElementsByClass('linkjsshow',document,'a')
    for (i = 0; i < links.length; i++)
        manipulateObjectClass(links[i], "remove", "linkjsshow");
}

function manipulateObjectClass(obj, mode, class1, class2) {
	if (obj != null) {
		switch (mode) {
		case 'check':
			return new RegExp('\\b'+class1+'\\b').test(obj.className)
			break;
		case 'add':
			if(!manipulateObjectClass(obj,'check',class1)){
				obj.className+=obj.className?' '+class1:class1;
			}
			break;
		case 'remove':
			var rep=obj.className.match(' '+class1)?' '+class1:class1;
			obj.className=obj.className.replace(rep,'');
			break;
		case 'swap':
			obj.className=!manipulateObjectClass(obj,'check',class1)?obj.className.replace(class2,class1): obj.className.replace(class1,class2);
			break;
		}
	}
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

window.onload += ShowLinksJSHidden;
