/*!
 * Copyright (C) 2006-2011 IP Labs GmbH <http://www.iplabs.de/>
 * All rights reserved.
 * 
 * @require jade/ArrayUtils.js
 * @require jade/HTMLUtils.js
 */
function CheckboxList(a){this.listId=a;
this.oList=null;this.oListElements=null;this.checkBoxesClickEnabled=true;this.checkboxCursor=false;
this.checkBoxClassName="checkbox";this.checkBoxCheckedClassName="checked";this.bgImageOn="";
this.bgImageOnHover="";this.bgImageOff="";this.bgImageOffHover="";this.styleClassOn="";
this.styleClassOff="";this.styleClassOnHover="";this.styleClassOffHover="";this.styleClassDeactivated="";
this.deactivatedMessage=null;this.multipleSelection=true;this.minSelectedItems=0;
this.alsoLIHoverCheckbox=true;this.useStyleClass=false;this.onchange=null}CheckboxList.prototype.changeStyle=function(c,a,b){if(this.useStyleClass){if(this.styleClassOnHover||this.styleClassOffHover){jade.HTMLUtils.removeClassName(c,this.styleClassOnHover);
jade.HTMLUtils.removeClassName(c,this.styleClassOffHover)}jade.HTMLUtils.removeClassName(c,this.styleClassOn);
jade.HTMLUtils.removeClassName(c,this.styleClassOff);jade.HTMLUtils.removeClassName(c,this.checkBoxClassName+"-"+this.styleClassOn);
jade.HTMLUtils.removeClassName(c,this.checkBoxClassName+"-"+this.styleClassOff);jade.HTMLUtils.addClassName(c,b);
jade.HTMLUtils.addClassName(c,this.checkBoxClassName+"-"+b)}else{c.style.backgroundImage="url("+a+")"
}};CheckboxList.prototype.setBoxStatus=function(b,a){if(a==null){a=!b.checked}b.checked=a;
this.changeStyle(b,a?this.bgImageOn:this.bgImageOff,a?this.styleClassOn:this.styleClassOff)
};CheckboxList.prototype.setCheckedBoxes=function(c,b){var a;if(b===undefined){b=true
}for(a=0;a<this.oListElements.length;a++){this.setBoxStatus(this.oListElements[a].childNodes[this.oListElements[a].iCheckboxElement],jade.ArrayUtils.contains(c,this.oListElements[a].id))
}if((b)&&(this.onchange!=null)&&(typeof(this.onchange)=="function")){this.onchange()
}return true};CheckboxList.prototype.setCheckedBoxByValue=function(b){var a;for(a=0;
a<this.oListElements.length;a++){this.setBoxStatus(this.oListElements[a].childNodes[this.oListElements[a].iCheckboxElement],(b.toString()==this.oListElements[a].varValue.toString()))
}if((this.onchange!=null)&&(typeof(this.onchange)=="function")){this.onchange()}return true
};CheckboxList.prototype.activateCheckBoxByValue=function(a){this._setActivationStateByValue(a,true)
};CheckboxList.prototype.deactivateCheckBoxByValue=function(a){this._setActivationStateByValue(a,false)
};CheckboxList.prototype._setActivationStateByValue=function(c,a){var d=null,b;for(b=0;
b<this.oListElements.length;b++){if(c.toString()==this.oListElements[b].varValue.toString()){d=this.oListElements[b].childNodes[this.oListElements[b].iCheckboxElement];
break}}if(d!=null){jQuery(d).data("activated",a);if(this.styleClassDeactivated!=""){if(a){jQuery(d).removeClass(this.styleClassDeactivated)
}else{jQuery(d).addClass(this.styleClassDeactivated)}}}};CheckboxList.prototype.selectAllCheckedBoxes=function(){var b,a;
a=[];for(b=0;b<this.oListElements.length;b++){a.push(this.oListElements[b].id)}this.setCheckedBoxes(a)
};CheckboxList.prototype.deselectAllCheckedBoxes=function(){this.setCheckedBoxes([],false)
};CheckboxList.prototype.getCheckedBoxes=function(){var b,a;a=[];for(b=0;b<this.oListElements.length;
b++){if(this.oListElements[b].childNodes[this.oListElements[b].iCheckboxElement].checked){a.push(this.oListElements[b].id)
}}return a};CheckboxList.prototype.getValuesFromCheckedBoxes=function(){var b,a;a=[];
for(b=0;b<this.oListElements.length;b++){if(this.oListElements[b].childNodes[this.oListElements[b].iCheckboxElement].checked){a.push(this.oListElements[b].varValue)
}}return a};CheckboxList.prototype.checkbox_click=function(a,b){if(this.control){return this.control.checkbox_click(a?a:event,this)
}if(!this.checkBoxesClickEnabled){return false}if(!jQuery(b).data("activated")){if(this.deactivatedMessage!=null){alert(this.deactivatedMessage)
}return false}if((b.checked==true)&&(this.minSelectedItems>0)&&(this.minSelectedItems>=this.getCheckedBoxes().length)){return false
}if((this.multipleSelection==false)&&(b.checked==false)){this.deselectAllCheckedBoxes()
}this.setBoxStatus(b,null);if(this.bgImageOnHover||this.bgImageOffHover){this.changeStyle(b,b.checked?this.bgImageOnHover:this.bgImageOffHover,b.checked?this.styleClassOnHover:this.styleClassOffHover)
}if((this.onchange!=null)&&(typeof(this.onchange)=="function")){this.onchange()}};
CheckboxList.prototype.checkbox_mouseover=function(a,b){var c;if(this.control){return this.control.checkbox_mouseover(a?a:event,this)
}c=(b.tagName=="LI")?b.childNodes[b.iCheckboxElement]:b;if(this.bgImageOnHover||this.bgImageOffHover){this.changeStyle(c,c.checked?this.bgImageOnHover:this.bgImageOffHover,c.checked?this.styleClassOnHover:this.styleClassOffHover)
}};CheckboxList.prototype.checkbox_mouseout=function(a,b){var c;if(this.control){return this.control.checkbox_mouseout(a?a:event,this)
}c=(b.tagName=="LI")?b.childNodes[b.iCheckboxElement]:b;if(this.bgImageOnHover||this.bgImageOffHover){this.changeStyle(c,c.checked?this.bgImageOn:this.bgImageOff,c.checked?this.styleClassOn:this.styleClassOff)
}};CheckboxList.prototype.init=function(){var a,b;this.oList=document.getElementById(this.listId);
if(this.oList==null){alert("Can't find the ID: "+this.listId);return false}this.oListElements=this.oList.getElementsByTagName("li");
for(a=0;a<this.oListElements.length;a++){for(b=0;b<this.oListElements[a].childNodes.length;
b++){if(this.oListElements[a].childNodes[b].tagName=="VAR"){this.oListElements[a].varValue=this.oListElements[a].childNodes[b].firstChild.nodeValue
}if(jade.HTMLUtils.hasClassName(this.oListElements[a].childNodes[b],this.checkBoxClassName)){jQuery(this.oListElements[a].childNodes[b]).data("activated",true);
this.oListElements[a].iCheckboxElement=b;if(this.checkboxCursor){this.oListElements[a].childNodes[b].style.cursor=this.checkboxCursor
}this.oListElements[a].childNodes[b].checked=jade.HTMLUtils.hasClassName(this.oListElements[a].childNodes[b],this.checkBoxCheckedClassName);
this.oListElements[a].childNodes[b].onmouseup=this.checkbox_click;this.oListElements[a].childNodes[b].control=this;
if(this.alsoLIHoverCheckbox){this.oListElements[a].onmouseover=this.checkbox_mouseover;
this.oListElements[a].onmouseout=this.checkbox_mouseout;this.oListElements[a].control=this
}else{this.oListElements[a].childNodes[b].onmouseover=this.checkbox_mouseover;this.oListElements[a].childNodes[b].onmouseout=this.checkbox_mouseout;
this.oListElements[a].childNodes[b].control=this}this.setBoxStatus(this.oListElements[a].childNodes[b],this.oListElements[a].childNodes[b].checked)
}}}};CheckboxList.prototype.disableCheckboxClicks=function(){this.checkBoxesClickEnabled=false
};CheckboxList.prototype.enableCheckboxClicks=function(){this.checkBoxesClickEnabled=true
};
