var jQuery_CodePeople_Widget_ToCheckList=window.jQuery_CodePeople_Widget_ToCheckList=jQuery.noConflict(true),CodePeople;CodePeople||(CodePeople={});if(!CodePeople.Widget)CodePeople.Widget={};CodePeople.Widget.ToCheckList=function(a,b){jQuery_CodePeople_Widget_ToCheckList(function(o){o("#"+a+" > select").toChecklist(b)})};
(function(a){jQuery_CodePeople_Widget_ToCheckList.fn.toChecklist=function(b){var o=function(j,e){var f,k=function(){a(e).attr("showSelectedItems",f)};switch(j){case "clearAll":var g="li:has(input:checked)";break;case "checkAll":g="li:has(input:not(:checked,:disabled))";break;case "invert":g="li:has(input)";break;default:alert("toChecklist Plugin says:\n\nWarning - Invalid action requested on checklist.\nThe action requested was: "+j);break}var l=a(g,e).length;(function(m){if(m>3){f=a(e).attr("showSelectedItems");
a(e).attr("showSelectedItems","false")}})(l);a(g,e).each(function(m){m==l-2&&l>3&&k();a(this).trigger("click")})};if(typeof b=="string"){this.each(function(){if(!a(this).isChecklist())return true;o(b,this)});return a}b=jQuery_CodePeople_Widget_ToCheckList.extend({addScrollBar:true,addSearchBox:false,searchBoxText:"Type here to search list...",showCheckboxes:true,showSelectedItems:false,submitDataAsArray:true,preferIdOverName:true,maxNumOfSelections:-1,onMaxNumExceeded:function(){alert("You cannot select more than "+
this.maxNumOfSelections+" items in this list.")},cssChecklist:"checklist",cssChecklistHighlighted:"checklistHighlighted",cssLeaveRoomForCheckbox:"leaveRoomForCheckbox",cssEven:"even",cssOdd:"odd",cssChecked:"checked",cssDisabled:"disabled",cssShowSelectedItems:"showSelectedItems",cssFocused:"focused",cssFindInList:"findInList",cssBlurred:"blurred",cssOptgroup:"optgroup"},b);var u=function(j){alert("jQuery Plugin Error (Plugin: toChecklist)\n\n"+j)};this.each(function(){var j=0,e=a(this),f=e.attr("id");
if(f==""||!b.preferIdOverName){f=e.attr("name").replace(/\[\]/,"");if(f==""){u('Can\'t convert element to checklist.\nYour SELECT element must have a "name" attribute and/or an "id" attribute specified.');return a}}var k=e.height(),g=e.width();g-=4;if(this.type!="select-multiple"&&this.type!="select-one"){u('Can\'t convert element to checklist.\nExpecting SELECT element with "multiple" attribute.');return a}else if(this.type=="select-one")return a;var l=function(){var c=a(this).attr("value");if(c==
"")c=this.innerHTML;c=c.replace(/ /g,"_");var h=f+"_"+c,q=a(this).attr("innerHTML"),n="";if(a(this).attr("disabled"))var p=' disabled="disabled"',i=' class="disabled"';else{n=i=p="";if(a(this).attr("selected"))if(b.maxNumOfSelections!=-1&&j<b.maxNumOfSelections){n+='checked="checked"';j++}else if(b.maxNumOfSelections==-1)n+='checked="checked"'}var z=b.submitDataAsArray?"[]":"";a(this).replaceWith('<li tabindex="0"><input type="checkbox" value="'+c+'" name="'+f+z+'" id="'+h+'" '+n+p+' /><label for="'+
h+'"'+i+">"+q+"</label></li>");b.showCheckboxes===false?a("#"+h).css("position","absolute").css("left","-50000px"):a("label[for="+h+"]").addClass(b.cssLeaveRoomForCheckbox)};a("optgroup",e).each(function(){a("option",this).each(l);a(this).replaceWith('<li class="'+b.cssOptgroup+'">'+a(this).attr("label")+"</li>"+a(this).html())});a("option",e).each(l);a("li:first",e).each(function(){a(this).hasClass("optgroup")&&a(this).css("border-top","none")});var m=f+"_checklist";e.replaceWith('<div id="'+f+'"><div id="'+
m+'"><ul>'+e.attr("innerHTML")+"</ul></div></div>");var d="#"+m;a("#"+f).attr("showSelectedItems",b.showSelectedItems.toString());a(d).css("position","relative");e=0;if(b.addSearchBox){var v=function(){this.value="";a(this).removeClass(b.cssBlurred)},r=function(){this.value=this.defaultValue;a(this).addClass(b.cssBlurred)};a(d).before('<div class="findInList" id="'+f+'_findInListDiv"><input type="text" value="'+b.searchBoxText+'" id="'+f+'_findInList" class="'+b.cssBlurred+'" /></div>');a("#"+f+"_findInList").css("width",
g);a("#"+f+"_findInList").bind("focus.focusSearchBox",v).bind("blur.blurSearchBox",r).keyup(function(){var c=this;if(this.value==""){a(d).attr("scrollTop",0);a(this).unbind("keydown.tabToFocus");return false}a("label",d).each(function(){if(!a(this).is(":disabled")){var h=a(this).html().toLowerCase(),q=c.value.toLowerCase();if(h.indexOf(q)==0){var n=this;h=this.parentNode.offsetTop;a(d).attr("scrollTop",h);a(c).unbind("blur.blurSearchBox").unbind("keydown.tabToFocus").bind("keydown.tabToFocus",function(p){if(p.keyCode==
9){p.preventDefault();a(n.parentNode).bind("blur.restoreDefaultText",function(){var i=a(c).attr("defaultValue");a(c).attr("value",i).addClass(b.cssBlurred).bind("blur.blurSearchBox",r);a(this).unbind("blur.restoreDefaultText")}).bind("keydown.tabBack",function(i){if(i.keyCode==9&&i.shiftKey){i.preventDefault();a(c).unbind("focus.focusSearchBox").removeClass(b.cssBlurred).bind("focus.focusSearchBox",v).bind("blur.blurSearchBox",r).focus();a(this).unbind("keydown.tabBack")}}).focus();a(this).unbind("keydown.tabToFocus")}});
return false}}})});e=a("#"+f+"_findInListDiv").height()+3}a(d).addClass(b.cssChecklist);b.addScrollBar?a(d).height(k-e).width(g):a(d).height("100%").width(g);a("ul",d).addClass(b.cssChecklist);a("li:even",d).addClass(b.cssEven);a("li:odd",d).addClass(b.cssOdd);a("li",d).focus(function(){a(this).addClass(b.cssFocused)}).blur(function(){a(this).removeClass(b.cssFocused)});a("li",d).each(function(){a("input",this).attr("checked")&&a(this).addClass(b.cssChecked)});var w=function(){a("li",d).hasClass(b.cssChecked)?
a(d).addClass(b.cssChecklistHighlighted):a(d).removeClass(b.cssChecklistHighlighted)},x=function(){if(a(this).attr("tagName")=="LI")a(this).is("li:has(input)")?a(this).focus():a(this).next().each(x)};k=function(c){if(c.type=="keydown"){if(c.keyCode==32||c.keyCode==13)c.preventDefault();if(c.keyCode==9&&!c.shiftKey){c.preventDefault();a(this).unbind("keydown.tabBack").blur().next().each(x)}if(c.keyCode!=32)return}var h=a("input:checked",d).length;if(b.maxNumOfSelections!=-1&&h>=b.maxNumOfSelections&&
!a("input",this).attr("checked")){b.onMaxNumExceeded();c.preventDefault()}else{a("label",this).unbind();c.target.tagName!="INPUT"&&c.target.tagName!="LABEL"&&a("input",this).trigger("click");c=a("input",this).get(0);y(c);a("#"+f).attr("showSelectedItems")==="true"&&s()}};var y=function(c){c.checked?a(c).parent().addClass(b.cssChecked):a(c).parent().removeClass(b.cssChecked);w()};g=function(){a(this).parent().focus()};a("li:has(input)",d).click(k).keydown(k);a("label",d).focus(g);a("input",d).focus(g);
w();a("form:has(div."+b.cssChecklist+")").bind("reset.fixFormElems",function(){a("input",this).each(function(){this.checked=this.defaultChecked;y(this);b.showSelectedItems&&s()}).parent()});var t="#"+f+"_selectedItems";b.showSelectedItems&&a(t).addClass(b.cssShowSelectedItems);var s=function(){a(t).html("");a("label",d).each(function(){if(a(this).parent().hasClass(b.cssChecked)){var c=jQuery_CodePeople_Widget_ToCheckList.trim(this.innerHTML);a(t).append("<li>"+c+"</li>")}})};b.showSelectedItems&&
s()})};jQuery_CodePeople_Widget_ToCheckList.fn.isChecklist=function(){var b=false;this.each(function(){var o=a("#"+this.id+"_checklist",this).get();b=this.tagName=="DIV"&&o;return false});return b?true:false}})(jQuery_CodePeople_Widget_ToCheckList);CodePeople.Widget.ToCheckList("codepeople-widget-tochecklist2",{addSearchBox:true});
