// MSDropDown - jquery.dd.js // author: Marghoob Suleman - http://www.marghoobsuleman.com/ // url: https://github.com/marghoobsuleman/ms-Dropdown/tree/master/js/msdropdown // Date: 10 Nov, 2012 // Version: 3.5.2 // Revision: 27 // web: www.marghoobsuleman.com /* // msDropDown is free jQuery Plugin: you can redistribute it and/or modify // it under the terms of the either the MIT License or the Gnu General Public License (GPL) Version 2 */ var msBeautify=msBeautify||{};(function($){function dd(element,settings){var settings=$.extend(true,{byJson:{data:null,selectedIndex:0,name:null,size:0,multiple:false,width:250},mainCSS:"dd",height:120,visibleRows:7,rowHeight:0,showIcon:true,zIndex:9999,useSprite:false,animStyle:"slideDown",event:"click",openDirection:"auto",jsonTitle:true,style:"",disabledOpacity:.7,disabledOptionEvents:true,childWidth:0,enableCheckbox:false,checkboxNameSuffix:"_mscheck",append:"",prepend:"",reverseMode:true,roundedCorner:true,enableAutoFilter:true,on:{create:null,open:null,close:null,add:null,remove:null,change:null,blur:null,click:null,dblclick:null,mousemove:null,mouseover:null,mouseout:null,focus:null,mousedown:null,mouseup:null}},settings);var $this=this;var holderId={postElementHolder:"_msddHolder",postID:"_msdd",postTitleID:"_title",postTitleTextID:"_titleText",postChildID:"_child"};var css={dd:settings.mainCSS,ddTitle:"ddTitle",arrow:"ddArrow arrowoff",ddChild:"ddChild",ddTitleText:"ddTitleText",disabled:"disabled",enabled:"enabled",ddOutOfVision:"ddOutOfVision",borderTop:"borderTop",noBorderTop:"noBorderTop",selected:"selected",divider:"divider",optgroup:"optgroup",optgroupTitle:"optgroupTitle",description:"description",label:"ddlabel",hover:"hover",disabledAll:"disabledAll"};var css_i={li:"_msddli_",borderRadiusTp:"borderRadiusTp",ddChildMore:"border shadow",fnone:"fnone"};var isList=false,isMultiple=false,isDisabled=false,cacheElement={},element,orginial={},isOpen=false;var DOWN_ARROW=40,UP_ARROW=38,LEFT_ARROW=37,RIGHT_ARROW=39,ESCAPE=27,ENTER=13,ALPHABETS_START=47,SHIFT=16,CONTROL=17,BACKSPACE=8,DELETE=46;var shiftHolded=false,controlHolded=false,lastTarget=null,forcedTrigger=false,oldSelected,isCreated=false;var doc=document,ua=window.navigator.userAgent,isIE=ua.match(/msie/i);settings.reverseMode=settings.reverseMode.toString();settings.roundedCorner=settings.roundedCorner.toString();var isArray=function(e){return Object.prototype.toString.call(e)=="[object Array]"?true:false};var msieversion=function(){var e=ua.indexOf("MSIE");if(e>0){return parseInt(ua.substring(e+5,ua.indexOf(".",e)))}else{return 0}};var checkDataSetting=function(){settings.mainCSS=$("#"+element).data("maincss")||settings.mainCSS;settings.visibleRows=$("#"+element).data("visiblerows")||settings.visibleRows;if($("#"+element).data("showicon")==false){settings.showIcon=$("#"+element).data("showicon")}settings.useSprite=$("#"+element).data("usesprite")||settings.useSprite;settings.animStyle=$("#"+element).data("animstyle")||settings.animStyle;settings.event=$("#"+element).data("event")||settings.event;settings.openDirection=$("#"+element).data("opendirection")||settings.openDirection;settings.jsonTitle=$("#"+element).data("jsontitle")||settings.jsonTitle;settings.disabledOpacity=$("#"+element).data("disabledopacity")||settings.disabledOpacity;settings.childWidth=$("#"+element).data("childwidth")||settings.childWidth;settings.enableCheckbox=$("#"+element).data("enablecheckbox")||settings.enableCheckbox;settings.checkboxNameSuffix=$("#"+element).data("checkboxnamesuffix")||settings.checkboxNameSuffix;settings.append=$("#"+element).data("append")||settings.append;settings.prepend=$("#"+element).data("prepend")||settings.prepend;settings.reverseMode=$("#"+element).data("reversemode")||settings.reverseMode;settings.roundedCorner=$("#"+element).data("roundedcorner")||settings.roundedCorner;settings.enableAutoFilter=$("#"+element).data("enableautofilter")||settings.enableAutoFilter;settings.reverseMode=settings.reverseMode.toString();settings.roundedCorner=settings.roundedCorner.toString();settings.enableAutoFilter=settings.enableAutoFilter.toString()};var getElement=function(e){if(cacheElement[e]===undefined){cacheElement[e]=doc.getElementById(e)}return cacheElement[e]};var getIndex=function(e){var t=getPostID("postChildID");return $("#"+t+" li."+css_i.li).index(e)};var createByJson=function(){if(settings.byJson.data){var validData=["description","image","title"];try{if(!element.id){element.id="dropdown"+msBeautify.counter}settings.byJson.data=eval(settings.byJson.data);var id="msdropdown"+msBeautify.counter++;var obj={};obj.id=id;obj.name=settings.byJson.name||element.id;if(settings.byJson.size>0){obj.size=settings.byJson.size}obj.multiple=settings.byJson.multiple;var oSelect=createElement("select",obj);for(var i=0;i1||getElement(element).multiple==true?true:false;if(isList){isMultiple=getElement(element).multiple}mergeAllProp();createLayout();updateProp("uiData",getDataAndUI());updateProp("selectedOptions",$("#"+element+" option:selected"));var t=getPostID("postChildID");oldSelected=$("#"+t+" li."+css.selected);if(settings.reverseMode==="true"){$("#"+element).on("change",function(){setValue(this.selectedIndex)})}getElement(element).refresh=function(e){$("#"+element).msDropdown().data("dd").refresh()}};var getPostID=function(e){return element+holderId[e]};var getInternalStyle=function(e){var t=e.style===undefined?"":e.style.cssText;return t};var parseOption=function(opt){var imagePath="",title="",description="",value=-1,text="",className="",imagecss="",index;if(opt!==undefined){var attrTitle=opt.title||"";if(attrTitle!=""){var reg=/^\{.*\}$/;var isJson=reg.test(attrTitle);if(isJson&&settings.jsonTitle){var obj=eval("["+attrTitle+"]")}title=isJson&&settings.jsonTitle?obj[0].title:title;description=isJson&&settings.jsonTitle?obj[0].description:description;imagePath=isJson&&settings.jsonTitle?obj[0].image:attrTitle;imagecss=isJson&&settings.jsonTitle?obj[0].imagecss:imagecss;index=opt.index}text=opt.text||"";value=opt.value||"";className=opt.className||"";title=$(opt).prop("data-title")||$(opt).data("title")||title||"";description=$(opt).prop("data-description")||$(opt).data("description")||description||"";imagePath=$(opt).prop("data-image")||$(opt).data("image")||imagePath||"";imagecss=$(opt).prop("data-imagecss")||$(opt).data("imagecss")||imagecss||"";index=$(opt).index()}var o={image:imagePath,title:title,description:description,value:value,text:text,className:className,imagecss:imagecss,index:index};return o};var createElement=function(e,t,n){var r=doc.createElement(e);if(t){for(var i in t){switch(i){case"style":r.style.cssText=t[i];break;default:r[i]=t[i];break}}}if(n){r.innerHTML=n}return r};var hideOriginal=function(){var e=getPostID("postElementHolder");if($("#"+e).length==0){var t={style:"height: 0px;overflow: hidden;position: absolute;",className:css.ddOutOfVision};t.id=e;var n=createElement("div",t);$("#"+element).after(n);$("#"+element).appendTo($("#"+e))}else{$("#"+e).css({height:0,overflow:"hidden",position:"absolute"})}getElement(element).tabIndex=-1};var createWrapper=function(){var e=settings.roundedCorner=="true"?" borderRadius":"";var t={className:css.dd+" ddcommon"+e};var n=getInternalStyle(getElement(element));var r=$("#"+element).outerWidth();t.style="width: "+r+"px;";if(n.length>0){t.style=t.style+""+n}t.id=getPostID("postID");t.tabIndex=getElement(element).tabIndex;var i=createElement("div",t);return i};var createTitle=function(){var e;if(getElement(element).selectedIndex>=0){e=getElement(element).options[getElement(element).selectedIndex]}else{e={value:"",text:""}}var t="",n="";var r=$("#"+element).data("usesprite");if(r){settings.useSprite=r}if(settings.useSprite!=false){t=" "+settings.useSprite;n=" "+e.className}var i=settings.roundedCorner=="true"?" "+css_i.borderRadiusTp:"";var s=createElement("div",{className:css.ddTitle+t+i});var o=createElement("span",{className:css.divider});var u=createElement("span",{className:css.arrow});var a=getPostID("postTitleID");var f=createElement("span",{className:css.ddTitleText+n,id:a});var l=parseOption(e);var c=l.image;var h=l.text||"";if(c!=""&&settings.showIcon){var p=createElement("img");p.src=c;if(l.imagecss!=""){p.className=l.imagecss+" "}}var d=createElement("span",{className:css.label},h);s.appendChild(o);s.appendChild(u);if(p){f.appendChild(p)}f.appendChild(d);s.appendChild(f);var v=createElement("span",{className:css.description},l.description);f.appendChild(v);return s};var createFilterBox=function(){var e=getPostID("postTitleTextID");var t=settings.roundedCorner=="true"?"borderRadius":"";var n=createElement("input",{id:e,type:"text",value:"",autocomplete:"off",className:"text shadow "+t,style:"display: none"});return n};var createChild=function(e){var t={};var n=getInternalStyle(e);if(n.length>0){t.style=n}var r=e.disabled?css.disabled:css.enabled;r=e.selected?r+" "+css.selected:r;r=r+" "+css_i.li;t.className=r;if(settings.useSprite!=false){t.className=r+" "+e.className}var i=createElement("li",t);var s=parseOption(e);if(s.title!=""){i.title=s.title}var o=s.image;if(o!=""&&settings.showIcon){var u=createElement("img");u.src=o;if(s.imagecss!=""){u.className=s.imagecss+" "}}if(s.description!=""){var a=createElement("span",{className:css.description},s.description)}var f=e.text||"";var l=createElement("span",{className:css.label},f);if(settings.enableCheckbox===true){var c=createElement("input",{type:"checkbox",name:element+settings.checkboxNameSuffix+"[]",value:e.value||"",className:"checkbox"});i.appendChild(c);if(settings.enableCheckbox===true){c.checked=e.selected?true:false}}if(u){i.appendChild(u)}i.appendChild(l);if(a){i.appendChild(a)}else{if(u){u.className=u.className+css_i.fnone}}var h=createElement("div",{className:"clear"});i.appendChild(h);return i};var createChildren=function(){var e=getPostID("postChildID");var t={className:css.ddChild+" ddchild_ "+css_i.ddChildMore,id:e};if(isList==false){t.style="z-index: "+settings.zIndex}else{t.style="z-index:1"}var n=$("#"+element).data("childwidth")||settings.childWidth;if(n){t.style=(t.style||"")+";width:"+n}var r=createElement("div",t);var i=createElement("ul");if(settings.useSprite!=false){i.className=settings.useSprite}var s=getElement(element).children;for(var o=0;osettings.visibleRows||settings.visibleRows){var i=$("#"+t+" li:first");var s=parseInt(i.css("padding-bottom"))+parseInt(i.css("padding-top"));if(settings.rowHeight===0){$("#"+t).css({visibility:"hidden",display:"block"});settings.rowHeight=Math.ceil(i.height());$("#"+t).css({visibility:"visible"});if(!isList||settings.enableCheckbox===true){$("#"+t).css({display:"none"})}}n=(settings.rowHeight+s)*Math.min(settings.visibleRows,r)+3}else if(isList){n=$("#"+element).height()}return n};var applyChildEvents=function(){var e=getPostID("postChildID");$("#"+e).on("click",function(e){if(isDisabled===true)return false;e.preventDefault();e.stopPropagation();if(isList){bind_on_events()}});$("#"+e+" li."+css.enabled).on("click",function(e){if(e.target.nodeName.toLowerCase()!=="input"){close(this)}});$("#"+e+" li."+css.enabled).on("mousedown",function(t){if(isDisabled===true)return false;oldSelected=$("#"+e+" li."+css.selected);lastTarget=this;t.preventDefault();t.stopPropagation();if(settings.enableCheckbox===true){if(t.target.nodeName.toLowerCase()==="input"){controlHolded=true}}if(isList===true){if(isMultiple){if(shiftHolded===true){$(this).addClass(css.selected);var n=$("#"+e+" li."+css.selected);var r=getIndex(this);if(n.length>1){var i=$("#"+e+" li."+css_i.li);var s=getIndex(n[0]);var o=getIndex(n[1]);if(r>o){s=r;o=o+1}for(var u=Math.min(s,o);u<=Math.max(s,o);u++){var a=i[u];if($(a).hasClass(css.enabled)){$(a).addClass(css.selected)}}}}else if(controlHolded===true){$(this).toggleClass(css.selected);if(settings.enableCheckbox===true){var f=this.childNodes[0];f.checked=!f.checked}}else{$("#"+e+" li."+css.selected).removeClass(css.selected);$("#"+e+" input:checkbox").prop("checked",false);$(this).addClass(css.selected);if(settings.enableCheckbox===true){this.childNodes[0].checked=true}}}else{$("#"+e+" li."+css.selected).removeClass(css.selected);$(this).addClass(css.selected)}}else{$("#"+e+" li."+css.selected).removeClass(css.selected);$(this).addClass(css.selected)}});$("#"+e+" li."+css.enabled).on("mouseenter",function(e){if(isDisabled===true)return false;e.preventDefault();e.stopPropagation();if(lastTarget!=null){if(isMultiple){$(this).addClass(css.selected);if(settings.enableCheckbox===true){this.childNodes[0].checked=true}}}});$("#"+e+" li."+css.enabled).on("mouseover",function(e){if(isDisabled===true)return false;$(this).addClass(css.hover)});$("#"+e+" li."+css.enabled).on("mouseout",function(t){if(isDisabled===true)return false;$("#"+e+" li."+css.hover).removeClass(css.hover)});$("#"+e+" li."+css.enabled).on("mouseup",function(t){if(isDisabled===true)return false;t.preventDefault();t.stopPropagation();if(settings.enableCheckbox===true){controlHolded=false}var n=$("#"+e+" li."+css.selected).length;forcedTrigger=oldSelected.length!=n||n==0?true:false;fireAfterItemClicked();unbind_on_events();bind_on_events();lastTarget=null});if(settings.disabledOptionEvents==false){$("#"+e+" li."+css_i.li).on("click",function(e){if(isDisabled===true)return false;fireOptionEventIfExist(this,"click")});$("#"+e+" li."+css_i.li).on("mouseenter",function(e){if(isDisabled===true)return false;fireOptionEventIfExist(this,"mouseenter")});$("#"+e+" li."+css_i.li).on("mouseover",function(e){if(isDisabled===true)return false;fireOptionEventIfExist(this,"mouseover")});$("#"+e+" li."+css_i.li).on("mouseout",function(e){if(isDisabled===true)return false;fireOptionEventIfExist(this,"mouseout")});$("#"+e+" li."+css_i.li).on("mousedown",function(e){if(isDisabled===true)return false;fireOptionEventIfExist(this,"mousedown")});$("#"+e+" li."+css_i.li).on("mouseup",function(e){if(isDisabled===true)return false;fireOptionEventIfExist(this,"mouseup")})}};var removeChildEvents=function(){var e=getPostID("postChildID");$("#"+e).off("click");$("#"+e+" li."+css.enabled).off("mouseenter");$("#"+e+" li."+css.enabled).off("click");$("#"+e+" li."+css.enabled).off("mouseover");$("#"+e+" li."+css.enabled).off("mouseout");$("#"+e+" li."+css.enabled).off("mousedown");$("#"+e+" li."+css.enabled).off("mouseup")};var triggerBypassingHandler=function(e,t,n){$("#"+e).off(t,n);$("#"+e).trigger(t);$("#"+e).on(t,n)};var applyEvents=function(){var e=getPostID("postID");var t=getPostID("postTitleTextID");var n=getPostID("postChildID");$("#"+e).on(settings.event,function(e){if(isDisabled===true)return false;fireEventIfExist(settings.event);e.preventDefault();e.stopPropagation();open(e)});$("#"+e).on("keydown",function(e){var t=e.which;if(!isOpen&&(t==ENTER||t==UP_ARROW||t==DOWN_ARROW||t==LEFT_ARROW||t==RIGHT_ARROW||t>=ALPHABETS_START&&!isList)){open(e);if(t>=ALPHABETS_START){showFilterBox()}else{e.preventDefault();e.stopImmediatePropagation()}}});$("#"+e).on("focus",wrapperFocusHandler);$("#"+e).on("blur",wrapperBlurHandler);$("#"+t).on("blur",function(t){triggerBypassingHandler(e,"focus",wrapperFocusHandler)});applyChildEvents();$("#"+e).on("dblclick",on_dblclick);$("#"+e).on("mousemove",on_mousemove);$("#"+e).on("mouseenter",on_mouseover);$("#"+e).on("mouseleave",on_mouseout);$("#"+e).on("mousedown",on_mousedown);$("#"+e).on("mouseup",on_mouseup)};var wrapperFocusHandler=function(e){fireEventIfExist("focus")};var wrapperBlurHandler=function(e){fireEventIfExist("blur")};var fixedForList=function(){var e=getPostID("postID");var t=getPostID("postChildID");if(isList===true&&settings.enableCheckbox===false){$("#"+e+" ."+css.ddTitle).hide();$("#"+t).css({display:"block",position:"relative"})}else{if(settings.enableCheckbox===false){isMultiple=false}$("#"+e+" ."+css.ddTitle).show();$("#"+t).css({display:"none",position:"absolute"});var n=$("#"+t+" li."+css.selected)[0];$("#"+t+" li."+css.selected).removeClass(css.selected);var r=getIndex($(n).addClass(css.selected));setValue(r)}childHeight(childHeight())};var fixedForDisabled=function(){var e=getPostID("postID");var t=isDisabled==true?settings.disabledOpacity:1;if(isDisabled===true){$("#"+e).addClass(css.disabledAll)}else{$("#"+e).removeClass(css.disabledAll)}};var fixedSomeUI=function(){var e=getPostID("postTitleTextID");if(settings.enableAutoFilter=="true"){$("#"+e).on("keyup",applyFilters)}fixedForList();fixedForDisabled()};var createLayout=function(){var e=createWrapper();var t=createTitle();e.appendChild(t);var n=createFilterBox();e.appendChild(n);var r=createChildren();e.appendChild(r);$("#"+element).after(e);hideOriginal();fixedSomeUI();applyEvents();var i=getPostID("postChildID");if(settings.append!=""){$("#"+i).append(settings.append)}if(settings.prepend!=""){$("#"+i).prepend(settings.prepend)}if(typeof settings.on.create=="function"){settings.on.create.apply($this,arguments)}};var selectUI_LI=function(e){function r(e){$($("#"+t+" li."+css_i.li)[e]).addClass(css.selected);if(settings.enableCheckbox===true){$($("#"+t+" li."+css_i.li)[e]).find("input.checkbox").prop("checked","checked")}}var t=getPostID("postChildID");$("#"+t+" li."+css_i.li).removeClass(css.selected);if(settings.enableCheckbox===true){$("#"+t+" li."+css_i.li+" input.checkbox").prop("checked",false)}if(isArray(e)===true){for(var n=0;n1){selectMutipleOptions(t)}else{n=getIndex($("#"+e+" li."+css.selected))}if((getElement(element).selectedIndex!=n||forcedTrigger)&&t.length<=1){forcedTrigger=false;var r=has_handler("change");getElement(element).selectedIndex=n;setValue(n);if(typeof settings.on.change=="function"){var i=getDataAndUI();settings.on.change(i.data,i.ui)}$("#"+element).trigger("change")}};var setValue=function(e,t){if(e!==undefined){var n,r,i;if(e==-1){n=-1;r="";i="";updateTitleUI(-1)}else{if(typeof e!="object"){var s=getElement(element).options[e];getElement(element).selectedIndex=e;n=e;r=parseOption(s);i=e>=0?getElement(element).options[e].text:"";updateTitleUI(undefined,r);r=r.value}else{n=t&&t.index||getElement(element).selectedIndex;r=t&&t.value||getElement(element).value;i=t&&t.text||getElement(element).options[getElement(element).selectedIndex].text||"";updateTitleUI(n)}}updateProp("selectedIndex",n);updateProp("value",r);updateProp("selectedText",i);updateProp("children",getElement(element).children);updateProp("uiData",getDataAndUI());updateProp("selectedOptions",$("#"+element+" option:selected"))}};var has_handler=function(e){var t={byElement:false,byJQuery:false,hasEvent:false};var n=$("#"+element);try{if(n.prop("on"+e)!==null){t.hasEvent=true;t.byElement=true}}catch(r){}var i;if(typeof $._data=="function"){i=$._data(n[0],"events")}else{i=n.data("events")}if(i&&i[e]){t.hasEvent=true;t.byJQuery=true}return t};var bind_on_events=function(){unbind_on_events();$("body").on("click",close);$(document).on("keydown",on_keydown);$(document).on("keyup",on_keyup)};var unbind_on_events=function(){$("body").off("click",close);$(document).off("keydown",on_keydown);$(document).off("keyup",on_keyup)};var applyFilters=function(e){if(e.keyCode0&&!isList||!isMultiple){$("#"+t+" ."+css.selected).removeClass(css.selected);$(i[0]).addClass(css.selected)}}if(!isList){adjustOpen()}};var showFilterBox=function(){if(settings.enableAutoFilter=="true"){var e=getPostID("postID");var t=getPostID("postTitleTextID");if($("#"+t+":hidden").length>0&&controlHolded==false){$("#"+t+":hidden").show().val("");triggerBypassingHandler(e,"blur",wrapperBlurHandler);getElement(t).focus()}}};var hideFilterBox=function(){var e=getPostID("postTitleTextID");if($("#"+e+":visible").length>0){$("#"+e+":visible").hide();getElement(e).blur()}};var on_keydown=function(e){var t=getPostID("postTitleTextID");var n=getPostID("postChildID");switch(e.keyCode){case DOWN_ARROW:case RIGHT_ARROW:e.preventDefault();e.stopPropagation();next();break;case UP_ARROW:case LEFT_ARROW:e.preventDefault();e.stopPropagation();previous();break;case ESCAPE:case ENTER:e.preventDefault();e.stopPropagation();close();var r=$("#"+n+" li."+css.selected).length;forcedTrigger=oldSelected.length!=r||r==0?true:false;fireAfterItemClicked();unbind_on_events();lastTarget=null;break;case SHIFT:shiftHolded=true;break;case CONTROL:controlHolded=true;break;default:if(e.keyCode>=ALPHABETS_START&&isList===false){showFilterBox()}break}if(isDisabled===true)return false;fireEventIfExist("keydown")};var on_keyup=function(e){switch(e.keyCode){case SHIFT:shiftHolded=false;break;case CONTROL:controlHolded=false;break}if(isDisabled===true)return false;fireEventIfExist("keyup")};var on_dblclick=function(e){if(isDisabled===true)return false;fireEventIfExist("dblclick")};var on_mousemove=function(e){if(isDisabled===true)return false;fireEventIfExist("mousemove")};var on_mouseover=function(e){if(isDisabled===true)return false;e.preventDefault();fireEventIfExist("mouseover")};var on_mouseout=function(e){if(isDisabled===true)return false;e.preventDefault();fireEventIfExist("mouseout")};var on_mousedown=function(e){if(isDisabled===true)return false;fireEventIfExist("mousedown")};var on_mouseup=function(e){if(isDisabled===true)return false;fireEventIfExist("mouseup")};var option_has_handler=function(e,t){var n={byElement:false,byJQuery:false,hasEvent:false};if($(e).prop("on"+t)!=undefined){n.hasEvent=true;n.byElement=true}var r=$(e).data("events");if(r&&r[t]){n.hasEvent=true;n.byJQuery=true}return n};var fireOptionEventIfExist=function(e,t){if(settings.disabledOptionEvents==false){var n=getElement(element).options[getIndex(e)];if(option_has_handler(n,t).hasEvent===true){if(option_has_handler(n,t).byElement===true){n["on"+t]()}if(option_has_handler(n,t).byJQuery===true){switch(t){case"keydown":case"keyup":break;default:$(n).trigger(t);break}}return false}}};var fireEventIfExist=function(e){if(typeof settings.on[e]=="function"){settings.on[e].apply(this,arguments)}if(has_handler(e).hasEvent===true){if(has_handler(e).byElement===true){getElement(element)["on"+e]()}else if(has_handler(e).byJQuery===true){switch(e){case"keydown":case"keyup":break;default:$("#"+element).triggerHandler(e);break}}return false}};var scrollToIfNeeded=function(e){var t=getPostID("postChildID");e=e!==undefined?e:$("#"+t+" li."+css.selected);if(e.length>0){var n=parseInt($(e).position().top);var r=parseInt($("#"+t).height());if(n>r){var i=n+$("#"+t).scrollTop()-r/2;$("#"+t).animate({scrollTop:i},500)}}};var next=function(){function i(e){e=e+1;if(e>t.length){return e}if($(t[e]).hasClass(css.enabled)===true){return e}return e=i(e)}var e=getPostID("postChildID");var t=$("#"+e+" li:visible."+css_i.li);var n=$("#"+e+" li:visible."+css.selected);n=n.length==0?t[0]:n;var r=$("#"+e+" li:visible."+css_i.li).index(n);if(r=0){r=s(r);if(r>=0){if(!shiftHolded||!isList||!isMultiple){$("#"+e+" ."+css.selected).removeClass(css.selected)}$(n[r]).addClass(css.selected);updateTitleUI(r);if(isList==true){fireAfterItemClicked()}if(parseInt($(n[r]).position().top+$(n[r]).height())<=0){var i=$("#"+e).scrollTop()-$("#"+e).height()-$(n[r]).height();$("#"+e).animate({scrollTop:i},500)}}if(!isList){adjustOpen()}}};var adjustOpen=function(){var e=getPostID("postID");var t=getPostID("postChildID");var n=$("#"+e).offset();var r=$("#"+e).height();var i=$(window).height();var s=$(window).scrollTop();var o=$("#"+t).height();var u=$("#"+e).height();var a=settings.openDirection.toLowerCase();if((i+s=0?getElement(element).options[getElement(element).selectedIndex].text:"";$this.version=msBeautify.version.msDropdown;$this.author=msBeautify.author};var getDataAndUIByOption=function(e){if(e!=null&&typeof e!="undefined"){var t=getPostID("postChildID");var n=parseOption(e);var r=$("#"+t+" li."+css_i.li+":eq("+e.index+")");return{data:n,ui:r,option:e,index:e.index}}return null};var getDataAndUI=function(){var e=getPostID("postChildID");var t=getElement(element);var n,r,i,s;if(t.selectedIndex==-1){n=null;r=null;i=null;s=-1}else{r=$("#"+e+" li."+css.selected);if(r.length>1){var o=[],u=[],a=[];for(var f=0;f0){$(s).remove()}if(r.image!=""&&settings.showIcon){s=createElement("img",{src:r.image});$("#"+n).prepend(s);if(r.imagecss!=""){s.className=r.imagecss+" "}if(r.description==""){s.className=s.className+css_i.fnone}}};var updateProp=function(e,t){$this[e]=t};var updateUI=function(e,t,n){var r=getPostID("postChildID");var i=false;switch(e){case"add":var s=createChild(t||getElement(element).options[n]);var o;if(arguments.length==3){o=n}else{o=$("#"+r+" li."+css_i.li).length-1}if(o<0||!o){$("#"+r+" ul").append(s)}else{var u=$("#"+r+" li."+css_i.li)[o];$(u).before(s)}removeChildEvents();applyChildEvents();if(settings.on.add!=null){settings.on.add.apply(this,arguments)}break;case"remove":i=$($("#"+r+" li."+css_i.li)[n]).hasClass(css.selected);$("#"+r+" li."+css_i.li+":eq("+n+")").remove();var a=$("#"+r+" li."+css.enabled);if(i==true){if(a.length>0){$(a[0]).addClass(css.selected);var f=$("#"+r+" li."+css_i.li).index(a[0]);setValue(f)}}if(a.length==0){setValue(-1)}if($("#"+r+" li."+css_i.li).length1||getElement(element).multiple==true?true:false;fixedForList();break;case"multiple":getElement(element)[e]=t;isList=getElement(element).size>1||getElement(element).multiple==true?true:false;isMultiple=getElement(element).multiple;fixedForList();updateProp(e,t);break;case"disabled":getElement(element)[e]=t;isDisabled=t;fixedForDisabled();break;case"selectedIndex":case"value":if(e=="selectedIndex"&&isArray(t)===true){$("#"+element+" option").prop("selected",false);selectMutipleOptions(t,true);selectUI_LI(t)}else{getElement(element)[e]=t;selectUI_LI(getElement(element).selectedIndex);setValue(getElement(element).selectedIndex)}break;case"length":var r=getPostID("postChildID");if(t=0}})}else{$.expr[":"].Contains=function(e,t,n){return $(e).text().toUpperCase().indexOf(n[3].toUpperCase())>=0}}$.fn.extend({msDropDown:function(e){return this.each(function(){if(!$(this).data("dd")){var t=new dd(this,e);$(this).data("dd",t)}})}});$.fn.msDropdown=$.fn.msDropDown})(jQuery)