function RecordListSearchFilter(id,text)
{this.id=id
this.text=text;this.defaultValue=null;this.value=null;this.parent=null;RegisterControl.statics.getInstance().add(this);}
RecordListSearchFilter.prototype.getId=function()
{return this.id;}
RecordListSearchFilter.prototype.setDefaultValue=function(value)
{this.defaultValue=value;}
RecordListSearchFilter.prototype.setValue=function(value)
{this.value=value;this.setInputValue(this.value);}
RecordListSearchFilter.prototype.getValue=function()
{this.value=this.getInputValue();return this.value;}
RecordListSearchFilter.prototype.attach=function(node)
{var td=document.createElement("td");td.appendChild(document.createTextNode(this.text));node.appendChild(td);td=document.createElement("td");td.appendChild(this.getInputNode());node.appendChild(td);}
RecordListSearchFilter.prototype.init=function(parent)
{this.parent=parent;}
RecordListSearchFilter.prototype.getInputNode=function()
{}
RecordListSearchFilter.prototype.setInputValue=function(value)
{}
RecordListSearchFilter.prototype.getInputValue=function()
{}
subclass(RecordListSearchTextFilter,RecordListSearchFilter);function RecordListSearchTextFilter(id,text)
{RecordListSearchFilter.call(this,id,text);}
RecordListSearchTextFilter.prototype.getInputNode=function()
{var input=document.createElement("input");input.type="text";input.id=this.getId();if(this.parent)
{input.RecordListSearchId=this.parent.getId();input.onkeypress=RecordListSearch.statics.enterPressedEvent;}
if(this.value)
input.value=this.value;else if(null==this.value&&this.defaultValue)
input.value=this.defaultValue;return input;}
RecordListSearchTextFilter.prototype.setInputValue=function(value)
{var input=document.getElementById(this.getId());if(input)
{if(value)
input.value=value;else if(null==value&&this.defaultValue)
input.value=this.defaultValue;else
input.value='';}}
RecordListSearchTextFilter.prototype.getInputValue=function()
{var input=document.getElementById(this.getId());if(input&&input.value&&0<input.value.length)
return input.value;return null;}
subclass(RecordListSearchDropdownFilter,RecordListSearchFilter);function RecordListSearchDropdownFilter(id,text)
{RecordListSearchFilter.call(this,id,text);this.items=new Array();}
RecordListSearchDropdownFilter.prototype.setItems=function(items)
{this.items=items;}
RecordListSearchDropdownFilter.prototype.getInputNode=function()
{var input=document.createElement("select");input.id=this.getId();input.options.length=this.items.length;var selectedIndex=0;for(var i=0;i<this.items.length;i++)
{var item=this.items[i];if(item.key==this.value||(null==this.value&&item.key==this.defaultValue))
selectedIndex=i;input.options[i].text=item.value;input.options[i].value=item.key;}
input.options.selectedIndex=selectedIndex;return input;}
RecordListSearchDropdownFilter.prototype.setInputValue=function(value)
{var input=document.getElementById(this.getId());if(input)
{var selectedIndex=0;for(var i=input.options.length-1;0<=i;i--)
{if(value==input.options[i].value||(null==value&&this.defaultValue==input.options[i].value))
{selectedIndex=i;break;}}
input.options.selectedIndex=selectedIndex;}}
RecordListSearchDropdownFilter.prototype.getInputValue=function()
{var input=document.getElementById(this.getId());try
{return input.options[input.options.selectedIndex].value;}
catch(e)
{return null;}}
subclass(RecordListSearchDateFilter,RecordListSearchFilter);function RecordListSearchDateFilter(id,text)
{this.onSelectDate=new REvent();this.logic=new DateSelectorLogic();var bind=this;this.logic.onChanged=function(logic){var d=logic.getValue();bind.raiseSelectDate(d);};RecordListSearchFilter.call(this,id,text);}
RecordListSearchDateFilter.prototype.attach=function(node)
{RecordListSearchFilter.prototype.attach.call(this,node);DateSelector.statics.create(this.getId(),this.logic);}
RecordListSearchDateFilter.prototype.getInputNode=function()
{var div=$C("div");div.id=this.getId();return div;}
RecordListSearchDateFilter.prototype.setInputValue=function(value)
{if(value)
this.logic.setValueFromString(value);else if(null==value&&this.defaultValue)
this.logic.setValueFromString(this.defaultValue);else
this.logic.setValue(new RDate());}
RecordListSearchDateFilter.prototype.getInputValue=function()
{return this.logic.getValue().getString();}
RecordListSearchDateFilter.prototype.raiseSelectDate=function(d)
{this.onSelectDate.trigger(d);}
RecordListSearchDateFilter.prototype.setWeekDaysOff=function(d)
{this.logic.setWeekDaysOff(d);}
RecordListSearchDateFilter.prototype.setHolidays=function(d)
{this.logic.setHolidays(d);}
subclass(RecordListSearchDepartmentFilter,RecordListSearchFilter);function RecordListSearchDepartmentFilter(id,text)
{this.departmentDropDown=null;this.idNewInstance=null;this.bNone=null;this.bAll=null;this.bNoChange=null;this.width=null;this.height=null;RecordListSearchFilter.call(this,id,text);}
RecordListSearchDepartmentFilter.prototype.initialize=function(idNewInstance,bUseExternalDropDown,rootNodeList,nodeMap,bNone,textNone,bAll,textAll,bNoChange,textNoChange,width,height)
{this.bUseExternalDropDown=bUseExternalDropDown;this.rootNodeList=rootNodeList;this.nodeMap=nodeMap;this.idNewInstance=idNewInstance;this.bNone=bNone;this.textNone=textNone;this.bAll=bAll;this.textAll=textAll;this.bNoChange=bNoChange;this.textNoChange=textNoChange;this.width=width;this.height=height;}
RecordListSearchDepartmentFilter.prototype.getInputNode=function()
{var div=$C("div");div.id=this.getId();if(this.idNewInstance==null)
{alert('RecordListSearchDepartmentFilter Error: call initialize() after constructor.');return;}
if(this.departmentDropDown==null)
{var initText=this.initialText;var value=this.value;if(null==value&&this.defaultValue)
value=this.defaultValue;var bValueFound=false;for(var i in this.nodeMap)
{var item=this.nodeMap[i];if(item.id==value)
{bValueFound=true;initText=item.getText();}}
var dropDown=new DropDown(this.idNewInstance,this.rootNodeList,this.nodeMap);dropDown.setUseExternalDropDown(this.bUseExternalDropDown);dropDown.treeSetOptionNoneText(this.textNone);dropDown.treeSetOptionAllText(this.textAll);dropDown.treeSetOptionNoChangeText(this.textNoChange);if(this.bNone==true)
{var text=dropDown.textNone;dropDown.treeSetOptionNoneText(text);dropDown.addNoneOptionToNodeMap();if('None'==value)
{bValueFound=true;initText=text;}}
if(this.bAll==true)
{var text=dropDown.textAll;dropDown.treeSetOptionAllText(text);dropDown.addAllOptionToNodeMap();if('All'==value||null==value||''==value)
{bValueFound=true;value='All';initText=text;}}
if(this.bNoChange==true)
{var text=dropDown.textNoChange;dropDown.treeSetOptionNoChangeText(text);dropDown.addNoChangeOptionToNodeMap();if('NoChange'==value)
{bValueFound=true;initText=text;}}
if(bValueFound)
{dropDown.selectedValue=value;dropDown.selectedText=initText;}
if(this.width!=null&&this.height!=null)
{dropDown.setSize(this.width,this.height);}
dropDown.attach(div);this.departmentDropDown=dropDown;}
return div;}
RecordListSearchDepartmentFilter.prototype.setInputValue=function(value)
{if(!IsNullOrUndefined(this.departmentDropDown))
{if(value)
this.departmentDropDown.setSelectedItem(value,null);else if(null==value&&this.defaultValue)
this.departmentDropDown.setSelectedItem(this.defaultValue,null);else
this.departmentDropDown.setSelectedItem(this.departmentDropDown.idAll,null);}}
RecordListSearchDepartmentFilter.prototype.getInputValue=function()
{var retval=null;if(this.departmentDropDown!=null)
{if((this.departmentDropDown.getSelectedItemId()==this.departmentDropDown.idAll)||(this.departmentDropDown.getSelectedItemId()==this.departmentDropDown.idNone)||(this.departmentDropDown.getSelectedItemId()==this.departmentDropDown.idNoChange))
{}
else retval=this.departmentDropDown.getSelectedItemId();}
return retval;}
subclass(RecordListSearchNumberFilter,RecordListSearchFilter);function RecordListSearchNumberFilter(id,number)
{RecordListSearchFilter.call(this,id,number);}
RecordListSearchNumberFilter.prototype.getInputNode=function()
{var input=document.createElement("input");input.type="Text";input.id=this.getId();input.onblur=RecordListSearchNumberFilter.statics.onblur;if(this.value)
input.value=this.value;else if(null==this.value&&this.defaultValue)
input.value=this.defaultValue;return input;}
RecordListSearchNumberFilter.prototype.setInputValue=function(value)
{var input=document.getElementById(this.getId());if(input)
{if(value)
input.value=value;else if(null==value&&this.defaultValue)
input.value=this.defaultValue;else
input.value='';}}
RecordListSearchNumberFilter.prototype.getInputValue=function()
{var input=document.getElementById(this.getId());if(input&&input.value&&0<input.value.length)
return input.value;return null;}
RecordListSearchNumberFilter.statics=new Object();RecordListSearchNumberFilter.statics.onblur=function()
{var v=parseFloat(this.value);if(isNaN(v)||!isFinite(v))
{if(this.value!=0)
this.value='';}}