(function(a){a.dropDownMenuShared={current:undefined,current_zindex:0,initCurrent:function(){if(this.current==undefined)return;this.current_zindex=a(".dropdown-list-container",this.current.control).css("z-index");a(".dropdown-list-container",this.current.control).css("z-index",99999);a(".dropdown-list",this.current.control).css("z-index",99998);this.current.iframeFix&&a(".dropdown-list-container",this.current.control).find("iframe").css("z-index",0);a(this.current.control).css("z-index",99996)},restoreCurrent:function(){if(this.current==undefined)return;a(".dropdown-list-container",this.current.control).css("z-index",this.current_zindex);a(this.current.control).css("z-index",this.current_zindex-1);this.current.iframeFix&&a(".dropdown-list-container",this.current.control).find("iframe").css("z-index",this.current_zindex-1)},pause:function(c){var b=new Date,a=null;do a=new Date;while(a-b<c)},getPageSize:function(){var c,d;if(window.innerHeight&&window.scrollMaxY){c=window.innerWidth+window.scrollMaxX;d=window.innerHeight+window.scrollMaxY}else if(document.body.scrollHeight>document.body.offsetHeight){c=document.body.scrollWidth;d=document.body.scrollHeight}else{c=document.body.offsetWidth;d=document.body.offsetHeight}var a,b;if(self.innerHeight){if(document.documentElement.clientWidth)a=document.documentElement.clientWidth;else a=self.innerWidth;b=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){a=document.documentElement.clientWidth;b=document.documentElement.clientHeight}else if(document.body){a=document.body.clientWidth;b=document.body.clientHeight}if(d<b)pageHeight=b;else pageHeight=d;if(c<a)pageWidth=c;else pageWidth=a;var f,e,h,g;if(pageWidth>=a){f=pageWidth;h=a}else{f=a;h=pageWidth}if(pageHeight>=b){e=pageHeight;g=b}else{e=b;g=pageHeight}var i={pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:a,windowHeight:b,largestWidth:f,largestHeight:e};return i},getPageScroll:function(){var a,b;if(self.pageYOffset){b=self.pageYOffset;a=self.pageXOffset}else if(document.documentElement&&document.documentElement.scrollTop){b=document.documentElement.scrollTop;a=document.documentElement.scrollLeft}else if(document.body){b=document.body.scrollTop;a=document.body.scrollLeft}var c={xScroll:a,yScroll:b};return c}};a.dropDownMenu=function(b,c){this.options=a.extend({width:"auto",slideDownSpeed:1e3,slideUpSpeed:"fast",easeShow:"easeOutQuad",easeHide:"easeInQuad",checkContainerDim:true,scrollPaneOptions:{scrollbarWidth:22,scrollbarMargin:0,showArrows:true,arrowSize:10,dragMinHeight:26,dragMaxHeight:26,maintainPosition:false},itemSelected:undefined},c);this.dim={};this.elem=b;this.init()};a.extend(a.dropDownMenu,{prototype:{init:function(){var b=this;if(a(this.elem).is("select")){this.select=this.elem;a(this.select).wrap("<div class='dropdown'></div>");this.control=a(this.select).parent()}else{this.select=a("select:eq(0)",this.elem);if(!this.select.length)return;this.select=this.select[0];a(this.elem).addClass("dropdown");this.control=a(this.elem)}this.control.show();var k=a("<div class='dropdown-result-container'><span class='dropdown-result'></span><a class='dropdown-arrow'><span></span></a></div>");this.control.append(k);this.control.append(a("<div class='dropdown-list-container'><div class='dropdown-list-wrapper'><ul class='dropdown-list'></ul></div></div>"));a(".dropdown-list",this.control).show();a(".dropdown-list-wrapper",this.control).show();a(".dropdown-list-container",this.control).show();this.select_options=a("option",this.select);this.itemsValue=[];for(var f=0,m=this.select_options.length;f<m;f++){var g=a(this.select_options[f]),e=g.html(),i=g.attr("disabled")||false?"disabled":"",h=this.select_options[f].selected?"selected":"",n=g.attr("value")||"";this.itemsValue[f]=n;a(".dropdown-list",this.control).append("<li>"+e+"</li>");i!=""&&a(".dropdown-list li:last",this.control).addClass(i);h!=""&&a(".dropdown-list li:last",this.control).addClass(h)}this.items=a(".dropdown-list-container li",this.control);this.arrow=a(".dropdown-arrow",this.control);this.result=a(".dropdown-result",this.control);if(!this.items.length)return;!a(this.items).filter(".selected").length&&a(this.items[0]).addClass("selected");this.initial=a(a(this.items).filter(".selected")[0]);this.current=this.initial;this.value(this.itemsValue[this.items.index(this.current)]);if(this.options.checkContainerDim)this.dim.controlContainer={padding:{top:parseInt(a(this.control).parent().css("padding-top"))||0,bottom:parseInt(a(this.control).parent().css("padding-bottom"))||0,left:parseInt(a(this.control).parent().css("padding-left"))||0,right:parseInt(a(this.control).parent().css("padding-right"))||0},border:{top:parseInt(a(this.control).parent().css("border-top-width"))||0,bottom:parseInt(a(this.control).parent().css("border-bottom-width"))||0,left:parseInt(a(this.control).parent().css("border-left-width"))||0,right:parseInt(a(this.control).parent().css("border-right-width"))||0}};if(this.options.width!="auto")a(".dropdown-result-container",this.control).css("width",this.options.width);else{var c=a(this.select).outerWidth();c-=this.arrow.outerWidth(true);c-=parseInt(this.result.css("margin-left"))||0;c-=parseInt(this.result.css("margin-right"))||0;c-=parseInt(this.result.css("padding-left"))||0;c-=parseInt(this.result.css("padding-right"))||0;c-=parseInt(a(".dropdown-result-container",this.control).css("padding-left"))||0;c-=parseInt(a(".dropdown-result-container",this.control).css("padding-right"))||0;a(".dropdown-result",this.control).css("width",c+"px")}c=a(".dropdown-result",this.control).outerWidth(true)+a(".dropdown-arrow").outerWidth(true);a(".dropdown-result-container",this.control).css("width",c+"px");c=a(".dropdown-result-container",this.control).outerWidth(true);w1=a(".dropdown-result-container",this.control).outerWidth();w2=a(".dropdown-list-container",this.control).outerWidth();pl=parseInt(a(".dropdown-list-container",this.control).css("padding-left"))||0;pr=parseInt(a(".dropdown-list-container",this.control).css("padding-right"))||0;bl=parseInt(a(".dropdown-list-container",this.control).css("border-left-width"))||0;br=parseInt(a(".dropdown-list-container",this.control).css("border-right-width"))||0;ppl=parseInt(a(".dropdown-result-container",this.control).css("padding-left"))||0;ppr=parseInt(a(".dropdown-result-container",this.control).css("padding-right"))||0;w2-pr-pl-br-bl+ppl+ppr<w1&&a(".dropdown-list-container",this.control).css("width",w1-pr-pl-br-bl+ppl+ppr+"px");w1=a(".dropdown-list-container",this.control).innerWidth();w1-=parseInt(a(".dropdown-list-container .dropdown-list",this.control).css("padding-left"))||0;w1-=parseInt(a(".dropdown-list-container .dropdown-list",this.control).css("padding-right"))||0;w1>0&&a(".dropdown-list-container .dropdown-list",this.control).css({width:w1+"px"});if(a.browser.msie&&a.browser.version<8){d=a(".dropdown").index(this.control);c=a(".dropdown-list-container",this.control).innerWidth();c-=parseInt(a(".dropdown-list-container",this.control).css("padding-left"))||0;c-=parseInt(a(".dropdown-list-container",this.control).css("padding-right"))||0;e=a(".dropdown-list-container",this.control).innerHeight();e-=parseInt(a(".dropdown-list-container",this.control).css("padding-top"))||0;e-=parseInt(a(".dropdown-list-container",this.control).css("padding-bottom"))||0;t=parseInt(a(".dropdown-list-container",this.control).css("top"))||0;l=parseInt(a(".dropdown-list-container",this.control).css("left"))||0;l+=parseInt(a(".dropdown-list-container",this.control).css("borderLeftWidth"))||0;z=parseInt(a(".dropdown-list-container",this.control).css("z-index"))||0;if(d>0&&z>0)if(z-d*10>0){z-=d*10;a(".dropdown-list-container",this.control).css("z-index",z);a(this.control).css("z-index",z-1)}this.iframeFix=true;this.savedZIndex=z;var j=a("<iframe frameborder='0' scrolling='no'></iframe>").css({width:c+"px",height:e+"px",position:"absolute",left:l+"px",top:t+"px",zIndex:z-1,display:"block",overflow:"hidden"});a(".dropdown-list-container",this.control).append(j)}t=a(".dropdown-result-container",this.control).outerHeight(true);t+=parseInt(this.control.css("padding-top"))||0;t+=parseInt(this.control.css("padding-bottom"))||0;t+=parseInt(this.control.css("border-top-width"))||0;t+=parseInt(this.control.css("border-bottom-width"))||0;l=parseInt(a(".dropdown-result-container",this.control).css("padding-left"))||0;a(".dropdown-list-container",this.control).css("top",t+"px");a(".dropdown-list-container",this.control).css("left",-l+"px");this.dim.resultContainer={height:t};e=a(".dropdown-list-container",this.control).outerHeight();this.dim.listContainer={height:e};e=a(".dropdown-list-wrapper",this.control).innerHeight();e-=parseInt(a(".dropdown-list-wrapper",this.control).css("paddingTop"))||0;e-=parseInt(a(".dropdown-list-wrapper",this.control).css("paddingBottom"))||0;c=a(".dropdown-list-wrapper",this.control).innerWidth();c-=parseInt(a(".dropdown-list-wrapper",this.control).css("paddingLeft"))||0;c-=parseInt(a(".dropdown-list-wrapper",this.control).css("paddingRight"))||0;this.dim.listWrapper={width:c,height:e};this.arrow.bind("click",function(){if(!b.select.disabled)if(b.showed)b.hideMenu.apply(b,[]);else b.showMenu.apply(b,[]);return false});this.result.bind("dblclick",function(){!b.select.disabled&&b.showMenu.apply(b,[]);return false});this.items.each(function(){a(this).bind("mouseover",function(){!a(this).is(".disabled")&&a(this).addClass("hover")});a(this).bind("click",function(){b.selectItem.apply(b,[this]);b.hideMenu.apply(b,[]);return false});a(this).bind("mouseout",function(){a(this).removeClass("hover")})});a(this.select).bind("change",function(){var c=this.value||"";if(c=="")a(b.result).addClass("dropdown-result_emptyValueSelected");else a(b.result).removeClass("dropdown-result_emptyValueSelected");b.value(this.value)});a(this.select).parents("form").length&&a(this.select).parents("form").bind("reset",function(){b.value(b.itemsValue[b.items.index(b.initial)])});a(document).bind("click",function(c){if(c&&c.target)if(a(c.target).parents(".dropdown").length)return false;b.onDocClick.apply(b,[c])});a(this.select).hide();a(".dropdown-list-container",this.control).hide();if(a.browser.msie&&a.browser.version<7){a(this.arrow).bind("mouseover",function(){a(this).addClass("dropdown-arrow-hover")});a(this.arrow).bind("mouseout",function(){a(this).removeClass("dropdown-arrow-hover")})}},value:function(c){if(c==undefined)return this.itemsValue[this.items.index(this.current)];else for(var b=0,d=this.items.length;b<d;b++){v=this.itemsValue[this.items.index(this.items[b])];if(v==c){this.items.removeClass("selected");a(this.items[b]).addClass("selected");this.current=a(this.items[b]);a(".dropdown-result",this.control).html("<span>"+this.current.html()+"</span>");if(this.elem.value!=c){this.elem.value=c;a(this.elem).trigger("change")}break}}},resizeContainer:function(){var b=a(".dropdown-list-container",this.control);parent_offset=this.control.offset();page_scroll=a.dropDownMenuShared.getPageScroll();page_size=a.dropDownMenuShared.getPageSize();view_offset={left:parent_offset.left-page_scroll.xScroll,top:parent_offset.top-page_scroll.yScroll};a(".dropdown-list-wrapper",this.control).css({overflow:"visible",height:"auto"});available_top=view_offset.top-30;available_bottom=page_size.windowHeight-view_offset.top-this.dim.resultContainer.height-30;if(available_bottom>this.dim.listContainer.height){t=this.dim.resultContainer.height;if(this.options.checkContainerDim){t+=this.dim.controlContainer.padding.bottom;t+=this.dim.controlContainer.border.bottom}a(".dropdown-list-container",this.control).css("top",t+"px");a(".dropdown-list-wrapper",this.control).css({overflow:"visible",width:this.dim.listWrapper.width+"px",height:this.dim.listWrapper.height+"px"});a(".jScrollPaneContainer",this.control).css({overflow:"visible",width:this.dim.listWrapper.width+"px",height:this.dim.listWrapper.height+"px"});a(".dropdown-list-wrapper",this.control).jScrollPane(this.options.scrollPaneOptions)}else{t=this.dim.resultContainer.height;available_height=0;if(available_top>available_bottom)available_height=available_top;else available_height=available_bottom;if(available_height<this.dim.listContainer.height){a(".dropdown-list-wrapper",this.control).css({overflow:"auto",height:available_height+"px"});a(".jScrollPaneContainer",this.control).css({height:available_height+"px"});a(".dropdown-list-wrapper",this.control).jScrollPane(this.options.scrollPaneOptions)}else{h=this.dim.listContainer.height;a(".dropdown-list-wrapper",this.control).css({overflow:"visible",width:this.dim.listWrapper.width+"px",height:this.dim.listWrapper.height+"px"});a(".jScrollPaneContainer",this.control).css({overflow:"visible",width:this.dim.listWrapper.width+"px",height:this.dim.listWrapper.height+"px"});a(".dropdown-list-wrapper",this.control).jScrollPane(this.options.scrollPaneOptions)}if(available_top>available_bottom){t=a(".dropdown-list-container",this.control).outerHeight();if(this.options.checkContainerDim){t+=this.dim.controlContainer.padding.top;t+=this.dim.controlContainer.border.top}a(".dropdown-list-container",this.control).css("top",-t+"px")}else{t=this.dim.resultContainer.height;if(this.options.checkContainerDim){t+=this.dim.controlContainer.padding.bottom;t+=this.dim.controlContainer.border.bottom}a(".dropdown-list-container",this.control).css("top",t+"px")}}},showMenu:function(){if(a.dropDownMenuShared.current!=undefined){a.dropDownMenuShared.restoreCurrent();a.dropDownMenuShared.current.hideMenu()}a(".dropdown-list-container",this.control).show();if(a.browser.msie&&a.browser.version>7){clone=a(".dropdown-list-container",this.control).clone();a(this.control).append(clone);clone.remove()}this.resizeContainer();if(this.iframeFix){a(".dropdown-list-container",this.control).find("iframe").css({top:0,left:0});a(".dropdown-list-container",this.control).find("iframe").hide()}a.dropDownMenuShared.current=this;a.dropDownMenuShared.initCurrent();this.showed=true;a(this.arrow).addClass("dropdown-arrow-open")},hideMenu:function(){a.dropDownMenuShared.restoreCurrent();a.dropDownMenuShared.current=undefined;a(".dropdown-list-container",this.control).hide();this.showed=false;a(this.arrow).removeClass("dropdown-arrow-open")},selectItem:function(b){if(a(b).is(".selected")||a(b).is(".disabled"))return false;this.value(this.itemsValue[this.items.index(b)]);this.options.itemSelected!=undefined&&typeof this.options.itemSelected=="function"&&this.options.itemSelected(this.itemsValue[this.items.index(b)]);return true},onDocClick:function(){this.hideMenu()}}});a.fn.dropDownMenu=function(b){this.each(function(){var c=a(this).data("dropDown");if(!c){c=new a.dropDownMenu(this,b);a(this).data("dropDown",c)}else{c.options=a.extend(c.options,b);a(this).data("dropDown",c)}return c});return this}})(jQuery);