(function(c){function l(a,b){var c=a.data("ddslick"),e=a.find(".dd-selected"),d=e.siblings(".dd-selected-value");a.find(".dd-options");e.siblings(".dd-pointer");var g=a.find(".dd-option").eq(b),p=g.closest("li"),h=c.settings,f=c.settings.data[b];a.find(".dd-option").removeClass("dd-option-selected");g.addClass("dd-option-selected");c.selectedIndex=b;c.selectedItem=p;c.selectedData=f;h.showSelectedHTML?e.html((f.imageSrc?'<img class="dd-selected-image'+("right"==h.imagePosition?" dd-image-right":"")+
'" src="'+f.imageSrc+'" />':"")+(f.text?'<label class="dd-selected-text">'+f.text+"</label>":"")+(f.description?'<small class="dd-selected-description dd-desc'+(h.truncateDescription?" dd-selected-description-truncated":"")+'" >'+f.description+"</small>":"")):e.html(f.text);d.val(f.value);c.original.val(f.value);a.data("ddslick",c);m(a);e=a.find(".dd-select").css("height");d=a.find(".dd-selected-description");g=a.find(".dd-selected-image");0>=d.length&&0<g.length&&a.find(".dd-selected-text").css("lineHeight",
e);"function"==typeof h.onSelected&&h.onSelected.call(this,c)}function n(a){var b=a.find(".dd-select"),d=b.siblings(".dd-options"),b=b.find(".dd-pointer"),e=d.is(":visible");c(".dd-click-off-close").not(d).slideUp(50);c(".dd-pointer").removeClass("dd-pointer-up");e?(d.slideUp("fast"),b.removeClass("dd-pointer-up")):(d.slideDown("fast"),b.addClass("dd-pointer-up"));q(a)}function m(a){a.find(".dd-options").slideUp(50);a.find(".dd-pointer").removeClass("dd-pointer-up").removeClass("dd-pointer-up")}function q(a){a.find(".dd-option").each(function(){var b=
c(this),d=b.css("height"),e=b.find(".dd-option-description"),k=a.find(".dd-option-image");0>=e.length&&0<k.length&&b.find(".dd-option-text").css("lineHeight",d)})}c.fn.ddslick=function(a){if(d[a])return d[a].apply(this,Array.prototype.slice.call(arguments,1));if("object"===typeof a||!a)return d.init.apply(this,arguments);c.error("Method "+a+" does not exists.")};var d={},r={data:[],keepJSONItemsOnTop:!1,width:260,height:null,background:"#eee",selectText:"",defaultSelectedIndex:null,truncateDescription:!0,
imagePosition:"left",showSelectedHTML:!0,clickOffToClose:!0,onSelected:function(){}};0>=c("#css-ddslick").length&&c('<style id="css-ddslick" type="text/css">.dd-select{ border-radius:2px; border:solid 1px #ccc; position:relative; cursor:pointer;}.dd-desc { color:#aaa; display:block; overflow: hidden; font-weight:normal; line-height: 1.4em; }.dd-selected{ overflow:hidden; display:block; padding:10px; font-weight:bold;}.dd-pointer{ width:0; height:0; position:absolute; right:10px; top:50%; margin-top:-3px;}.dd-pointer-down{ border:solid 5px transparent; border-top:solid 5px #000; }.dd-pointer-up{border:solid 5px transparent !important; border-bottom:solid 5px #000 !important; margin-top:-8px;}.dd-options{ border:solid 1px #ccc; border-top:none; list-style:none; box-shadow:0px 1px 5px #ddd; display:none; position:absolute; z-index:2000; margin:0; padding:0;background:#fff; overflow:auto;}.dd-option{ padding:10px; display:block; border-bottom:solid 1px #ddd; overflow:hidden; text-decoration:none; color:#333; cursor:pointer;-webkit-transition: all 0.25s ease-in-out; -moz-transition: all 0.25s ease-in-out;-o-transition: all 0.25s ease-in-out;-ms-transition: all 0.25s ease-in-out; }.dd-options > li:last-child > .dd-option{ border-bottom:none;}.dd-option:hover{ background:#f3f3f3; color:#000;}.dd-selected-description-truncated { text-overflow: ellipsis; white-space:nowrap; }.dd-option-selected { background:#f6f6f6; }.dd-option-image, .dd-selected-image { vertical-align:middle; float:left; margin-right:5px; max-width:64px;}.dd-image-right { float:right; margin-right:15px; margin-left:5px;}.dd-container{ position:relative;} .dd-selected-text { font-weight:bold}</style>').appendTo("head");
d.init=function(a){a=c.extend({},r,a);return this.each(function(){var b=c(this);if(!b.data("ddslick")){var d=[];b.find("option").each(function(){var a=c(this),b=a.data();d.push({text:c.trim(a.text()),value:a.val(),selected:a.is(":selected"),description:b.description,imageSrc:b.imagesrc})});a.keepJSONItemsOnTop?c.merge(a.data,d):a.data=c.merge(d,a.data);var e=b,k=c('<div id="'+b.attr("id")+'"></div>');b.replaceWith(k);b=k;b.addClass("dd-container").append('<div class="dd-select"><input class="dd-selected-value" type="hidden" /><a class="dd-selected"></a><span class="dd-pointer dd-pointer-down"></span></div>').append('<ul class="dd-options"></ul>');
var d=b.find(".dd-select"),g=b.find(".dd-options");g.css({width:a.width});d.css({width:a.width,background:a.background});b.css({width:a.width});null!=a.height&&g.css({height:a.height,overflow:"auto"});c.each(a.data,function(b,c){c.selected&&(a.defaultSelectedIndex=b);g.append('<li><a class="dd-option">'+(c.value?' <input class="dd-option-value" type="hidden" value="'+c.value+'" />':"")+(c.imageSrc?' <img class="dd-option-image'+("right"==a.imagePosition?" dd-image-right":"")+'" src="'+c.imageSrc+
'" />':"")+(c.text?' <label class="dd-option-text">'+c.text+"</label>":"")+(c.description?' <small class="dd-option-description dd-desc">'+c.description+"</small>":"")+"</a></li>")});b.data("ddslick",{settings:a,original:e,selectedIndex:-1,selectedItem:null,selectedData:null});0<a.selectText.length&&null==a.defaultSelectedIndex?b.find(".dd-selected").html(a.selectText):l(b,null!=a.defaultSelectedIndex&&0<=a.defaultSelectedIndex&&a.defaultSelectedIndex<a.data.length?a.defaultSelectedIndex:0);b.find(".dd-select").on("click.ddslick",
function(){n(b)});b.find(".dd-option").on("click.ddslick",function(){l(b,c(this).closest("li").index())});a.clickOffToClose&&(g.addClass("dd-click-off-close"),b.on("click.ddslick",function(a){a.stopPropagation()}),c("body").on("click",function(){c(".dd-click-off-close").slideUp(50).siblings(".dd-select").find(".dd-pointer").removeClass("dd-pointer-up")}))}})};d.select=function(a){return this.each(function(){a.index&&l(c(this),a.index)})};d.open=function(){return this.each(function(){var a=c(this);
a.data("ddslick")&&n(a)})};d.close=function(){return this.each(function(){var a=c(this);a.data("ddslick")&&m(a)})};d.destroy=function(){return this.each(function(){var a=c(this),b=a.data("ddslick");b&&(b=b.original,a.removeData("ddslick").unbind(".ddslick").replaceWith(b))})}})(jQuery);
