// Title: Tigra Color Picker // URL: http://www.softcomplex.com/products/tigra_color_picker/ // Version: 1.1 // Date: 06/26/2003 (mm/dd/yyyy) // Feedback: feedback@softcomplex.com (specify product title in the subject) // Note: Permission given to use this script in ANY kind of applications if // header lines are left unchanged. // Note: Script consists of two files: picker.js and picker.html // About us: Our company provides offshore IT consulting services. // Contact us at sales@softcomplex.com if you have any programming task you // want to be handled by professionals. Our typical hourly rate is $20. // Modified by Ian to not require a class object. var TCP = new TColorPicker(); function TCPopup(field, palette) { this.field = field; this.initPalette = !palette || palette > 2 ? 0 : palette; var w = 194, h = 206, move = screen ? ',left=' + ((screen.width - w) >> 1) + ',top=' + ((screen.height - h) >> 1) : '', o_colWindow = window.open('picker-2.html', null, "help=no,status=no,scrollbars=no,resizable=no" + move + ",width=" + w + ",height=" + h + ",dependent=yes", true); o_colWindow.opener = window; o_colWindow.focus(); } function TCBuildCell (R, G, B, w, h) { return ''; } function TCSelect(c) { this.field.value = '#' + c.toUpperCase(); this.win.close(); } function TCPaint(c, b_noPref) { c = (b_noPref ? '' : '#') + c.toUpperCase(); if (this.o_samp) this.o_samp.innerHTML = '' + c +' ' + c + '' if(this.doc.layers) this.sample.bgColor = c; else { if (this.sample.backgroundColor != null) this.sample.backgroundColor = c; else if (this.sample.background != null) this.sample.background = c; } } function TCGenerateSafe() { var s = ''; for (j = 0; j < 12; j ++) { s += ""; for (k = 0; k < 3; k ++) for (i = 0; i <= 5; i ++) s += this.bldCell(k * 51 + (j % 2) * 51 * 3, Math.floor(j / 2) * 51, i * 51, 8, 10); s += ""; } return s; } function TCGenerateWind() { var s = ''; for (j = 0; j < 12; j ++) { s += ""; for (k = 0; k < 3; k ++) for (i = 0; i <= 5; i++) s += this.bldCell(i * 51, k * 51 + (j % 2) * 51 * 3, Math.floor(j / 2) * 51, 8, 10); s += ""; } return s } function TCGenerateGray() { var s = ''; for (j = 0; j <= 15; j ++) { s += ""; for (k = 0; k <= 15; k ++) { g = Math.floor((k + j * 16) % 256); s += this.bldCell(g, g, g, 9, 7); } s += ''; } return s } function TCDec2Hex(v) { v = v.toString(16); for(; v.length < 6; v = '0' + v); return v; } function TCChgMode(v) { for (var k in this.divs) this.hide(k); this.show(v); } function TColorPicker(field) { this.build0 = TCGenerateSafe; this.build1 = TCGenerateWind; this.build2 = TCGenerateGray; this.show = document.layers ? function (div) { this.divs[div].visibility = 'show' } : function (div) { this.divs[div].visibility = 'visible' }; this.hide = document.layers ? function (div) { this.divs[div].visibility = 'hide' } : function (div) { this.divs[div].visibility = 'hidden' }; // event handlers this.C = TCChgMode; this.S = TCSelect; this.P = TCPaint; this.popup = TCPopup; this.draw = TCDraw; this.dec2hex = TCDec2Hex; this.bldCell = TCBuildCell; this.divs = []; } function TCDraw(o_win, o_doc) { this.win = o_win; this.doc = o_doc; var s_tag_openT = o_doc.layers ? 'layer visibility=hidden top=54 left=5 width=182' : 'div style=visibility:hidden;position:absolute;left:6px;top:54px;width:182px;height:0', s_tag_openS = o_doc.layers ? 'layer top=32 left=6' : 'div', s_tag_close = o_doc.layers ? 'layer' : 'div' this.doc.write('<' + s_tag_openS + ' id=sam name=sam>
sample sample
'); this.sample = o_doc.layers ? o_doc.layers['sam'] : o_doc.getElementById ? o_doc.getElementById('sam').style : o_doc.all['sam'].style for (var k = 0; k < 3; k ++) { this.doc.write('<' + s_tag_openT + ' id="p' + k + '" name="p' + k + '">' + this['build' + k]() + '
'); this.divs[k] = o_doc.layers ? o_doc.layers['p' + k] : o_doc.all ? o_doc.all['p' + k].style : o_doc.getElementById('p' + k).style } if (!o_doc.layers && o_doc.body.innerHTML) this.o_samp = o_doc.all ? o_doc.all.samp : o_doc.getElementById('samp'); this.C(this.initPalette); if (this.field.value) this.P(this.field.value, true) }