var ps_NonSelectedItemTypes = new Array();
var ps_FilterTypes = new Array();
var ps_SearchStoreNavTopMiddle = null;
var ps_InterceptedNodes = new Array();
var ps_lastCallingDiv = null;
var ps_lastCallingDivCenter = null;
var ps_SelectedNode = null;
var ps_SelectedPeopleDivision = null;
var ps_SelectedCenterNode = null;
var ps_SelectedNodeType = null;
var ps_Selected_Location_Country = null;
var ps_Selected_Location_Lat = null;
var ps_Selected_Location_Lng = null;
var ps_Selected_Location_Radius = null;
var ps_Selected_Location_Name = null;
var ps_TextQuery = null;
var PS_SelectedSubDivision  = false;
var PS_SelectionMode  = false;
var PS_SelectedPeople = new Array();
var PS_SelectedNodes = new Array();
var ps_ExpandedNodes = new Array();
var ps_ExpandedCenterNodes = new Array();
var ps_EditingTemplates = false;
var ps_VisibleHiddenSets = new Array();
var ps_FilterTypes_Union = new Array();
var ps_FilterTypes_Union_StartIndex = 0;
var ps_Ratings = new Array();
var ps_Filter_GroupMembers = new Array();
var ps_Filter_AgeStart = null;
var ps_Filter_AgeEnd = null;
var ps_FilterTypes_Range_Start = new Array();
var ps_FilterTypes_Range_End = new Array();

function ps_SelectSubDivision(subDiv)
{
    PS_SelectedSubDivision = subDiv;
    ps_GetResults();
}

function ps_ReIntiNavView(args)
{   
    var ad = g('ABOVEDIV2');
    PS_SelectedNodes = new Array();
    
    ad.innerHTML = aj_ps(ps_Nav_GetQuery(args ? args : 'rstNav=t'));

	g('NavO').innerHTML = g('ps_NavTMP').innerHTML;
	
	if(g('ps_CenterNodesTMP'))
	{
	    ps_GetCenterNodes_Show();
        g('ps_CenterNodes').innerHTML = g('ps_CenterNodesTMP').innerHTML;
	}
	else
	    ps_GetCenterNodes_Hide();
	
	ad.innerHTML = '';
	ps_SizeElements();
}

function ps_GetNodeQuery(nodeID) // just gets a node
{
	return 'cnc=' + nodeID + 
	(ps_InterceptedNodes.length != 0 ? '&in=' + ps_InterceptedNodes.toString()  : '') +
	(ps_EditingTemplates ? '&editingTemplates=t' : '') + (PS_SelectedNodes.length > 0 ? '&selectedNodes=' + PS_SelectedNodes.toString() : '') + ps_FilterTypeGetQuery();
}

function ps_Nav_GetQuery(apnd) // gets entire nav system
{
	return 'getNav=t&' + ps_GetBaseQuery(apnd);
}

function ps_GetQuery(apnd)
{	
	return  (ps_TextQuery == null ? 'gr=t' : '&qtsp=' + ps_TextQuery) + ps_GetBaseQuery(apnd);
}

function ps_ChangePageAndSendQuery(page)
{
    ChangePage(page + ps_GetBaseQuery());
}

function ps_GetBaseQuery(apnd)
{	
	var q = (ps_SelectedNode == null ? '' : '&sn=' + ps_SelectedNode) + 
	(ps_InterceptedNodes.length != 0 ? '&in=' + ps_InterceptedNodes.toString()  : '') + 
	(apnd ? '&' + apnd : '') + '&nonSelectedItemTypes=' + ps_NonSelectedItemTypes.toString()  + 
	(ps_EditingTemplates ? '&editingTemplates=t' : '') + (PS_SelectedPeople.length > 0 ? '&selectedPeople=' + PS_SelectedPeople.toString() : '') + 
	(PS_SelectedNodes.length > 0 ? '&selectedNodes=' + PS_SelectedNodes.toString() : '') + ps_FilterTypeGetQuery() + 
	(PS_SelectedSubDivision ? '&selSubDivision=' + PS_SelectedSubDivision : '') +
    (ps_VisibleHiddenSets.length != 0 ? '&visibleHiddenSets=' + ps_VisibleHiddenSets.toString() : '') +
    (ps_Selected_Location_Country ? '&locCountry=' + ps_Selected_Location_Country : '') +
    (ps_Selected_Location_Name && ps_Selected_Location_Lat && ps_Selected_Location_Lng  && ps_Selected_Location_Radius ? 
    '&locLat=' + lescape(ps_Selected_Location_Lat) + '&locLng=' + lescape(ps_Selected_Location_Lng) + 
    '&locRadius=' + lescape(ps_Selected_Location_Radius) + '&locName=' + lescape(ps_Selected_Location_Name) : '') +
    (ps_Ratings.length > 0 ?  '&ratings=' + ps_Ratings.toString() : '') + 
    (ps_Filter_GroupMembers.length > 0 ? '&groupMembs=' + ps_Filter_GroupMembers.toString() : '') +
    (ps_Filter_AgeStart && ps_Filter_AgeEnd ? '&ageStart=' + ps_Filter_AgeStart + '&ageEnd=' + ps_Filter_AgeEnd : '');
    
    
    var unionIntercept = '';
    var boolDidFirst = false;
    for(var i = ps_FilterTypes_Union_StartIndex; i < ps_FilterTypes_Union.length; i++)
    {
        if(ps_FilterTypes_Union[i])
        {
            if(boolDidFirst)
                unionIntercept += 'M';
                
            unionIntercept += i + 'v' + ps_FilterTypes_Union[i].toString();
            boolDidFirst = true;
        }
    }
    
    if(unionIntercept != '')
        q += '&filterTypesUnion=' + unionIntercept;
        
    var rangeStart = '';
    
    boolDidFirst = false;
    for(var i = 0; i < ps_FilterTypes_Range_Start.length; i++)
    {
        if(ps_FilterTypes_Range_Start[i])
        {
            if(boolDidFirst)
                rangeStart += 'M'
            
            rangeStart += i + 'v' + ps_FilterTypes_Range_Start[i];
            boolDidFirst = true;
        }
    }
    
    if(rangeStart != '')
        q += '&rangeStart=' + rangeStart;
    
    var rangeEnd = '';
    
    boolDidFirst = false;
    for(var i = 0; i < ps_FilterTypes_Range_End.length; i++)
    {
        if(ps_FilterTypes_Range_End[i])
        {
            if(boolDidFirst)
                rangeEnd += 'M'
            
            rangeEnd += i + 'v' + ps_FilterTypes_Range_End[i];
            boolDidFirst = true;
        }
    }
    
    if(rangeEnd != '')
        q += '&rangeEnd=' + rangeEnd;
    
    return q;
}

function ps_SetResults(text)
{
    g('on').value = ps_SelectedNode;
    
    var results = g('PeopleSearchResults');
    results.innerHTML = text;
	
    var queryView = '';
    if(g('ps_QueryView'))
    {
        queryView = g('ps_QueryView').innerHTML;
	
        g('ps_QueryView').innerHTML = '';
    	
        if(!IsEmptyText(queryView))
            g('ps_QueryViewer').innerHTML = queryView;
        else 
           g('ps_QueryViewer').innerHTML = '';
	}
	
	try
	{
	    ps_SizeElements();
	}
	catch(ee)
	{
	    alert('SIZE ELEMENTS ' + ee);
	}
}

function ps_GetResults(apnd)
{
    ps_SetResults(aj_ps(ps_GetQuery(apnd)));
}

function ps_FilterTypeGetQuery()
{
    return (ps_FilterTypes.length > 0 ? '&filterTypes=' +  ps_FilterTypes.toString() : '');
}

function ps_FilterTypeAdd(objRef)
{
    if(GLOBAL_array_indexOf(objRef , ps_FilterTypes) == -1)
        GLOBAL_array_addUnique(objRef , ps_FilterTypes);
	else
        GLOBAL_array_removeByVal(objRef , ps_FilterTypes);
        
    ps_GetResults();
    ps_ReIntiNavView();
}

function ps_FilterTypeAdd_ForList(listVal)
{
    for(var i = 0; i < listVal.options.length; i++)
    {
        if(listVal.options[i].selected)
            GLOBAL_array_addUnique(listVal.options[i].value , ps_FilterTypes);
        else
            GLOBAL_array_removeByVal(listVal.options[i].value , ps_FilterTypes);
    }
    
    ps_GetResults();
    ps_ReIntiNavView();
}

function ps_FilterType_Age_Start(list)
{
    ps_Filter_AgeStart = list.value;
    ps_FiterType_Age_Do();
}

function ps_FilterType_Age_End(list)
{
    ps_Filter_AgeEnd = list.value;
    ps_FiterType_Age_Do();
}

function ps_FiterType_Age_Do()
{
    if(ps_Filter_AgeEnd && ps_Filter_AgeStart)
        ps_GetResults();
}

// Filter Range
function ps_Filter_List_Start(list, topLevelNode)
{
    ps_FilterTypes_Range_Start[topLevelNode] = list.value;
    ps_FiterType_List_Do(topLevelNode);
}

function ps_Filter_List_End(list, topLevelNode)
{
    ps_FilterTypes_Range_End[topLevelNode] = list.value;
    ps_FiterType_List_Do(topLevelNode);
}

function ps_FiterType_List_Do(topLevelNode)
{
    if(ps_FilterTypes_Range_End[topLevelNode] && ps_FilterTypes_Range_Start[topLevelNode])
        ps_GetResults();
}
// ---------

function ps_FilterTypeAdd_ForList_Union(list, topLevelNode)
{
    var unionArray = new  Array();
    
    for(var i = 0; i < list.options.length; i++)
        if(list.options[i].selected)
            unionArray.push(list.options[i].value); 
    
    ps_FilterTypes_Union[topLevelNode] = unionArray;
    
    if(ps_FilterTypes_Union_StartIndex == 0)
        ps_FilterTypes_Union_StartIndex = topLevelNode;
    else if(ps_FilterTypes_Union_StartIndex > topLevelNode)
        ps_FilterTypes_Union_StartIndex = topLevelNode;
            
    ps_GetResults();
    ps_ReIntiNavView();
}

function ps_FilterTypeAdd_ForCB_Union(nodeID, topLevelNode)
{
    if(!ps_FilterTypes_Union[topLevelNode])
        ps_FilterTypes_Union[topLevelNode] = new Array();
        
    if(GLOBAL_array_indexOf(nodeID , ps_FilterTypes_Union[topLevelNode]) == -1)
        GLOBAL_array_addUnique(nodeID , ps_FilterTypes_Union[topLevelNode]);
	else
        GLOBAL_array_removeByVal(nodeID , ps_FilterTypes_Union[topLevelNode]);
        
    ps_GetResults();
    ps_ReIntiNavView();
}