;(function($){var p={};p.getId=function(){var id=$(document).data("icolorID");if(!id){id=1;}else{id=id+1;};$(document).data("icolorID",id);return id;};p.colorMap=["00","33","66","99","AA","CC","EE","FF"];p.M=function($t,opts){this.$t=$t;this.$layout=null;this.$colors=null;this.$tb=null;this.flat=opts.flat;this.colors=opts.colors;this.trigger=opts.trigger;this.className=opts.cl;this.showInput=opts.showInput;this.defaultColor=!(this.colors&&this.colors.length>0);this.curColor="";this._opts=opts;this._init();};p.M.prototype={_init:function(){this._initColors();this._initCbk();this._initLayout();},_initColors:function(){if(!this.defaultColor)return;for(var i=0;i<p.colorMap.length;i++)this.colors.push(p.colorMap[i]+p.colorMap[i]+p.colorMap[i]);for(var i=1;i<p.colorMap.length;i++){if(i!=4&&i!=6)this.colors.push(p.colorMap[0]+p.colorMap[0]+p.colorMap[i]);};for(var i=1;i<p.colorMap.length;i++){if(i!=2&&i!=4&&i!=6&&i!=7)this.colors.push(p.colorMap[i]+p.colorMap[i]+p.colorMap[7]);};for(var i=1;i<p.colorMap.length;i++){if(i!=4&&i!=6)this.colors.push(p.colorMap[0]+p.colorMap[i]+p.colorMap[0]);};for(var i=1;i<p.colorMap.length;i++){if(i!=2&&i!=4&&i!=6&&i!=7)this.colors.push(p.colorMap[i]+p.colorMap[7]+p.colorMap[i]);};for(var i=1;i<p.colorMap.length;i++){if(i!=4&&i!=6)this.colors.push(p.colorMap[i]+p.colorMap[0]+p.colorMap[0]);};for(var i=1;i<p.colorMap.length;i++){if(i!=2&&i!=4&&i!=6&&i!=7)this.colors.push(p.colorMap[7]+p.colorMap[i]+p.colorMap[i]);};for(var i=1;i<p.colorMap.length;i++){if(i!=4&&i!=6)this.colors.push(p.colorMap[i]+p.colorMap[i]+p.colorMap[0]);};for(var i=1;i<p.colorMap.length;i++){if(i!=2&&i!=4&&i!=6&&i!=7)this.colors.push(p.colorMap[7]+p.colorMap[7]+p.colorMap[i]);};for(var i=1;i<p.colorMap.length;i++){if(i!=4&&i!=6)this.colors.push(p.colorMap[0]+p.colorMap[i]+p.colorMap[i]);};for(var i=1;i<p.colorMap.length;i++){if(i!=2&&i!=4&&i!=6&&i!=7)this.colors.push(p.colorMap[i]+p.colorMap[7]+p.colorMap[7]);};for(var i=1;i<p.colorMap.length;i++){if(i!=4&&i!=6)this.colors.push(p.colorMap[i]+p.colorMap[0]+p.colorMap[i]);};for(var i=1;i<p.colorMap.length;i++){if(i!=2&&i!=4&&i!=6&&i!=7)this.colors.push(p.colorMap[7]+p.colorMap[i]+p.colorMap[7]);};},_initLayout:function(){var _this=this;var go=true;if(this._opts.beforeInit){go=this._opts.beforeInit();};if(!go)return;this._opts.col=this._opts.col||this.colors.length;var colNum=this.defaultColor?8:(this._opts.col<1?1:this._opts.col);var html='<div class="'+this.className+'" id="icolor_'+p.getId()+'">',title="";html+='<table class="icolor_ct">';for(var i=0;i<this.colors.length;i++){if(i%colNum==0){html+="<tr>";};title=this._opts.title?(' title="#'+this.colors[i]+'"'):"";html+='<td style="background-color:#'+this.colors[i]+';"'+title+' abbr="'+this.colors[i]+'"></td>';if(i%colNum==(colNum-1)){html+="</tr>";};};html+='</table>';if(this.showInput){html+='<div class="icolor_ft"><input type="text" name="icolor" class="icolor_tbx"/>'+this._opts.okTpl+'</div>';};html+='</div>';this.$layout=$(html);this.$tb=this.$layout.find("table");this.$colors=this.$tb.find("td");if(this.flat){this.$t.append(this.$layout.addClass("icolor_flat"));}else{$("body").append(this.$layout.hide());};this.$colors.click(function(e){if(this.className=="hot")return;_this.$colors.removeClass();$(this).addClass("hot");_this.curColor="#"+this.abbr;if(_this._$ipt)_this._$ipt.val(_this.curColor);_this.submit();});if(this._opts.hover){this.$colors.mouseenter(function(e){var c="#"+this.abbr;_this._opts.onOver?_this._opts.onOver(c):(function(){_this._$ipt.css("background-color",c);})();});this.$tb.mouseleave(function(e){_this._opts.onOut?_this._opts.onOut():(function(){_this._$ipt.css("background-color","");})();});};if(this.showInput){this._$ipt=this.$layout.find(".icolor_tbx").keyup(function(e){if(e.keyCode!=13)return;var v="";if((v=_this._$ipt.val())==""||v.indexOf("#")!=0)return;_this.curColor=v;_this.submit();});this.$layout.find(".icolor_ok").click(function(e){var v="";if((v=_this._$ipt.val())==""||v.indexOf("#")!=0)return false;_this.curColor=v;_this.submit();return false;});};if(!this.flat){this.$t.bind(this.trigger,function(e){if(_this.$layout.is(":hidden"))_this.show();else _this.$layout.hide();return false;});};if(this._opts.afterInit)this._opts.afterInit();},show:function(){var _this=this;var pos=this.$t.offset(),cbk=this._opts.onShow?function(){_this._opts.onShow(pos);}:null;this.$layout.css({left:pos.left,top:pos.top+this.$t.height()});if(this._opts.slide){this.$layout.slideDown("fast",cbk);}else{this.$layout.show(0,cbk);};},submit:function(){if(this._opts.onSelect){this._opts.onSelect(this.curColor);};if((!this.flat)&&this._opts.autoClose){this.$layout.hide();};},_proxy:function(f){if(!f)return null;var i=this;return function(){return f.apply(i,arguments);};},_initCbk:function(){this._opts.onShow=this._proxy(this._opts.onShow);this._opts.onSelect=this._proxy(this._opts.onSelect);this._opts.beforeInit=this._proxy(this._opts.beforeInit);this._opts.afterInit=this._proxy(this._opts.afterInit);this._opts.onOver=this._proxy(this._opts.onOver);this._opts.onOut=this._proxy(this._opts.onOut);}};$.fn.icolor=function(opts){opts=$.extend({},$.fn.icolor.defaults,opts);return this.each(function(){var $i=$(this);if(!$i.data("icolor"))$i.data("icolor",new p.M($i,opts));});};$.fn.icolor.defaults={trigger:'click',flat:false,col:8,colors:[],showInput:false,cl:"icolor",title:true,autoClose:true,slide:true,okTpl:'',onShow:null,onSelect:null,beforeInit:null,afterInit:null,onOver:null,onOut:null,hover:true};$.fn.icolor.isDark=function(c){var colr=parseInt(c.substr(1),16);return(colr>>>16)+((colr>>>8)&0x00ff)+(colr&0x0000ff)<500;};})(jQuery);
