function stDwrInit(){
       useLoadingMessage();
       DWREngine.setErrorHandler(globalErrorHandler);
}
//Go to the start page
function goToErrorPage() {
  window.location = appContext + "/error.jsp";
}

function goToMainPage() {
  window.location = appContext + "/";
}

function globalErrorHandler(msg, ex){
     //Error code 1 = Session Expired --> forward to start page.
     if (ex==null || ex.errorCode == '2') {
        goToErrorPage();
     }

     if (ex.errorCode == '1') {
        goToMainPage();
     }

     if (ex.errorCode == '3') {
        alert(msg);
        return false;
     }
}
function useLoadingMessage() {
      var loadingMessage="Loading.  Please Wait...";

      DWREngine.setPreHook(function() {
        var disabledZone = $('disabledZone');
        if (!disabledZone) {
          disabledZone = document.createElement('div');
          disabledZone.setAttribute('id', 'disabledZone');
          disabledZone.style.position = "absolute";
          disabledZone.style.zIndex = "1000";
          disabledZone.style.left = "0px";
          disabledZone.style.top = "0px";
          disabledZone.style.width = "100%";
          disabledZone.style.height = "100%";
          document.body.appendChild(disabledZone);
          var messageZone = document.createElement('div');
          messageZone.setAttribute('id', 'messageZone');
          messageZone.style.position = "absolute";
          messageZone.style.top = "200px";
          messageZone.style.right = "40%";
          messageZone.style.background = "#d40000";
          messageZone.style.color = "white";
          messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";
          messageZone.style.fontSize="20px";
          messageZone.style.fontWeight="bold";
          messageZone.style.padding = "5px";
          disabledZone.appendChild(messageZone);
          var text = document.createTextNode(loadingMessage);
          messageZone.appendChild(text);
        }
        else {
          $('messageZone').innerHTML = loadingMessage;
          disabledZone.style.visibility = 'visible';
        }
      });

      DWREngine.setPostHook(function() {
        $('disabledZone').style.visibility = 'hidden';
      });
}

function filterEntitiesPositions() {
	orgId = getSelectedRadioValue(document.getElementsByName('searchCriteria.organizationType'));
	if($('searchCriteria.entityId')) {
		year =	$('searchCriteria.fiscalYear');
		if(year) {
			year = $('searchCriteria.fiscalYear').value;
		}
		stDWRService.getEntitiesByOrgTypeYear(orgId, year, populateEntities);	
	}
	filterScoas(orgId);
}
 

//once orgType is selected, enable the following section and prepopulate data
function filterFollowSectionsByOrgType(entryPoint) {
	var orgId = getSelectedRadioValue(document.getElementsByName('searchCriteria.organizationType'));
	var year = $('searchCriteria.fiscalYear').value;
	if(entryPoint == "PersonTitle") {
		document.getElementById('searchCriteria.title').disabled = false;
		//stDWRService.getPositionsByOrgTypeYearAndEntity(orgId, year, null, populatePositions);
	}
	else if (entryPoint == "PersonName") {
		document.getElementById('searchCriteria.name').disabled = false;
		
	}
	else if(entryPoint == "OrgEntity" ) {
		document.getElementById('searchCriteria.entityId').disabled = false;
		stDWRService.getEntitiesByOrgTypeYear(orgId, year, populateEntities);	
	}
	else if(entryPoint == "Advanced" ) {
		document.getElementById('searchCriteria.title').disabled = false;
		document.getElementById('searchCriteria.name').disabled = false;
		document.getElementById('searchCriteria.entityId').disabled = false;		
		stDWRService.getEntitiesByOrgTypeYear(orgId, year, populateEntities);	
		//stDWRService.getPositionsByOrgTypeYearAndEntity(orgId, year, null, populatePositions);
	}
}

function filterFollowSectionsByYear() {
	var entity = $('searchCriteria.entityId');
	var title = $('searchCriteria.title');
	var orgId = getSelectedRadioValue(document.getElementsByName('searchCriteria.organizationType'));
	var year = $('searchCriteria.fiscalYear').value;
	if(entity.disabled == false) {
		//re-populate
		stDWRService.getEntitiesByOrgTypeYear(orgId, year, populateEntities);			
	}
	/*if(title.disabled == false) {
		stDWRService.getPositionsByOrgTypeYearAndEntity(orgId, year, entity.value, populatePositions);		
	}*/
}

function populateEntities(data) {
	DWRUtil.removeAllOptions('searchCriteria.entityId');
	DWRUtil.addOptions('searchCriteria.entityId', {0:"-- Please Select --"});	
	DWRUtil.addOptions('searchCriteria.entityId', data);
}

/*function filterPositions(entryPoint) {
	if(entryPoint == "Advanced" ) {
		var orgId = getSelectedRadioValue(document.getElementsByName('searchCriteria.organizationType'));
		var year = $('searchCriteria.fiscalYear').value;
		var entityId = $('searchCriteria.entityId').value;
		stDWRService.getPositionsByOrgTypeYearAndEntity(orgId, year, entityId, populatePositions);
	}
}
*/
function populatePositions(data) {
	DWRUtil.removeAllOptions('searchCriteria.title');
	DWRUtil.addOptions('searchCriteria.title', {0:"-- Please Select --"});	
	DWRUtil.addOptions('searchCriteria.title', data);
}
