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