
function Checkbox_Group_Widget(htmlId,serverId){this.superclass=Widget_Base;this.superclass(htmlId,serverId);var me=this;this.options=null;this.delayedRequest=false;this.optionStatus=null;this.checkedByDefault=true;this.init=function(){if(this.containerObj){return true;}else{return false;}}
this.setWidth=function(width){this.width=width}
this.setDefaultStatus=function(defaultStatus){this.checkedByDefault=defaultStatus;}
this.selectOption=function(e){targetObj=getTargetObj(e);me.intSelectOption(targetObj);}
this.intSelectOption=function(targetObj){if(targetObj.checked==true){me.optionStatus[targetObj.value]=1;}else{me.optionStatus[targetObj.value]=0;}
if(this.delayedRequest=true){if(targetObj.checked==true){RequestResponseBroker.makeDelayedMethodCall(me.serverId,'selectOption',Array(targetObj.value));}else{RequestResponseBroker.makeDelayedMethodCall(me.serverId,'unselectOption',Array(targetObj.value));}}else{if(targetObj.checked==true){RequestResponseBroker.makeImmediateMethodCall(me.serverId,'selectOption',Array(targetObj.value));}else{RequestResponseBroker.makeImmediateMethodCall(me.serverId,'unselectOption',Array(targetObj.value));}}}
this.getOptions=function(){return true;}
this.setOptions=function(optionsArray){this.options=optionsArray;prevState=this.getState();if(prevState!=null){this.returnToPrevState(prevState);}else{this.optionStatus=new Array(this.options.length);for(i=0;i<this.optionStatus.length;i++){if(this.checkedByDefault==true){this.optionStatus[i]=1;}else{this.optionStatus[i]=0;}}}
table=document.createElement('TABLE');tbody=document.createElement("TBODY");tr=document.createElement('TR');perColumn=Math.ceil(optionsArray.length/this.width);i=0;for(j=0;j<this.width;j++){if(i<optionsArray.length){td=document.createElement('TD');td.style.whiteSpace="nowrap";td.style.verticalAlign='top';list=document.createElement('UL');list.style.listStyle='none';list.style.marginLeft='0px';list.style.paddingLeft='0px';var i=j*perColumn;do{listItem=document.createElement('LI');label=document.createElement('LABEL');if(isIE){r=document.createElement('<INPUT type="checkbox" name="'+this.serverId+'_Items"/>');}else{r=document.createElement('INPUT');r.type="checkbox";}
r.value=i;r.id=optionsArray[i];r.name=this.serverId+"_Items";if(this.optionStatus[i]==1){r.checked=true;r.defaultChecked=true;}else{r.checked=false;r.defaultChecked=false;}
addEvent(r,'click',this.selectOption,false);label.appendChild(r);text=document.createTextNode(optionsArray[i][0]);label.appendChild(text);if(optionsArray[i][1]!=null){label.title=optionsArray[i][1];}
listItem.appendChild(label);list.appendChild(listItem);i++;}
while((i<(j+1)*perColumn)&&optionsArray[i]);td.appendChild(list)
tr.appendChild(td);}}
tbody.appendChild(tr);table.appendChild(tbody);this.containerObj.appendChild(table);}
this.getState=function(){jsonState=readCookie(this.serverId+"Loaded");return eval(jsonState);}
this.returnToPrevState=function(prevState){this.optionStatus=prevState[0];}
this.saveState=function(){state=JSONstring.make(new Array(me.optionStatus));return createCookie(me.serverId+"Loaded",state,0);}
this.requestType=function(delayed){this.delayedRequest=delayed;}
this.setSelectAllButton=function(htmlId){addEvent(document.getElementById(htmlId),'click',this.selectAll,false);}
this.setDeselectAllButton=function(htmlId){addEvent(document.getElementById(htmlId),'click',this.deselectAll,false);}
this.selectAll=function(){var items=document.getElementsByName(me.serverId+"_Items");for(i=0;i<items.length;i++){items[i].checked=true;me.intSelectOption(items[i]);}
return false;}
this.deselectAll=function(){var items=document.getElementsByName(me.serverId+"_Items");for(i=0;i<items.length;i++){items[i].checked=false;me.intSelectOption(items[i]);}
return false;}
this.init();}