var infradoxFilters={initialize:function(filters,form){this._filters=filters;
if(form) this.initializeControls(form);},
initializeControls:function(form){var oFilter;
var invertedcheckboxes=this._filters.invertedcheckboxes;
for(var i=0;i<this._filters.settings.length;i++){oFilter=this._filters.settings[i];
if(oFilter){if(!oFilter.value){if(oFilter.all){switch(oFilter.type){case 'checkbox':eval('form.'+oFilter.name+'_'+oFilter.all+'.checked=1');break;
case 'select':eval('form.'+oFilter.name+'options[0].selected=1');break;
case 'radio':eval('form.'+oFilter.name+'_'+oFilter.all+'.checked=1');break;}
}else{if(invertedcheckboxes){for(j=0;j<oFilter.options.length;j++){eval('form.'+oFilter.name+'_'+j+'.checked=1');}}}
}else{for(j=0;j<oFilter.options.length;j++){if(oFilter.value.indexOf(oFilter.options[j])>-1){switch(oFilter.type){case 'checkbox':eval('form.'+oFilter.name+'_'+j+'.checked=1');break;
case 'select':	eval('infradoxApp.getElement("'+oFilter.name+'_'+oFilter.value+'").selected=1');break;
case 'radio':eval('form.'+oFilter.name+'_'+j+'.checked=1');eval('form.'+oFilter.name+'_'+j+'.alt="1"');break;}}}}
this.initializeControlChange(form,oFilter.name);}}},
getFilterByName:function(name){var oFilter=null;
for(var i=0;i<this._filters.settings.length;i++){if(this._filters.settings[i].name==name){oFilter=this._filters.settings[i];
break;}}
return oFilter;},
changeRadio:function(o){if(!o) return;
var name=o.id.split('_'),oFilter=this.getFilterByName(name[0]);
if(!oFilter) return;
var radio;
for(var i=0;i<oFilter.options.length;i++){if(i !=name[1]){radio=infradoxApp.getElement(oFilter.name+'_'+i);
if(radio) radio.checked=0;}}},
changeCheckbox:function(o){if(!o) return;
var name=o.id.split('_'),oFilter=this.getFilterByName(name[0]);
if(!oFilter) return;
var checkbox;
if(oFilter.all){if(oFilter.all==name[1]){if(o.checked){for(var i=0;i<oFilter.options.length;i++){checkbox=infradoxApp.getElement(oFilter.name+'_'+i);
if(checkbox) checkbox.checked=0;}
}else{checkbox=infradoxApp.getElement(oFilter.name+'_0');
if(checkbox) checkbox.checked=1;}
}else{var allChecked=1;
for(var i=0;i<oFilter.options.length;i++){checkbox=infradoxApp.getElement(oFilter.name+'_'+i);
if(checkbox) if(!checkbox.checked) allChecked=0;}
checkbox=infradoxApp.getElement(oFilter.name+'_'+oFilter.all);
if(allChecked){if(checkbox) checkbox.checked=1;
for(var i=0;i<oFilter.options.length;i++){checkbox=infradoxApp.getElement(oFilter.name+'_'+i);
if(checkbox) checkbox.checked=0;}
}else{if(checkbox) checkbox.checked=0;}}}},
initializeControlChange:function(form,filtername){if(!this._filters) return;
var oFilter=this.getFilterByName(filtername);
if(!oFilter){alert('filter not found:'+filtername);return};
var checkbox;
switch(oFilter.type){case 'checkbox':
if(oFilter.all){checkbox=infradoxApp.getElement(oFilter.name+'_'+oFilter.all);
if(checkbox) checkbox.onclick=function(){infradoxFilters.changeCheckbox(this)};}
for(var i=0;i<oFilter.options.length;i++){checkbox=infradoxApp.getElement(oFilter.name+'_'+i);
if(checkbox) checkbox.onclick=function(){infradoxFilters.changeCheckbox(this)};}
break;
case 'radio':
for(var i=0;i<oFilter.options.length;i++){radio=infradoxApp.getElement(oFilter.name+'_'+i);
if(radio){if(!radio.alt){radio.checked=0;}
radio.onclick=function(){infradoxFilters.changeRadio(this)};}}
break;}},
clearFilterValues:function(){if(!this._filters) return;
for(var i=0;i<this._filters.settings.length;i++){oFilter=this._filters.settings[i];
if(oFilter) oFilter.value='';}},
applyFiltersFromControls:function(){if(!this._filters) return;
var o;
for(var i=0;i<this._filters.settings.length;i++){oFilter=this._filters.settings[i];
if(oFilter){oFilter.value='';
switch(oFilter.type){case 'radio':
case 'checkbox':
for(var j=0;j<oFilter.options.length;j++){o=infradoxApp.getElement(oFilter.name+'_'+j);
if(o) if(o.checked) oFilter.value+=oFilter.options[j];}
break;
case 'select':
o=infradoxApp.getElement(oFilter.name);
if(o&&o.options[o.selectedIndex].value!='0') oFilter.value+=o.options[o.selectedIndex].value;
break;}}}},
filterIsActive:function(name){var oFilter=this.getFilterByName(name);
if(!oFilter) return 0;
return (oFilter.value!='');},
filtersAsStringClear:function(){if(!this._filters) return '';
var fs='';
for(var i=0;i<this._filters.settings.length;i++){oFilter=this._filters.settings[i];
fs+='&'+oFilter.filter+'=';}
return fs;},
filtersAsString:function(){if(!this._filters) return '';
var fs='';
for(var i=0;i<this._filters.settings.length;i++){oFilter=this._filters.settings[i];
if(oFilter.value==oFilter.options.join('')) oFilter.value='';
fs+='&'+oFilter.filter+'='+oFilter.value;}
return fs;},
filtersAsText:function(excludefiltername){var onefilter='',names=new Array();
if(!this._filters) return names;
excludefiltername=(excludefiltername?1:0);
for(var i=0;i<this._filters.settings.length;i++){oFilter=this._filters.settings[i];
if(oFilter.value!=''){onefilter='';
for(var j=0;j<oFilter.options.length;j++){if(oFilter.value.indexOf(oFilter.options[j])>-1) onefilter+=oFilter.optionnames[j]+' ';}
if(onefilter) names[names.length]=(excludefiltername?'':(oFilter.label||oFilter.name)+':')+onefilter;}}
return names;}}
var infradoxSearchTools={initializeSections:function(sections){this.sections=sections;
for(var i=0;i<sections.settings.length;i++){this.toggleToolboxSection(sections.settings[i].name,1,sections.settings[i].expanded);}},
getToolboxSectionVisible:function(divId){var e=infradoxApp.getElement(divId),s='0';
if(e){s=(e.style.display=='none')?'0':'1';}
return s;},
getToolboxParameters:function(){var s='';
if(this.sections){for(var i=0;i<this.sections.settings.length;i++){s+='&'+this.sections.settings[i].paramname+'='+this.getToolboxSectionVisible('_toolsection_'+this.sections.settings[i].name);};};
return s;},
toggleToolboxSection:function(name,init,visible){var e,img,imgcollapsed='/images/css/options-collapsed.gif',imgexpanded='/images/css/options-expanded.gif',show=0;
e=infradoxApp.getElement('_toolsection_'+name);
img=infradoxApp.getElement('toolsection_'+name+'_2');
if(!e){alert('_toolsection_'+name+' not found');return};
if(init){show=(infradoxFilters.filterIsActive(name))?1:visible;
}else{show=e.style.display=='none';};
if(this.sections.options){if(this.sections.options.img.collapsed) imgcollapsed=this.sections.options.img.collapsed;
if(this.sections.options.img.expanded) imgexpanded=this.sections.options.img.expanded;};
if(show){e.style.display='block';
img.src=imgexpanded;
}else{e.style.display='none';
img.src=imgcollapsed;};
if(this.sections){var sett=this.sections.settings;
for(var i=0;i<sett.length;i++){if(sett[i].name==name){if(sett[i].onchange){sett[i].onchange(name,show,init);};
break;};};};},
searchTerm:function(s,refine){var within=0;
if(refine){within=1;
}else{if(document.powersearchForm){if(document.powersearchForm.psInResults){within=document.powersearchForm.psInResults.checked;}}}
infradoxFilters.applyFiltersFromControls();
infradoxAction.executeSearch(parent.toppanel.oSearch,0,within,[],[s],
infradoxFilters.filtersAsString(),
this.getToolboxParameters());},
paintJSONkeycloud:function(s,targetDivId,chunks,sortAlpha,options){var keywords,chunkSize,list,cloudName,cloudSizes,kc,datalen,csl;
try
{eval('keywords='+s);}
catch(err)
{keywords=null;}
if(!keywords||!keywords.data) return;
datalen=keywords.data.length;
if(datalen<1){infradoxApp.putInnerHtml(targetDivId,sConst_None,0);
return;}
if(datalen==1){list='<li class="cloud1" onclick="javascript:infradoxSearchTools.searchTerm(\''+escape(keywords.data[0].keyword)+'\');">'+keywords.data[0].keyword+'</li>';
infradoxApp.putInnerHtml(targetDivId,list,0);
return;}
chunkSize=Math.round(datalen / chunks);
cloudsizes=[];
cloudsizes[0]=keywords.data[1].keycount;
for(var j=1;j<chunks-1;j++){if(keywords.data[chunkSize*j]){cloudsizes[j]=keywords.data[chunkSize*j].keycount;}}
cloudsizes[chunks-1]=keywords.data[datalen-2].keycount;
cloudsizes[chunks]=cloudsizes[chunks-1];
if(sortAlpha){keywords.data.sort(function(a,b){return (b.keyword<a.keyword) - (a.keyword<b.keyword);});}
var cloud=0;
list='<ul class="keycloud">';
for(var i=0;i<datalen;i++){cloudName='cloud0';
cloud=0;
kc=keywords.data[i].keycount;
if(kc>=cloudsizes[chunks]){cloudName='cloud'+(chunks).toString();
cloud=chunks;
}else{if(kc>cloudsizes[1]){csl=cloudsizes.length;
for(var j=0;j<csl;j++){if((kc>=cloudsizes[j])&&(kc<=cloudsizes[j+1])){cloudName='cloud'+(j+1).toString();
cloud=j+1;
break;}}}}
if(options&&(options.sizes)){var sz,sizes=options.sizes;
sz=sizes.start+(cloud*sizes.inc);
list+='<li style="font-size:'+sz+sizes.as;
if(cloud>=(cloudsizes.length-sizes.biggestbold)){list+=';font-weight:bold';}
list+='"';
}else{list+='<li class="'+cloudName+'"';}
list+=' onclick="javascript:infradoxSearchTools.searchTerm(\''+keywords.data[i].keyword+'\');">'+keywords.data[i].keyword+'</li>';}
list+='</ul>';
infradoxApp.putInnerHtml(targetDivId,list,0);},
paintJSONgallerylist:function(s,targetDivId){var names,list='',parentid=0;
try
{eval('names='+s);}
catch(err)
{names=null;}
if(!names||!names.data) return;
if(names.data.length==0){list=sConst_None;
}else{for(var i=0;i<names.data.length;i++){if(names.data[i].parentid!=parentid){if(list==''){list='<ul>';
}else{list+='</ul></li>';}
list+='<li>'+names.data[i].parenttitle+'<ul>';
parentid=names.data[i].parentid;}
list+='<li id="fc_'+names.data[i].parentid+'_'+names.data[i].id+'_'+names.data[i].glbid+'_'+names.data[i].topid+'" onclick="javascript:infradoxSearchTools.clickcollection(this);">'+names.data[i].title.replace(/\^/g,'"')+'</li>';}
list+='</li></ul>';};
infradoxApp.putInnerHtml(targetDivId,list,0);},
clickcollection:function(e){var topid=2,params=e.id.split('_');
if(params.length==5) topid=params[4];
infradoxApp.collection(topid,params[1],params[2],params[3]);}}

