var sAgent = navigator.userAgent.toLowerCase() ;
IsIE = ( sAgent.indexOf("msie") != -1 ) ;
IsFirefox = ( sAgent.indexOf("firefox") != -1 );
IsOpera = ( sAgent.indexOf("opera") != -1 );
var startX=0, startY=0, dragging=false, dragDiv = null;
function dragInit(e, divID){
if (!e) e = window.event;
dragDiv = document.getElementById(divID);
startX=e.clientX-parseInt(dragDiv.style.left);
startY=e.clientY-parseInt(dragDiv.style.top);
dragging=true;
document.onmouseup = function dragEnd(e){
dragging = false;
document.onmouseup = null;
document.onmousemove = null;
/*
if (IsGecko) dragDiv.style.MozOpacity=1
else dragDiv.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)"
*/
}
document.onmousemove = function drag(e){
if (!e) e = window.event;
if (!dragging) return false;
dragDiv.style.left=e.clientX-startX+'px';
dragDiv.style.top=e.clientY-startY+'px';
/*
if (IsGecko) dragDiv.style.MozOpacity=0.70
else dragDiv.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=70)"
*/
if (e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
if(e.preventDefault) e.preventDefault();
else e.returnValue = false;
}
if (e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
if(e.preventDefault) e.preventDefault();
else e.returnValue = false;
}
function event_element(eventSrc){
return (IsIE?eventSrc.srcElement:eventSrc.target);
}
function exGetElementById(elementId) {
if (document.getElementById) {
return document.getElementById(elementId);
}
else if (document.all) {
return document.all[elementId];
}
else return null;
}
function move_element_up(element)
{
if (element){
if (element.previousSibling){
if (element.swapNode){
element.swapNode(element.previousSibling);
} else {
element.parentNode.insertBefore(element,element.previousSibling);
}
}
}
}
function move_element_down(element)
{
if (element){
if (element.nextSibling){
if (element.swapNode){
element.swapNode(element.nextSibling);
} else {
element.parentNode.insertBefore(element,element.nextSibling.nextSibling);
}
}
}
}
function delete_element(element){
if (element != null)
element.parentNode.removeChild(element,true);
}
function get_parent_tag(element,parent_name)
{
var check_element = element.parentNode;
while ((check_element) && ((check_element.nodeType == 3) || (check_element.nodeName.toLowerCase()!=parent_name))) {
check_element=check_element.parentNode;
}
return check_element;
}
function get_parent_path(element,parent_element)
{
var result = new String();
var current = element;
while ((current)&&(current!=parent_element)) {
if (result.length!=0) result += ".";
result += "parentNode";
current = current.parentNode;
}
return (current)?result:null;
}
function is_markered(element,marker)
{
return ((element.nodeType == 1) && (element.getAttribute("marker")==marker))
}
function flat_html(element) {
var collection = new Array();
var inline = function(parent) {
for (var i = 0; i < parent.childNodes.length; i++) {
var child = parent.childNodes[i];
if (child.nodeType == 1) {
collection[collection.length] = child;
inline(child);
}
}
}
inline(element);
return collection;
}
function get_child_elements(element) {
var collection = new Array();
for (var i = 0; i < element.childNodes.length; i++) {
var child = element.childNodes[i];
if (child.nodeType == 1) {
collection[collection.length] = child;
}
}
return collection;
}
function get_parent_marker(element,marker)
{
var check_element = element.parentNode;
while (check_element && !is_markered(check_element,marker)) {
check_element=check_element.parentNode;
}
return check_element;
}
function get_child_marker(element,marker)
{
var check_element = null;
if (element.childNodes.length>0){
check_element = element.firstChild;
while (check_element && !is_markered(check_element,marker)) {
var inner_node = get_child_marker(check_element,marker);
if (inner_node) return inner_node;
check_element = check_element.nextSibling;
}
}
return check_element;
}
function get_child_marker_array(element_array,marker)
{
var collection = new Array();
for(var i=0;i<element_array.length;i++){
if (is_markered(element_array[i],marker)) {
collection[collection.length] = element_array[i];
}
}
return collection;
}
function replace_inner_text(element,text)
{
if (element) {
if (element.childNodes.length>0){
element.replaceChild(document.createTextNode(text),element.firstChild);
} else {
element.appendChild(document.createTextNode(text));
}
}
}
function replace_inner_link(element,text,url)
{
var aElement = document.createElement('A')
aElement.href = url;
aElement.target = "_blank";
aElement.appendChild(document.createTextNode(text));
if (element.childNodes.length>0){
element.replaceChild(aElement,element.firstChild);
} else {
element.appendChild(aElement);
}
}
function clear_element_content(element){
while (element.childNodes.length>0)
element.removeChild(element.childNodes[0]);
}
function flip_visible(element){
element.style.display=(element.style.display=="none"?"":"none");
return !(element.style.display=="none");
}
function set_visible(element,visible){
element.style.display=(visible?"":"none");
}
function is_visible(element){
return (element.style.display!="none");
}
function attach_event(element,eventName,proc)
{
if (element.attachEvent){
element.attachEvent("on" + eventName,proc);
} else {
element.addEventListener(eventName,proc,false);
}
}
function get_global_window() {
var check_window = window;
while (check_window && check_window.frameElement) {
if (check_window.frameElement.ownerDocument.parentWindow) {
check_window=check_window.frameElement.ownerDocument.parentWindow;
} else {
check_window=check_window.frameElement.ownerDocument.defaultView;
}
}
return check_window;
}
function showmsg(text) {
var global_window = get_global_window();
var elErrorBody = global_window.document.createElement('div');
elErrorBody.style.position = "absolute";
elErrorBody.style.left = "0px";
elErrorBody.style.top = "0px";
elErrorBody.style.width = "100%";
elErrorBody.style.height = "100%";
elErrorBody.id = "error_div_global";
global_window.document.body.appendChild(elErrorBody);
elErrorBody.innerHTML = unescape(text);
elErrorBody.style.display = "";
if (typeof(on_error) == "function") {
on_error();
}
}
function closemsg() {
var global_window = get_global_window();
delete_element(global_window.exGetElementById("error_div_global"));
}
function showloading() {
var global_window = get_global_window();
var elErrorBody = global_window.document.createElement('div');
elErrorBody.style.position = "absolute";
elErrorBody.style.left = "0px";
elErrorBody.style.top = "0px";
elErrorBody.style.width = "100%";
elErrorBody.style.height = "100%";
elErrorBody.id = "loading_div_global";
global_window.document.body.appendChild(elErrorBody);
elErrorBody.style.display = "";
}
function closeloading() {
var global_window = get_global_window();
delete_element(global_window.exGetElementById("loading_div_global"));
}
function executescript(controlscript, flag,handbook) {
if (controlscript != "" && controlscript != null) {
var symbol = controlscript.substring(2,3);
if(symbol == flag && symbol != " ") { eval(controlscript);}
else if (symbol != (1-flag) || symbol == " ") {eval(controlscript);}
}
}
function DynamicList(element,DropDownValues,DropDownList, NextFunc) {
var list = element.list;
list.open = false;
list.innerHTML = "";
row_even = 1;
if (DropDownValues.length > 0) {
DropDownList.unshift(unescape(" "));
DropDownValues.unshift("");
}
if (DropDownValues.length > 15) {
list.style.overflowY = 'scroll';
list.style.height = '200px';
list.style.width =  '360px';
}
for (i=0; i<DropDownValues.length; i++) {
var tr = document.createElement("div");
tr.row_color = row_even;
if (row_even) tr.style.backgroundColor = "#F5F5F5";
else tr.style.backgroundColor = "#FFFFFF";
row_even = 1 - row_even;
tr.id = DropDownValues[i];
tr.name = DropDownList[i];
list.appendChild(tr);
replace_inner_text(tr,DropDownList[i]);
attach_event(tr,"click",function(eventSrc){
var source = event_element(eventSrc)
list.realValue = source.id;
list.displayValue = source.name;
list.style.display = "none";
list.open = false;
NextFunc();
});
attach_event(tr,"mouseover",
function(eventSrc){
var source = event_element(eventSrc)
source.style.backgroundColor='#316AC5';
source.style.color = '#FFFFFF';
});
attach_event(tr,"mouseout",
function(eventSrc){
var source = event_element(eventSrc)
if (source.row_color) source.style.backgroundColor='#F5F5F5';
else source.style.backgroundColor='#FFFFFF';
source.style.color = '#000000';
});
list.open = true;
}
if (DropDownValues.length == 0) {
list.style.display = "none";
list.open = false;
}
attach_event(document,"mouseup",function(eventSrc){
var source = event_element(eventSrc);
if (!list.open) {
return false;
}
var el = source;
for (; el != null && el != list; el = el.parentNode);
if (el == null) {
list.style.display = "none";
list.open = false;
if (typeof(element.proverka)=="function") element.proverka(element);
if (typeof(element.proverka2)=="function") element.proverka2();
}
});
}
function BuildingTablePages(elementname,PgCount,RefreshProc) {
list = exGetElementById(elementname + "list");
createCells = true;
PageTable = list.childNodes;
if (PageTable.length>0) {
CreatedCells = PageTable.item(0).getElementsByTagName("TD").length;
if ( CreatedCells<=PgCount ) {
left = CreatedCells + 1;
}
else {
createCells = false;
T = PageTable.item(0);
table = T;
CellsForDelete = CreatedCells - PgCount;
RowsForDelete = 1+Math.floor( (CellsForDelete - ( 5 - (T.rows.length*5 - CreatedCells) ))/5 );
for (i=1; i<=RowsForDelete; i++ )   T.deleteRow(-1);
RemainedCells = T.getElementsByTagName("TD").length - PgCount;
for (i=1; i<=RemainedCells; i++)  T.rows.item(T.rows.length-1).deleteCell(-1);
}
}
else {
table = document.createElement("table");
list.appendChild(table);
left = 1;
}
element = exGetElementById(elementname);
list.open = false;
if (PgCount > 5) {
table.width = 150;
}
else {
if (PgCount != 0)  table.width = 30 * PgCount;
}
if (PgCount > 20) {
list.style.overflowY = 'scroll';
list.style.height = '90px';
if (IsIE)
{
s = list.style.width;
list.style.width =  String(Number( s.replace('px','')) + 10 )+'px';
}
}
else {
list.style.overflowY = 'visible';
list.style.height = 'auto';
}
if (table.rows.length > 0) tr = table.rows.item( table.rows.length-1 );
for (i=left; (i<=PgCount) && (createCells); i++) {
if (i % 5 == 1) tr = table.insertRow(-1);
td = tr.insertCell(-1);
td.id = i;
td.innerHTML = i;
attach_event(td,"click",function(eventSrc){
var source = event_element(eventSrc)
element.value = source.id;
list.style.display = "none";
list.open = false;
RefreshProc();
});
attach_event(td,"mouseover",function(eventSrc){
var source = event_element(eventSrc)
source.className = "activeCell";
});
attach_event(td,"mouseout",function(eventSrc){
var source = event_element(eventSrc)
source.className = "";
});
}
list.open =true;
attach_event(document,"mouseup",function(eventSrc){
var source = event_element(eventSrc);
if (!list.open) return false;
var el = source;
for (; el != null && el != list; el = el.parentNode);
if (el == null) {
list.style.display = "none";
list.open = false;
}
});
if (PgCount == 0) {
list.style.display = "none";
list.open = false;
}
}
function getAbsolutePos(el) {
var SL = 0, ST = 0;
var is_div = /^div$/i.test(el.tagName);
if (is_div && el.scrollLeft)
SL = el.scrollLeft;
if (is_div && el.scrollTop)
ST = el.scrollTop;
var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
if (el.offsetParent) {
var tmp = getAbsolutePos(el.offsetParent);
r.x += tmp.x;
r.y += tmp.y;
}
return r;
};
