HEX
Server: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 mod_fcgid/2.3.9 PHP/5.4.16
System: Linux dvm.vladweb.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: region-gk.ru (1016)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: //home/bk/efi/eficenter.ru/js/foldingtable.js
var /*HashMap*/ ms_foldingtable_elementsLoaded = new Object();
var /*HashMap*/ ms_foldingtable_maxSize = new Object();
var /*HashMap*/ ms_foldingtable_tdimage = new Object();
var /*HashMap*/ ms_foldingtable_tdclass = new Object();
var /*HashMap*/ ActiveBigID = new Object();
var /*HashMap*/ ActiveID = new Object();

function /*void*/ ms_foldingtable_handleRequest(status, data, param, type, statusmsg) {
	if(status == AJAXConnector.SUCCID_LOAD && type == AJAXConnector.RESPONSE_TEXT) {
		ms_foldingtable_printEntry(param, data);
	}
}

function /*void*/ ms_foldingtable_toggleTableEntry(/*Event*/ event) {
	// IE saves events within the window object
	if (!event) event = window.event;
	// IE saves the target for this event on different position
	elem = (event.target) ? event.target : event.srcElement;

	// Resolve the correct node, because the user may
	// click on the div, the p, the a or span tag.
	if (elem.nodeName && elem.nodeName.toLowerCase() == "p") {
		elem = elem.parentNode;
	} else if (elem.nodeName && elem.nodeName.toLowerCase() != "div") {
		elem = elem.parentNode.parentNode;
	}

	// Get values
	var /*String[]*/ values = elem.id.split("@");
	var /*String*/ elementId = values[0];
	var /*String*/ handle = values[1];
	ms_foldingtable_loadEntryData(elementId, handle);
	ms_foldingtable_doToggle(elementId);
}

function /*void*/ ms_foldingtable_loadEntryData(/*String*/ elementId, /*String*/ handle) {
	// Return, if no handle was given
	if (!handle || handle == "") {
		return;
	}

	// Process Ajax, if element has not been loaded yet
	if (ms_foldingtable_elementsLoaded[elementId] == undefined) {
		var /*AJAXConnector*/ ajaxConnector = new AJAXConnector( );

		// Send Ajax request
		ajaxConnector.registerDataHandler(ms_foldingtable_handleRequest);
		ajaxConnector.setMaxRequestTime(5000);
		ajaxConnector.sendRequest(handle + ".ajax.component.copyimagesystem.copyimagesystem_Single.copyimagesystem.html", "", AJAXConnector.REQUEST_GET, elementId);
	}
}

function /*void*/ ms_foldingtable_printEntry(/*String*/ elementId, /*String*/ data) {
	// Set load flag for this layer 
	ms_foldingtable_elementsLoaded[elementId] = "true";
	
	// Check layer existence
	if (getLayer(elementId) != undefined) {
		// Get layer
		var /*XMLNode*/ div = getLayer(elementId);
	
		// Parse result and extract JavaScript code. This step is necessary
		// to evaluate the JavaScript code in the result document!
		try {
			var /*RegExp*/ pattern = /<script[^>]*>([\w\W]*?)<\/script>/gi;
			var arrFlash = new Array();
			while (result = pattern.exec(data)) {
				if(result[1].indexOf("insertFlash") == -1) {
					eval(result[1]);
				} else {
					arrFlash[arrFlash.length] = result[1];
				}
			}
			
			// Replace JavaScript code in result document
			data = data.replace(pattern, "");
		} catch (e) {
		}
		
		// Put result into DOM structure
		div.innerHTML = data;
		
		//insert flash with innerhHTML
		for(var i = 0; i < arrFlash.length; i++) {
			eval(arrFlash[i]);
		}		
	}

}

function /*void*/ ms_foldingtable_doToggle(/*String*/ elementId) {
	if (getLayer(elementId + "TR")) {
		if (getLayer(elementId).style.display == "none"){
			var trElement = getLayer(elementId + "TR");

			// inner HTML abspeichern
			ms_foldingtable_tdimage[elementId] = trElement.lastChild.innerHTML;

			// Image TD loeschen
			trElement.removeChild(trElement.lastChild);

			// TD auf colspan 2 stellen
			trElement.firstChild.setAttribute("colSpan", "2");
			ms_foldingtable_tdclass[elementId] = trElement.className;
			trElement.className = "ms-tb3-row-active";
		}
		else if (getLayer(elementId).style.display == "block"){
			var trElement=getLayer(elementId + "TR");

			// TD auf colspan 1 stellen
			trElement.firstChild.removeAttribute("colSpan");
			trElement.className = ms_foldingtable_tdclass[elementId];

			// Altes TD wiederherstellen
			var tdElement = document.createElement("td");
			tdElement.innerHTML = ms_foldingtable_tdimage[elementId];

			// Fuege TD dem TR an
			trElement.appendChild(tdElement);
		}
	}

	if (getLayer(elementId)) {
		var /*String*/ style = getLayer(elementId).style;
		if (style.display == "none") {
			style.display = "block";
		} else if (style.display == "block") {
			style.display = "none";
		}
	}
}

function imageChange(elementId, step, isID, skipBigImage) {
	if (step == null) {
		step = 0;
	}

	if (!ActiveID[elementId]) {
		ActiveID[elementId] = 0;
	}

	if (!isID) {
		ActiveID[elementId] += step;
	} else {
		ActiveID[elementId] = step;
	}

	for (var i = 0; i < ms_foldingtable_maxSize[elementId]; i++) {
		var currentId = "medienelementImage" + i + elementId;
		if (getLayer(currentId)) {
			getLayer(currentId).style.display = 'none';
		}

		var bigImageId = "bigImageIcon" + i + elementId;
		if (getLayer(bigImageId)) {
			getLayer(bigImageId).style.display = 'none';
		}
	}

	if (ActiveID[elementId] == ms_foldingtable_maxSize[elementId]) {
		ActiveID[elementId] = 0;
	} else if (ActiveID[elementId]== -1) {
	 	ActiveID[elementId] = ms_foldingtable_maxSize[elementId] - 1;
	}

	var currentId = "medienelementImage" + ActiveID[elementId]+elementId;

	if (ms_foldingtable_maxSize[elementId] > 0) {
		var imgLayer = getLayer(currentId);
		if (imgLayer) {
			imgLayer.style.display = 'block';

			var bigImageId = "bigImageIcon" + ActiveID[elementId] + elementId;
			if (getLayer(bigImageId)) {
				getLayer(bigImageId).style.display = 'inline';
			}
			
			var parentUL = getElement("UL", imgLayer, "ms-agc");
			setActiveIcon(parentUL, ActiveID[elementId]);

			if (!skipBigImage) {
				var currentIdBig = "medienelementBigImage" + ActiveID[elementId] + elementId;
				setActiveIcon(getLayer(currentIdBig), ActiveID[elementId]);

			}
		}
	}
}

function setActiveIcon(parent, curStep) {
	if(parent != null) {
		var parent = parent.nodeName == "DIV" ? parent.getElementsByTagName("ul")[0] : parent;
		var ulClass = getClassName(parent);
		if(ulClass == "ms-agc") {
			var arrLinks = parent.getElementsByTagName("li");
			for(var i = 0, k  = 0; i < arrLinks.length; i++) {
				var liClass = getClassName(arrLinks[i]);
				if(liClass == "" || liClass == "ms-active") {
					if(k != curStep) {
						removeClass(arrLinks[i]);
					} else {
						setClass(arrLinks[i], "ms-active");
					}
					k++;
				}
			}
		}
	}
}

function toggleOverlay(showOverlay) {
	var div = document.getElementById("ms-overlay");
	if (showOverlay==true) {
		div.style.display = "block";
	} else {
		div.style.display = "none";
	}
}

function bigImage(elementId, step, isID){
	if(ActiveID[elementId] == undefined) {
		ActiveID[elementId] = 1;
	}

	if (step == null) step = 0;

	if(!isID)
		ActiveBigID[elementId] += step;
	else
		ActiveBigID[elementId] = step;

	for (var i = 0; i < ms_foldingtable_maxSize[elementId]; i++) {
		var currentIdBig = "medienelementBigImage" + i + elementId;
		if(getLayer(currentIdBig)){
			getLayer(currentIdBig).style.display = 'none';
		}
	}

	if (ActiveBigID[elementId] == -2) {
		toggleOverlay(false);
		return;
	} else {
		toggleOverlay(true);
	}
	if (ActiveBigID[elementId] == ms_foldingtable_maxSize[elementId]) ActiveBigID[elementId] = 0;
	if (ActiveBigID[elementId] == -1) ActiveBigID[elementId] = ms_foldingtable_maxSize[elementId] - 1;

	imageChange(elementId, step, isID, true);

	var currentIdBig = "medienelementBigImage" + ActiveBigID[elementId]+elementId;
	var objLayer = getLayer(currentIdBig);

	// Initial value for border
	var width = 4;
	var height = 4;
	
	// Get height of header and footer of the global layer
	var divs = objLayer.getElementsByTagName("div");
	if (divs && divs.length > 0) {
		// Set visible (IE BUG, does not return correct values of hidden elements)
		objLayer.style.display = 'block';
		height += divs[0].offsetHeight;
		objLayer.style.display = 'none';
	}
	if (divs && divs.length > 4) {
		// Set visible (IE BUG, does not return correct values of hidden elements)
		objLayer.style.display = 'block';
		height += divs[5].offsetHeight;
		objLayer.style.display = 'none';
	}
	
	// Check Flash width
	var object = objLayer.getElementsByTagName("object")[0];
	if (object) {
		height += parseInt(object.height);
		width += parseInt(object.width);
	}
	
	// Check Image width
	var image = objLayer.getElementsByTagName("img")[0];
	if (image) {
		// Set visible (IE BUG, does not return correct values of hidden elements)
		objLayer.style.display = 'block';
		height += parseInt(image.height);
		width += parseInt(image.width);
		objLayer.style.display = 'none';
	}
	
	// Set Paragraph width
	var currentIdBigP = "medienelementBigImageModalLayerP-" + ActiveBigID[elementId]+elementId;
	var currentIdBigUL = "medienelementBigImageModalLayerUL-" + ActiveBigID[elementId]+elementId;
	var currentElemBigOject = objLayer.getElementsByTagName("object")[0];
	if (!currentElemBigOject) {
		currentElemBigOject = objLayer.getElementsByTagName("img")[0];
	}
	var currentElemBigP = document.getElementById(currentIdBigP);
	var currentElemBigUL = document.getElementById(currentIdBigUL);
	var currentElemBigPMarginRight = 30; 
	var currentElemBigPPaddingLeft = 3;
	var currentElemBigULMarginLeft = 50;
	var currentElemBigULMarginRight = 10;
	
	if (currentElemBigOject && currentElemBigP && currentElemBigUL) {		
		// Set visible (IE BUG, does not return correct values of hidden elements)
		objLayer.style.display = 'block';		
		var currentElemBigOjectWidth = currentElemBigOject.offsetWidth;
		var currentElemBigPWidth = currentElemBigP.offsetWidth + currentElemBigPMarginRight + currentElemBigPPaddingLeft;
		var currentElemBigULWidth = currentElemBigUL.offsetWidth + currentElemBigULMarginLeft + currentElemBigULMarginRight;
		
		if ((currentElemBigPWidth + currentElemBigULWidth) > currentElemBigOjectWidth ) {
			var minPwidth = 300;
			var newPwidth = parseInt(currentElemBigOjectWidth - currentElemBigULWidth - currentElemBigPMarginRight - currentElemBigPPaddingLeft - 10);
			if (newPwidth<minPwidth) {
				newPwidth=minPwidth;
			}
			currentElemBigP.style.width = newPwidth + "px";
		}		
		objLayer.style.display = 'none';
	}
	
	// Calculate position
	var yOffset = (window.pageYOffset) ? window.pageYOffset : document.documentElement.scrollTop;
	var visibleHeight = (window.innerHeight) ? window.innerHeight : document.documentElement.clientHeight;
	if (visibleHeight < height) {
		visibleHeight = height;
	}
	var topPosition = Math.ceil((visibleHeight - height) / 2) + yOffset;
	var leftPosition = Math.ceil((1000 - width) / 2);
	
	// Set position
	objLayer.style.width = width + "px";
	objLayer.style.left = leftPosition + "px";
	objLayer.style.top = topPosition + "px";

	// Check IFrame resource and change size of IFrame
	try {
		var iframe = objLayer.getElementsByTagName("IFRAME")[0];
		iframe.style.height = (height - 4) + "px";
		iframe.style.width = width + "px";
	} catch (/*Exception*/e) {
		// No IFrame available, just ignore...
	}

	// Set visible
	objLayer.style.display = 'block';
	setActiveIcon(objLayer, ActiveBigID[elementId]);
}

function getElement(elemName, element, className) {
	var tag = element.nextSibling;
	while(tag != null && tag.nodeName != elemName) {
		tag = tag.nextSibling;
	}
	var elemClass = getClassName(tag);
	if(elemClass == className || elemClass.indexOf(" " + className)  || elemClass.indexOf(className + " ")) {
		return tag;
	} else {
		return null;
	}
}