
function updateOccupations(item,occupations1,occupations2,sourceControl1,sourceControl2,targetControl){if(occupations1==null)return;updateOccupations_mergeAll(occupations1,sourceControl1);updateOccupations_mergeAll(occupations2,sourceControl2);updateOccupations_markNonCoreOccupations(occupations1,occupations2);updateOccupations_markNonCoreOccupations(occupations2,occupations1);var selectedValues=updateOccupations_getSelectedValues(targetControl);var openFolders=updateOccupations_getOpenFolders(targetControl);var modified=false;if(item!=null){var key=updateOccupations_getItemKey(item,occupations1)||updateOccupations_getFolderKey(item.folder,occupations1);if(key!=null){if(item.isSelected()){var occupationsToAdd=TwoTierCheckBoxList_Folder.copy(occupations1[key]);if(occupations2!=null&&sourceControl2!=null){updateOccupations_removeNonCoreOccupations(occupationsToAdd,occupations1,occupations2,sourceControl2);}
if(occupationsToAdd.length>0){modified=targetControl.addFolders(occupationsToAdd);}}
else{var occupationsToRemove=TwoTierCheckBoxList_Folder.copy(occupations1[key]);if(sourceControl1!=null){TwoTierCheckBoxList_Folder.remove(occupationsToRemove,updateOccupations_getOccupations(sourceControl1,occupations1,item));}
if(occupationsToRemove.length>0){modified=targetControl.removeFolders(occupationsToRemove);}}}}
else if(sourceControl1!=null){var occupationsToAdd=updateOccupations_getOccupations(sourceControl1,occupations1,null);if(occupations2!=null&&sourceControl2!=null){updateOccupations_removeNonCoreOccupations(occupationsToAdd,occupations1,occupations2,sourceControl2);}
if(occupationsToAdd.length>0){modified=targetControl.addFolders(occupationsToAdd);}}
if(modified){targetControl.render(targetControl.name+":Div");updateOccupations_restoreSelectedValues(selectedValues,targetControl);updateOccupations_restoreOpenFolders(openFolders);}}
function updateOccupations_mergeAll(occupations,control){if(occupations!=null&&control!=null&&control.items!=null&&occupations["all"]==null){var allOccupations=[];var found=false;for(var i=0;i<control.items.length;i++){if(control.items[i].value=="all"){found=true;break;}}
if(found){for(var key in occupations){TwoTierCheckBoxList_Folder.add(allOccupations,occupations[key]);}}
occupations["all"]=allOccupations;}}
function updateOccupations_markNonCoreOccupations(occupations1,occupations2){if(occupations1!=null&&occupations2!=null&&occupations1.nonCoreOccupations==null){occupations1.nonCoreOccupations=new Object();for(var key in occupations1){var occ=occupations1[key];for(var i=0;i<occ.length;i++){var jobCategory=occ[i];for(var j=0;j<jobCategory[1].length;j++){var occupationID=jobCategory[1][j][0];occupations1.nonCoreOccupations[occupationID]=[];}}}
for(var key in occupations2){var occ=occupations2[key];for(var i=0;i<occ.length;i++){var jobCategory=occ[i];for(var j=0;j<jobCategory[1].length;j++){var occupationID=jobCategory[1][j][0];if(occupations1.nonCoreOccupations[occupationID]!=null){occupations1.nonCoreOccupations[occupationID].push(key);}}}}
for(var occupationID in occupations1.nonCoreOccupations){if(occupations1.nonCoreOccupations[occupationID].length==0){delete occupations1.nonCoreOccupations[occupationID];}}}}
function updateOccupations_isItemSelected(occupations,source,value){if(source.getSelection!=null){var selection=source.getSelection();for(var i=0;i<selection.folders.length;i++){var folder=selection.folders[i];if(updateOccupations_getFolderKey(folder,occupations)==value)return true;for(var j=0;j<folder.items.length;j++){if(updateOccupations_getItemKey(folder.items[j],occupations)==value)return true;}}
for(var i=0;i<selection.items.length;i++){if(updateOccupations_getItemKey(selection.items[i],occupations)==value)return true;}
return false;}
else{return(source==value);}}
function updateOccupations_removeNonCoreOccupations(occupationsToModify,occupations1,occupations2,source){for(var i=occupationsToModify.length-1;i>=0;i--){var jobCategory=occupationsToModify[i];for(var j=jobCategory[1].length-1;j>=0;j--){var occupationID=jobCategory[1][j][0];if(occupations1.nonCoreOccupations[occupationID]!=null){var selected=false;for(var k=0;k<occupations1.nonCoreOccupations[occupationID].length;k++){if(updateOccupations_isItemSelected(occupations2,source,occupations1.nonCoreOccupations[occupationID][k])){selected=true;break;}}
if(!selected){occupationsToModify[i][1].splice(j,1);if(occupationsToModify[i][1].length==0){occupationsToModify.splice(i,1);}}}}}}
function updateOccupations_getSelectedValues(control){return control.getValue().split(",");}
function updateOccupations_restoreSelectedValues(selectedValues,control){for(var i=0;i<selectedValues.length;i++){control.select(selectedValues[i],true);}}
function updateOccupations_getOpenFolders(control){var openFolders=new Array();for(var i=0;i<control.folders.length;i++){var folder=control.folders[i];if(folder.isOpened())openFolders.push(folder.id);}
return openFolders;}
function updateOccupations_restoreOpenFolders(openFolders){for(var i=0;i<openFolders.length;i++){TwoTierCheckBoxList_OpenFolder(openFolders[i]);}}
function updateOccupations_getItemKey(item,occupations){var key=null;if(item.itemInfo&&occupations[item.itemInfo]!=null){key=item.itemInfo;}
else if(occupations[item.value]!=null){key=item.value;}
return key}
function updateOccupations_getFolderKey(folder,occupations){var key=null;if(folder!=null){if(folder.folderInfo&&occupations[folder.folderInfo]!=null){key=folder.folderInfo;}
else if(occupations[folder.name]!=null){key=folder.name;}}
return key;}
function updateOccupations_addFolderOccupations(occupationsToAdd,folder,itemToSkip,occupations){var key=updateOccupations_getFolderKey(folder,occupations);if(key!=null){TwoTierCheckBoxList_Folder.add(occupationsToAdd,occupations[key]);}
else{for(var j=0;j<folder.items.length;j++){updateOccupations_addItemOccupations(occupationsToAdd,folder.items[j],itemToSkip,occupations);}}}
function updateOccupations_addItemOccupations(occupationsToAdd,item,itemToSkip,occupations){if(itemToSkip!=null&&item.value==itemToSkip.value)return;var key=updateOccupations_getItemKey(item,occupations);if(key!=null){TwoTierCheckBoxList_Folder.add(occupationsToAdd,occupations[key]);}}
function updateOccupations_getOccupations(source,occupations,itemToSkip){var result=[];if(source.getSelection!=null){var selection=source.getSelection();for(var i=0;i<selection.folders.length;i++){updateOccupations_addFolderOccupations(result,selection.folders[i],itemToSkip,occupations);}
for(var i=0;i<selection.items.length;i++){updateOccupations_addItemOccupations(result,selection.items[i],itemToSkip,occupations);}}
else if(occupations[source]!=null&&(itemToSkip==null||itemToSkip.value!=source)){TwoTierCheckBoxList_Folder.add(result,occupations[source]);}
return result;}
function switchBetweenLocationsAndZipCode(countryName,occupations,source,target,direction){var selectedValues=target.getValue().split(",");var openFolders=new Array();for(var i=0;i<target.folders.length;i++){var folder=target.folders[i];if(folder.isOpened())openFolders.push(folder.id);}
var modified=false;var checked=false;var occupations1=[];if(source.getSelection().itemCount>0){for(var i=0;i<source.getSelection().folders.length;i++){var folder=source.getSelection().folders[i];if(folder.name==countryName){checked=true;continue;}
if(occupations[folder.name]!=null){TwoTierCheckBoxList_Folder.add(occupations1,occupations[folder.name]);}}}
var occupations2=[];if(!checked&&occupations[countryName]!=null&&occupations[countryName].length>0){occupations2=TwoTierCheckBoxList_Folder.copy(occupations[countryName]);}
if(direction==1){if(occupations1.length>0){TwoTierCheckBoxList_Folder.remove(occupations2,occupations1);modified=target.addFolders(occupations1)||modified;}
if(occupations2.length>0){modified=target.removeFolders(occupations2)||modified;}}
else{if(occupations2.length>0){TwoTierCheckBoxList_Folder.remove(occupations1,occupations2);modified=target.addFolders(occupations2)||modified;}
if(occupations1.length>0){modified=target.removeFolders(occupations1)||modified;}}
if(modified){target.render(target.name+":Div");for(var i=0;i<selectedValues.length;i++)target.select(selectedValues[i],true);for(var i=0;i<openFolders.length;i++)TwoTierCheckBoxList_OpenFolder(openFolders[i]);}}
function switchToLocations(countryName,occupations,source,target){switchBetweenLocationsAndZipCode(countryName,occupations,source,target,1);}
function switchToZipCode(countryName,occupations,source,target){switchBetweenLocationsAndZipCode(countryName,occupations,source,target,2);}
;
