﻿ctx = new ContextInfo();
ctx.imagesPath = '/_layouts/images/';
ctx.PortalUrl = '';
if (ctx.PortalUrl == '') ctx.PortalUrl = null;
ctx2 = ctx;

function OverrideCreateMenu(e) {
    var ctx = currentCtx;
    if (!e)
    { e = window.event; }
    var srcElement = e.srcElement ? e.srcElement : e.target;
    if (itemTable == null || imageCell == null ||
	    (onKeyPress == false &&
	     (srcElement.tagName == 'A' ||
	      srcElement.parentNode.tagName == 'A')))
        return;
    var container = itemTable;

    IsMenuShown = true;
    document.body.onclick = '';
    var m;
    m = CMenu(currentItemID + '_menu');
    if (!m)
        return;

    var element = srcElement;

    while (element['id'].indexOf('MenuItemTable') == -1) {
        if (element.parentElement) {
            element = element.parentElement;
        }
        else {
            element = element.parentNode;
        }
    }

    var menuItems = element.attributes['menuItems'].nodeValue.split('|');
    var menuPics = element.attributes['menuPics'].nodeValue.split('|');
    var actionTypes = element.attributes['actionTypes'].nodeValue.split('|');

    var j = 0;

    for (var i = 0; i < menuItems.length - 1; i++) {
        var caption = menuItems[i];
        var menuPic = (menuPics[i] != '' ? ctx.imagesPath + menuPics[i] : '');
        var action = actionTypes[i];

        if (action != "") {
            CAMOpt(m, caption, 'javascript:{ window.location = "' + action + '"}', menuPic);
        }
        else {
            if (document.all) {
                CAMOpt(m, caption, unescape(itemTable.rows[0].cells[0].all['ActionsDiv'].all[i * 2].all[0].href), menuPic);
            }
            else {
                //			  CAMOpt(m, caption, unescape( itemTable.rows[0].cells[0].getElementsByTagName('div').namedItem('ActionsDiv').childNodes[ i * 2 + 1 ].childNodes[0].href ), menuPic );

                var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

                if (!is_chrome) {
                    //					CAMOpt(m, caption, unescape( itemTable.rows[0].cells[0].getElementsByTagName( 'div' ).namedItem( 'ActionsDiv' ).getElementsByTagName( 'a' )[ j++ ].href ), menuPic );
                    CAMOpt(m, caption, unescape(itemTable.rows[0].cells[0].getElementsByTagName('div').namedItem('ActionsDiv').getElementsByTagName('a')[j].href), menuPic);
		j = j + 1;
                }
                else {
                    var spans = itemTable.rows[0].cells[0].getElementsByTagName('div')[0].getElementsByTagName('span');
                    var span = null;
                    var spanCount = 0;

                    for (var k = 0; k < spans.length; k++) {
                        span = spans[k];

                        if (span.id != null && span.id != undefined && span.id != "") {
                            if (spanCount == j) {
                                break;
                            }
                            else {
                                spanCount++;
                            }
                        }
                    }

                    CAMOpt(m, caption, unescape(span.getElementsByTagName('a')[0].href), menuPic);
                    j = j + 1;
                }
            }
        }
    }

    currentEditMenu = m;
    container.onmouseout = null;
    OMenu(m, container, null, null, -1);
    itemTable = GetSelectedElement(container, 'TABLE');
    m._onDestroy = OutItem;
    e.cancelBubble = true;
    return false;
}

function OverrideOnItem(elm) {
    OnItem(elm)

    itemTable.onclick = OverrideCreateMenu;
    itemTable.oncontextmenu = OverrideCreateMenu;
}

function OutItem() {
    if (!IsMenuOn() && itemTable != null) {
        itemTable.className = "ms-unselectedtitle";
        itemTable.onclick = null;
        itemTable.oncontextmenu = null;
        itemTable.onmouseout = null;
        if (imageCell != null && GetFirstChildElement(imageCell) != null) {
            GetFirstChildElement(imageCell).style.visibility = "hidden";
            imageCell.className = "";
        }
        resetExecutionState();
    }
}
