JSONstring={compactOutput:false,includeProtos:false,includeFunctions:false,detectCirculars:true,restoreCirculars:true,make:function(arg,restore){this.restore=restore;this.mem=[];this.pathMem=[];return this.toJsonStringArray(arg).join('');},toObject:function(x){eval("this.myObj="+x);if(!this.restoreCirculars||!alert){return this.myObj};this.restoreCode=[];this.make(this.myObj,true);var r=this.restoreCode.join(";")+";";eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")');eval(r);return this.myObj},toJsonStringArray:function(arg,out){if(!out){this.path=[]};out=out||[];var u;switch(typeof arg){case'object':this.lastObj=arg;if(this.detectCirculars){var m=this.mem;var n=this.pathMem;for(var i=0;i<m.length;i++){if(arg===m[i]&&arg!=null){out.push('"JSONcircRef:'+n[i]+'"');return out}};m.push(arg);n.push(this.path.join("."));};if(arg){if(arg.constructor==Array){out.push('[');for(var i=0;i<arg.length;++i){this.path.push(i);if(i>0)
out.push(',\n');this.toJsonStringArray(arg[i],out);this.path.pop();}
out.push(']');return out;}else if(typeof arg.toString!='undefined'){out.push('{');var first=true;for(var i in arg){if(!this.includeProtos&&arg[i]===arg.constructor.prototype[i]){continue};this.path.push(i);var curr=out.length;if(!first)
out.push(this.compactOutput?',':',\n');this.toJsonStringArray(i,out);out.push(':');this.toJsonStringArray(arg[i],out);if(out[out.length-1]==u)
out.splice(curr,out.length-curr);else
first=false;this.path.pop();}
out.push('}');return out;}
return out;}
out.push('null');return out;case'unknown':case'undefined':case'function':out.push(this.includeFunctions?arg:u);return out;case'string':if(this.restore&&arg.indexOf("JSONcircRef:")==0){this.restoreCode.push('this.myObj.'+this.path.join(".")+"="+arg.split("JSONcircRef:").join("this.myObj."));};out.push('"');var a=['\n','\\n','\r','\\r','"','\\"'];arg+="";for(var i=0;i<6;i+=2){arg=arg.split(a[i]).join(a[i+1])};out.push(arg);out.push('"');return out;default:out.push(String(arg));return out;}}}
function ToggleFavorite(favType,id,callback){var request=CreateXmlHttpRequest();request.open("POST","/favorites/"+favType+"/"+id+"/toggle");request.onreadystatechange=function(){if(request.readyState==4){if(request.status==200){var result=JSONstring.toObject(request.responseText);if(callback){callback(favType,id,result.status);}}}}
request.send('');}
function LoadPartialCheckboxes(searchUrl){var url=searchUrl+"?rand="+CalcRandom();var request=CreateXmlHttpRequest();request.open("GET",url,true);request.onreadystatechange=function(){if(request.readyState==4){if(GetSucceeded(request.status)){var checkIds=JSONstring.toObject(request.responseText);for(var i=0;i<checkIds.length;++i){var checkbox=document.getElementById("listing_"+checkIds[i]);if(checkbox){checkbox.checked=true;checkbox.indeterminate=true;TristateCheckboxes.Update(checkbox);}}}}}
request.send(null)}
function SaveSubCategory(){var last=document.getElementById("lastSubcategory");var current=document.getElementById("searchSubcategory");last.value=current.value;}
function FixDividers(){var searchSidebar=document.getElementById("contactSearch");var divs=searchSidebar.getElementsByTagName("div");var lastWasDivider=false;for(var i=0;i<divs.length;++i){if(divs[i].className.match(/formRow/)){if(!divs[i].className.match(/hidden/)){lastWasDivider=false;}}else if(divs[i].className.match(/leftBoxDivider/)){if(lastWasDivider){divs[i].style.display="none";}else{divs[i].style.display="block";}
lastWasDivider=true;}else{}}}
function FixSpecialtiesList(category){PopupWindow.Unregister("specialtiesChecklist");PopupWindow.Register("specialtiesChecklist",{url:kSpecialtiesChecklistUrl+"?category="+category,callout:"specialtiesArrow",onCreate:function(eventParams){PreloadChecklist(eventParams.frameWindow,eventParams.frameDocument.dialogForm,"searchSpecialties");},onCancel:function(){PopupWindow.Close();},onOK:function(eventParams){if(eventParams.frameWindow.Validate()){SetChecklist(eventParams.frameWindow,eventParams.frameDocument.dialogForm,"searchSpecialties","searchSpecialtiesDescription","searchSavedSpecialtiesDescription","All");PopupWindow.Close();}}});}
function ReloadSubCategories(){var category=document.getElementById("searchCategory").value;var url=UrlSub(BaseUrls.reloadSubcategories,"categoryCode",category)+"?rand="+CalcRandom();var request=CreateXmlHttpRequest();request.open("GET",url,true);request.onreadystatechange=function(){if(request.readyState==4){if(request.status==200){var jsonResponse=JSONstring.toObject(request.responseText);var theForm=document.getElementById("contactSearch");var hiddenWidgets=[];var visibleWidgets=[];var widgets=theForm.getElementsByTagName("div");for(i=0;i<widgets.length;++i){if(typeof widgets[i].id!='undefined'&&widgets[i].id.match(/^widget(.+)$/)){hiddenWidgets.push(widgets[i]);}}
for(i=0;i<jsonResponse.availableWidgets.length;++i){var name=jsonResponse.availableWidgets[i];var id="widget"+(name.substring(0,1)).toUpperCase()+name.substring(1);visibleWidgets.push(document.getElementById(id));for(j=0;j<hiddenWidgets.length;++j){if(hiddenWidgets[j].id==id){hiddenWidgets.splice(j,1);break;}}}
for(i=0;i<hiddenWidgets.length;++i){hiddenWidgets[i].className="formRow hidden";}
for(i=0;i<visibleWidgets.length;++i){visibleWidgets[i].className="formRow";}
FixDividers();FixSpecialtiesList(category);}}}
request.send(null);UpdateSearchButton();}
var kClearElements={searchName:"",searchCategory:"*",searchSubcategory:"*",searchCity:"",searchMetro:"",searchState:"",searchRegion:"",searchMultiLocations:"",searchSavedMultiLocationsDescription:"",searchSpecialties:"*",searchSavedSpecialtiesDescription:"All",searchClients:"*",searchSavedClientsDescription:"All",searchJobTitles:"*",searchSavedJobTitlesDescription:"All",searchInterestGroups:"*",searchSavedInterestGroupsDescription:"All",searchBusinessSectors:"*",searchSavedBusinessSectorsDescription:"All",searchBillings:"SML",searchRosterSize:"ISML",searchHiringHabits:"IPS",searchRepresents:"IPS"};function UpdateSearchButton(){var disabled=true;for(var n in kClearElements){var elem=document.getElementById(n);var ev=kClearElements[n];if(elem&&elem.value!=ev){disabled=false;break;}}
if(disabled){DisableFancyButton("submitSearch");}else{EnableFancyButton("submitSearch");}}
function LocationButtonSelected(editName){var clearFields=["searchCity","searchState","searchRegion","searchMultiLocations"];for(var i=0;i<clearFields.length;++i){if(editName==clearFields[i]){continue;}
var elem=document.getElementById(clearFields[i]);if(elem){elem.value=kClearElements[clearFields[i]];}
if(clearFields[i]=="searchMultiLocations"){elem=document.getElementById("searchSavedMultiLocationsDescription");if(elem){elem.value=kClearElements["searchSavedMultiLocationsDescription"];}
UpdateChecklistDescriptions();}}}
function SelectLocation(name){var bar=document.getElementById("contactSearch");var items=bar.getElementsByTagName("input");for(var i=0;i<items.length;++i){if(items[i].type=="radio"&&items[i].name=="searchLocation"){items[i].checked=(items[i].value==name);if(items[i].checked&&items[i].onclick){items[i].onclick();}}}
UpdateSearchButton();}
function ClearSearchLocation(){var bar=document.getElementById("contactSearch");var items=bar.getElementsByTagName("input");for(var i=0;i<items.length;++i){if(items[i].type=="radio"&&items[i].name=="searchLocation"){items[i].checked=false;}}}
function ClearSearch(){var elem;for(elem in kClearElements){var element=document.getElementById(elem);if(element){element.value=kClearElements[elem];}}
var element=document.getElementById("searchEmailOnly");element.checked=false;TristateCheckboxes.Update(element);ClearSearchLocation();ReloadSubCategories();UpdateChecklistDescriptions();}
function PreloadChecklist(theWindow,theForm,fieldId){var oldValue=document.getElementById(fieldId).value;var allChecked=false;var checkedValues={};if(oldValue=="*"){allChecked=true;}else{var items=oldValue.split(",");for(var i=0;i<items.length;++i){checkedValues[items[i]]=true;}}
theWindow.Precheck(allChecked,checkedValues);}
function UpdateChecklistDescriptions(){var hidden=["searchSavedClientsDescription","searchSavedBusinessSectorsDescription","searchSavedJobTitlesDescription","searchSavedSpecialtiesDescription","searchSavedInterestGroupsDescription","searchSavedMultiLocationsDescription"];var labels=["searchClientsDescription","searchBusinessSectorsDescription","searchJobTitlesDescription","searchSpecialtiesDescription","searchInterestGroupsDescription","searchMultiLocationsDescription"];for(i=0;i<hidden.length;++i){var hiddenElem=document.getElementById(hidden[i]);var labelElem=document.getElementById(labels[i]);if(labelElem&&hiddenElem){labelElem.innerHTML=HtmlEscape(Ellipsize(hiddenElem.value,45));}}}
function SetChecklist(theWindow,theForm,fieldId,descId,savedDescId,allDesc){var checks=theWindow.GetChecks();var ids=checks.ids;var descriptions=checks.descriptions;var allChecked=checks.allChecked;var hiddenInput=document.getElementById(fieldId);if(allChecked){hiddenInput.value="*";}else{hiddenInput.value=ids;}
var descriptor=document.getElementById(descId);var hiddenDescriptor=document.getElementById(savedDescId);if(allChecked){descriptor.innerHTML=Ellipsize(allDesc,45);hiddenDescriptor.value=allDesc;}else{descriptor.innerHTML=HtmlEscape(Ellipsize(descriptions,45));hiddenDescriptor.value=descriptions;}
UpdateSearchButton();}
var SelectionTracker={numListings:0,numSublistings:0,selectedListings:0,selectedContacts:0,SetCounts:function(){var listingLabel=document.getElementById("chosenListings");var sublistingLabel=document.getElementById("chosenSublistings");if(listingLabel){listingLabel.innerHTML=HtmlEscape(""+this.selectedListings);}
if(sublistingLabel){sublistingLabel.innerHTML=HtmlEscape(""+this.selectedContacts);}},ToggleListing:function(searchId,id,spillOver){var checkbox=document.getElementById("listing_"+id);var request=CreateXmlHttpRequest();var url="";var owner=this;if(checkbox.checked){url=UrlSub(BaseUrls.selectListing,"listingId",id);this.selectedListings+=1;if(spillOver){this.selectedContacts+=1;}}else{url=UrlSub(BaseUrls.deselectListing,"listingId",id);this.selectedListings-=1;if(spillOver){this.selectedContacts-=1;}}
if(searchId!=null){url+="?searchId="+searchId;}
request.open("PUT",url,true);request.onreadystatechange=function(){if(request.readyState==4){if(ArrayHasElement(getSuccessCodes,request.status)){owner.AdjustCheckboxes(request.responseText);owner.SetCounts();}}}
request.setRequestHeader("Content-length",0);request.send("");},ToggleSublisting:function(searchId,id){var checkbox=document.getElementById("sublisting_"+id);var request=CreateXmlHttpRequest();var url="";var owner=this;if(checkbox.checked){url=UrlSub(BaseUrls.selectSublisting,"sublistingId",id);this.selectedContacts+=1;}else{url=UrlSub(BaseUrls.deselectSublisting,"sublistingId",id);this.selectedContacts-=1;}
if(searchId!=null){url+="?searchId="+searchId;}
request.open("PUT",url,true);request.onreadystatechange=function(){if(request.readyState==4){if(ArrayHasElement(getSuccessCodes,request.status)){owner.AdjustCheckboxes(request.responseText);owner.SetCounts();}}}
request.setRequestHeader("Content-length",0);request.send("");},AdjustCheckboxes:function(text){var newChecks=JSONstring.toObject(text);for(i=0;i<newChecks.partialListings.length;++i){var id=newChecks.partialListings[i];var checkbox=document.getElementById("listing_"+id);if(checkbox){if(!checkbox.checked&&!checkbox.disabled){this.selectedListings+=1;}
checkbox.checked=true;checkbox.indeterminate=true;TristateCheckboxes.Update(checkbox);}}
for(i=0;i<newChecks.partialSublistings.length;++i){var id=newChecks.partialSublistings[i];var checkbox=document.getElementById("sublisting_"+id);if(checkbox){if(!checkbox.checked&&!checkbox.disabled){this.selectedContacts+=1;}
checkbox.checked=true;checkbox.indeterminate=true;TristateCheckboxes.Update(checkbox);}}
for(i=0;i<newChecks.uncheckedListings.length;++i){var id=newChecks.uncheckedListings[i];var checkbox=document.getElementById("listing_"+id);if(checkbox){if(checkbox.checked&&!checkbox.disabled){this.selectedListings-=1;}
checkbox.checked=false;checkbox.indeterminate=false;TristateCheckboxes.Update(checkbox);}}
for(i=0;i<newChecks.uncheckedSublistings.length;++i){var id=newChecks.uncheckedSublistings[i];var checkbox=document.getElementById("sublisting_"+id);if(checkbox){if(checkbox.checked&&!checkbox.disabled){this.selectedContacts-=1;}
checkbox.checked=false;checkbox.indeterminate=false;TristateCheckboxes.Update(checkbox);}}
for(i=0;i<newChecks.checkedListings.length;++i){var id=newChecks.checkedListings[i];var checkbox=document.getElementById("listing_"+id);if(checkbox){if(!checkbox.checked&&!checkbox.disabled){this.selectedListings+=1;}
checkbox.checked=!checkbox.disabled;checkbox.indeterminate=false;TristateCheckboxes.Update(checkbox);}}
for(i=0;i<newChecks.checkedSublistings.length;++i){var id=newChecks.checkedSublistings[i];var checkbox=document.getElementById("sublisting_"+id);if(checkbox){if(!checkbox.checked&&!checkbox.disabled){this.selectedContacts+=1;}
checkbox.checked=!checkbox.disabled;checkbox.indeterminate=false;TristateCheckboxes.Update(checkbox);}}},SelectAll:function(searchId){var owner=this;var request=CreateXmlHttpRequest();var url=BaseUrls.selectAllListings;url+="?searchId="+searchId;request.open("PUT",url,true);request.onreadystatechange=function(){if(request.readyState==4){if(ArrayHasElement(getSuccessCodes,request.status)){owner.AdjustCheckboxes(request.responseText);var obj=JSONstring.toObject(request.responseText);owner.selectedContacts=obj.checkedContactCount;owner.SetCounts();}}}
request.setRequestHeader("Content-length",0);request.send("");},DeselectAll:function(searchId){var owner=this;var request=CreateXmlHttpRequest();var url=BaseUrls.deselectAllListings;url+="?searchId="+searchId;request.open("PUT",url,true);request.onreadystatechange=function(){if(request.readyState==4){if(ArrayHasElement(getSuccessCodes,request.status)){owner.AdjustCheckboxes(request.responseText);owner.selectedContacts=0;owner.selectedListings=0;owner.SetCounts();}}}
request.setRequestHeader("Content-length",0);request.send("");}};function ChangeFavoriteComplete(favType,id,status){var favoriteImage=document.getElementById("favoriteImage");var favoriteLink=document.getElementById("favoriteLink");if(favoriteImage&&favoriteLink){if(status){favoriteImage.src="/static/images/bookmarkTrue.gif";favoriteImage.alt="Remove Favorite";favoriteLink.href="javascript:void(ClearFavorite("+id+"))";}else{favoriteImage.src="/static/images/bookmarkFalse.gif";favoriteImage.alt="Add Favorite";favoriteLink.href="javascript:void(SetFavorite("+id+"))";}}else{favoriteImage=document.getElementById("favoriteImage_"+id);favoriteLink=document.getElementById("favoriteLink_"+id);if(favoriteImage&&favoriteLink){if(status){favoriteImage.src="/static/images/bookmarkTrue.gif";favoriteImage.alt="Remove Favorite";favoriteLink.href="javascript:void(ClearFavorite("+id+"))";}else{favoriteImage.src="/static/images/bookmarkFalse.gif";favoriteImage.alt="Add Favorite";favoriteLink.href="javascript:void(SetFavorite("+id+"))";}}}}
function SetFavorite(id){ToggleFavorite('contact',id,ChangeFavoriteComplete);}
function ClearFavorite(id){ToggleFavorite('contact',id,ChangeFavoriteComplete);}
<!--
function changeImage(imgName,imgSrc)
{document.images[imgName].src=imgSrc;}
function preloadImages(){var d=document;if(d.images){if(!d.p)d.p=new Array();var i,j=d.p.length,a=preloadImages.arguments;for(i=0;i<a.length;i++)
if(a[i].indexOf("#")!=0){d.p[j]=new Image;d.p[j++].src=a[i];}}}
function popUp(url,width,height,scrolls)
{winOptions="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars="+scrolls+",resizable=no,copyhistory=no,width="+width+",height="+height+",screenX=20,screenY=20";var win=window.open(url,'Help',winOptions);if(!win.opener)win.opener=self;if(win.focus)win.focus();}