﻿var eventsLock = false;

window.onload = function() {
	checkJavaScriptValidity();
	PanelResize();
}

window.onresize = function() {
	PanelResize();
}

function checkJavaScriptValidity() {
	document.getElementById("containerDiv").style.visibility = 'visible';
}



function PanelResize() {
	var pagePadding = 5;
	var ctrlHeight = 0;
	var ctrlWidth = 0;
	var minWidth = 200;
	var minHeight = 200;
	var ctrlMargin = 15;

	document.getElementById("containerDiv").style.height = GetSize($util.getWinRect(window).height, pagePadding, minHeight) + "px";
	document.getElementById("containerDiv").style.width = GetSize($util.getWinRect(window).width, pagePadding, minWidth) + "px";
	var webSplitter = $find("WebSplitter1dpxtConfidity");
	if (eventsLock == true)
		return;
	try {
		eventsLock = true;
		if (webSplitter) {
			try {
				webSplitter.beginUpdate();
				var leftPane;
				var rightPane;
				var treeView;
				var xtwwuLogInctrl;

				var splitterElement = webSplitter.get_element();
				splitterElement.style.height = GetSize($util.getWinRect(window).height, pagePadding * 2, minHeight) + "px";

				webSplitter.layout();
				leftPane = webSplitter.getPaneAt(0);
				rightPane = webSplitter.getPaneAt(1);

				if (leftPane) {
					var leftPaneelement = leftPane.get_element();
					treeView = leftPane.findChild("wpnlTreeView");
					xtwwuLogInctrl = leftPane.findChild("wpnlLogin");
					if (xtwwuLogInctrl) {
						ctrlHeight = xtwwuLogInctrl.offsetHeight;
						if (CheckBrowserName("Internet Explorer")) {
							ctrlHeight = ctrlHeight + ctrlMargin + pagePadding;
						}
						else if ((CheckBrowserName("Firefox")) || (CheckBrowserName("Netscape")) || (CheckBrowserName("Opera"))) {
							ctrlHeight = ctrlHeight + pagePadding;
						}
					}
					if (treeView) {
						treeView.style.height = GetSize(leftPaneelement.offsetHeight, ctrlHeight, minHeight) + "px";
					}
				}
				if (rightPane) {
					var rightPaneelement = rightPane.get_element();
					var menuPanel = rightPane.findChild("cofidity_topMenu");
					if (menuPanel) {
						ctrlHeight = menuPanel.offsetHeight;
						if (CheckBrowserName("Internet Explorer")) {
							ctrlHeight = ctrlHeight + ctrlMargin + pagePadding * 2;
						}
						else {
							ctrlHeight = ctrlHeight + pagePadding*2 + ctrlMargin;
						}
					}
					var configurator = rightPane.findChild("RtTabDPTX_cp");
					if (configurator) {
						if (CheckBrowserName("Internet Explorer")) {
							ctrlHeight = GetSize(rightPaneelement.offsetHeight, ctrlHeight, minHeight);
						}
						else {
							ctrlHeight = GetSize(rightPaneelement.offsetHeight, ctrlHeight, minHeight);
						}
						configurator.style.height = ctrlHeight + "px";
					}

					//				var rightPanewebSplitter;
					//				var rightPanewebSplitterElement = rightPane.findChild("configuratorWebSplitter");
					//				if (rightPanewebSplitterElement) {
					//					rightPanewebSplitterElement.style.height = GetSize(rightPaneelement.offsetHeight, ctrlHeight, minHeight) + "px";
					//					rightPanewebSplitter = $find(rightPanewebSplitterElement.id);
					//				}
					//				 
					//				if (rightPanewebSplitter) {

					//					rightPanewebSplitter.layout();
					//					var rightPanewebSplitterleftPane = rightPanewebSplitter.getPaneAt(0);
					//					var rightPanewebSplitterrightPane = rightPanewebSplitter.getPaneAt(1);
					//					if (rightPanewebSplitterleftPane) {
					//						var rightPanewebSplitterleftPaneelement = rightPanewebSplitterleftPane.get_element();
					//						var configurator = rightPanewebSplitterleftPane.findChild("RtTabDPTX");
					//						if (configurator) {
					//							if (CheckBrowserName("Internet Explorer")) {
					//								ctrlHeight = GetSize(rightPanewebSplitterleftPaneelement.offsetHeight, ctrlMargin * 2, minHeight);
					//							}
					//							else if ((CheckBrowserName("Firefox")) || (CheckBrowserName("Netscape")) || (CheckBrowserName("Opera"))) {
					//							ctrlHeight = GetSize(rightPanewebSplitterleftPaneelement.offsetHeight, pagePadding * 2, minHeight);
					//							}
					//							else {
					//								ctrlHeight = GetSize(rightPanewebSplitterleftPaneelement.offsetHeight, pagePadding, minHeight);
					//							}
					//							configurator.style.height = ctrlHeight + "px";
					//						}
					//					}
					//					if (rightPanewebSplitterrightPane) {
					//						var rightPanewebSplitterrightPaneelement = rightPanewebSplitterrightPane.get_element();
					//						var drawing;
					//						if ((CheckBrowserName("Firefox")) || (CheckBrowserName("Netscape")) || (CheckBrowserName("Opera"))) {
					//							drawing = rightPanewebSplitterrightPane.findChild("uwtFrameContainer");
					//							ctrlHeight = GetSize(rightPanewebSplitterrightPaneelement.offsetHeight, pagePadding * 2, minHeight);
					//						}
					//						else {
					//							drawing = rightPanewebSplitterrightPane.findChild("ifrDrawingACAD");
					//							ctrlHeight = GetSize(rightPanewebSplitterrightPaneelement.offsetHeight, ctrlMargin * 2, minHeight);
					//						}
					//						if (drawing) {
					//							drawing.style.height = ctrlHeight + "px";
					//						}
					//					}
					//				}
				}
			}
			finally {
				webSplitter.endUpdate();
			}
		}
		else {
			webSplitter = document.getElementById("WebSplitter1dpxtConfidity");
			if (webSplitter) {
				webSplitter.style.height = GetSize($util.getWinRect(window).height, pagePadding * 2, minHeight) + "px";
			}
			ctrlHeight = GetFirstElementHeight("LoginPanel");
			ctrlHeight = ctrlHeight + ctrlMargin * 2;
			SetElementSize("TreeViewPanel", 0, ctrlHeight, 0, minHeight, false, true);
			ctrlHeight = GetFirstElementHeight("menu");
			if (ctrlHeight == 0)
				return;
//			ctrlHeight = ctrlHeight + ctrlMargin;
			ctrlHeight = ctrlHeight + ctrlMargin * 2 + pagePadding;
			SetElementSize("RtTabDPTX", 0, ctrlHeight, 0, minHeight, false, true);

			ctrlWidth = GetFristElementWidth("TreeViewPanel");
			ctrlWidth = ctrlWidth + GetFristElementWidth("RtTabDPTX");
			ctrlWidth = ctrlWidth + ctrlMargin * 2;
			SetElementSize("Drawing", ctrlWidth, ctrlHeight, minWidth, minHeight, true, true);
		}
	}
	catch (ex) {
	}
	finally {
		eventsLock = false;
	}
}

function GetSize(currentSize, defSize, minSize) {
	var ctrlSize = currentSize - defSize;
	if (ctrlSize < minSize) { ctrlSize = minSize; }
	return ctrlSize;
}

function SetElementSize(elementClassName, defWidth, defHeight, minWidth, minHeight, changeWidth, changeHeight) {
	try {
		var ctrlHeight;
		var ctrlWidth;
		var elements = document.getElementsByClassName(elementClassName);
		for (i = 0; i < elements.length; i++) {
			var elm = elements[i];
			if (changeHeight == true) {
				ctrlHeight = elm.ownerDocument.body.offsetHeight;
				ctrlHeight = ctrlHeight - defHeight;
				if (ctrlHeight < minHeight) { ctrlHeight = minHeight; }
				//change the height
				elm.style.height = ctrlHeight;
			}

			if (changeWidth == true) {
				ctrlWidth = elm.ownerDocument.body.offsetWidth;
				ctrlWidth = ctrlWidth - defWidth;
				if (ctrlWidth < minWidth) { ctrlWidth = minWidth; }
				//change the width
				elm.style.width = ctrlWidth;
			}
		}
	}
	catch (ex) {
	}
	finally {
	}
}

function GetFristElementWidth(elementClassName) {
	try {
		var ctrlWidth;
		var elements = document.getElementsByClassName(elementClassName);
		for (i = 0; i < elements.length; i++) {
			var elm = elements[i];
			ctrlWidth = elm.offsetWidth;
			return ctrlWidth;
		}
		return 0;
	}
	catch (ex) {
		return 0;
	}
}

function GetFirstElementHeight(elementClassName) {
	try {
		var ctrlHeight;
		var elements = document.getElementsByClassName(elementClassName);
		for (i = 0; i < elements.length; i++) {
			var elm = elements[i];
			ctrlHeight = elm.offsetHeight;
			return ctrlHeight;
		}
		return 0;
	}
	catch (ex) {
		return 0;
	}
}

document.getElementsByClassName = function(classname) {
	var elements = document.getElementsByTagName("*");
	var elementsCount = elements.length;
	var regexp = new RegExp('\\b' + classname + '\\b');
	var classItems = new Array()
	var classname;
	for (var i = 0; i < elementsCount; i++) {
		var item = elements[i];
		if (item.className != "") {
			classname = item.className;
		}
		if (regexp.test(item.className)) {
			classItems.push(item);
		}
	}
	return classItems;
}

function CheckBrowserName(name){   
  var agent = navigator.appName.toLowerCase();   
  if (agent.indexOf(name.toLowerCase())>-1) {   
    return true;   
  }   
  return false;
 }


