
/* - arc90_multiselect.js - */
// http://www.noorderlink.nl/portal_javascripts/arc90_multiselect.js?original=1
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||" Options selected";var select_all_min=typeof(options.select_all_min)!='undefined'?options.select_all_min:6;return this.each(function(){var timeout=0;
function multiSelect_closeWindow(){selectTitle.click();jq('body').unbind("click",multiSelect_closeWindow)}
var hiddenSet=new Array();var id=jq(this).attr('id');var title=jq(this).attr('title');var name=jq(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=jq('<div id="multiSelect-'+id+'" class="multiSelect">');var selectTitle=jq('<div id="multiSelect-'+id+'-title" class="title" title="'+title+'">').text(no_selection);selectTitle.css('width',fieldWidth);selectDiv.css('width',valueWidth);var selectContent=jq('<div id="multiSelect-'+id+'-content" class="multiSelectContent collapsed">');var selectList=jq('<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){jq('body').bind("click",multiSelect_closeWindow)}}},timeout)});jQuery([selectDiv.get(0),selectContent.get(0),selectList.get(0)]).mouseover(function(){jq('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="multiSelect-options-selectAll-'+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});label.click(function(){toggleAllLabelsAndCheckboxes(Boolean(jq('input',jq(this).parent()).attr('checked')),selectList,false);updateSelectTitle(selectList,selectTitle);is_clicked=true});li.click(function(){if(is_clicked==false){toggleAllLabelsAndCheckboxes(Boolean(jq(':checkbox',jq(this)).attr('checked')),selectList,false);updateSelectTitle(selectList,selectTitle)}
is_clicked=true})}
jQuery('option',this).each(function(i){var value=jQuery(this).attr('value');var text=jQuery(this).text();var isSelected=jq(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="'+id+'" 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';jq('label',jq(this).parent()).css('font-weight',fontWeight);updateSelectTitle(selectList,selectTitle);is_clicked=true})});jq('label',selectList).click(function(){is_clicked=true});jq('li',selectList).click(function(){if(is_clicked==false){var fontWeight='normal';var isChecked='';if(jq(':checkbox',jq(this)).attr('checked')!=true){isChecked='checked';fontWeight='bold'}
jq('label',jq(this)).css('font-weight',fontWeight);jq(':checkbox',jq(this)).attr('checked',isChecked);updateSelectTitle(selectList,selectTitle)}
is_clicked=false});jQuery(this).before(selectDiv);jQuery(this).before(selectContent);jq(this).remove('#'+id)});
function toggleAllLabelsAndCheckboxes(checked,selectList,condition){var fontWeight='normal';var isChecked='';if(checked==condition){isChecked='checked';fontWeight='bold'}
jq('label',selectList).css({'font-weight':fontWeight});jq(':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=jq('li:not(.selectall) :checkbox:checked',selectList).length+1-(this.checked?1:1);selectTitle.text(selectCount>0?(selectCount+selected_text):no_selection)}}


