/*
*XGZColorBox v1.0
*http://838903131.qzone.qq.com
*Copyright(c) 2009 ¶À¹Â¾Å½£
*/
XGZColorBox=(function($){function XGZColorBox(el,opts){this.id='8A6DE771-4C4A-494e-8C22-E457AE5DAAE9';this.br=0;if(typeof window.ActiveXObject=='undefined')this.br=1;this.owner=$(el);this.bindMethodsToObj("show","hide","hideIfClickOutside");this.build();this.hide();this.owner.click(this.show);this.itemClickEvent=null;this.dcss="color";if(typeof opts=='undefined')return;for(var i=0;i<opts.length;i++){var o=opts[i];if(typeof o==='function'){this.itemClickEvent=o;}else if(typeof o==='string'){o=o.toLowerCase();if(o=='color'||o=='background-color'||o=='border-color')this.dcss=o;}}};function rgbToString(r,g,b){var strR=r.toString(16),strG=g.toString(16),strB=b.toString(16);if(strR.length==1)strR="0"+strR;if(strG.length==1)strG="0"+strG;if(strB.length==1)strB="0"+strB;return strR+strG+strB;};function rgbToHex(rgb){var hex=rgb.replace("rgb(","").replace(")","").split(',');hex="#"+rgbToString(parseInt(hex[0]),parseInt(hex[1]),parseInt(hex[2]));return hex;};XGZColorBox.prototype={bindToObj:function(fn){var self=this;return function(){return fn.apply(self,arguments)};},bindMethodsToObj:function(){for(var i=0;i<arguments.length;i++){this[arguments[i]]=this.bindToObj(this[arguments[i]]);};},build:function(){if(document.getElementById(this.id)!==null){this.colorbox=$("#"+this.id);this.coloritem=$("#"+this.id+" span");return;};var str='<span id="'+this.id+'" class="xgzcolorbox"><table cellpadding="0" cellspacing="0"><tr><td class="block" colspan="18" >&nbsp;</td></tr>';var r=0,g=0,b=0,x=0,y=0;for(var i=0;i<12;i++){if(i==6){r=0x99;y=0;}else if(i>5)r=0x99;else r=0;g=0;b=y*0x33;x=0;str+="<tr>";for(var j=0;j<18;j++){str+="<td>";str+='<span style="background-color:#';if(x>5){x=0;r+=0x33;g=0;};g=x*0x33;x++;str+=rgbToString(r,g,b);str+='"></span></td>';};str+="</tr>";y++;};str+="</table></span>";$("body").append(str);this.colorbox=$("#"+this.id);this.coloritem=$("#"+this.id+" span");var xgzcblock=$("#"+this.id+" .block");var ofval=this.br;this.coloritem.hover(function(){var offset=$(this).parent().position();$(this).css({left:offset.left-ofval,top:offset.top-ofval,position:"absolute","border-width":"1px"});var coval=$(this).css("background-color");if(ofval==1){coval=rgbToHex(coval);};var r=coval.substring(1,3);var g=coval.substring(3,5);var b=coval.substring(5,7);r=(~parseInt(r,16))&0xff;g=(~parseInt(g,16))&0xff;b=(~parseInt(b,16))&0xff;xgzcblock.css({"background-color":coval,"color":"#"+rgbToString(r,g,b)});xgzcblock.html(coval.toUpperCase());},function(){$(this).css({position:"static","border-width":"0px"});xgzcblock.css("background-color","");xgzcblock.html("&nbsp;");});},itemClick:function(event){var selcolor=$(event.target).css("background-color");if(this.br==1)selcolor=rgbToHex(selcolor);this.owner.css(this.dcss,selcolor);this.hide();if(this.itemClickEvent!=null)this.itemClickEvent(selcolor);},setPosition:function(){var offset=this.owner.offset();this.colorbox.css({top:offset.top+this.owner.outerHeight(),left:offset.left});},show:function(){this.coloritem.unbind('click');this.coloritem.click(this.bindToObj(function(event){this.itemClick(event);}));this.colorbox.css("display","inline-block");$([window,document.body]).click(this.hideIfClickOutside);this.setPosition();},hide:function(){this.colorbox.css("display","none");$([window,document.body]).unbind("click",this.hideIfClickOutside);},hideIfClickOutside:function(event){if(event.target!=this.owner[0]&&!this.insideSelector(event)){this.hide();}},insideSelector:function(event){var offset=this.colorbox.position();offset.right=offset.left+this.colorbox.outerWidth();offset.bottom=offset.top+this.colorbox.outerHeight();return event.pageY<offset.bottom&&event.pageY>offset.top&&event.pageX<offset.right&&event.pageX>offset.left;}};$.fn.colorbox_create=function(opts){return this.each(function(){new XGZColorBox(this,opts);});};return XGZColorBox;})(jQuery);


