/// <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" />

// COME UP WITH UNIQUE ID FOR SKILSTM ALERTER // DOSENT NEED TO SEEND IT BACK IN AJX SYNC

var ps_MouseOverFilterItem_CurentItem = null;
 
function ps_MouseOverFilterItem(itm)
{
    ps_MouseOverFilterItem_Out();
    
    var searchFilter = g('Search_Filter');
    ps_MouseOverFilterItem_CurentItem = searchFilter;
    searchFilter.style.right = '20px';
    searchFilter.style.display = 'block';
    searchFilter.innerHTML = 'Loading...';
    
    ajx_ps(ps_GetBaseQuery('getFilterUI=' + itm.id.replace('FilterItem_' , '')) , ps_MouseOverFilterItem_Callback);
    
    itm.style.backgroundColor = '#cbd1d7';
    var pos = getElementPosition(itm);
     
    searchFilter.style.bottom = document.body.clientHeight - pos.top;
    searchFilter.style.right = pos.right - 1;
    
   // document.onmousemove = ps_MouseOverFilterItem_MM;
}

function ps_MouseOverFilterItem_MM(e)
{
	if(!ps_MouseOverFilterItem_Class('Search_Filter' , e))
	{	
	    ps_MouseOverFilterItem_Out()
	}
}

function ps_MouseOverFilterItem_Class(name , e)
{   
	var startElement = e ? e.target : event.srcElement;
	
	while(true)
	{
		if(startElement && startElement.className && startElement.className.indexOf(name) != -1)
			return true;
		
		if(startElement.parentNode)
			startElement = startElement.parentNode;
		else
			return false;
	}
	
	return true;
}

function ps_MouseOverFilterItem_Callback()
{
	if(http_request_c_list.readyState == 4)
	{
		if (http_request_c_list.status == 200)
		{
            ps_MouseOverFilterItem_CurentItem.innerHTML = http_request_c_list.responseText;
        }
    }
}

function ps_MouseOverFilterItem_Out()
{
    var searchFilter = g('Search_Filter');
    searchFilter.style.display = 'none';
    var childNodes = g('DrawFilterItem_Row').childNodes;
    for(var i = 0; i < childNodes.length; i++)
    {
        if(childNodes[i].className == 'Search_Filter')
            childNodes[i].style.backgroundColor = '#e0e7ee';
    }
}

var ps_Filter_Location_CountrySelect_Did = false;
function ps_Filter_Location_CountrySelect(countryDDL)
{
    ps_Selected_Location_Lat = null;
    ps_Selected_Location_Lng = null;
    ps_Selected_Location_Radius = null;
    ps_Selected_Location_Name = null;
    
    ps_Filter_Location_CountrySelect_Did = true;
    g('ps_Filter_Location_TB').value = '';
    var valueparts = countryDDL.value.split(/:/);
    ps_Selected_Location_Country = valueparts[0] == '-1' ? null : valueparts[0];
    g('Filter_LocationAREA').innerHTML = aj_ps(ps_GetBaseQuery('filterLocationSelectCountry=true'));
    flashExternInterfaceCall('Map_ForLocationSearch', 'MapForSearch_SetLocation', valueparts[0] == '-1' ? 'Melville, NY' : valueparts[1]);
    
    ps_GetResults();
}

function ps_Filter_Location_GPS_FromFlex(gpsPoint)
{
    if(!ps_Filter_Location_CountrySelect_Did)
    {
        var latlgnAndName = gpsPoint.split(/:/);
        var latlng = latlgnAndName[0].split(/,/);
        
        ps_Selected_Location_Lat = latlng[0];
        ps_Selected_Location_Lng = latlng[1];
        if(!ps_Selected_Location_Radius)
            ps_Selected_Location_Radius = 60;
         
        ps_Selected_Location_Name = latlgnAndName[1];
        
        ps_GetResults();
    }
}

function ps_Filter_Location_TB_Keydown(e)
{
    if(e.keyCode == 13)
        ps_Filter_Location_TB_Submit();
}

function ps_Filter_Location_RadiusSelect(ddl)
{
    ps_Selected_Location_Radius = ddl.value;
}

function ps_Filter_Location_TB_Submit()
{
    ps_Filter_Location_CountrySelect_Did = false;
    flashExternInterfaceCall('Map_ForLocationSearch', 'MapForSearch_SetLocation', g('ps_Filter_Location_TB').value);
}

function flashExternInterfaceCall(movieName, funcName, arg)
{
    eval('g("SkillsTM_Alerter").' + funcName + '(arg,"' + g(movieName + '_LocalConID').value + '");');
}

function ps_MakeVisibleHiddenSet(expndIDs, childNodes)
{
    GLOBAL_array_addUnique(childNodes.replace('NODEIDCHILDNODES', '') , ps_VisibleHiddenSets);
    visTog(expndIDs, childNodes);
}

function ps_HandleBoldness(nodeToBolden)
{
    if(ps_lastCallingDiv != null)
    {
		ps_lastCallingDiv.style.fontWeight  = 'normal';
        if(ps_lastCallingDiv.className == 'CATEGORYS_GROUP')
	        ps_lastCallingDiv.style.color = '#666666';
	}	
    ps_lastCallingDiv = nodeToBolden;
    nodeToBolden.style.fontWeight = 'bold';
	
    nodeToBolden.style.color = '#000000';
}

function ps_Select_CategoryClass(nodeID)
{
    var nodeTitle = g('ps_NodeTitle' + nodeID);
    ps_SelectedNode = nodeID;
    ps_HandleBoldness(nodeTitle);
    ps_GetCenterNodes_Hide();
    ps_GetResults();
}

function ps_SelectRootNode()
{
	ps_GetCenterNodes_Hide();
	ps_SelectedNode = null;
    ps_HandleBoldness(g('ps_RootNode'));
	ps_GetResults();
}

function ps_SelectMainNode(nodeID , caller)
{
	if(IsControlKeyDown())
        ps_NodeToggleSelection(nodeID);
        
	if(ps_lastCallingDiv != null)
		ps_lastCallingDiv.style.fontWeight  = 'normal';
	
	ps_HandleBoldness(g('ps_NodeTitle' + nodeID));
	
	ps_SelectedNode = ps_NodeIDFromNodeUID(nodeID);
	ps_SelectedNodeType = 'main';
	
	ps_GetCenterNodes(nodeID , true , caller);
}

function ps_SelectMainNodeOver(nodeID)
{
    var obj = g('ps_CNC' + nodeID)
    
    if(!obj)
        return;
    
    var v = g('NAVNODE_PREVIEW');
    v.style.display = 'block';
    var titleObj = g('ps_NodeTitle' + nodeID);
    var pos = getElementPosition(titleObj);
    v.style.left = 280; // + titleObj.clientWidth;
    v.innerHTML = 
    "<div style='background-color:white;padding:5px;border:solid 1px #aaaaaa;'>" + 
    "<table><tr><td class=MajorItemASPAN>" + g('ps_NodeTitleValue' + nodeID).value + "</td><td>" +
    ps_SelectMainNodeOver_ProsessInnerHTML(obj.innerHTML) + '</td></tr></table></div>';
    v.style.top = (pos.top - (v.clientHeight /  2)) + titleObj.clientHeight;
}

function ps_SelectMainNodeOver_ProsessInnerHTML(text)
{
    var rtxt = text.replace(/\bid\b/gi , 'di');
    return rtxt;
}

function ps_SelectMainNodeOut(nodeID)
{
    var np = g('NAVNODE_PREVIEW');
    np.style.display = 'none';
    np.style.innerHTML = '';
}

function ps_SelectNode(nodeID , caller , isCenter)
{    
    if(IsControlKeyDown()) 
        ps_NodeToggleSelection(nodeID);
	     
//	var isFromImg = caller.tagName == 'IMG';
	var callingDiv = g('ps_NodeTitle' + nodeID);
	
    ps_HandleBoldness(callingDiv); 
    
	ps_SelectedNode = ps_NodeIDFromNodeUID(nodeID);
	ps_SelectedNodeType = 'sub';
}

// to allow for nodes with the the same ID to exist on the page it needs to parse out the uniquness and return just the node
function ps_NodeIDFromNodeUID(nodeUID)
{
    var iU = nodeUID.toString().indexOf('U');
    if(iU == -1)
        return nodeUID;
    else
        return nodeUID.substring(0 , iU);
}

function ps_ExpndNode(nodeID , doSubNodes , caller)
{
	ps_SelectNode(nodeID , caller , true);
	
	ps_TextQuery = null;
	
	ps_GetResults();
	
	var isFromImg = caller.tagName.toLowerCase() == 'img';
	
	if(doSubNodes)
	{
		var img = g('IGEXPND' + nodeID);
		var cnc = g('ps_CNC' + nodeID);   
		
		if(cnc.innerHTML.length == 0)
		{
			cnc.innerHTML = aj_ps(ps_GetNodeQuery(ps_NodeIDFromNodeUID(nodeID)));
        	img.src = ip() +'PlusClosed.gif';
			GLOBAL_array_addUnique(ps_NodeIDFromNodeUID(nodeID) , ps_ExpandedCenterNodes); 
    		cnc.style.display = '';
		}
		else if(cnc.style.display == 'none')
		{
    		cnc.style.display = '';
        	img.src = ip() +'PlusClosed.gif';
        	GLOBAL_array_addUnique(ps_NodeIDFromNodeUID(nodeID) , ps_ExpandedCenterNodes); 
		}
		else if(isFromImg)
		{
		    img.src = ip() + 'PlusOpen.gif';
            GLOBAL_array_removeByVal(ps_NodeIDFromNodeUID(nodeID) , ps_ExpandedCenterNodes);
            cnc.style.display = 'none';
		}
	}
}

function ps_GetCenterNodes(nodeID , hasChildren , caller)
{
    ps_SelectedCenterNode = nodeID;

    ps_ExpandedCenterNodes = new Array();
    
	var r = aj_ps(ps_GetQuery('getCenterNodes=' + ps_NodeIDFromNodeUID(nodeID)));
	
	var centeredNodes = g('ps_CenterNodes');
	
	centeredNodes.innerHTML = r;

    var resultsContainer = g('ps_RESULTS_CONTAINER');
	
	var resultsContent = resultsContainer.innerHTML;
    	
    var indexOfStart = r.indexOf('<!-- START_STRP -->');
    centeredNodes.innerHTML = r.substring(0 , indexOfStart);
	
    if(centeredNodes.innerHTML.length <= 42)
	    ps_GetCenterNodes_Hide();
    else
	    ps_GetCenterNodes_Show();
	
    ps_SetResults(resultsContent);	
}

function ps_GetCenterNodes_Hide()
{
    ps_SelectedCenterNode = null;
	
	if(g('ps_CenterNodesSpace'))
	    g('ps_CenterNodesSpace').style.display  = 'none';
	
    if(g('ps_CenterNodesO'))
	    g('ps_CenterNodesO').style.display = 'none';
	
	if(g('ps_CenterNodes'))
	    g('ps_CenterNodes').innerHTML = '';
	
	if(g('ps_CenterNodesTxtSearch'))
	    g('ps_CenterNodesTxtSearch').style.display = 'none';
	
	if(g('ps_CenterNodesTxtSearchSpace'))
	    g('ps_CenterNodesTxtSearchSpace').style.display = 'none';
}

function ps_GetCenterNodes_Show()
{
    if(g('ps_CenterNodesSpace'))
	    g('ps_CenterNodesSpace').style.display = '';
    
    if(g('ps_CenterNodesO'))
    	g('ps_CenterNodesO').style.display = '';
    
    if(g('ps_CenterNodesTxtSearch'))
        g('ps_CenterNodesTxtSearch').style.display = '';
	
	if(g('ps_CenterNodesTxtSearchSpace'))
	    g('ps_CenterNodesTxtSearchSpace').style.display = '';
}

function ps_GetObjectPath(nodeID)
{
    return aj_ps('getObjectPath=' + nodeID);
}

function ps_OpenNode_ByID(nodeID)
{
    ps_OpenNode(ps_GetObjectPath(nodeID));
}

function ps_OpenNode(path)
{
    ChangePage('ExploreAndSearch');
    
    var parts = path.split(',');
    
    ps_ExpandedNodes = new Array();
    ps_SelectedNode = parts[parts.length - 1]; 
   
    for(var i = 1; i < parts.length; i++)
    {   
        if(i == 1)
            ps_SelectedCenterNode  = parts[i];
            
        ps_ExpandedNodes.push(parts[i]);
    }
    
    ps_ReIntiNavView();
    ps_GetResults();
    
    for(var i = 0; i < 1000; i++)
    {
        var rNode = g('ps_NodeTitle' + parts[parts.length - 1] + 'U' + i);
        if(rNode)
        {
            ps_HandleBoldness(rNode);
            break;
        }
    }
}

function ps_NodeToggleSelection(nodeID)
{
	if(GLOBAL_array_indexOf(ps_NodeIDFromNodeUID(nodeID) , PS_SelectedNodes) == -1)
	{
        GLOBAL_array_addUnique(ps_NodeIDFromNodeUID(nodeID) , PS_SelectedNodes);
        if(g('ps_NodeTitle' + nodeID))
	        g('ps_NodeTitle' + nodeID).style.backgroundColor = '#c4dcf3';
	}
	else
    {   
        GLOBAL_array_removeByVal(ps_NodeIDFromNodeUID(nodeID) , PS_SelectedNodes);
        if(g('ps_NodeTitle' + nodeID))
	        g('ps_NodeTitle' + nodeID).style.backgroundColor = '#ffffff';
    }
}

function ps_RatingToggle(cb)
{
    if(cb.checked)
        GLOBAL_array_addUnique(cb.value, ps_Ratings);
    else
        GLOBAL_array_removeByVal(cb.value, ps_Ratings)
        
    ps_GetResults();
}

function ps_GroupsToggle(cb)
{
    if(cb.checked)
        GLOBAL_array_addUnique(cb.value, ps_Filter_GroupMembers);
    else
        GLOBAL_array_removeByVal(cb.value, ps_Filter_GroupMembers)
        
    ps_GetResults();
}