(function(a){a.linkselect={version:"1.2.06"};a.fn.linkselect=function(c){var b=typeof arguments[0]=="string"&&arguments[0];var d=b&&Array.prototype.slice.call(arguments,1)||arguments;if(b&&this.length){var e=a.data(this[0],"linkselect");if(b.toLowerCase()=="object"){return e}else{if(e[b]){var f;this.each(function(h){var g=a.data(this,"linkselect")[b].apply(e,d);if(h==0&&g){if(!!g.jquery){f=a([]).add(g)}else{f=g;return false}}else{if(!!g&&!!g.jquery){f=f.add(g)}}});return f||this}else{return this}}}else{return this.each(function(){new a.LinkSelect(this,c)})}};a.LinkSelect=function(ap,w){w=a.extend({},a.LinkSelect.defaults,w);var ad=this,av=ap,ao=a(ap),r={},p=false,ab=0,q,ah=false;this.id=ao.attr("id");this.val=function(b,c){if(arguments.length>0){at(b,c);return ac}else{return o.val()}};this.focus=function(){setTimeout(function(){ac.focus()},1);return ac};this.blur=function(){setTimeout(function(){ac.blur()},1);return ac};this.open=function(b,c){if(p){return ac}a(document).triggerHandler("click.linkselect");if(c!==false){ac.trigger("focus")}setTimeout(function(){au(b)},1);return ac};this.disable=function(b){p=b;ac.parent().find("span."+w.classDisabled).remove();ac[p?"hide":"show"]();if(p){ac.after('<span class="'+w.classDisabled+'">'+ac.html()+"</span>")}return ac};this.replaceOptions=function(c,b){ao.children("option").remove();a.each(c,function(e){var d=a("<option/>").attr("value",this.value).html(this.text);if(this.selected==true){d.attr("selected","selected")}if(this.className){d.addClass(this.className)}d.appendTo(ao)});z();ak();x().trigger("click.linkselect",[true,b])};var aA=an();ao.after(aA).remove();var o=aA.filter("input");var ac=aA.filter("a");var af=aA.filter("div");var y=aA.find(".scrollable");var ae=aA.find(".title");var v=af.find("ul");var t;o.addClass(ao.attr("className"));a.data(o[0],"linkselect",this);af.appendTo("body").bind("mousemove.linkselect",function(b){t=b});function ak(){v.find("li").bind("mouseover.linkselect",function(b){if(t&&t.type=="keydown"){return}ax(a(this));t=b}).bind("click.linkselect",function(c,g,d){c.preventDefault();var h=x().removeClass(w.classSelected);var f=a(this).addClass(w.classSelected);var e=f.attr("rel")||"";var b=f.find("."+w.classValue).html();ag(g);if((d!==false)&&((a.isFunction(w.change)&&(w.change.apply(ad,[this,e,b,d])===false))||(a.isFunction(ao[0].onchange)&&(ao[0].onchange.apply(ad,[this,e,b,d])===false)))){h.addClass(w.classSelected);f.removeClass(w.classSelected);return}o.val(e);ac.html(b)[(g!==true)?"trigger":"triggerHandler"]("focus",[g]);if(p){ac.parent().find("span."+w.classDisabled).html(b)}})}ak();ac.bind("click.linkselect",function(b){b.preventDefault();aw();if(a.browser.msie){setTimeout(function(){ac.trigger("focus.linkselect")},0)}}).bind("focus.linkselect",function(b,c){if(!af.is(":visible")&&(c!==true)){ac.addClass(w.classLinkFocus)}}).bind("blur.linkselect",function(b){if(am(b)){ag()}ac.removeClass(w.classLinkFocus)}).bind((a.browser.safari?"keydown":"keypress")+".linkselect",function(b,c){if(!!c){var b=c}var f=b.keyCode||b.charCode,d=String.fromCharCode(f).toLowerCase();switch(f){case 38:case 40:b.preventDefault();az((f==38)?-1:1);t=b;break;case 13:b.preventDefault();if(af.is(":visible")){af.find("li."+w.classCurrent).trigger("click.linkselect")}else{ac.trigger("click.linkselect")}break;case 9:case 27:ag();break;case 35:b.preventDefault();aa();t=b;break;case 36:b.preventDefault();s();t=b;break;case 33:case 34:b.preventDefault();var g=af.is(":visible");if(!g){af.show()}var e=parseInt(y.height()/v.find("li:first").outerHeight(),10);if(!g){af.hide()}az((f==33)?e*-1:e);break}if(d!=q){ab=0}q=d;if(typeof r[d]!="undefined"){if(ab>=r[d].length){ab=0}v.find("#"+ad.id+"_li_"+r[d][ab]).trigger("click.linkselect");b.preventDefault();b.stopPropagation();ab++}});if(a.browser.msie){ac.bind("keydown.linkselect",function(b){if(",8,9,33,34,35,36,37,38,39,40,".indexOf(","+b.keyCode+",")>-1){return a(this).triggerHandler("keypress.linkselect",[b])}})}a(document).bind("click.linkselect",function(b){if((b.target!==ac[0])&&(b.target!==y[0])&&af.is(":visible")){ag();ac.removeClass(w.classLinkFocus)}});a(window).resize(function(){if(ah){A(ac,af,true)}});function an(){var b=ad.id;var c=ao.attr("title");var d=av.selectedIndex==-1?"":av[av.selectedIndex].text;var e=av.selectedIndex==-1?"":av[av.selectedIndex][(a.browser.msie&&a.browser.version<=7&&!(av[av.selectedIndex].attributes.value.specified))?"text":"value"];var f=ao.attr("tabindex");var g=['<a href="#'+ad.id+'" id="'+ad.id+'_link" class="'+w.classLink+'"'+(f?' tabindex="'+f+'"':"")+">"+d+"</a>",'<input type="hidden" name="'+ad.id+'" id="'+ad.id+'" value="'+e+'" />','<div class="'+w.classContainer+'">',(c)?'<div class="title"><span>'+c+"</span></div>":"",'<div class="scrollable"><ul id="'+ad.id+'_list">',ar(ao.children("option")),"</ul></div>","</div>"];return a(g.join(""))}function ar(c){r=[];var b=[];c.each(function(i){var e=a(this);var g=e.is(":selected");var k=a.trim(e.text());var j='<span class="'+w.classValue+'">'+k+"</span>";var f=a.browser.msie&&a.browser.version<=7&&!(this.attributes.value.specified)?this.text:this.value;if(a.isFunction(w.format)){j=w.format.apply(ad,[j,f,k,i,e,w])||j}var h=(k.length>1)?k.substring(0,1).toLowerCase():"";if(!r[h]){r[h]=[]}r[h].push(i);var d=a.trim(this.className+" "+(g?w.classSelected:""));b.push('<li id="'+ad.id+"_li_"+i+'" rel="'+f+(d.length>0?'" class="'+d:"")+'">'+j+"</li>")});return b.join("")}function z(){ai=false;af[0].style.width="";ae[0].style.width="";ae.css("float","");v.html(ar(ao.children("option")))}function at(b,c){var d=v.find("li[rel="+b+"]");if(d.length==0){d=v.find("li:eq(0)")}return d.trigger("click.linkselect",[true,c])}function x(){var b=v.find("li.selected");if(b.length==0){b=v.find("li:eq(0)")}return b}function u(){var b=v.find("li.current");if(b.length==0){b=x()}return b}function ax(b){af.find(".current").removeClass(w.classCurrent);b.addClass(w.classCurrent);return b}function az(c){var d=u();var b=parseInt(d.attr("id").replace(/(.+)(_(\d+$))/gi,"$3"),10);aj(b+c)}function aj(b){var c=a("li",af),e;if(!c||c.length==0){return false}var d=u().removeClass(w.classCurrent);if(isNaN(b)||b<0){e=c.eq(0)}else{if(b>c.length-1){e=c.eq(c.length-1)}else{e=c.eq(b)}}if(af.is(":visible")){e.addClass(w.classCurrent);al(e)}else{if(d[0]!==e[0]){e.trigger("click.linkselect")}}}function s(){aj(0)}function aa(){aj(ao.children("option").length-1)}function al(e,f){var c=e[0];var b=y[0];var d={pTop:parseInt(y.css("paddingTop"),10)||0,pBottom:parseInt(y.css("paddingBottom"),10)||0,bTop:parseInt(y.css("borderTopWidth"),10)||0,bBottom:parseInt(y.css("borderBottomWidth"),10)||0};if((c.offsetTop+c.offsetHeight)>(b.scrollTop+b.clientHeight)){b.scrollTop=e.offset().top+(b.scrollTop-y.offset().top)-((b.clientHeight/((f==true)?2:1))-(e.outerHeight()+d.pBottom))}else{if(c.offsetTop-d.bTop-d.bBottom<=(b.scrollTop+d.pTop+d.pBottom)){b.scrollTop=e.offset().top+(b.scrollTop-y.offset().top)-d.pTop}}}function aw(){if(af.is(":visible")){ag()}else{au()}}var ai=false;function au(b){var g=x();ac.removeClass(w.classLinkFocus).addClass(w.classLinkOpen);af.show();if(!ai){var c=(ac.css("display").indexOf("inline")>-1)?ac.parent().outerWidth():ac.outerWidth();var f=w.fixedWidth?c:af.width();if(f<c){f=c}var d=parseInt(y.css("max-height"),10);if(a.browser.msie&&a.browser.version<=6){if((d>0)&&(y.height()>d)){y.height(d)}}if(v.height()>d){f+=25}var e=parseInt("0"+af.css("max-width"),10);if((e>0)&&(f>e)){f=c=e}af.width(f);if(a.browser.safari){var h=af.width();if(c>h){f=c=h}}ae.width(c);if(ae.outerWidth()>c){ae.width(c-(ae.outerWidth()-c))}if(w.titleAlign.toLowerCase()=="right"&&!w.fixedWidth){ae.css("float","right")}ai=true}A(ac,af,true);if(!!a.fn.bgIframe){af.bgIframe()}al(g,true);ax(g);if(a.isFunction(w.open)){w.open.apply(this,[af,ac,g,ae])}if(a.isFunction(b)){b.apply(this,[af,ac,g,ae])}ah=true}function ag(b){if(b!==true){ac.addClass(w.classLinkFocus).removeClass(w.classLinkOpen)}af.hide();if(a.isFunction(w.close)){w.close.apply(this,[af,ac,$selected,ae])}ah=false}function ay(d){var c=false;if(d.is(":hidden")){c=!!d.css("visibility","hidden").show()}var b=a.extend(d.offset(),{width:d.outerWidth(),height:d.outerHeight(),marginLeft:parseInt(a.curCSS(d[0],"marginLeft",true),10)||0,marginRight:parseInt(a.curCSS(d[0],"marginRight",true),10)||0,marginTop:parseInt(a.curCSS(d[0],"marginTop",true),10)||0,marginBottom:parseInt(a.curCSS(d[0],"marginBottom",true),10)||0});if(b.marginTop<0){b.top+=b.marginTop}if(b.marginLeft<0){b.left+=b.marginLeft}b.bottom=b.top+b.height;b.right=b.left+b.width;if(c){d.hide().css("visibility","visible")}return b}function A(d,h){var b=ay(d);var c=aq();var f=af.outerWidth()+b.left;if(f>c.x){b.left=(b.left-af.outerWidth())+ae.outerWidth()}else{var e=af.outerWidth(),g=ae.outerWidth();if(e>g){ae.width(e-(g-ae.width()))}}h.css({position:"absolute",top:b[w.yAxis],left:b.left});return b.bottom}function aq(){var b={scrollLeft:a(window).scrollLeft(),scrollTop:a(window).scrollTop(),width:a("body").width(),height:a("body").height()};b.x=b.scrollLeft+b.width;b.y=b.scrollTop+b.height;return b}function am(b){return !("bubbles" in b||"cancelBubble" in b)}if(a.isFunction(w.init)){w.init.apply(this,[ao,o,ac,af,y,ae,v])}};a.LinkSelect.defaults={classLink:"linkselectLink",classLinkOpen:"linkselectLinkOpen",classLinkFocus:"linkselectLinkFocus",classContainer:"linkselectContainer",classSelected:"selected",classCurrent:"current",classDisabled:"linkselectDisabled",classValue:"linkselectValue",yAxis:"top",titleAlign:"right",fixedWidth:false,init:null,change:null,format:null,open:null,close:null}})(jQuery);
