158 lines
4.7 KiB
JavaScript
158 lines
4.7 KiB
JavaScript
OV.GetIntegerFromStyle = function (parameter)
|
|
{
|
|
return Math.round (parseFloat (parameter));
|
|
};
|
|
|
|
OV.GetDomElementExternalWidth = function (style)
|
|
{
|
|
let padding = OV.GetIntegerFromStyle (style.paddingLeft) + OV.GetIntegerFromStyle (style.paddingRight);
|
|
let border = OV.GetIntegerFromStyle (style.borderLeftWidth) + OV.GetIntegerFromStyle (style.borderRightWidth);
|
|
let margin = OV.GetIntegerFromStyle (style.marginLeft) + OV.GetIntegerFromStyle (style.marginRight);
|
|
return padding + border + margin;
|
|
};
|
|
|
|
OV.GetDomElementExternalHeight = function (style)
|
|
{
|
|
let padding = OV.GetIntegerFromStyle (style.paddingTop) + OV.GetIntegerFromStyle (style.paddingBottom);
|
|
let border = OV.GetIntegerFromStyle (style.borderTopWidth) + OV.GetIntegerFromStyle (style.borderBottomWidth);
|
|
let margin = OV.GetIntegerFromStyle (style.marginTop) + OV.GetIntegerFromStyle (style.marginBottom);
|
|
return padding + border + margin;
|
|
};
|
|
|
|
OV.GetDomElementInnerDimensions = function (element, outerWidth, outerHeight)
|
|
{
|
|
let style = getComputedStyle (element);
|
|
let width = outerWidth - OV.GetDomElementExternalWidth (style);
|
|
let height = outerHeight - OV.GetDomElementExternalHeight (style);
|
|
return {
|
|
width : width,
|
|
height : height
|
|
};
|
|
};
|
|
|
|
OV.CreateDomElement = function (elementType, className, innerHTML)
|
|
{
|
|
let element = document.createElement (elementType);
|
|
if (className) {
|
|
element.className = className;
|
|
}
|
|
if (innerHTML) {
|
|
element.innerHTML = innerHTML;
|
|
}
|
|
return element;
|
|
};
|
|
|
|
OV.AddDomElement = function (parentElement, elementType, className, innerHTML)
|
|
{
|
|
let element = OV.CreateDomElement (elementType, className, innerHTML);
|
|
parentElement.appendChild (element);
|
|
return element;
|
|
};
|
|
|
|
OV.ClearDomElement = function (element)
|
|
{
|
|
while (element.firstChild) {
|
|
element.removeChild (element.firstChild);
|
|
}
|
|
};
|
|
|
|
OV.InsertDomElementBefore = function (newElement, existingElement)
|
|
{
|
|
existingElement.parentNode.insertBefore (newElement, existingElement);
|
|
};
|
|
|
|
OV.InsertDomElementAfter = function (newElement, existingElement)
|
|
{
|
|
existingElement.parentNode.insertBefore (newElement, existingElement.nextSibling);
|
|
};
|
|
|
|
OV.ShowDomElement = function (element, show)
|
|
{
|
|
if (show) {
|
|
element.style.display = 'block';
|
|
} else {
|
|
element.style.display = 'none';
|
|
}
|
|
};
|
|
|
|
OV.IsDomElementVisible = function (element)
|
|
{
|
|
return element.offsetParent !== null;
|
|
};
|
|
|
|
OV.SetDomElementWidth = function (element, width)
|
|
{
|
|
element.style.width = width.toString () + 'px';
|
|
};
|
|
|
|
OV.SetDomElementHeight = function (element, height)
|
|
{
|
|
element.style.height = height.toString () + 'px';
|
|
};
|
|
|
|
OV.GetDomElementOuterWidth = function (element)
|
|
{
|
|
let style = getComputedStyle (element);
|
|
return element.offsetWidth + OV.GetIntegerFromStyle (style.marginLeft) + OV.GetIntegerFromStyle (style.marginRight);
|
|
};
|
|
|
|
OV.GetDomElementOuterHeight = function (element)
|
|
{
|
|
let style = getComputedStyle (element);
|
|
return element.offsetHeight + OV.GetIntegerFromStyle (style.marginTop) + OV.GetIntegerFromStyle (style.marginBottom);
|
|
};
|
|
|
|
OV.SetDomElementOuterWidth = function (element, width)
|
|
{
|
|
let style = getComputedStyle (element);
|
|
OV.SetDomElementWidth (element, width - OV.GetDomElementExternalWidth (style));
|
|
};
|
|
|
|
OV.SetDomElementOuterHeight = function (element, height)
|
|
{
|
|
let style = getComputedStyle (element);
|
|
OV.SetDomElementHeight (element, height - OV.GetDomElementExternalHeight (style));
|
|
};
|
|
|
|
OV.AddRadioButton = function (parentElement, name, id, text, onChange)
|
|
{
|
|
let label = OV.AddDomElement (parentElement, 'label');
|
|
label.setAttribute ('for', id);
|
|
let radio = OV.AddDomElement (label, 'input', 'ov_radio_button');
|
|
radio.setAttribute ('type', 'radio');
|
|
radio.setAttribute ('id', id);
|
|
radio.setAttribute ('name', name);
|
|
OV.AddDomElement (label, 'span', null, text);
|
|
radio.addEventListener ('change', onChange);
|
|
return radio;
|
|
};
|
|
|
|
OV.AddSelect = function (parentElement, options)
|
|
{
|
|
let selectElement = OV.AddDomElement (parentElement, 'select');
|
|
for (let option of options) {
|
|
let optionElement = OV.AddDomElement (selectElement, 'option');
|
|
optionElement.value = option.value;
|
|
optionElement.innerHTML = option.text;
|
|
}
|
|
return selectElement;
|
|
};
|
|
|
|
OV.SelectRadioButton = function (radioButtons, selectedId)
|
|
{
|
|
for (let radioButton of radioButtons) {
|
|
let isChecked = radioButton.getAttribute ('id') === selectedId;
|
|
radioButton.checked = isChecked;
|
|
}
|
|
};
|
|
|
|
OV.CreateDiv = function (className, innerHTML)
|
|
{
|
|
return OV.CreateDomElement ('div', className, innerHTML);
|
|
};
|
|
|
|
OV.AddDiv = function (parentElement, className, innerHTML)
|
|
{
|
|
return OV.AddDomElement (parentElement, 'div', className, innerHTML);
|
|
};
|