///
(function($) {
$.fn.DhoverClass = function(className) {
return $(this).hover(function() { $(this).addClass(className); }, function() { $(this).removeClass(className); });
}
function getDulyOffset(target, w, h) {
var pos = target.offset();
var height = target.outerHeight();
var newpos = { left: pos.left, top: pos.top + height - 1 }
var bw = $(document).width();
var bh = $(document).height();
if ((newpos.left + w) >= bw) {
newpos.left = bw - w - 2;
}
if ((newpos.top + h) >= bh && bw > newpos.top) {
newpos.top = pos.top - h - 2;
}
return newpos;
}
$.fn.colorselect = function(option) {
var options = $.extend({
hiddenid: null,
title: "Click to select color",
width: 141,
height: 100,
col:10,
paletteDefault: "f00",
index: "#ff0000",
cssClass: "bbit-dropdown"
}, option);
var me = $(this);
var id = me.attr("id");
if (id == null || id == "")
id = new Date();
me.addClass("containtdiv");
var leftId = "divleft" + id;
var leftdiv = $("
").addClass("leftdiv").attr("id", leftId).appendTo(me);
var aitem = ' ';
var colors = options.colors.colors;
var borders = colors;
if (colors.length>options.col)
{
var rows = Math.ceil(colors.length/options.col);
options.width = 14*options.col+4;
options.height = 14*rows+4;
}
else
{
options.width = 14*colors.length+4;
options.height = 14+4;
}
//var d = "666666888888aaaaaabbbbbbdddddda32929cc3333d96666e69999f0c2c2b1365fdd4477e67399eea2bbf5c7d67a367a994499b373b3cca2cce1c7e15229a36633cc8c66d9b399e6d1c2f029527a336699668cb399b3ccc2d1e12952a33366cc668cd999b3e6c2d1f01b887a22aa9959bfb391d5ccbde6e128754e32926265ad8999c9b1c2dfd00d78131096184cb05288cb8cb8e0ba52880066aa008cbf40b3d580d1e6b388880eaaaa11bfbf4dd5d588e6e6b8ab8b00d6ae00e0c240ebd780f3e7b3be6d00ee8800f2a640f7c480fadcb3b1440edd5511e6804deeaa88f5ccb8865a5aa87070be9494d4b8b8e5d4d47057708c6d8ca992a9c6b6c6ddd3dd4e5d6c6274878997a5b1bac3d0d6db5a69867083a894a2beb8c1d4d4dae54a716c5c8d8785aaa5aec6c3cedddb6e6e41898951a7a77dc4c4a8dcdccb8d6f47b08b59c4a883d8c5ace7dcce";
//d= "FFF FCC FC9 FF9 FFC 9F9 9FF CFF CCF FCF " +
// "CCC F66 F96 FF6 FF3 6F9 3FF 6FF 99F F9F " +
// "BBB F00 F90 FC6 FF0 3F3 6CC 3CF 66C C6C " +
// "999 C00 F60 FC3 FC0 3C0 0CC 36F 63F C3C " +
// "666 900 C60 C93 990 090 399 33F 60C 939 " +
// "333 600 930 963 660 060 366 009 339 636 " +
// "000 300 630 633 330 030 033 006 309 303";
//for (var i = 0; i < d.length; i = i + 4) {
// colors.push(d.substr(i, 3));
// borders.push(d.substr(i, 3));
// //borders.push(d.substr(i - 6, 6));
//}
// return "#" + d.substring(c * 30 + i * 6, c * 30 + (i + 1) * 6);
var html = [];
for (var i = 0; i < colors.length; i++) {
var atemp = [];
var cucolor = colors[i];
atemp.push(cucolor);
atemp.push(id);
atemp.push(i);
if (colors[i]==options.paletteDefault)
atemp.push("000");
else
atemp.push(borders[i]);
var ahtml = StrFormatNoEncode(aitem, atemp);
html.push(ahtml);
}
//var blanka = 'none'
//var blank = [];
//blank.push("ffffff");
//blank.push(id);
//blank.push(-1);
//
//html.push(StrFormatNoEncode(blanka, blank));
var result = html.join('');
// var innerdiv = $("").addClass("centerdiv").html(result);
// html.push('');
var div = $("").addClass("x-color-palette").css({
position: "absolute",
"z-index": "999",
"overflow": "auto",
width: options.width,
height: options.height,
display: "none"
//"border": "solid 1px #555"
}).attr("id", "div" + id).html(result).appendTo("body");
// to select color
$("#div" + id + " a").click(function(e) {
//debugger;
var co = $(this).attr("id");
var selectcolor = co.split('-')[1];
leftdiv.css("background", "#" + selectcolor);
var key = $(this).attr("key");
//if (key != -1) {
leftdiv.css("border", $(this).find("span").css("border"));
// }
//else {
//leftdiv.css("border", "none");
// }
if (options.hiddenid != null && options.hiddenid != "") {
$("#" + options.hiddenid).val(key);
}
div.hide();
return false;
});
// drop down
me.click(function() {
var pos = getDulyOffset(me, 120, 200);
div.css(pos);
div.show();
$(document).one("click", function(event) { div.hide(); });
return false;
});
// me.addClass(options.cssClass).DhoverClass("hover");
// get color index
function getcolorbyindex(index) {
//if (index >= 0 && index < colors.length)
// return colors[index];
//return "ffffff";
return index;
}
leftdiv.css("background", getcolorbyindex(options.index));
if (options.index != -1) {
leftdiv.css("border", " solid 1px " + "#" + borders[options.index]);
}
else {
leftdiv.css("border", "solid 1px #8B7B8B");
}
if (options.hiddenid != null && options.hiddenid != "") {
$("#" + options.hiddenid).val(options.index);
}
/* */
me.attr("title", options.title);
return me;
} // endof colorselect
})(jQuery);