(function(e,c){var f=function(j,i){var m=e(j),i=e.extend({},e.fn.jqDropDown.defaults,i),p,r,n=i.defaultOption,l,h,k,s=i.effect,o=i.effectSpeed,q=e('<ul class="'+i.optionListName+'" style="display:none;"></ul>');p=m.width();m.hide().after('<div class="'+i.containerName+'" style="position:relative;"></div>');if(n&&n!==""){l=n}else{l=m.find("option[selected]").text()||m.find("option:eq(0)").text()}h=e('<a href="#" class="'+i.toggleBtnName+'">'+l+"</a>");r=m.next("div."+i.containerName);r.append(h);q.append(d(m,i));k=q.find("a");h.after(q);g(r,p,i);e(document).bind("mousedown",function(u){var t=e(u.target);if(e(document.activeElement).hasClass(i.toggleBtnName)||e(document.activeElement).hasClass(i.optionListName)){if(!t.hasClass(i.optionGroupName)&&!t.hasClass(i.toggleBtnName)){if(t.parents().filter(q).length){h.data("index",q.find("li").index(t.parent())).focus();b(h,t,i)}else{if(e(document.activeElement).hasClass(i.toggleBtnName)&&q.is(":visible").length){s==="fade"?q.fadeOut(o):q.hide();return false}else{if(e(document.activeElement).hasClass(i.toggleBtnName)&&!q.filter(":visible").length){h.blur();return false}else{if(i.modal){return false}}}}s==="fade"?q.fadeOut(o):q.hide();return false}else{return false}}});k.bind("mouseenter click",function(u){var t=e(this);u.preventDefault();q.find("a.selected").removeClass("selected");t.addClass("selected");h.data("index",q.find("li").index(t.parent()))});h.bind("mousedown keydown focusout click",function(y){var z=e(this),B,t=z.data("index")||0,v=false,u,x=q.find("a"),A;if(y.type==="mousedown"&&y.which===1){i.beforeToggle.call(this);a(z,q,i);x.removeClass("selected");z.focus();q.find("li:eq("+t+") a").addClass("selected");if(q.is(":hidden")){s==="fade"?e("."+i.optionListName).fadeOut(o):e("."+i.optionListName).hide();s==="fade"?q.fadeIn(o):q.show()}else{s==="fade"?q.fadeOut(o):q.hide()}i.afterToggle.call(this)}if(y.type==="keydown"){switch(y.keyCode){case 9,27:s==="fade"?q.fadeOut(o):q.hide();break;case 13:e(document).trigger("mousedown",[{target:q.find("li:eq("+z.data("index")+") a:eq(0)")}]);break;case 38:y.preventDefault();x.removeClass("selected");for(var w=t-1;w>=0;w--){B=q.find("li:eq("+(w)+")");if(!B.hasClass(i.optionGroupName)){t=w;break}}break;case 40:y.preventDefault();x.removeClass("selected");for(var w=t+1;w<q.find("li").length;w++){B=q.find("li:eq("+(w)+")");if(!B.hasClass(i.optionGroupName)){t=w;break}}break;default:A=String.fromCharCode(y.which).toLowerCase();for(var w=t+1;w<q.find("li").length;w++){B=q.find("li:eq("+(w)+")");if(B.text().slice(0,1).toLowerCase()===A&&!B.hasClass(i.optionGroupName)){x.removeClass("selected");t=w;v=true;break}}if(!v){for(var w=0;w<t;w++){B=q.find("li:eq("+(w)+")");if(B.text().slice(0,1).toLowerCase()===A&&!B.hasClass(i.optionGroupName)){x.removeClass("selected");t=w;break}}}break}z.data("index",t);u=q.find("li:eq("+z.data("index")+") a:eq(0)");u.addClass("selected");b(z,u,i)}else{return false}})};function b(h,i,j){var k,l;if(i&&i.text()!==""){h.text(i.text()).append("<span></span>")}if(j.placeholder){k=e(j.placeholder);j.useValue?l=i.attr("rel"):l=i.text();if(k.is("input")){k.val(l)}else{k.text(l)}}j.optionChanged.call(this)}function d(l,n){var j,m,o="",h,k="";if(n.data.length){j=n.data}else{j=l.find("option,optgroup")}if(n.defaultOption&&n.defaultOption!==""){o+='<li class="'+n.optionName+'"><a href="#">'+n.defaultOption+"</a></li>"}for(m=0;m<j.length;m++){h=e(j[m]);if(h.is(":selected")&&!n.defaultOption){k="selected"}if(h.is("option")){o+='<li class="'+n.optionName+'"><a class="'+k+'" href="#" rel="'+h.attr("value")+'">'+h.text()+"</a></li>"}else{o+='<li class="'+n.optionGroupName+'">'+h.attr("label")+"</li>"}k=""}return o}function g(o,h,n){var j=o.find("ul:eq(0)"),m=o.find("ul > li > a"),i=o.find("a:eq(0)"),l=parseInt(i.css("padding-left"),10)+parseInt(i.css("padding-right"),10),k;a(i,j,n);if(n.defaultStyle){o.find("li."+n.optionGroupName).length>0?k=20:k=4;j.css({width:h+l});i.css({width:j.width()-l}).append("<span></span>");m.css({"padding-left":k})}}function a(j,m,k){var n,p,h,l=e("select"),i,o;p=parseInt(j.css("padding-top"),10)+parseInt(j.css("padding-bottom"),10)||0;h=parseInt(j.css("border-top-width"),10)+parseInt(j.css("border-bottom-width"),10)||0;if(o==="up"||(j.offset().top+m.height()+20)>e(c).height()+e(c).scrollTop()){n=-(m.height()+p-h);o="up"}else{n=j.height()+p+h;o="down"}m.css({top:n});if(e.browser.msie&&e.browser.version==="6.0"||e.browser.version==="7.0"){o==="up"?i=0:i=l.length;l.each(function(){e(this).next("div").css({"z-index":i});if(o==="up"){i+=1}else{i-=1}})}}e.fn.jqDropDown=function(h){return this.each(function(){var i=e(this);if(i.data("jqDropDown")){return}var j=new f(this,h);i.data("jqDropDown",j)})};e.fn.jqDropDown.Debug=function(h){if(c.console&&c.console.log){c.console.log("hilight selection count: "+h.text())}};e.fn.jqDropDown.defaults={effect:"default",effectSpeed:400,modal:false,data:{},defaultOption:null,containerName:"ddContainer",toggleBtnName:"ddToggle",optionListName:"ddOptionList",optionGroupName:"optgroup",optionName:"ddOption",defaultStyle:true,placeholder:null,useValue:true,direction:"down",beforeToggle:function(){},afterToggle:function(){},optionChanged:function(){}}}(jQuery,window,undefined));
