/// <reference path="LanxerLibrary.js" />
/// <reference path="Global_Page.js" />
/// <reference path="Global_AJAX.js" />
/// <reference path="PeopleSearch_Nav.js" />
/// <reference path="PeopleSearch_Paging.js" />
/// <reference path="PeopleSearch_Person.js" />
/// <reference path="PeopleSearch_Schema.js" />
/// <reference path="PeopleSearch_TextSearch.js" />
/// <reference path="PeopleSearch.js" />
/// <reference path="PeopleSearch_ContextMenu.js" />

var ps_ContextMenuNumber = null;
var ps_IsMoveMode_Person = false;
var ps_IsCopyMode_Person = false;
var ps_IsMoveMode_Result = false;
var ps_IsCopyMode_Nav = false;
var ps_IsMoveMode_Nav = false;
var ps_conMen = null;
var ps_SelectedPerson = null;
var ps_SelectedCategoryThumb = null;

function ps_InitiContextMenu()
{
    document.oncontextmenu = function () { return false; };
    document.onmousedown = ps_MouseDown;
}

function ps_MouseDown(e)
{
    var lvent = e ? e : event;
    
    var workingObjID;
    var testContextMenuNumber;
    if(lvent.button == 2  && (testContextMenuNumber=ps_GetParent(nn6 ? lvent.target : lvent.srcElement)))
    {
        if(!testContextMenuNumber)
            return true;
        
        ps_ContextMenuNumber = testContextMenuNumber;
        
        switch(ps_ContextMenuNumber)
        {
            case 1 :
                workingObjID = ps_SelectedNode ? ps_SelectedNode : 0;
            break;
            case 2 :
                workingObjID = ps_SelectedPeopleDivision;
            break;
            case 3 :
                workingObjID = ps_SelectedPerson;
            break;
            case 4 :
                workingObjID = ps_SelectedCategoryThumb;
            break;
        }
        
        if(ps_IsMoveMode_Result || ps_IsMoveMode_Nav || ps_IsMoveMode_Person || ps_IsCopyMode_Person || ps_IsCopyMode_Nav)
            ps_Move_GetDialog(workingObjID);
        else
            ps_conMen.innerHTML = 
                aj_ps('getContextMenu=' + workingObjID + 
                      '&contextMenuNumber=' + ps_ContextMenuNumber + 
                      (ps_EditingTemplates ? '&templateEditMode=t' : '') + (PS_SelectedPeople.length > 0 ? '&selectedPeople=' + PS_SelectedPeople.toString() : '')
                      + (ps_SelectedNode == null ? '' : '&sn=' + ps_SelectedNode)
                      + (PS_SelectedNodes.length > 0 ? '&selectedNodes=' + PS_SelectedNodes.toString() : '')
                      );
                   
        ps_conMen.style.display = '';
        ps_conMen.style.position = 'absolute';
        
        ps_conMen.style.top =  mouseY;// nn6 ? lvent.pageY : lvent.clientY;
        ps_conMen.style.left = mouseX;//nn6 ? lvent.pageX : lvent.clientX;
    }
    else
    {
        var tele = nn6 ? lvent.target : lvent.srcElement;
        
        while(true)
        {
            if(tele && tele.className && tele.className == 'CONTEXTMENU')
                return true;
                
            if(tele.parentNode)
                tele = tele.parentNode;
            else 
                break;
        }
        
        if(ps_conMen)
            ps_conMen.style.display = 'none';
    }
    
    return true;
}

function ps_Move_GetDialog(workingObj)
{    
    if(ps_ContextMenuNumber == 1 && ps_IsMoveMode_Nav)
    {
        ps_conMen.innerHTML = aj_ps(ps_GetBaseQuery('getMoveNavUI=' + ps_IsMoveMode_Nav + '&moveTo=' + (ps_SelectedNode ? ps_SelectedNode : 0))); // 'MOVE ' + ps_IsMoveMode_Result + ' to ' + ps_SelectedPeopleDivision;
    }
    else if(ps_ContextMenuNumber == 2 && ps_IsMoveMode_Result)
    {
        ps_conMen.innerHTML = aj_ps(ps_GetBaseQuery('getMoveResultUI=' + ps_IsMoveMode_Result + '&moveTo=' + ps_SelectedPeopleDivision)); // 'MOVE ' + ps_IsMoveMode_Result + ' to ' + ps_SelectedPeopleDivision;
    }
    else if(ps_IsCopyMode_Person)
    {
        ps_conMen.innerHTML = aj_ps(ps_GetBaseQuery('getCopyUI=' + ps_IsCopyMode_Person + '&copyTo=' + workingObj));
    }
    else if(ps_IsMoveMode_Person)
    {
        ps_conMen.innerHTML =  aj_ps(ps_GetBaseQuery('getMoveUI=' + ps_IsMoveMode_Person + '&moveTo=' + workingObj));
    }
    else if(ps_IsCopyMode_Nav)
    {
        ps_conMen.innerHTML =  aj_ps(ps_GetBaseQuery('getCopyNavUI=' + ps_IsCopyMode_Nav + '&copyTo=' + workingObj));
    }
}

function ps_CancelMove()
{
    ps_IsMoveMode_Nav = null;
    ps_IsMoveMode_Result = null;
    ps_IsMoveMode_Person = null;
    ps_IsCopyMode_Person = null;
    ps_IsCopyMode_Nav    = null;
    ps_CloseContextMenu();
    ps_PersonClearSelection();
}

function ps_GetParent(ele)
{
    // 1 = Menu For Nav, 2 = Menu for results // 3 for person
    var oel = ele;
    var ids = 0;
    
    while(true)
    {
        if(ids++ > 20)
            return null;

        if(oel && oel.className) 
        {   
            if(oel.className.indexOf('CATEGORYS_GROUP') != -1)
            {
                ps_SelectedNode = parseInt(oel.id.replace('ps_NodeTitle' , ''));
                // SELECT CATEGORY GROUP
                // RETURN 1;
                return 1;
            }
            else if(oel.className.indexOf('Person') != -1)
            {
                var personID = parseInt(oel.id.replace('Person' , ''));
                ps_SelectedPerson = personID;
                return 3;
            }
            else if(oel.className.indexOf('MinorItem') != -1)
            {    
                var nodeID = oel.id.replace('ps_NodeDiv' , '');
                var hasChildren = oel.className.indexOf('HasChildren') != -1;
                ps_ExpndNode(nodeID , hasChildren , oel);
                return 1;
            }
            else if(oel.className.indexOf('MajorItemASPAN') != -1 && oel.className.indexOf('CenterMajor') == -1)
            {
                ps_SelectMainNode(parseInt(oel.id.replace('ps_NodeTitle' , '')));
                return 1;
            }
            else if(oel.id == 'ps_RootNode')
            {
                ps_SelectRootNode();
                return 1;
            }
            else if(oel.className.indexOf('MajorItemASPAN') != -1 && oel.className.indexOf('CenterMajor') != -1)
            {
                ps_GetCenterNodes(parseInt(oel.id.replace('PS_CenterNodesHead' , '')) , true , oel);
                return 1;
            }
            else if(oel.className.indexOf('ps_ResultsNode') != -1)
            {
                ps_SelectedPeopleDivision = parseInt(oel.id.replace('ps_ResultsViewingNode' , ''));
                ps_SelectedPeopleDivision_IsMain = oel.className.indexOf('MainCatNode') > 0;
                return 2;
            }
            else if(oel.className.indexOf('ps_CategoryThumb') != -1)
            {
                ps_SelectedCategoryThumb =  parseInt(oel.id.replace('ps_CategoryThumb' , ''));
                return 4;
            }
        }   
        
        if(oel.parentNode)
            oel = oel.parentNode;
        else
            return null;
    }
    
    return null;
}


