if(typeof String.prototype.replaceAll=='undefined'){document.write('<script type="text/javascript" src="/commons/js/commonFunction.js"><\/script>');}
jQuery.fn.extend({selectbox:function(options){return this.each(function(){new jQuery.SelectBox(this,options);});}});if(!window.console){var console={log:function(msg){}}}
jQuery.SelectBox=function(selectobj,options){var opt=options||{};opt.inputClass=opt.inputClass||"selectbox";opt.containerClass=opt.containerClass||"selectbox-wrapper";opt.hoverClass=opt.hoverClass||"current";opt.currentClass=opt.selectedClass||"selected"
opt.debug=opt.debug||false;opt.overflow=opt.overflow||false;var elm_id=selectobj.id;var active=0;var inFocus=false;var hasfocus=0;var $select=jQuery(selectobj);var $container=setupContainer(opt);if(opt.overflow){jQuery($container).css({height:'auto'});}
var $input=setupInput(opt);$select.hide().before($input).before($container);init();$input
.click(function(){if(inFocus){inFocus=false;}else{$container.toggle();}})
.focus(function(){if($container.not(':visible')){inFocus=true;$container.show();}})
.keydown(function(event){switch(event.keyCode){case 38:event.preventDefault();moveSelect(-1);break;case 40:event.preventDefault();moveSelect(1);break;case 13:event.preventDefault();jQuery('li.'+opt.hoverClass).trigger('click');break;case 27:hideMe();break;}})
.blur(function(){if($container.is(':visible')&&hasfocus>0){if(opt.debug)console.log('container visible and has focus')}else{if(jQuery.browser.msie||jQuery.browser.safari){if(document.activeElement.getAttribute('id')==null||document.activeElement.getAttribute('id').indexOf('_container')==-1){hideMe();}else{$input.focus();}}else{hideMe();}}});function hideMe(){hasfocus=0;$container.hide();}
function init(){$container.append(getSelectOptions($input.attr('id'))).hide();}
function setupContainer(options){var container=document.createElement("div");$container=jQuery(container);$container.attr('id',elm_id+'_container');$container.addClass(options.containerClass);return $container;}
function setupInput(options){var input=document.createElement("input");var $input=jQuery(input);$input.attr("id",elm_id+"_input");$input.attr("type","text");$input.addClass(options.inputClass);$input.attr("autocomplete","off");$input.attr("readonly","readonly");$input.attr("tabIndex",$select.attr("tabindex"));return $input;}
function moveSelect(step){var lis=jQuery("li",$container);if(!lis||lis.length==0)return false;active+=step;if(active<0){active=lis.size();}else if(active>lis.size()){active=0;}
scroll(lis,active);lis.removeClass(opt.hoverClass);jQuery(lis[active]).addClass(opt.hoverClass);}
function scroll(list,active){var el=jQuery(list[active]).get(0);var list=$container.get(0);if(el.offsetTop+el.offsetHeight>list.scrollTop+list.clientHeight){list.scrollTop=el.offsetTop+el.offsetHeight-list.clientHeight;}else if(el.offsetTop<list.scrollTop){list.scrollTop=el.offsetTop;}}
function setCurrent(){var li=jQuery("li."+opt.currentClass,$container).get(0);var ar=(''+li.id).split('_');var el=ar[ar.length-1];el=new String(el).replaceAll("^","_");$select.val(el);$input.val(jQuery(li).html());return true;}
function getCurrentSelected(){return $select.val();}
function getCurrentValue(){return $input.val();}
function getSelectOptions(parentid){var select_options=new Array();var ul=document.createElement('ul');ul.className="listUL";$select.children('option').each(function(){var li=document.createElement('li');li.className="list";li.setAttribute('id',parentid+'_'+(jQuery(this).val()).replaceAll("_","^"));li.innerHTML=jQuery(this).html();if(jQuery(this).is(':selected')){$input.val(jQuery(this).html());jQuery(li).addClass(opt.currentClass);}
ul.appendChild(li);jQuery(li)
.mouseover(function(event){hasfocus=1;if(opt.debug)console.log('over on : '+this.id);jQuery(event.target,$container).addClass(opt.hoverClass);})
.mouseout(function(event){hasfocus=-1;if(opt.debug)console.log('out on : '+this.id);jQuery(event.target,$container).removeClass(opt.hoverClass);})
.click(function(event){var tmpidx=$select[0].selectedIndex;var fl=jQuery('li.'+opt.hoverClass,$container).get(0);if(opt.debug)console.log('click on :'+this.id);jQuery('li.'+opt.currentClass).removeClass(opt.currentClass);jQuery(this).addClass(opt.currentClass);setCurrent();if($select[0].selectedIndex!=tmpidx)$select.triggerHandler('change');$select.get(0).blur();hideMe();});});return ul;}};function changejQueryTags(objName,className,containerClassName,overflowFlag){var flag=typeof overflowFlag=='undefined'?false:true;var obj=document.getElementsByName(objName);for(var i=0;i<obj.length;i++){if(jQuery(obj[i]).attr('tagName')=='SELECT'&&jQuery(obj[i]).attr('type')!='hidden'){var convertFlag=true;var parent=obj[i].parentNode;for(var k=0;k<parent.childNodes.length;k++){var tname=typeof parent.childNodes[k].tagName=='undefined'?'':parent.childNodes[k].tagName;if(checkNULL(parent.childNodes[k].id).indexOf('_container')!=-1&&tname=='SELECT'){convertFlag=false;break;}}
if(convertFlag){jQuery(obj[i]).selectbox({inputClass:className,containerClass:containerClassName,overflow:flag});}}}}
