jQuery.fn.SevenColorPicker = function() {
	var _SCP_FLAG			= '_IP_STAT_COLOR';
	var _SCP_NUMS_PRE_LINE	= 31;
	var _SCP_ITEM_SIZE		= 7;
	var _SCP_SQUAD_SIZE		= 16;
	var _SCP_ITEM_OFFSET	= 0;
	var _SCP_OFFSET			= 1;
	var _SCP_BORDER_WIDTH	= 0;
	var _SCP_COLORS			= ['000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000','000000',
								'1f0000','1f0600','1f0c00','1f1300','1f1900','1f1f00','191f00','131f00','0c1f00','061f00','001f00','001f06','001f0c','001f13','001f19','001f1f','00191f','00131f','000c1f','00061f','00001f','06001f','0c001f','13001f','19001f','1f001f','1f0019','1f0013','1f000c','1f0006','131313',
								'3f0000','3f0c00','3f1900','3f2600','3f3300','3f3f00','333f00','263f00','193f00','0c3f00','003f00','003f0c','003f19','003f26','003f33','003f3f','00333f','00263f','00193f','000c3f','00003f','0c003f','19003f','26003f','33003f','3f003f','3f0033','3f0026','3f0019','3f000c','262626',
								'5f0000','5f1300','5f2600','5f3900','5f4c00','5f5f00','4c5f00','395f00','265f00','135f00','005f00','005f13','005f26','005f39','005f4c','005f5f','004c5f','00395f','00265f','00135f','00005f','13005f','26005f','39005f','4c005f','5f005f','5f004c','5f0039','5f0026','5f0013','393939',
								'7f0000','7f1900','7f3300','7f4c00','7f6600','7f7f00','667f00','4c7f00','337f00','197f00','007f00','007f19','007f33','007f4c','007f66','007f7f','00667f','004c7f','00337f','00197f','00007f','19007f','33007f','4c007f','66007f','7f007f','7f0066','7f004c','7f0033','7f0019','4c4c4c',
								'9f0000','9f1f00','9f3f00','9f5f00','9f7f00','9f9f00','7f9f00','5f9f00','3f9f00','1f9f00','009f00','009f1f','009f3f','009f5f','009f7f','009f9f','007f9f','005f9f','003f9f','001f9f','00009f','1f009f','3f009f','5f009f','7f009f','9f009f','9f007f','9f005f','9f003f','9f001f','5f5f5f',
								'bf0000','bf2600','bf4c00','bf7200','bf9900','bfbf00','99bf00','72bf00','4cbf00','26bf00','00bf00','00bf26','00bf4c','00bf72','00bf99','00bfbf','0099bf','0072bf','004cbf','0026bf','0000bf','2600bf','4c00bf','7200bf','9900bf','bf00bf','bf0099','bf0072','bf004c','bf0026','727272',
								'df0000','df2c00','df5900','df8500','dfb200','dfdf00','b2df00','85df00','59df00','2cdf00','00df00','00df2c','00df59','00df85','00dfb2','00dfdf','00b2df','0085df','0059df','002cdf','0000df','2c00df','5900df','8500df','b200df','df00df','df00b2','df0085','df0059','df002c','858585',
								'ff0000','ff3300','ff6600','ff9900','ffcc00','ffff00','ccff00','99ff00','66ff00','33ff00','00ff00','00ff33','00ff66','00ff99','00ffcc','00ffff','00ccff','0099ff','0066ff','0033ff','0000ff','3300ff','6600ff','9900ff','cc00ff','ff00ff','ff00cc','ff0099','ff0066','ff0033','999999',
								'ff1f1f','ff4c1f','ff791f','ffa51f','ffd21f','ffff1f','d2ff1f','a5ff1f','79ff1f','4cff1f','1fff1f','1fff4c','1fff79','1fffa5','1fffd2','1fffff','1fd2ff','1fa5ff','1f79ff','1f4cff','1f1fff','4c1fff','791fff','a51fff','d21fff','ff1fff','ff1fd2','ff1fa5','ff1f79','ff1f4c','a5a5a5',
								'ff3f3f','ff663f','ff8c3f','ffb23f','ffd83f','ffff3f','d8ff3f','b2ff3f','8cff3f','66ff3f','3fff3f','3fff66','3fff8c','3fffb2','3fffd8','3fffff','3fd8ff','3fb2ff','3f8cff','3f66ff','3f3fff','663fff','8c3fff','b23fff','d83fff','ff3fff','ff3fd8','ff3fb2','ff3f8c','ff3f66','b2b2b2',
								'ff5f5f','ff7f5f','ff9f5f','ffbf5f','ffdf5f','ffff5f','dfff5f','bfff5f','9fff5f','7fff5f','5fff5f','5fff7f','5fff9f','5fffbf','5fffdf','5fffff','5fdfff','5fbfff','5f9fff','5f7fff','5f5fff','7f5fff','9f5fff','bf5fff','df5fff','ff5fff','ff5fdf','ff5fbf','ff5f9f','ff5f7f','bfbfbf',
								'ff7f7f','ff997f','ffb27f','ffcc7f','ffe57f','ffff7f','e5ff7f','ccff7f','b2ff7f','99ff7f','7fff7f','7fff99','7fffb2','7fffcc','7fffe5','7fffff','7fe5ff','7fccff','7fb2ff','7f99ff','7f7fff','997fff','b27fff','cc7fff','e57fff','ff7fff','ff7fe5','ff7fcc','ff7fb2','ff7f99','cccccc',
								'ff9f9f','ffb29f','ffc59f','ffd89f','ffeb9f','ffff9f','ebff9f','d8ff9f','c5ff9f','b2ff9f','9fff9f','9fffb2','9fffc5','9fffd8','9fffeb','9fffff','9febff','9fd8ff','9fc5ff','9fb2ff','9f9fff','b29fff','c59fff','d89fff','eb9fff','ff9fff','ff9feb','ff9fd8','ff9fc5','ff9fb2','d8d8d8',
								'ffbfbf','ffccbf','ffd8bf','ffe5bf','fff2bf','ffffbf','f2ffbf','e5ffbf','d8ffbf','ccffbf','bfffbf','bfffcc','bfffd8','bfffe5','bffff2','bfffff','bff2ff','bfe5ff','bfd8ff','bfccff','bfbfff','ccbfff','d8bfff','e5bfff','f2bfff','ffbfff','ffbff2','ffbfe5','ffbfd8','ffbfcc','e5e5e5',
								'ffdfdf','ffe5df','ffebdf','fff2df','fff8df','ffffdf','f8ffdf','f2ffdf','ebffdf','e5ffdf','dfffdf','dfffe5','dfffeb','dffff2','dffff8','dfffff','dff8ff','dff2ff','dfebff','dfe5ff','dfdfff','e5dfff','ebdfff','f2dfff','f8dfff','ffdfff','ffdff8','ffdff2','ffdfeb','ffdfe5','f2f2f2',
								'ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff','ffffff',];
	if(!jQuery.SCP_Selecter) {
		var html = '<div><ul>';
		var result = jQuery('<div id="_seven_color_selecter" />');
		for(var c in _SCP_COLORS)
		html += '<li><a href="javascript:void(\'#'+_SCP_COLORS[c]+'\');" ref="#'+_SCP_COLORS[c]+'" style="background-color:#'+_SCP_COLORS[c]+';"></a></li>';
		html += '</ul></div>';
		result.html(html);
		$(document).mouseup(function(){result.hide()}).find('body').append(result);
		var setColor = function(col) {
			if(/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.test(col)) {
				col = col.charAt(0) == '#' ? col : '#' + col;
				jQuery.SCP_Active.css('background-color',col);
				jQuery.SCP_Target.val(col);

				typez = $("input#counter").attr("value");
				bgz = $("input#back_color").attr("value");
				bg = bgz.replace('#', '');

				if (typez>4) {
					fgz = $("input#fore_color").attr("value");
					fg = fgz.replace('#', '');
				} else {
					fg = '000000';
				}

				$("input#counter").val(typez);
				$("input#counter_back").val(bg);
				$("input#counter_fore").val(fg);

				if (jQuery.SCP_Target.attr("id") == 'back_color') {
					backz = col.replace('#', '');
					jQuery.SCP_Sample.attr({src:'cntr_example.php?type='+typez+'&bg='+bg+'&fg='+fg+'&rand='+Math.random()});
				}

				if (jQuery.SCP_Target.attr("id") == 'fore_color') {
					forez = col.replace('#', '');
					jQuery.SCP_Sample.attr({src:'cntr_example.php?type='+typez+'&bg='+bg+'&fg='+fg+'&rand='+Math.random()});
				}

			}
		}
		result.hide().css({'position':'absolute','font':'10px verdana','margin':0,'padding':0})
		.find('div').css({'background-color':'#fff','border':0,'margin':0,'padding':0})
		.width(_SCP_NUMS_PRE_LINE*(_SCP_ITEM_SIZE+_SCP_ITEM_OFFSET*2+_SCP_BORDER_WIDTH*2))
		.find('form').submit(function() {
			setColor($(this).children('#_seven_color_code').val());
			jQuery.SCP_Selecter.hide();
			return false;
		}).end()
		.find('ul').css({'margin':0,'padding':0,'list-style':'none'})
		.find('li').css({'margin':0,'padding':0,'float':'left'})
		.find('a').css({'margin':_SCP_ITEM_OFFSET,'padding':0,'display':'block','border':_SCP_BORDER_WIDTH+'px solid #ccc'})
		.width(_SCP_ITEM_SIZE).height(_SCP_ITEM_SIZE)
		.mouseover(function(){$('#_color_code').val($(this).attr('ref')).focus().select();})
		.mousedown(function(){setColor($(this).attr('ref'));})
		.mouseover(function(){$(this).css({'border':_SCP_BORDER_WIDTH+'px solid #333'});})
		.mouseout(function(){$(this).css({'border':_SCP_BORDER_WIDTH+'px solid #ccc'});});
		jQuery.SCP_Selecter = result;
		if(jQuery.browser.msie && jQuery.browser.version == '6.0')
			result.find('div').before('<iframe frameborder="0" width="'+result.width()+'" height="'+result.height()+'" style="position:absolute;z-index:-1;"></iframe>');
	}
	return this.each(function() {
		var myPicker = $(this).next(':text');
		if(myPicker.attr('ref') != _SCP_FLAG) {
/*			$(this).hide().after(*/
			$(this).after(
				$('<input ref="'+_SCP_FLAG+'" />')
				.width(_SCP_SQUAD_SIZE).height(_SCP_SQUAD_SIZE)
				.mouseover(function() {
					var offset = $(this).offset();
					var left = offset.left;
					var top  = offset.top+$(this).height()+_SCP_BORDER_WIDTH;
					jQuery.SCP_Target = $(this).prev();
					jQuery.SCP_Active = $(this);
					jQuery.SCP_Sample = $("img#sample_cntr");
					jQuery.SCP_Selecter.show().css({'left':left,'top':top}).find('#_seven_color_code').val(jQuery.SCP_Target.val()).focus().select();
				}).attr('readonly','true')
				.css({'border':'1px solid #000','cursor':'pointer','background-color':$(this).val()})
			);
		}
	});
}