/**
 * Overrides for tree.js
 * 
 * Version: T11P8-74
 * since: 11.8
 */

var selectedTreeNode = null;	
	
var mainSearchLocations = $("[id='mainForm:locationsTreeNode'] ul li span > div, " +
		"[id='mainForm:locationsTreeNode'] ul li span > div + span, " +
		"[id='mainForm:locationsTreeNode'] ul li span > span + span");

var mainSearchLocationsButton = $("[id='mainForm:requistionListView_locationsButton']");

var savedSearchDialogLocations = $("[id='savedSearchDialogForm:locationsTreeNode'] ul li span > div, " +
		"[id='savedSearchDialogForm:locationsTreeNode'] ul li span > div + span, " +
		"[id='savedSearchDialogForm:locationsTreeNode'] ul li span > span + span"); 

var savedSearchDialogLocationsButton = $("[id='savedSearchDialogForm:savedSearchDialog_locationsButton']");

var applicationLocations = $("[id='applications:savedSearchDialogForm:locationsTreeNode'] ul li span > div, " +
		"[id='applications:savedSearchDialogForm:locationsTreeNode'] ul li span > div + span, " +
		"[id='applications:savedSearchDialogForm:locationsTreeNode'] ul li span > span + span"); 

var applicationLocationsButton = $("[id='applications:savedSearchDialogForm:savedSearchDialog_locationsButton']");

var resumeLocations = $("[id='resumeForm:resumeContainer:locationsTreeNode'] ul li span > div, " +
		"[id='resumeForm:resumeContainer:locationsTreeNode'] ul li span > div + span, " +
		"[id='resumeForm:resumeContainer:locationsTreeNode'] ul li span > span + span");

var resumeLocationsButton = $("[id='resumeForm:resumeContainer:preferencesLocationsView_locationsButton']");

var applyLocations  = $("[id='applyForm:locationsTreeNode'] ul li span > div, " +
		"[id='applyForm:locationsTreeNode'] ul li span > div + span, " +
		"[id='applyForm:locationsTreeNode'] ul li span > span + span");

var applyLocationsButton = $("[id='applyForm:preferencesLocationsView_locationsButton']");

var welcomeLocations = $("[id='welcomePage:locationsTreeNode'] ul li span > div, " +
		"[id='welcomePage:locationsTreeNode'] ul li span > div + span, " +
		"[id='welcomePage:locationsTreeNode'] ul li span > span + span"); 

var welcomeLocationsButton = $("[id='welcomePage:welcomeView_locationsButton']");

//Click

mainSearchLocations.click(function(){   
	selectedTreeNode = $("[id='mainForm:locationsTreeNode'] ul li");
});

mainSearchLocationsButton.click(selectTreeNode($("[id='mainForm:locationsTreeNode'] ul li")));

savedSearchDialogLocations.click(function(){  
	selectedTreeNode = $("[id='savedSearchDialogForm:locationsTreeNode'] ul li");
});

savedSearchDialogLocationsButton.click(selectTreeNode($("[id='savedSearchDialogForm:locationsTreeNode'] ul li")));

applicationLocations.click(function(){   
	selectedTreeNode = $("[id='applications:savedSearchDialogForm:locationsTreeNode'] ul li");
});

applicationLocationsButton.click(selectTreeNode($("[id='applications:savedSearchDialogForm:locationsTreeNode'] ul li")));

resumeLocations.click(function(){   
	selectedTreeNode = $("[id='resumeForm:resumeContainer:locationsTreeNode'] ul li");
});

resumeLocationsButton.click(selectTreeNode($("[id='resumeForm:resumeContainer:locationsTreeNode'] ul li")));

applyLocations.click(function(){   
	selectedTreeNode = $("[id='applyForm:locationsTreeNode'] ul li");
});

applyLocationsButton.click(selectTreeNode($("[id='applyForm:locationsTreeNode'] ul li")));

welcomeLocations.click(function(){   
	selectedTreeNode = $("[id='welcomePage:locationsTreeNode'] ul li");
});

welcomeLocationsButton.click(selectTreeNode($("[id='welcomePage:locationsTreeNode'] ul li")));

//Primefaces oncomplete hook.
$(document).on("pfAjaxComplete", function(event, xhr, options) {	
    if(selectedTreeNode){
	  selectTreeNode(selectedTreeNode);
    }    
});

function selectTreeNode(widget) {
	widget.each(function(){
      if($(this).hasClass('ui-treenode-selected')){
   	    $(this).addClass('ui-state-highlight');
   	  } else if($(this).hasClass('ui-treenode-unselected') || $(this).hasClass('ui-treenode-hasselected')){
        $(this).removeClass('ui-state-highlight');
   	  }
    });
}