var multiSelect_timer=null;var select_state=false;var is_clicked=false;jQuery.fn.multiSelect=function(options)
{if(!options)options={};var no_selection=options.no_selection||"No selection";var selected_text=options.selected_text||" Option selected";var selected_text_plural=options.selected_text_plural||" Options selected";var select_all_min=typeof(options.select_all_min)!='undefined'?options.select_all_min:6;var on_change=options.on_change||"";return this.each(function()
{var timeout=0;function multiSelect_closeWindow()
{$('body').unbind("click",multiSelect_closeWindow);selectTitle.click();}
var hiddenSet=new Array();var id=$(this).attr('id');var title=$(this).attr('title');var name=$(this).attr('name');var fieldWidth=this.className.toLowerCase().indexOf('fieldwidth-');var valueWidth=this.className.toLowerCase().indexOf('valuewidth-');if(fieldWidth>=0)
{var q=this.className.slice(fieldWidth);fieldWidth=(q.slice(0,q.indexOf(' ')<0?q.length:q.indexOf(' '))).slice('fieldwidth-'.length);fieldWidth=parseFloat(fieldWidth)==fieldWidth?fieldWidth+'px':fieldWidth;}
else fieldWidth='';if(valueWidth>=0)
{var q=this.className.slice(valueWidth);valueWidth=(q.slice(0,q.indexOf(' ')<0?q.length:q.indexOf(' '))).slice('valuewidth-'.length);valueWidth=parseFloat(valueWidth)==valueWidth?valueWidth+'px':valueWidth;}
else valueWidth='';var selectDiv=$('<div id="multiSelect-'+id+'" class="multiSelect">');var selectTitle=$('<div id="multiSelect-'+id
+'-title" class="title" title="'+title
+'">').text(no_selection);selectTitle.css('width',fieldWidth);selectDiv.css('width',valueWidth);var selectContent=$('<div id="multiSelect-'+id
+'-content" class="multiSelectContent collapsed">');var selectList=$('<ul>');selectDiv.append(selectTitle);selectContent.append(selectList);selectTitle.click(function()
{select_state=(select_state)?false:true;selectContent.toggleClass('collapsed');});jQuery([selectDiv.get(0),selectContent.get(0),selectList.get(0)]).mouseout(function()
{multiSelect_timer=setTimeout(function()
{if(multiSelect_timer!=null)
{clearTimeout(multiSelect_timer);multiSelect_timer=null;if(select_state==true)
{$('body').bind("click",multiSelect_closeWindow);}}},timeout);});jQuery([selectDiv.get(0),selectContent.get(0),selectList.get(0)]).mouseover(function()
{$('body').unbind("click",multiSelect_closeWindow);if(multiSelect_timer==null)return;clearTimeout(multiSelect_timer);multiSelect_timer=null;});if(jQuery('option',this).length>=select_all_min)
{var li=jQuery('<li class="a9selectall">').appendTo(selectList);var checkbox=jQuery('<input type="checkbox" id="multiSelect-options-selectAll-'+id+'" name="'+id+'" value="1" title="Select All" />').appendTo(li);var label=jQuery('<label for="multiSelect-options-selectAll">Select All</label>').appendTo(li);setHandCursor(checkbox,label);checkbox.click(function()
{toggleAllLabelsAndCheckboxes(this.checked,selectList,true);updateSelectTitle(selectList,selectTitle);is_clicked=true;if(on_change!=""){on_change();}});label.click(function()
{toggleAllLabelsAndCheckboxes(Boolean($('input',$(this).parent()).attr('checked')),selectList,false);updateSelectTitle(selectList,selectTitle);is_clicked=true;if(on_change!=""){on_change();}});li.click(function()
{if(is_clicked==false)
{toggleAllLabelsAndCheckboxes(Boolean($(':checkbox',$(this)).attr('checked')),selectList,false);updateSelectTitle(selectList,selectTitle);if(on_change!=""){on_change();}}
is_clicked=true;});}
jQuery('option',this).each(function(i)
{var value=jQuery(this).attr('value');var text=jQuery(this).text();var isSelected=$(this).attr('selected')==true?'checked="yes"':'';var fontWeight=(isSelected!='')?'bold':'normal';var checkBoxID='multiSelect-options-'+id+'-'+i;var li=jQuery('<li>').appendTo(selectList);var checkbox=jQuery('<input type="checkbox" id="'+checkBoxID
+'" name="'+name+'" value="'+value
+'" title="'+text+'"'+isSelected+'/>').appendTo(li);var label=jQuery('<label for="'+checkBoxID
+'">'+checkBoxID+'</label>').text(text).css('font-weight',fontWeight).appendTo(li);setHandCursor(checkbox,label);updateSelectTitle(selectList,selectTitle);checkbox.click(function()
{fontWeight=(this.checked==1)?'bold':'normal';$('label',$(this).parent()).css('font-weight',fontWeight);updateSelectTitle(selectList,selectTitle);is_clicked=true;if(on_change!=""){on_change();}});});$('label',selectList).click(function()
{is_clicked=true;});$('li',selectList).click(function()
{if(is_clicked==false)
{var fontWeight='normal';var isChecked='';if($(':checkbox',$(this)).attr('checked')!=true)
{isChecked='checked';fontWeight='bold';}
$('label',$(this)).css('font-weight',fontWeight);$(':checkbox',$(this)).attr('checked',isChecked);updateSelectTitle(selectList,selectTitle);}
is_clicked=false;});jQuery(this).before(selectDiv);jQuery(this).before(selectContent);$(this).remove('#'+id);});function toggleAllLabelsAndCheckboxes(checked,selectList,condition)
{var fontWeight='normal';var isChecked='';if(checked==condition)
{isChecked='checked';fontWeight='bold';}
$('label',selectList).css({'font-weight':fontWeight});$(':checkbox',selectList).attr('checked',isChecked);}
function setHandCursor(checkbox,label)
{checkbox.css('cursor','pointer');checkbox.css('cursor','hand');label.css('cursor','pointer');label.css('cursor','hand');}
function updateSelectTitle(selectList,selectTitle)
{var selectCount=$('li:not(.a9selectall) :checkbox:checked',selectList).length+1-(this.checked?1:1);if(selectCount>1){selectTitle.text=(selectCount+selected_text_plural);}else if(selectCount>0){selectTitle.text=(selectCount+selected_text);}else{selectTitle.text=no_selection;}}}