jQuery(document).ready(function($) {
$('select').livequery(function() {
if (!$(this).data('customvalue'))
return;
var opts={
insensitive:true, // case insensitive
anyvalue:true // allow the user to type in the new select box
};
var v=$(this);
if (v.data('insensitive')=='false')
opts.insensitive=false;
if (v.data('anyvalue')=='false')
opts.anyvalue=false;
var t=$('
');
v.after(t);
var name=v.attr('name'),val=v.val(),valu='';
$('option',v).each(function() {
var r=$('');
r.attr('rel',$(this).val()).text($(this).text());
$('ul',t).append(r);
if ($(this).val()==val)
valu=$(this).text();
});
v.remove();
var changed=function() {
var text=$(this).val();
if (opts.insensitive)
text=text.toLowerCase();
var p=0;
$('ul > li',t).each(function() {
var y=$(this).text();
if (opts.insensitive)
y=y.toLowerCase();
if (text==y) {
$('input:eq(0)',t).val($(this).attr('rel'));
p=1;
}
});
if (p==0)
$('input:eq(0)',t).val($(this).val());
};
$('input:eq(0)',t).attr('name',name).val(val);
$('input:eq(1)',t).val(valu).change(changed).keyup(changed);
if (opts.anyvalue===false) {
$('input:eq(1)',t).val(valu).change(changed).keydown(function() {
return false;
});
}
$('span',t).hover(function() {
$(t).addClass('customshow');
});
$(t).mouseleave(function() {
$(this).removeClass('customshow');
});
$('ul',t).click(function(event) {
if (event.target.tagName=='LI') {
$('input:eq(0)',t).val($(event.target).attr('rel'));
$('input:eq(1)',t).val($(event.target).text());
}
});
});
});