/**
 * Limit the number of options that can be seleted in a multiple selectbox.
 */
var selectedOptions = []; // Written by: WillyDuitt@hotmail.com \\;
function countSelected(select,maxNumber){
    var alerted = false;
    for(var i=0; i<select.options.length; i++){
        if(select.options[i].selected && !new RegExp(i,'g').test(selectedOptions.toString())){
            selectedOptions.push(i);
        }

        if(!select.options[i].selected && new RegExp(i,'g').test(selectedOptions.toString())){
            selectedOptions = selectedOptions.sort(function(a,b){return a-b});  
            for(var j=0; j<selectedOptions.length; j++){
                if(selectedOptions[j] == i){
                    selectedOptions.splice(j,1);
                }
            }
        }

        if(selectedOptions.length > maxNumber){
            if (!alerted) {
                alert('You may only choose up to '+maxNumber+' options');
                alerted = true;
            }
            select.options[i].selected = false;
            selectedOptions.pop();
            document.body.focus();
        }
    }
}
