
function jstrprintf() {
    len = arguments.length;
    if (len == 0) {
        return;
    }
    if (len == 1) {
        return arguments[0];
    }
    var result;
    var regexstr;
    var replstr;
    var formatstr;
    var re;
    result = "";
    regexstr = "";
    replstr = "";
    formatstr = arguments[0];
    for (var i = 1; i < arguments.length; i++) {
        replstr += String(i + 100) + arguments[i] + String(i + 100);
        regexstr += String(i + 100) + "(.*)" + String(i + 100);
    }
    re = new RegExp(regexstr);
    var result;
    result = replstr.replace(re, formatstr);
    return result;
}
function AddPx(num) {
    return String(num) + "px";
}
function findParentDiv(obj) {
    while (obj) {
        if (obj.tagName.toUpperCase() == "DIV") {
            return obj;
        }
        if (obj.parentElement) {
            obj = obj.parentElement;
        } else {
            return null;
        }
    }
    return null;
}
function findParentTagById(obj, parentname) {
    while (obj) {
        if (obj.id.match(parentname)) {
            return obj;
        }
        if (obj.parentElement) {
            obj = obj.parentElement;
        } else {
            return null;
        }
    }
    return null;
}
var topZ = 1;
var startX;
var startY;
startX = 100;
startY = 100;
nextID = 1;
function createDropdownWindow(x, y, caption, theWidth, canMove, contentSource) {
    startX = x;
    startY = y;
    var newdiv;
    newdiv = document.createElement("div");
    newdiv.id = "dragTitle" + String(nextID);
    newdiv.className = "divDragTitle";
    newdiv.style.width = theWidth;
    newdiv.style.left = AddPx(startX);
    newdiv.style.top = AddPx(startY);
    newdiv.style.zIndex = topZ;
    newdiv.innerHTML = jstrprintf("<div class=\"element rightColHalf\"><div class=\"element_top\"><h2>$1</h2></div>" + "<img src=\"/alternat-docs/images/layout/tl.png\" class=\"tl\" /><img src=\"/alternat-docs/images/layout/tr.png\" class=\"tr\" />" + "</div>" , caption, nextID);
    if (canMove) {
        if (newdiv.addEventListener) {
            newdiv.addEventListener("mousemove", function (e) {
                return mouseMove(e);
            }, true);
            newdiv.addEventListener("mousedown", function (e) {
                return mouseDown(e);
            }, true);
            newdiv.addEventListener("mouseup", function (e) {
                return mouseUp(e);
            }, true);
        } else {
            newdiv.attachEvent("onmousemove", function (e) {
                return mouseMove(e);
            });
            newdiv.attachEvent("onmousedown", function (e) {
                return mouseDown(e);
            });
            newdiv.attachEvent("onmouseup", function (e) {
                return mouseUp(e);
            });
        }
    }
    document.body.appendChild(newdiv);
    var newdiv2;
    newdiv2 = document.createElement("div");
    newdiv2.id = "dragContent" + String(nextID);
    newdiv2.className = "divDragContent";
    newdiv2.style.width = theWidth;
    newdiv2.style.left = AddPx(startX);
    newdiv2.style.top = AddPx(startY + 20);
    newdiv2.style.zIndex = topZ;
    if (contentSource) {
        newdiv2.innerHTML = document.getElementById(contentSource).innerHTML;
    }
    if (canMove) {
        if (newdiv2.addEventListener) {
            newdiv2.addEventListener("mousedown", function (e) {
                return contentMouseDown(e);
            }, true);
        } else {
            newdiv2.attachEvent("onmousedown", function (e) {
                return contentMouseDown(e);
            });
        }
    }
    document.body.appendChild(newdiv2);
    newdiv.content = newdiv2;
    newdiv2.titlediv = newdiv;
    topZ += 1;
    startX += 25;
    startY += 25;
    nextID++;
}
function toggleContentWin(id) {
    var elem = document.getElementById("dragContent" + String(id));
    var img = document.getElementById("dragButton" + String(id));
    if (elem.style.display == "none") {
        elem.style.display = "block";
        img.src = "static/images/commons/min.gif";
    } else {
        elem.style.display = "none";
        img.src = "static/images/commons/restore.gif";
    }
}
var dragObjTitle = null;
var dragOffsetX = 0;
var dragOffsetY = 0;
function contentMouseDown(e) {
    var dragContent = e.srcElement || e.currentTarget;
    if (!dragContent.id.match("dragContent")) {
        dragContent = findParentTagById(dragContent, "dragContent");
    }
    if (dragContent) {
        dragContent.style.zIndex = topZ;
        dragContent.titlediv.style.zIndex = topZ;
        topZ++;
    }
}
function mouseDown(e) {
    var curElem = e.srcElement || e.target;
    var dragTitle = e.currentTarget || findParentDiv(curElem);
    if (dragTitle) {
        if (dragTitle.className != "divDragTitle") {
            return;
        }
    }
    if (curElem && dragTitle) {
        addDocumentHandlers(true);
        dragTitle.style.zIndex = topZ;
        dragTitle.content.style.zIndex = topZ;
        topZ++;
        if (curElem.className != "divTitleButton") {
            dragObjTitle = dragTitle;
            dragOffsetX = e.clientX - dragTitle.offsetLeft;
            dragOffsetY = e.clientY - dragTitle.offsetTop;
            if (e.preventDefault) {
                e.preventDefault();
            } else {
                document.onselectstart = function () {
                    return false;
                };
                e.cancelBubble = true;
                return false;
            }
        }
    }
}
function mouseMove(e) {
    if (dragObjTitle) {
        if (!e.preventDefault) {
            if (e.button == 0) {
                finishDrag(e);
                return;
            }
        }
        dragObjTitle.style.left = AddPx(e.clientX - dragOffsetX);
        dragObjTitle.style.top = AddPx(e.clientY - dragOffsetY);
        dragObjTitle.content.style.left = AddPx(e.clientX - dragOffsetX);
        dragObjTitle.content.style.top = AddPx(e.clientY - dragOffsetY + 20);
        if (e.preventDefault) {
            e.preventDefault();
        } else {
            e.cancelBubble = true;
            return false;
        }
    }
}
function mouseUp(e) {
    if (dragObjTitle) {
        finishDrag(e);
    }
}
function finishDrag(e) {
    var finalX = e.clientX - dragOffsetX;
    var finalY = e.clientY - dragOffsetY;
    if (finalX < 0) {
        finalX = 0;
    }
    if (finalY < 0) {
        finalY = 0;
    }
    dragObjTitle.style.left = AddPx(finalX);
    dragObjTitle.style.top = AddPx(finalY);
    dragObjTitle.content.style.left = AddPx(finalX);
    dragObjTitle.content.style.top = AddPx(finalY + 20);
    dragObjTitle = null;
    addDocumentHandlers(false);
    if (e.preventDefault) {
        e.preventDefault();
    } else {
        document.onselectstart = null;
        e.cancelBubble = true;
        return false;
    }
}
function addDocumentHandlers(addOrRemove) {
    if (addOrRemove) {
        if (document.body.addEventListener) {
            document.addEventListener("mousedown", function (e) {
                return mouseDown(e);
            }, true);
            document.addEventListener("mousemove", function (e) {
                return mouseMove(e);
            }, true);
            document.addEventListener("mouseup", function (e) {
                return mouseUp(e);
            }, true);
        } else {
            document.onmousedown = function () {
                mouseDown(window.event);
            };
            document.onmousemove = function () {
                mouseMove(window.event);
            };
            document.onmouseup = function () {
                mouseUp(window.event);
            };
        }
    } else {
        if (document.body.addEventListener) {
            remove.addEventListener("mousedown", function (e) {
                return mouseDown(e);
            }, true);
            remove.addEventListener("mousemove", function (e) {
                return mouseMove(e);
            }, true);
            remove.addEventListener("mouseup", function (e) {
                return mouseUp(e);
            }, true);
        } else {
            document.onmousedown = null;
            document.onmousemove = null;
            document.onmouseup = null;
        }
    }
}


