function Menu_HoverStatic(item) {
    var node = Menu_HoverRoot(item);
    var data = Menu_GetData(item);
    if (!data) return;
    __disappearAfter = data.disappearAfter;
    Menu_Expand(node, data.horizontalOffset, data.verticalOffset); 
}

function WebForm_GetElementByTagName(element, tagName) {
    var elements = WebForm_GetElementsByTagName(element, tagName);
    if (elements && elements.length > 0) {
        return elements[0];
    }
    else return null;
}

function WebForm_GetElementsByTagName(element, tagName) {
    if (element && tagName) {
        if (element.getElementsByTagName) {
            return element.getElementsByTagName(tagName);
        }
        if (element.all && element.all.tags) {
            return element.all.tags(tagName);
        }
    }
    return null;
}

function Menu_GetData(item) {
    if (!item.data) {
        var a = (item.tagName.toLowerCase() == "a" ? item : WebForm_GetElementByTagName(item, "a"));
        var menu = Menu_FindMenu(a);
        try {
            item.data = eval(menu.id + "_Data");
        }
        catch(e) {}
    }
    return item.data;
}
function Menu_HideItems(items) {
    if (document.body.__oldOnClick) {
        document.body.onclick = document.body.__oldOnClick;
        document.body.__oldOnClick = null;
    }
    Menu_ClearInterval();
    if (!items || ((typeof(items.tagName) == "undefined") && (items instanceof Event))) {
        items = __rootMenuItem;
    }
    var table = items;
    if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) {
        table = WebForm_GetElementByTagName(table, "TABLE");
    }
    if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) {
        return;
    }
    var rows = table.rows ? table.rows : table.firstChild.rows;
    var isVertical = false;
    for (var r = 0; r < rows.length; r++) {
        if (rows[r].id) {
            isVertical = true;
            break;
        }
    }
    var i, child, nextLevel;
    if (isVertical) {
        for(i = 0; i < rows.length; i++) {
            if (rows[i].id) {
                child = WebForm_GetElementById(rows[i].id + "Items");
                if (child) {
                    Menu_HideItems(child);
                }
            }
            else if (rows[i].cells[0]) {
                nextLevel = WebForm_GetElementByTagName(rows[i].cells[0], "TABLE");
                if (nextLevel) {
                    Menu_HideItems(nextLevel);
                }
            }
        }
    }
    else {
        for(i = 0; i < rows[0].cells.length; i++) {
            if (rows[0].cells[i].id) {
                child = WebForm_GetElementById(rows[0].cells[i].id + "Items");
                if (child) {
                    Menu_HideItems(child);
                }
            }
            else {
                nextLevel = WebForm_GetElementByTagName(rows[0].cells[i], "TABLE");
                if (nextLevel) {
                    Menu_HideItems(rows[0].cells[i].firstChild);
                }
            }
        }
    }
    if (items && items.id) {
        PopOut_Hide(items.id);
    }
}

function Menu_HoverRoot(item) {
    var node = (item.tagName.toLowerCase() == "td") ?
        item:
        item.cells[0];
    var data = Menu_GetData(item);
    if (!data) {
        return null;
    }
    var nodeTable = WebForm_GetElementByTagName(node, "table");
    if (data.staticHoverClass) {
        nodeTable.hoverClass = data.staticHoverClass;
        WebForm_AppendToClassName(nodeTable, data.staticHoverClass);
    }
    node = nodeTable.rows[0].cells[0].childNodes[0];
    if (data.staticHoverHyperLinkClass) {
        node.hoverHyperLinkClass = data.staticHoverHyperLinkClass;
        WebForm_AppendToClassName(node, data.staticHoverHyperLinkClass);
    }
    return node;
}

function Menu_Key(item) {
    var event;
    if (window.event) {
        event = window.event;
    }
    else {
        event = item;
        item = event.currentTarget;
    }
    var key = (event ? event.keyCode : -1);
    var data = Menu_GetData(item);
    if (!data) return;
    var horizontal = Menu_IsHorizontal(item);
    var a = WebForm_GetElementByTagName(item, "A");
    var nextItem, parentItem, previousItem;
    if ((!horizontal && key == 38) || (horizontal && key == 37)) {
        previousItem = Menu_FindPrevious(item);
        while (previousItem && previousItem.disabled) {
            previousItem = Menu_FindPrevious(previousItem);
        }
        if (previousItem) {
            Menu_Focus(previousItem);
            Menu_Expand(previousItem, data.horizontalOffset, data.verticalOffset, true);
            event.cancelBubble = true;
            if (event.stopPropagation) event.stopPropagation();
            return;
        }
    }
    if ((!horizontal && key == 40) || (horizontal && key == 39)) {
        if (horizontal) {
            var subMenu = Menu_FindSubMenu(a);
            if (subMenu && subMenu.style && subMenu.style.visibility && 
                subMenu.style.visibility.toLowerCase() == "hidden") {
                Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true);
                event.cancelBubble = true;
                if (event.stopPropagation) event.stopPropagation();
                return;
            }
        }
        nextItem = Menu_FindNext(item);
        while (nextItem && nextItem.disabled) {
            nextItem = Menu_FindNext(nextItem);
        }
        if (nextItem) {
            Menu_Focus(nextItem);
            Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true);
            event.cancelBubble = true;
            if (event.stopPropagation) event.stopPropagation();
            return;
        }
    }
    if ((!horizontal && key == 39) || (horizontal && key == 40)) {
        var children = Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true);
        if (children) {
            var firstChild;
            children = WebForm_GetElementsByTagName(children, "A");
            for (var i = 0; i < children.length; i++) {
                if (!children[i].disabled && Menu_IsSelectable(children[i])) {
                    firstChild = children[i];
                    break;
                }
            }
            if (firstChild) {
                Menu_Focus(firstChild);
                Menu_Expand(firstChild, data.horizontalOffset, data.verticalOffset, true);
                event.cancelBubble = true;
                if (event.stopPropagation) event.stopPropagation();
                return;
            }
        }
        else {
            parentItem = Menu_FindParentItem(item);
            while (parentItem && !Menu_IsHorizontal(parentItem)) {
                parentItem = Menu_FindParentItem(parentItem);
            }
            if (parentItem) {
                nextItem = Menu_FindNext(parentItem);
                while (nextItem && nextItem.disabled) {
                    nextItem = Menu_FindNext(nextItem);
                }
                if (nextItem) {
                    Menu_Focus(nextItem);
                    Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true);
                    event.cancelBubble = true;
                    if (event.stopPropagation) event.stopPropagation();
                    return;
                }
            }
        }
    }
}
    
function Menu_Unhover(item) {
    var node = (item.tagName.toLowerCase() == "td") ?
        item:
        item.cells[0];
    var nodeTable = WebForm_GetElementByTagName(node, "table");
    if (nodeTable.hoverClass) {
        WebForm_RemoveClassName(nodeTable, nodeTable.hoverClass);
    }
    node = nodeTable.rows[0].cells[0].childNodes[0];
    if (node.hoverHyperLinkClass) {
        WebForm_RemoveClassName(node, node.hoverHyperLinkClass);
    }
    Menu_Collapse(node);
}


var WindowObjectReference;
function winOpen(url, name, height, width) 
{
  var str = "height=" + height + ",innerHeight=" + height;
  str += ",width=" + width + ",innerWidth=" + width;
   
  if (window.screen) {
    var ah = screen.availHeight - 30;
    var aw = screen.availWidth - 10;

    var xc = (aw - width) / 2;
    var yc = (ah - height) / 2;

    str += ",left=" + xc + ",screenX=" + xc;
    str += ",top=" + yc + ",screenY=" + yc;
    
  }
  return WindowObjectReference = window.open(url, name, str);
}

function plus_minus(img, elID)
{
    var el = document.getElementById(elID);
    if (el.style.display == 'none')
    {
        img.src = 'img/minus.gif';
        el.style.display = "block";
    }
    else
    {
        img.src = 'img/plus.gif';
        el.style.display = "none"; 
    }
}

function lahti_kinni(ID)
{
    var el = document.getElementById(ID);
    if (el.style.display == 'none')
    {
        el.style.display = "block";
    }
    else
    {
        el.style.display = "none"; 
    }
}

var mouseOverElement = Array();
var activeElementID = null;
function toggleVisibility(elID, tween)
{
    el = document.getElementById(elID);
    if (el.style.display == "none")
    {
        el.style.display = "block";
        if (tween == 'notween') return;
        
        changeOpac(0, elID);
        opacity(elID, 0, 90, 500);
        
        mouseOverElement[elID] = false;
        el.onmouseover = function()
        {
            activeElementID = elID;
            mouseOverElement[elID] = true;
        }
        document.body.onmousemove = function(e)
        {
            if (!mouseOverElement[activeElementID]) return;
            if (!e) var e = window.event;
            var posx = 0;
	        var posy = 0;
	        if (e.pageX || e.pageY)
	        {
		        posx = e.pageX;
		        posy = e.pageY;
	        }
	        else //if (e.clientX || e.clientY) 
	        {
		        posx = e.clientX + document.documentElement.scrollLeft;
		        posy = e.clientY + document.documentElement.scrollTop;
	        }
            if (posx >= el.offsetLeft && 
                posy >= el.offsetTop && 
                posx <= el.offsetLeft+el.offsetWidth &&
                posy <= el.offsetTop+el.offsetHeight) return;
            else
            {
                mouseOverElement[activeElementID] = false;
                setTimeout("hideElement('" + activeElementID + "')", 1000);
            }
        }
    }
    else
    {
        if (tween == 'notween')
        {
            el.style.display = 'none';
            return;
        }
        mouseOverElement[elID] = false;
        opacity(elID, 90, 0, 500)
        setTimeout("_hideElement('" + elID + "')", 500);
    }
}

function opacity(elID, opacStart, opacEnd, millisec)
{
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + elID + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + elID + "')",(timer * speed));
            timer++;
        }
    }
    return true;
} 

function hideElement(elID)
{
    if (mouseOverElement[elID]) return;
    opacity(elID, 90, 0, 500)
    setTimeout("_hideElement('" + elID + "')", 500);
}

function _hideElement(elID)
{
    document.getElementById(elID).style.display = 'none';
}

function opacity(elID, opacStart, opacEnd, millisec)
{
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + elID + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + elID + "')",(timer * speed));
            timer++;
        }
    }
    return true;
} 

function checkDefaultValue(el, defaultValue, e)
{
    if (e == 'focus' && el.value == defaultValue)
        el.value = "";
    else if (e == 'blur' && el.value == "")
        el.value = defaultValue;
}

function validateComment(titleID, commentID, errorID, error)
{
    var re1 = /<(\S+).*>/;
    //var re2 = /<\/\1>/;
    
    
    
    //alert ( re1.exec(document.getElementById(titleID).value) );
    if ( re1.exec(document.getElementById(titleID).value) == null &&
         re1.exec(document.getElementById(commentID).value) == null
        )
        return true;
        
    //alert( re2.exec(document.getElementById(title).value) );
    
    document.getElementById(errorID).style.visibility = "visible";
    document.getElementById(errorID).innerHTML = error;
    
    return false;
}

function changeOpac(opacity, elID)
{
    el = document.getElementById(elID);
    if (el.style.filter != undefined)
        el.style.filter = "alpha(opacity=" + opacity + ")";
    if (el.style.opacity != undefined)
        el.style.opacity = (opacity / 100);
    if (el.style.MozOpacity != undefined)
        el.style.MozOpacity = (opacity / 100);
    if (el.style.KhtmlOpacity != undefined)
        el.style.KhtmlOpacity = (opacity / 100);
}