aboutsummaryrefslogtreecommitdiff
path: root/static/js/palette_selfy.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/palette_selfy.js')
-rwxr-xr-xstatic/js/palette_selfy.js1992
1 files changed, 1174 insertions, 818 deletions
diff --git a/static/js/palette_selfy.js b/static/js/palette_selfy.js
index b17134f..eb7d594 100755
--- a/static/js/palette_selfy.js
+++ b/static/js/palette_selfy.js
@@ -1,972 +1,1328 @@
// palette_selfy.js .. for PaintBBS and ShiPainter .. last update : 2004/04/11.
//→使い方 .. 外部JSとして読み込んでから、好きな所で palette_selfy() を呼び出して下さい.
- var selfv=new Array(); var selfytag=new Array(); //←消さないで.
+var selfv = new Array();
+var selfytag = new Array(); //←消さないで.
//↓設定 ------------------------------------------------------------
// ※selfv[*] は、それぞれの設定を空白にすると、その機能のボタンを表示させなくできます.
// +-する値のとこ
-var pnum = 10; // +- のデフォルト値
-selfv[0] = 'size=3 style="text-align:right">'; // 数値タグ(type=text)の中身
-
+var pnum = 10; // +- のデフォルト値
+selfv[0] = 'size=3 style="text-align:right">'; // 数値タグ(type=text)の中身
// パレットリスト.
// ..各要素の中の色は、1つだけなら他の13色はその色を元に↓の2通りから自動取得、
-var psx = 0; // 0:彩度+明度を元に. 1:色相を循環で.
+var psx = 0; // 0:彩度+明度を元に. 1:色相を循環で.
// 彩度+明度を元にするときの色. (複数設定する場合は、1つ1つの色を \n で区切る)
var pdefs = new Array(
- '#ffffff',
- '#ffe6e6','#ffece6','#fff3e6','#fff9e6','#ffffe6',
- '#f3ffe6','#e6fff3','#e6f3ff','#ffe6ff','#eeddbb',
-''); // ※空白だとその要素はスキップ.
+ "#ffffff",
+ "#ffe6e6",
+ "#ffece6",
+ "#fff3e6",
+ "#fff9e6",
+ "#ffffe6",
+ "#f3ffe6",
+ "#e6fff3",
+ "#e6f3ff",
+ "#ffe6ff",
+ "#eeddbb",
+ ""
+); // ※空白だとその要素はスキップ.
// 色相で循環させるときの色. (複数設定する場合は、1つ1つの色を \n で区切る)
var pdefx = new Array(
- '#ffffff',
- '#ffe6e6','#ffcccc','#ff9999','#e6cccc','#e69999',
- '#cc9999','#cc6666','#996666','#993333','#660000',
-''); // ※空白だとその要素はスキップ.
-
+ "#ffffff",
+ "#ffe6e6",
+ "#ffcccc",
+ "#ff9999",
+ "#e6cccc",
+ "#e69999",
+ "#cc9999",
+ "#cc6666",
+ "#996666",
+ "#993333",
+ "#660000",
+ ""
+); // ※空白だとその要素はスキップ.
// デフォルトのパレットカラー (一番最初にアプレットにでる色)
-var pbase = '#000000\n#FFFFFF\n#B47575\n#888888\n#FA9696\n#C096C0\n#FFB6FF\n#8080FF\n#25C7C9\n#E7E58D\n#E7962D\n#99CB7B\n#FCECE2\n#F9DDCF';
-
+var pbase =
+ "#000000\n#FFFFFF\n#B47575\n#888888\n#FA9696\n#C096C0\n#FFB6FF\n#8080FF\n#25C7C9\n#E7E58D\n#E7962D\n#99CB7B\n#FCECE2\n#F9DDCF";
// サンプルカラーの
- // 表示するパレットのカラー番号(この中にある番号だけ↓で書き出し)
-var sams = new Array(0,2,4,6,8,10,12,1,3,5,7,9,11,13); // 彩度+明度を元にするとき
-var samx = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13); // 色相で循環させるとき
+// 表示するパレットのカラー番号(この中にある番号だけ↓で書き出し)
+var sams = new Array(0, 2, 4, 6, 8, 10, 12, 1, 3, 5, 7, 9, 11, 13); // 彩度+明度を元にするとき
+var samx = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13); // 色相で循環させるとき
-selfv[1] = ' '; // フォント
+selfv[1] = " "; // フォント
selfv[2] = 'style="font-size:xx-small; background-color:$FONT;"';
- // フォントタグの中身(「$FONT」:16進法RGB色が代入、正確に適用される属性は↓の3つ)
- // … color, style="color" style="background", style="background-color")
+// フォントタグの中身(「$FONT」:16進法RGB色が代入、正確に適用される属性は↓の3つ)
+// … color, style="color" style="background", style="background-color")
- // ※↓これより下は ">"(閉じタグ) も入れてください //
+// ※↓これより下は ">"(閉じタグ) も入れてください //
// パレットの選択ボタン(type=radio)タグの中身
-selfv[3] = 'style="border-width:0;" title="デフォルトのパレット">'; // デフォルト色
-selfv[4] = 'style="border-width:0;" title="ここのパレットを使う。\nチェックしてるときにさらに押すと、チェックが外れ、\n色相循環か、彩度+明度パレットに。(1番の色が基本色)">'; // 選択
-
+selfv[3] = 'style="border-width:0;" title="デフォルトのパレット">'; // デフォルト色
+selfv[4] =
+ 'style="border-width:0;" title="ここのパレットを使う。\nチェックしてるときにさらに押すと、チェックが外れ、\n色相循環か、彩度+明度パレットに。(1番の色が基本色)">'; // 選択
// ボタン(type=button)タグの中身
-selfv[5] = 'value="H" title="色相パレット (1番の色が基本色)">'; // 色相
-selfv[6] = 'value="S" title="彩度パレット (1番の色が基本色)">'; // 彩度
-selfv[7] = 'value="B" title="明度パレット (1番の色が基本色)">\n'; // 明度
-selfv[8] = 'value="o" title="ここに今のパレットを保存">'; // セーブ
-selfv[9] = 'value="x" title="ここのパレットをデフォルトに戻す"><br>\n'; // デフォルト
-
-selfv[10] = 'value="H+" title="パレット全体の色相を+">'; // 色相+
-selfv[11] = 'value="H-" title="パレット全体の色相を−">'; // 色相-
-selfv[12] = 'value="S+" title="パレット全体の彩度を+">'; // 彩度+
-selfv[13] = 'value="S-" title="パレット全体の彩度を−">'; // 彩度-
-selfv[14] = 'value="B+" title="パレット全体の明度を+">\n'; // 明度+
-selfv[15] = 'value="B-" title="パレット全体の明度を−">\n'; // 明度-
-selfv[16] = 'value="RGB+" title="パレット全体のRGBを+"><br>\n'; // RGB+
-selfv[17] = 'value="RGB-" title="パレット全体のRGBを−"><br>\n'; // RGB-
-
+selfv[5] = 'value="H" title="色相パレット (1番の色が基本色)">'; // 色相
+selfv[6] = 'value="S" title="彩度パレット (1番の色が基本色)">'; // 彩度
+selfv[7] = 'value="B" title="明度パレット (1番の色が基本色)">\n'; // 明度
+selfv[8] = 'value="o" title="ここに今のパレットを保存">'; // セーブ
+selfv[9] = 'value="x" title="ここのパレットをデフォルトに戻す"><br>\n'; // デフォルト
+
+selfv[10] = 'value="H+" title="パレット全体の色相を+">'; // 色相+
+selfv[11] = 'value="H-" title="パレット全体の色相を−">'; // 色相-
+selfv[12] = 'value="S+" title="パレット全体の彩度を+">'; // 彩度+
+selfv[13] = 'value="S-" title="パレット全体の彩度を−">'; // 彩度-
+selfv[14] = 'value="B+" title="パレット全体の明度を+">\n'; // 明度+
+selfv[15] = 'value="B-" title="パレット全体の明度を−">\n'; // 明度-
+selfv[16] = 'value="RGB+" title="パレット全体のRGBを+"><br>\n'; // RGB+
+selfv[17] = 'value="RGB-" title="パレット全体のRGBを−"><br>\n'; // RGB-
// グラデーションのとこ
-selfv[18] = 'style="border-width:0;" title="2点を元にグラデーション (1番の色と14番の色)" checked>2'; // 2点
-selfv[19] = 'style="border-width:0;" title="3点を元にグラデーション (1番、8番、14番の色)">3'; // 3点
-selfv[20] = 'style="border-width:0;" title="4点を元にグラデーション (1、6、10、14番の色)">4<br>\n'; // 4点
-selfv[21] = 'value="RGB" title="RGBでグラデーション">\n'; // RGB?
-selfv[22] = 'value="+HSB" title="+HSBでグラデーション (色相+方向)">\n'; // +HSB
-selfv[23] = 'value="-HSB" title="-HSBでグラデーション (色相−方向)"><br>\n'; // -HSB
-
+selfv[18] =
+ 'style="border-width:0;" title="2点を元にグラデーション (1番の色と14番の色)" checked>2'; // 2点
+selfv[19] =
+ 'style="border-width:0;" title="3点を元にグラデーション (1番、8番、14番の色)">3'; // 3点
+selfv[20] =
+ 'style="border-width:0;" title="4点を元にグラデーション (1、6、10、14番の色)">4<br>\n'; // 4点
+selfv[21] = 'value="RGB" title="RGBでグラデーション">\n'; // RGB?
+selfv[22] = 'value="+HSB" title="+HSBでグラデーション (色相+方向)">\n'; // +HSB
+selfv[23] = 'value="-HSB" title="-HSBでグラデーション (色相−方向)"><br>\n'; // -HSB
// 追加・削除
-selfv[24] = 'value="+" title="パレットを追加します">'; // 追加
-selfv[25] = 'value="-" title="選択中のパレットを削除します">\n'; // 削除
-
+selfv[24] = 'value="+" title="パレットを追加します">'; // 追加
+selfv[25] = 'value="-" title="選択中のパレットを削除します">\n'; // 削除
// セーブ・オートセーブ
-selfv[26] = 'checked title="ここにチェックをつけておくと、色を変更するとき、\n 自動で保存パレットにパレット情報をセーブします。\n自動保存が適用されるのは、\n チェックしてるパレットから他のパレットに移動したとき、\n チェックしてるパレットのH/S/Bボタンを押したとき、\n の2つのときです。サンプルの色も変わります。\nもちろん、ここにチェックしてなくても、\n 手動でセーブボタンを押せば、パレットに保存されます。">'; // 自動セーブ
-selfv[27] = 'value="O" title="今の全体のパレットをクッキーに保存"><br>\n'; // セーブ
-
+selfv[26] =
+ 'checked title="ここにチェックをつけておくと、色を変更するとき、\n 自動で保存パレットにパレット情報をセーブします。\n自動保存が適用されるのは、\n チェックしてるパレットから他のパレットに移動したとき、\n チェックしてるパレットのH/S/Bボタンを押したとき、\n の2つのときです。サンプルの色も変わります。\nもちろん、ここにチェックしてなくても、\n 手動でセーブボタンを押せば、パレットに保存されます。">'; // 自動セーブ
+selfv[27] = 'value="O" title="今の全体のパレットをクッキーに保存"><br>\n'; // セーブ
// デフォルトのパレットを 色相360°にするか、彩度++明度-- にするか
-selfv[28] = 'style="border-width:0;" title="デフォルトのパレットは、色相で循環させる">H<sup>o</sup>'; // H°
-selfv[29] = 'style="border-width:0;" title="デフォルトのパレットは、彩度+、明度−でリスト">+S-B'; // +S-B
-selfv[30] = 'value="X" title="全体のパレットをデフォルトに戻す"><br>\n'; // デフォルトに
-
+selfv[28] =
+ 'style="border-width:0;" title="デフォルトのパレットは、色相で循環させる">H<sup>o</sup>'; // H°
+selfv[29] =
+ 'style="border-width:0;" title="デフォルトのパレットは、彩度+、明度−でリスト">+S-B'; // +S-B
+selfv[30] = 'value="X" title="全体のパレットをデフォルトに戻す"><br>\n'; // デフォルトに
// UPLOAD / DOWNLOAD
-selfv[31] = 'value="" size=8 title="パレットデータ。\n・アップロードするときは、ここに貼り付けてください。\n・ダウンロードするときは、ここにデータが出力されます。\n  ローカルのテキストにでも保存してください。\n※パレットデータは、\n pals = new Array(\'#FFFFFF\',\'#B47575\\n#888888\\n...\');\n のように、JSの配列形式で書かれます。">\n'; //
-selfv[32] = 'value="↑" title="←からパレットデータをアップロード">'; //
-selfv[33] = 'value="↓" title="←←にパレットデータをダウンロード"><br>\n'; //
-
+selfv[31] =
+ "value=\"\" size=8 title=\"パレットデータ。\n・アップロードするときは、ここに貼り付けてください。\n・ダウンロードするときは、ここにデータが出力されます。\n  ローカルのテキストにでも保存してください。\n※パレットデータは、\n pals = new Array('#FFFFFF','#B47575\\n#888888\\n...');\n のように、JSの配列形式で書かれます。\">\n"; //
+selfv[32] = 'value="↑" title="←からパレットデータをアップロード">'; //
+selfv[33] = 'value="↓" title="←←にパレットデータをダウンロード"><br>\n'; //
// このパレットテーブルを囲んでる、ソースとかタグとか (formタグは消しちゃダメ)
// フォーム始まり
-selfytag[0] = '<table class="ptable"><tr><form name="palepale"><td class="ptd" nowrap>\n<div align=right class="menu">Palette-Selfy</div>\n<div style="font-size:xx-small;">\n';
+selfytag[0] =
+ '<table class="ptable"><tr><form name="palepale"><td class="ptd" nowrap>\n<div align=right class="menu">Palette-Selfy</div>\n<div style="font-size:xx-small;">\n';
// フォームの間_1 (個別のパレット 〜 全体の HSB、RGB +- とか)
selfytag[1] = '<div style="text-align:right; padding:5;">\n';
// フォームの間_2 (全体の HSB、RGB +- とか 〜 グラデーション)
-selfytag[2] = '</div>\n<div style="text-align:right; padding:0 5 5 5;"">\nGradation';
+selfytag[2] =
+ '</div>\n<div style="text-align:right; padding:0 5 5 5;"">\nGradation';
// フォームの間_3 (グラデーション 〜 パレットの追加・削除ボタン)
-selfytag[3] = '</div>\n<div style="text-align:right; padding:0 5 0 5;"">\nPalette';
+selfytag[3] =
+ '</div>\n<div style="text-align:right; padding:0 5 0 5;"">\nPalette';
// フォームの間_4 (パレットの追加・削除ボタン 〜 セーブボタン)
-selfytag[4] = '\nSave';
+selfytag[4] = "\nSave";
// フォームの間_5 (セーブボタン 〜 Defaultは H++/+S-B どちらか)
-selfytag[5] = '</div>\n<div style="text-align:right; padding:3 5 2 5;"">\nDefault';
+selfytag[5] =
+ '</div>\n<div style="text-align:right; padding:3 5 2 5;"">\nDefault';
// フォームの間_6 (Defaultは H++/+S-B どちらか 〜 パレットのアップ/ダウンロード)
-selfytag[6] = '</div>\n<div style="text-align:right; padding:0 5 0 5;">\nUpdata ';
+selfytag[6] =
+ '</div>\n<div style="text-align:right; padding:0 5 0 5;">\nUpdata ';
// フォーム終わり
-selfytag[7] = '</div>\n</div>\n</td></form></tr></table>\n';
+selfytag[7] = "</div>\n</div>\n</td></form></tr></table>\n";
//↑設定おわり ------------------------------------------------------
-
// 初期値 (いたるところで使う値)
var d = document;
-var pon,pno; // radioチェック中? / チェックしたパレットNO.
-var qon,qno,qmo; // buttonプッシュ中? / プッシュしたパレットNO.
-var pals = new Array(); // color-palette
-var inp = '<input type="button" '; // input-button
-var inr = '<input type="radio" '; // input-button
-var cname = 'selfy='; // cookie-name
-var psx_ch = new Array('',''); // h_sb-checked
-var brwz=0;
-if(d.all){ brwz=1; }else if(d.getElementById){ brwz=2; }
-
+var pon, pno; // radioチェック中? / チェックしたパレットNO.
+var qon, qno, qmo; // buttonプッシュ中? / プッシュしたパレットNO.
+var pals = new Array(); // color-palette
+var inp = '<input type="button" '; // input-button
+var inr = '<input type="radio" '; // input-button
+var cname = "selfy="; // cookie-name
+var psx_ch = new Array("", ""); // h_sb-checked
+var brwz = 0;
+if (d.all) {
+ brwz = 1;
+} else if (d.getElementById) {
+ brwz = 2;
+}
// -------------------------------------------------------------------------
// HSB→RGB 計算. 値は0〜255.
-function HSBtoRGB(h,s,v){
- var r,g,b;
- if(s==0){
- r=v; g=v; b=v;
- }else{
- var max,min,dif;
- h*=360/255; //360°
- max=v;
- dif=v*s/255; //s=(dif/max)*255
- min=v-dif; //min=max-dif
-
- if(h<60){
- r=max; b=min; g=h*dif/60+min;
- }else if(h<120){
- g=max; b=min; r=-(h-120)*dif/60+min;
- }else if(h<180){
- g=max; r=min; b= (h-120)*dif/60+min;
- }else if(h<240){
- b=max; r=min; g=-(h-240)*dif/60+min;
- }else if(h<300){
- b=max; g=min; r= (h-240)*dif/60+min;
- }else if(h<=360){
- r=max; g=min; b=-(h-360)*dif/60+min;
- }else{r=0;g=0;b=0;}
- }
- return(new Array(r,g,b));
+function HSBtoRGB(h, s, v) {
+ var r, g, b;
+ if (s == 0) {
+ r = v;
+ g = v;
+ b = v;
+ } else {
+ var max, min, dif;
+ h *= 360 / 255; //360°
+ max = v;
+ dif = (v * s) / 255; //s=(dif/max)*255
+ min = v - dif; //min=max-dif
+
+ if (h < 60) {
+ r = max;
+ b = min;
+ g = (h * dif) / 60 + min;
+ } else if (h < 120) {
+ g = max;
+ b = min;
+ r = (-(h - 120) * dif) / 60 + min;
+ } else if (h < 180) {
+ g = max;
+ r = min;
+ b = ((h - 120) * dif) / 60 + min;
+ } else if (h < 240) {
+ b = max;
+ r = min;
+ g = (-(h - 240) * dif) / 60 + min;
+ } else if (h < 300) {
+ b = max;
+ g = min;
+ r = ((h - 240) * dif) / 60 + min;
+ } else if (h <= 360) {
+ r = max;
+ g = min;
+ b = (-(h - 360) * dif) / 60 + min;
+ } else {
+ r = 0;
+ g = 0;
+ b = 0;
+ }
+ }
+ return new Array(r, g, b);
}
-
// RGB→HSB 計算. 値は0〜255.
-function RGBtoHSB(r,g,b){
- var max,min,dif,h,s,v;
-
- // max
- if(r>=g && r>=b){
- max=r;
- }else if(g>=b){
- max=g;
- }else{
- max=b;
- }
-
- // min
- if(r<=g && r<=b){
- min=r;
- }else if(g<=b){
- min=g;
- }else{
- min=b;
- }
-
- // 0,0,0
- if(max<=0){ return(new Array(0,0,0)); }
-
- // difference
- dif=max-min;
-
- //Hue:
- if(max>min){
- if(g==max){
- h=(b-r)/dif*60+120;
- }else if(b==max){
- h=(r-g)/dif*60+240;
- }else if(b>g){
- h=(g-b)/dif*60+360;
- }else{
- h=(g-b)/dif*60;
- }
- if(h<0){
- h=h+360;
- }
- }else{ h=0; }
- h*=255/360;
-
- //Saturation:
- s=(dif/max)*255;
-
- //Value:
- v=max;
-
- return(new Array(h,s,v));
+function RGBtoHSB(r, g, b) {
+ var max, min, dif, h, s, v;
+
+ // max
+ if (r >= g && r >= b) {
+ max = r;
+ } else if (g >= b) {
+ max = g;
+ } else {
+ max = b;
+ }
+
+ // min
+ if (r <= g && r <= b) {
+ min = r;
+ } else if (g <= b) {
+ min = g;
+ } else {
+ min = b;
+ }
+
+ // 0,0,0
+ if (max <= 0) {
+ return new Array(0, 0, 0);
+ }
+
+ // difference
+ dif = max - min;
+
+ //Hue:
+ if (max > min) {
+ if (g == max) {
+ h = ((b - r) / dif) * 60 + 120;
+ } else if (b == max) {
+ h = ((r - g) / dif) * 60 + 240;
+ } else if (b > g) {
+ h = ((g - b) / dif) * 60 + 360;
+ } else {
+ h = ((g - b) / dif) * 60;
+ }
+ if (h < 0) {
+ h = h + 360;
+ }
+ } else {
+ h = 0;
+ }
+ h *= 255 / 360;
+
+ //Saturation:
+ s = (dif / max) * 255;
+
+ //Value:
+ v = max;
+
+ return new Array(h, s, v);
}
-
// RGB16→RGB10 表記. 値は 000000〜ffffff
-function to10rgb(str){
- var ns = new Array();
- str = str.replace(/[^0-9a-fA-F]/g,'');
- for(var i=0; i<=2; i++){
- ns[i] = str.substr(i*2,2);
- if(!ns[i]){ ns[i]='00'; }
- ns[i] = Number(parseInt(ns[i],16).toString(10));
- }
- return(ns);
+function to10rgb(str) {
+ var ns = new Array();
+ str = str.replace(/[^0-9a-fA-F]/g, "");
+ for (var i = 0; i <= 2; i++) {
+ ns[i] = str.substr(i * 2, 2);
+ if (!ns[i]) {
+ ns[i] = "00";
+ }
+ ns[i] = Number(parseInt(ns[i], 16).toString(10));
+ }
+ return ns;
}
-
// 10→16進法二桁
-function format16(n){
- n = Number(n).toString(16);
- if(n.length<2){ n='0'+n; }
- return(n);
+function format16(n) {
+ n = Number(n).toString(16);
+ if (n.length < 2) {
+ n = "0" + n;
+ }
+ return n;
}
-
-
-
// -------------------------------------------------------------------------
// パレットに (※ q=1:アプレットパレットに出力しない. lst=1:最初のとき
-function rady(p,q,lst){
- var d = document;
- var df = d.forms.palepale;
-
- // デフォルトパレット
- if(!p&&p!=0){ pon=0; pno=''; d.paintbbs.setColors(pbase); return; }
-
- var ps = pals[p].split('\n');
- var n = pnum;
- if(!q && df.num.value){ n = Number(df.num.value); }
- if(!q && pon==1 && pno!=p){ poncheck(); }
-
- // 揃ってるならすぐ返す
- if((pon!=1 || pno!=p) && ps.length==14){
- if(!q){ pon=1; pno=p; }
- if(q!=1 && pals[p]){ d.paintbbs.setColors(pals[p]); } return;
- }
-
- // checkしてるなら
- if(pon==1 && pno==p){
- var pget = String(d.paintbbs.getColors());
-// if(pget==pals[p]){ return; }
- var cs = pget.split('\n');
- ps[0] = cs[0]; ps[1] = '';
- }
- // 欠けているなら
- var cs = new Array();
-
- var psy=0; // H°/ +S-B
- psy = check_h_sb(lst);
-
- if(psy==1){ cs = rh_list(p,n); }// H°リスト
- else{ cs = sb_list(p,n); } // +S-B リスト
-
- if(q){ // 初期設定時
- pals[p] = String(cs.join('\n'));
- }
- if(q!=1){ // 一般
- if(pon==1 && pno==p){ checkout(); }
- else{ pon=1; pno=p; }
-// pals[p] = String(cs.join('\n'));
- d.paintbbs.setColors(String(cs.join('\n')));
- }
+function rady(p, q, lst) {
+ var d = document;
+ var df = d.forms.palepale;
+
+ // デフォルトパレット
+ if (!p && p != 0) {
+ pon = 0;
+ pno = "";
+ d.paintbbs.setColors(pbase);
+ return;
+ }
+
+ var ps = pals[p].split("\n");
+ var n = pnum;
+ if (!q && df.num.value) {
+ n = Number(df.num.value);
+ }
+ if (!q && pon == 1 && pno != p) {
+ poncheck();
+ }
+
+ // 揃ってるならすぐ返す
+ if ((pon != 1 || pno != p) && ps.length == 14) {
+ if (!q) {
+ pon = 1;
+ pno = p;
+ }
+ if (q != 1 && pals[p]) {
+ d.paintbbs.setColors(pals[p]);
+ }
+ return;
+ }
+
+ // checkしてるなら
+ if (pon == 1 && pno == p) {
+ var pget = String(d.paintbbs.getColors());
+ // if(pget==pals[p]){ return; }
+ var cs = pget.split("\n");
+ ps[0] = cs[0];
+ ps[1] = "";
+ }
+ // 欠けているなら
+ var cs = new Array();
+
+ var psy = 0; // H°/ +S-B
+ psy = check_h_sb(lst);
+
+ if (psy == 1) {
+ cs = rh_list(p, n);
+ } // H°リスト
+ else {
+ cs = sb_list(p, n);
+ } // +S-B リスト
+
+ if (q) {
+ // 初期設定時
+ pals[p] = String(cs.join("\n"));
+ }
+ if (q != 1) {
+ // 一般
+ if (pon == 1 && pno == p) {
+ checkout();
+ } else {
+ pon = 1;
+ pno = p;
+ }
+ // pals[p] = String(cs.join('\n'));
+ d.paintbbs.setColors(String(cs.join("\n")));
+ }
}
-
// H°リスト
-function rh_list(p,n){
- var ps = pals[p].split('\n');
- var rgb = to10rgb(ps[0]); //→RGB
- var hsv = RGBtoHSB(rgb[0],rgb[1],rgb[2]); //→HSB
- var cs = new Array(ps[0],ps[1]);
- if(!cs[0]){ cs[0]='#ffffff'; }
- if(hsv[1]!=0 && !cs[13]){ cs[13]='#ffffff'; }
-
- for (var i=1; i<13; i++){
- if(ps[i] && (pon!=1 || pno!=p)){ cs[i]=ps[i]; continue; } //ある
- var x,y,z;
- if(hsv[1]==0){ //白黒
- x = hsv[0];
- y = 0;
- if(i%2==0){ z = 255-i*n; }else{ z = 0+(i-1)*n; }
- }else if(i>=12){
- x = hsv[0];
- y = 0;
- z = 255-hsv[1];
- }else{
- x = hsv[0] + i*255/12;
- y = hsv[1];
- z = hsv[2];
- }
- while(x<0){ x+=255; } if(y<0){ y=0; } if(z<0){ z=0; } //↓0
- while(x>255){ x-=255; } if(y>255){ y=255; } if(z>255){ z=255; } //↑255
-// for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
- rgb = HSBtoRGB(x,y,z);
- for (var j=0; j<=2; j++){ rgb[j] = Math.round(rgb[j]); }
- cs[i] = '#'+format16(rgb[0])+format16(rgb[1])+format16(rgb[2]);
- }
- return(cs);
+function rh_list(p, n) {
+ var ps = pals[p].split("\n");
+ var rgb = to10rgb(ps[0]); //→RGB
+ var hsv = RGBtoHSB(rgb[0], rgb[1], rgb[2]); //→HSB
+ var cs = new Array(ps[0], ps[1]);
+ if (!cs[0]) {
+ cs[0] = "#ffffff";
+ }
+ if (hsv[1] != 0 && !cs[13]) {
+ cs[13] = "#ffffff";
+ }
+
+ for (var i = 1; i < 13; i++) {
+ if (ps[i] && (pon != 1 || pno != p)) {
+ cs[i] = ps[i];
+ continue;
+ } //ある
+ var x, y, z;
+ if (hsv[1] == 0) {
+ //白黒
+ x = hsv[0];
+ y = 0;
+ if (i % 2 == 0) {
+ z = 255 - i * n;
+ } else {
+ z = 0 + (i - 1) * n;
+ }
+ } else if (i >= 12) {
+ x = hsv[0];
+ y = 0;
+ z = 255 - hsv[1];
+ } else {
+ x = hsv[0] + (i * 255) / 12;
+ y = hsv[1];
+ z = hsv[2];
+ }
+ while (x < 0) {
+ x += 255;
+ }
+ if (y < 0) {
+ y = 0;
+ }
+ if (z < 0) {
+ z = 0;
+ } //↓0
+ while (x > 255) {
+ x -= 255;
+ }
+ if (y > 255) {
+ y = 255;
+ }
+ if (z > 255) {
+ z = 255;
+ } //↑255
+ // for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
+ rgb = HSBtoRGB(x, y, z);
+ for (var j = 0; j <= 2; j++) {
+ rgb[j] = Math.round(rgb[j]);
+ }
+ cs[i] = "#" + format16(rgb[0]) + format16(rgb[1]) + format16(rgb[2]);
+ }
+ return cs;
}
-
// +S-B リスト
-function sb_list(p,n){
- var ps = pals[p].split('\n');
- var rgb = to10rgb(ps[0]); //→RGB
- var hsv = RGBtoHSB(rgb[0],rgb[1],rgb[2]); //→HSB
- var cs = new Array(ps[0],ps[1]);
- if(!cs[0]){ cs[0]='#ffffff'; }
- if(hsv[1]==0 && !cs[1]){ cs[1]='#000000'; }
- else if(!cs[1]){ cs[1]='#ffffff'; }
-
- for (var i=2; i<14; i++){
- if(ps[i] && (pon!=1 || pno!=p)){ cs[i]=ps[i]; continue; } //ある
- var y,z;
- if(hsv[1]==0){ //白黒
- y = 0;
- if(i%2==0){ z = 255-i*n; }else{ z = 0+(i-1)*n; }
- }else{
- if(i%2==0){ //左
- y = hsv[1]+i*n;
- z = hsv[2];
- }else{ //右
- y = hsv[1]+(i-1)*n;
- z = hsv[2]-(i-1)*n;
- }
- }
- while(z<0){ z+=255; } while(y<0){ y+=255; } //↓0
- while(z>255){ z-=255; } while(y>255){ y-=255; } //↑255
-// for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
- rgb = HSBtoRGB(hsv[0],y,z);
- for (var j=0; j<=2; j++){ rgb[j] = Math.round(rgb[j]); }
- cs[i] = '#'+format16(rgb[0])+format16(rgb[1])+format16(rgb[2]);
- }
- return(cs);
+function sb_list(p, n) {
+ var ps = pals[p].split("\n");
+ var rgb = to10rgb(ps[0]); //→RGB
+ var hsv = RGBtoHSB(rgb[0], rgb[1], rgb[2]); //→HSB
+ var cs = new Array(ps[0], ps[1]);
+ if (!cs[0]) {
+ cs[0] = "#ffffff";
+ }
+ if (hsv[1] == 0 && !cs[1]) {
+ cs[1] = "#000000";
+ } else if (!cs[1]) {
+ cs[1] = "#ffffff";
+ }
+
+ for (var i = 2; i < 14; i++) {
+ if (ps[i] && (pon != 1 || pno != p)) {
+ cs[i] = ps[i];
+ continue;
+ } //ある
+ var y, z;
+ if (hsv[1] == 0) {
+ //白黒
+ y = 0;
+ if (i % 2 == 0) {
+ z = 255 - i * n;
+ } else {
+ z = 0 + (i - 1) * n;
+ }
+ } else {
+ if (i % 2 == 0) {
+ //左
+ y = hsv[1] + i * n;
+ z = hsv[2];
+ } else {
+ //右
+ y = hsv[1] + (i - 1) * n;
+ z = hsv[2] - (i - 1) * n;
+ }
+ }
+ while (z < 0) {
+ z += 255;
+ }
+ while (y < 0) {
+ y += 255;
+ } //↓0
+ while (z > 255) {
+ z -= 255;
+ }
+ while (y > 255) {
+ y -= 255;
+ } //↑255
+ // for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
+ rgb = HSBtoRGB(hsv[0], y, z);
+ for (var j = 0; j <= 2; j++) {
+ rgb[j] = Math.round(rgb[j]);
+ }
+ cs[i] = "#" + format16(rgb[0]) + format16(rgb[1]) + format16(rgb[2]);
+ }
+ return cs;
}
-
// 個別でH/S/Bをリストアップ
-function onplus(p,m){
- var d = document;
- var df = d.forms.palepale;
- var n = Number(df.num.value); //+-
- if(pon==1 && pno==p){ poncheck(); }
-
- // 連続のとき
- if(m>0 && n*(qon+1)>38){ qon=0; }
- if(qno==p && qmo==m && qon>=1){ qon++; n*=(qon+1)/2; }
- else{ qno=p; qmo=m; qon=1; }
-
- var ps = pals[p].split('\n');
- var rgb = to10rgb(ps[0]); //→RGB
- var hsv = RGBtoHSB(rgb[0],rgb[1],rgb[2]); //→HSB
- var cs = new Array();
- if(m==2){ n*=-1; }
- for (var i=0; i<14; i++){
- var z;
- if(m==0){ z = hsv[m]+((i%2)*2-1)*Math.round(Math.floor(i/2)*(n)); }
- else{ z = hsv[m]+i*n; }
- while(z<0){ z+=255; } //↓0
- while(z>255){ z-=255; } //↑255
-// for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
- if(m==1){ rgb = HSBtoRGB(hsv[0],z,hsv[2]); } //→HSB
- else if(m==2){ rgb = HSBtoRGB(hsv[0],hsv[1],z); }
- else{ rgb = HSBtoRGB(z,hsv[1],hsv[2]); } //→HSB
- for (var j=0; j<=2; j++){ rgb[j] = Math.round(rgb[j]); }
- cs[i] = '#'+format16(rgb[0])+format16(rgb[1])+format16(rgb[2]);
- }
- checkout(1);
- d.paintbbs.setColors(String(cs.join('\n')));
+function onplus(p, m) {
+ var d = document;
+ var df = d.forms.palepale;
+ var n = Number(df.num.value); //+-
+ if (pon == 1 && pno == p) {
+ poncheck();
+ }
+
+ // 連続のとき
+ if (m > 0 && n * (qon + 1) > 38) {
+ qon = 0;
+ }
+ if (qno == p && qmo == m && qon >= 1) {
+ qon++;
+ n *= (qon + 1) / 2;
+ } else {
+ qno = p;
+ qmo = m;
+ qon = 1;
+ }
+
+ var ps = pals[p].split("\n");
+ var rgb = to10rgb(ps[0]); //→RGB
+ var hsv = RGBtoHSB(rgb[0], rgb[1], rgb[2]); //→HSB
+ var cs = new Array();
+ if (m == 2) {
+ n *= -1;
+ }
+ for (var i = 0; i < 14; i++) {
+ var z;
+ if (m == 0) {
+ z = hsv[m] + ((i % 2) * 2 - 1) * Math.round(Math.floor(i / 2) * n);
+ } else {
+ z = hsv[m] + i * n;
+ }
+ while (z < 0) {
+ z += 255;
+ } //↓0
+ while (z > 255) {
+ z -= 255;
+ } //↑255
+ // for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
+ if (m == 1) {
+ rgb = HSBtoRGB(hsv[0], z, hsv[2]);
+ } //→HSB
+ else if (m == 2) {
+ rgb = HSBtoRGB(hsv[0], hsv[1], z);
+ } else {
+ rgb = HSBtoRGB(z, hsv[1], hsv[2]);
+ } //→HSB
+ for (var j = 0; j <= 2; j++) {
+ rgb[j] = Math.round(rgb[j]);
+ }
+ cs[i] = "#" + format16(rgb[0]) + format16(rgb[1]) + format16(rgb[2]);
+ }
+ checkout(1);
+ d.paintbbs.setColors(String(cs.join("\n")));
}
-
// 全体のH/S/Bをプラスマイナス
-function alplus(m,n){
- var d = document;
- var cs = String(d.paintbbs.getColors()).split('\n');
- n *= Number(d.forms.palepale.num.value); //+-
- poncheck();
-
- for (var i=0; i<cs.length; i++){
- var rgb = to10rgb(cs[i]); //→RGB
- var hsv = RGBtoHSB(rgb[0],rgb[1],rgb[2]); //→HSB
- //↑明度255のとき彩度減
- if(m==2 && n>0 && hsv[2]>=255){
- hsv[1] -= n;
- if(hsv[1]<0){ hsv[1]=0; }else if(hsv[1]>255){ hsv[1]=255; } //↓0 or ↑255
- }
- hsv[m] += n;
- //↓0 ↑255
- if(m==0){
- if(hsv[0]<0){ hsv[0]+=255; }else if(hsv[0]>255){ hsv[0]-=255; }
- }else{
- if(hsv[m]<0){ hsv[m]=0; }else if(hsv[m]>255){ hsv[m]=255; }
- }
-// for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
- rgb = HSBtoRGB(hsv[0],hsv[1],hsv[2]); //→HSB
- for (var j=0; j<=2; j++){ rgb[j] = Math.round(rgb[j]); }
- cs[i] = '#'+format16(rgb[0])+format16(rgb[1])+format16(rgb[2]);
- }
- checkout();
- d.paintbbs.setColors(String(cs.join('\n')));
+function alplus(m, n) {
+ var d = document;
+ var cs = String(d.paintbbs.getColors()).split("\n");
+ n *= Number(d.forms.palepale.num.value); //+-
+ poncheck();
+
+ for (var i = 0; i < cs.length; i++) {
+ var rgb = to10rgb(cs[i]); //→RGB
+ var hsv = RGBtoHSB(rgb[0], rgb[1], rgb[2]); //→HSB
+ //↑明度255のとき彩度減
+ if (m == 2 && n > 0 && hsv[2] >= 255) {
+ hsv[1] -= n;
+ if (hsv[1] < 0) {
+ hsv[1] = 0;
+ } else if (hsv[1] > 255) {
+ hsv[1] = 255;
+ } //↓0 or ↑255
+ }
+ hsv[m] += n;
+ //↓0 ↑255
+ if (m == 0) {
+ if (hsv[0] < 0) {
+ hsv[0] += 255;
+ } else if (hsv[0] > 255) {
+ hsv[0] -= 255;
+ }
+ } else {
+ if (hsv[m] < 0) {
+ hsv[m] = 0;
+ } else if (hsv[m] > 255) {
+ hsv[m] = 255;
+ }
+ }
+ // for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
+ rgb = HSBtoRGB(hsv[0], hsv[1], hsv[2]); //→HSB
+ for (var j = 0; j <= 2; j++) {
+ rgb[j] = Math.round(rgb[j]);
+ }
+ cs[i] = "#" + format16(rgb[0]) + format16(rgb[1]) + format16(rgb[2]);
+ }
+ checkout();
+ d.paintbbs.setColors(String(cs.join("\n")));
}
-
// 全体のRGBをプラスマイナス
-function alrgb(n){
- var d = document;
- var cs = String(d.paintbbs.getColors()).split('\n');
- n *= Number(d.forms.palepale.num.value); //+-
- poncheck();
-
- for (var i=0; i<cs.length; i++){
- var rgb = to10rgb(cs[i]); //→RGB
- for (var j=0; j<=2; j++){
- rgb[j] += n;
- rgb[j] = Math.round(rgb[j]);
- if(rgb[j]<0){ rgb[j]=0; } //↓0
- if(rgb[j]>255){ rgb[j]=255; } //↑255
- }
- cs[i] = '#'+format16(rgb[0])+format16(rgb[1])+format16(rgb[2]);
- }
- checkout();
- d.paintbbs.setColors(String(cs.join('\n')));
+function alrgb(n) {
+ var d = document;
+ var cs = String(d.paintbbs.getColors()).split("\n");
+ n *= Number(d.forms.palepale.num.value); //+-
+ poncheck();
+
+ for (var i = 0; i < cs.length; i++) {
+ var rgb = to10rgb(cs[i]); //→RGB
+ for (var j = 0; j <= 2; j++) {
+ rgb[j] += n;
+ rgb[j] = Math.round(rgb[j]);
+ if (rgb[j] < 0) {
+ rgb[j] = 0;
+ } //↓0
+ if (rgb[j] > 255) {
+ rgb[j] = 255;
+ } //↑255
+ }
+ cs[i] = "#" + format16(rgb[0]) + format16(rgb[1]) + format16(rgb[2]);
+ }
+ checkout();
+ d.paintbbs.setColors(String(cs.join("\n")));
}
-
// グラデーション
-function grady(m){
- var d = document;
- var df = d.forms.palepale;
- var n = 2;
- if(df.gradc){
- for(var j=0; j<df.gradc.length; j++){
- if(df.gradc[j].checked == true){ n = Number(df.gradc[j].value); break; }
- }
- }
- var cs = String(d.paintbbs.getColors()).split('\n');
- var gs = new Array(1,13);
- if(n==3){ gs = new Array(1,7,13); }
- else if(n==4){ gs = new Array(1,5,9,13); }
- poncheck();
- cs[1] = cs[0];
-
- // 2〜4色
- for (var i=0; i<gs.length-1; i++){
- var p=gs[i]; var q=gs[(i+1)];
- var rgbp = to10rgb(cs[p]); //→RGB
- var rgbq = to10rgb(cs[q]); //→RGB2
- // HSB
- var hsvp = new Array();
- var hsvq = new Array();
- if(m==1 || m==-1){
- hsvp = RGBtoHSB(rgbp[0],rgbp[1],rgbp[2]); //→HSB
- hsvq = RGBtoHSB(rgbq[0],rgbq[1],rgbq[2]); //→HSB
- }
- // パレットの色
- for (var k=p+1; k<q; k++){
- var rgb = new Array();
- // HSB
- if(m==1 || m==-1){
- var hsv = new Array();
- for (var j=0; j<=2; j++){ // RGB
- var sa = (hsvp[j]-hsvq[j])/(q-p);
- if(j==0){ // H
- if(m*hsvp[j]>m*hsvq[j]){ sa = Math.abs(sa) - 255/(q-p); }
- hsv[0] = hsvp[0] + m*Math.abs(sa)*(k-p);
- if(hsv[0]<0){ hsv[0]+=255; }else if(hsv[0]>255){ hsv[0]-=255; }
- }else{ // S,B
- hsv[j] = hsvp[j] - sa*(k-p);
- if(hsv[j]<0){ hsv[j]=0; }else if(hsv[j]>255){ hsv[j]=255; }
- }
- }
- rgb = HSBtoRGB(hsv[0],hsv[1],hsv[2]); //→HSB
- for (var j=0; j<=2; j++){ rgb[j] = Math.round(rgb[j]); }
- // RGB
- }else{
- for (var j=0; j<=2; j++){ // RGB
- var sa = (rgbp[j]-rgbq[j])/(q-p);
- rgb[j] = Math.round(rgbp[j] - sa*(k-p));
- if(rgb[j]<0){ rgb[j]=0; }else if(rgb[j]>255){ rgb[j]=255; } //↑↓
- }
- }
- cs[k] = '#'+format16(rgb[0])+format16(rgb[1])+format16(rgb[2]);
- }
- }
- cs[0]=cs[1]; cs[1]='#ffffff';
- checkout();
- d.paintbbs.setColors(String(cs.join('\n')));
+function grady(m) {
+ var d = document;
+ var df = d.forms.palepale;
+ var n = 2;
+ if (df.gradc) {
+ for (var j = 0; j < df.gradc.length; j++) {
+ if (df.gradc[j].checked == true) {
+ n = Number(df.gradc[j].value);
+ break;
+ }
+ }
+ }
+ var cs = String(d.paintbbs.getColors()).split("\n");
+ var gs = new Array(1, 13);
+ if (n == 3) {
+ gs = new Array(1, 7, 13);
+ } else if (n == 4) {
+ gs = new Array(1, 5, 9, 13);
+ }
+ poncheck();
+ cs[1] = cs[0];
+
+ // 2〜4色
+ for (var i = 0; i < gs.length - 1; i++) {
+ var p = gs[i];
+ var q = gs[i + 1];
+ var rgbp = to10rgb(cs[p]); //→RGB
+ var rgbq = to10rgb(cs[q]); //→RGB2
+ // HSB
+ var hsvp = new Array();
+ var hsvq = new Array();
+ if (m == 1 || m == -1) {
+ hsvp = RGBtoHSB(rgbp[0], rgbp[1], rgbp[2]); //→HSB
+ hsvq = RGBtoHSB(rgbq[0], rgbq[1], rgbq[2]); //→HSB
+ }
+ // パレットの色
+ for (var k = p + 1; k < q; k++) {
+ var rgb = new Array();
+ // HSB
+ if (m == 1 || m == -1) {
+ var hsv = new Array();
+ for (var j = 0; j <= 2; j++) {
+ // RGB
+ var sa = (hsvp[j] - hsvq[j]) / (q - p);
+ if (j == 0) {
+ // H
+ if (m * hsvp[j] > m * hsvq[j]) {
+ sa = Math.abs(sa) - 255 / (q - p);
+ }
+ hsv[0] = hsvp[0] + m * Math.abs(sa) * (k - p);
+ if (hsv[0] < 0) {
+ hsv[0] += 255;
+ } else if (hsv[0] > 255) {
+ hsv[0] -= 255;
+ }
+ } else {
+ // S,B
+ hsv[j] = hsvp[j] - sa * (k - p);
+ if (hsv[j] < 0) {
+ hsv[j] = 0;
+ } else if (hsv[j] > 255) {
+ hsv[j] = 255;
+ }
+ }
+ }
+ rgb = HSBtoRGB(hsv[0], hsv[1], hsv[2]); //→HSB
+ for (var j = 0; j <= 2; j++) {
+ rgb[j] = Math.round(rgb[j]);
+ }
+ // RGB
+ } else {
+ for (var j = 0; j <= 2; j++) {
+ // RGB
+ var sa = (rgbp[j] - rgbq[j]) / (q - p);
+ rgb[j] = Math.round(rgbp[j] - sa * (k - p));
+ if (rgb[j] < 0) {
+ rgb[j] = 0;
+ } else if (rgb[j] > 255) {
+ rgb[j] = 255;
+ } //↑↓
+ }
+ }
+ cs[k] = "#" + format16(rgb[0]) + format16(rgb[1]) + format16(rgb[2]);
+ }
+ }
+ cs[0] = cs[1];
+ cs[1] = "#ffffff";
+ checkout();
+ d.paintbbs.setColors(String(cs.join("\n")));
}
-
// -------------------------------------------------------------------------
// パレットのサンプルカラー
-function csamp(p,pz,lst){
- var ss='';
- var ps = pz.split('\n');
- var slong = sams.length;
- var psy = check_h_sb(lst); if(psy==1){ slong = samx.length; }
- // color-sample
- for (var i=0; i<slong; i++){
- // color-title
- var k,cl='',rgb='',hsv='',ctl='';
- if(psy==1){ k=samx[i]; }else{ k=sams[i]; }
- if(ps[k]){
- rgb = to10rgb(ps[k]); //→RGB
- hsv = RGBtoHSB(rgb[0],rgb[1],rgb[2]); //→HSB
- for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
- ctl = 'HSB: '+hsv[0]+','+hsv[1]+','+hsv[2]+'\n';
- ctl += 'RGB: '+rgb[0]+','+rgb[1]+','+rgb[2]+'\nRGB16: '+ps[k];
- }
- if(selfv[2]) cl=selfv[2].replace(/\$FONT/i,ps[k]);
- if(selfv[1]) ss += '<font id="font_'+p+'_'+k+'" '+cl+' title="'+ctl+'">'+selfv[1]+'</font>';
- }
- return ss;
+function csamp(p, pz, lst) {
+ var ss = "";
+ var ps = pz.split("\n");
+ var slong = sams.length;
+ var psy = check_h_sb(lst);
+ if (psy == 1) {
+ slong = samx.length;
+ }
+ // color-sample
+ for (var i = 0; i < slong; i++) {
+ // color-title
+ var k,
+ cl = "",
+ rgb = "",
+ hsv = "",
+ ctl = "";
+ if (psy == 1) {
+ k = samx[i];
+ } else {
+ k = sams[i];
+ }
+ if (ps[k]) {
+ rgb = to10rgb(ps[k]); //→RGB
+ hsv = RGBtoHSB(rgb[0], rgb[1], rgb[2]); //→HSB
+ for (var j = 0; j <= 2; j++) {
+ hsv[j] = Math.round(hsv[j]);
+ }
+ ctl = "HSB: " + hsv[0] + "," + hsv[1] + "," + hsv[2] + "\n";
+ ctl +=
+ "RGB: " + rgb[0] + "," + rgb[1] + "," + rgb[2] + "\nRGB16: " + ps[k];
+ }
+ if (selfv[2]) cl = selfv[2].replace(/\$FONT/i, ps[k]);
+ if (selfv[1])
+ ss +=
+ '<font id="font_' +
+ p +
+ "_" +
+ k +
+ '" ' +
+ cl +
+ ' title="' +
+ ctl +
+ '">' +
+ selfv[1] +
+ "</font>";
+ }
+ return ss;
}
-
// パレットのリスト
-function palette_list(lst){
- var d = document;
- var ds = '';
- for (var p=0; p<pals.length; p++){
- if(!pals[p]){ continue; }
- var samw = csamp(p,pals[p],lst); //サンプル
-
- // element
- if(selfv[4]) ds+=inr+'name="rad" value="'+p+'" onclick="rady('+p+')" '+selfv[4]+samw+'\n';
-// ds+='<font color="'+ps[0]+'" id="font_'+p+'" title="'+ctl+'">'+samw+'</font>';
- if(selfv[5]) ds+=inp+'onclick="onplus('+p+',0)" '+selfv[5];
- if(selfv[6]) ds+=inp+'onclick="onplus('+p+',1)" '+selfv[6];
- if(selfv[7]) ds+=inp+'onclick="onplus('+p+',2)" '+selfv[7];
- if(selfv[8]) ds+=inp+'onclick="savy('+p+')" '+selfv[8];
- if(selfv[9]) ds+=inp+'onclick="defy('+p+')" '+selfv[9];
- }
- return ds;
+function palette_list(lst) {
+ var d = document;
+ var ds = "";
+ for (var p = 0; p < pals.length; p++) {
+ if (!pals[p]) {
+ continue;
+ }
+ var samw = csamp(p, pals[p], lst); //サンプル
+
+ // element
+ if (selfv[4])
+ ds +=
+ inr +
+ 'name="rad" value="' +
+ p +
+ '" onclick="rady(' +
+ p +
+ ')" ' +
+ selfv[4] +
+ samw +
+ "\n";
+ // ds+='<font color="'+ps[0]+'" id="font_'+p+'" title="'+ctl+'">'+samw+'</font>';
+ if (selfv[5]) ds += inp + 'onclick="onplus(' + p + ',0)" ' + selfv[5];
+ if (selfv[6]) ds += inp + 'onclick="onplus(' + p + ',1)" ' + selfv[6];
+ if (selfv[7]) ds += inp + 'onclick="onplus(' + p + ',2)" ' + selfv[7];
+ if (selfv[8]) ds += inp + 'onclick="savy(' + p + ')" ' + selfv[8];
+ if (selfv[9]) ds += inp + 'onclick="defy(' + p + ')" ' + selfv[9];
+ }
+ return ds;
}
-
// チェックをつける、フォントカラーのサンプルを変更
-function checkin(p,not){
- qno=''; qmo=''; qon=0;
- if(!pals[p]){ return; }
- var d = document;
- // font-color
- var ps = pals[p].split('\n');
- var slong = sams.length;
- var psy = check_h_sb(); if(psy==1){ slong = samx.length; }
- // color-sample
- for (var i=0; i<slong; i++){
- // color-title
- var k,rgb='',hsv='',ctl='';
- if(psy==1){ k=samx[i]; }else{ k=sams[i]; }
- if(ps[k]){
- rgb = to10rgb(ps[k]); //→RGB
- hsv = RGBtoHSB(rgb[0],rgb[1],rgb[2]); //→HSB
- for (var j=0; j<=2; j++){ hsv[j] = Math.round(hsv[j]); }
- ctl = 'HSB: '+hsv[0]+','+hsv[1]+','+hsv[2]+'\n';
- ctl += 'RGB: '+rgb[0]+','+rgb[1]+','+rgb[2]+'\nRGB16: '+ps[k];
- }
- // replace
- var ds;
- if(brwz==1){ ds = d.all('font_'+p+'_'+k); }
- else if(brwz==2){ ds = d.getElementById('font_'+p+'_'+k); }
- if(ds){
- if(ds.style.background){ ds.style.background = ps[k]; }
- if(ds.style.backgroundColor){ ds.style.backgroundColor = ps[k]; }
- if(ds.style.color){ ds.style.color = ps[k]; }
- if(ds.color){ ds.color = ps[k]; }
- }
- }
-
- // check
- if(not!=1){
- var df = d.forms.palepale;
- for(var j=0; j<df.rad.length; j++){
- if(df.rad[j].value == p){
- df.rad[j].checked = true; break; }
- }
- }
+function checkin(p, not) {
+ qno = "";
+ qmo = "";
+ qon = 0;
+ if (!pals[p]) {
+ return;
+ }
+ var d = document;
+ // font-color
+ var ps = pals[p].split("\n");
+ var slong = sams.length;
+ var psy = check_h_sb();
+ if (psy == 1) {
+ slong = samx.length;
+ }
+ // color-sample
+ for (var i = 0; i < slong; i++) {
+ // color-title
+ var k,
+ rgb = "",
+ hsv = "",
+ ctl = "";
+ if (psy == 1) {
+ k = samx[i];
+ } else {
+ k = sams[i];
+ }
+ if (ps[k]) {
+ rgb = to10rgb(ps[k]); //→RGB
+ hsv = RGBtoHSB(rgb[0], rgb[1], rgb[2]); //→HSB
+ for (var j = 0; j <= 2; j++) {
+ hsv[j] = Math.round(hsv[j]);
+ }
+ ctl = "HSB: " + hsv[0] + "," + hsv[1] + "," + hsv[2] + "\n";
+ ctl +=
+ "RGB: " + rgb[0] + "," + rgb[1] + "," + rgb[2] + "\nRGB16: " + ps[k];
+ }
+ // replace
+ var ds;
+ if (brwz == 1) {
+ ds = d.all("font_" + p + "_" + k);
+ } else if (brwz == 2) {
+ ds = d.getElementById("font_" + p + "_" + k);
+ }
+ if (ds) {
+ if (ds.style.background) {
+ ds.style.background = ps[k];
+ }
+ if (ds.style.backgroundColor) {
+ ds.style.backgroundColor = ps[k];
+ }
+ if (ds.style.color) {
+ ds.style.color = ps[k];
+ }
+ if (ds.color) {
+ ds.color = ps[k];
+ }
+ }
+ }
+
+ // check
+ if (not != 1) {
+ var df = d.forms.palepale;
+ for (var j = 0; j < df.rad.length; j++) {
+ if (df.rad[j].value == p) {
+ df.rad[j].checked = true;
+ break;
+ }
+ }
+ }
}
-
// checkを外す
-function checkout(q){
- pon=0; pno='';
- if(q!=1){ qno=''; qmo=''; qon=0; }
- var df = document.forms.palepale;
- for(var j=0; j<df.rad.length; j++){
- if(df.rad[j].checked == true){
- df.rad[j].checked = false; break; }
- }
+function checkout(q) {
+ pon = 0;
+ pno = "";
+ if (q != 1) {
+ qno = "";
+ qmo = "";
+ qon = 0;
+ }
+ var df = document.forms.palepale;
+ for (var j = 0; j < df.rad.length; j++) {
+ if (df.rad[j].checked == true) {
+ df.rad[j].checked = false;
+ break;
+ }
+ }
}
-
// 以前のパレットを自動保存
-function poncheck(not){
- var d = document;
- var df = document.forms.palepale;
- if(df.autosave&&df.autosave.checked==false){ return; }
- else if(pon==1){
- var pget = String(d.paintbbs.getColors());
- if(pals[pno] != pget){
- pals[pno] = pget;
- checkin(pno,1);
- if(not!=1){ pcookset(1); }
- }
- }
+function poncheck(not) {
+ var d = document;
+ var df = document.forms.palepale;
+ if (df.autosave && df.autosave.checked == false) {
+ return;
+ } else if (pon == 1) {
+ var pget = String(d.paintbbs.getColors());
+ if (pals[pno] != pget) {
+ pals[pno] = pget;
+ checkin(pno, 1);
+ if (not != 1) {
+ pcookset(1);
+ }
+ }
+ }
}
-
// パレットをセーブ
-function savy(p){
- var d = document;
- pals[p] = String(d.paintbbs.getColors());
- checkin(p);
- pcookset(1);
- pon=1; pno=p;
+function savy(p) {
+ var d = document;
+ pals[p] = String(d.paintbbs.getColors());
+ checkin(p);
+ pcookset(1);
+ pon = 1;
+ pno = p;
}
-
// パレットをデフォルトに
-function defy(p){
- checkout();
- var q = pdefs[p];
- var df = document.forms.palepale;
- if(check_h_sb()==1){ q = pdefx[p]; }
- if(q){
- pals[p] = q;
- rady(p,2);
- checkin(p);
- }else{ minsy(p); }
+function defy(p) {
+ checkout();
+ var q = pdefs[p];
+ var df = document.forms.palepale;
+ if (check_h_sb() == 1) {
+ q = pdefx[p];
+ }
+ if (q) {
+ pals[p] = q;
+ rady(p, 2);
+ checkin(p);
+ } else {
+ minsy(p);
+ }
}
-
// パレット追加
-function plusy(){
- var d = document;
- if(brwz==1 || brwz==2){
- var p=pals.length;
- var pz = String(d.paintbbs.getColors());
- if(pz){ pals[p] = pz; }
- else{
- pals[p] = '#'+Number(d.paintbbs.getInfo().m.iColor).toString(16);
- rady(p,1);
- }
- }
- if(brwz==1 && d.all('palelist').innerHTML){
- d.all('palelist').innerHTML = palette_list();
- checkin(p);
- }else if(brwz==2 && d.getElementById('palelist').innerHTML){
- d.getElementById('palelist').innerHTML = palette_list();
- checkin(p);
- }
+function plusy() {
+ var d = document;
+ if (brwz == 1 || brwz == 2) {
+ var p = pals.length;
+ var pz = String(d.paintbbs.getColors());
+ if (pz) {
+ pals[p] = pz;
+ } else {
+ pals[p] = "#" + Number(d.paintbbs.getInfo().m.iColor).toString(16);
+ rady(p, 1);
+ }
+ }
+ if (brwz == 1 && d.all("palelist").innerHTML) {
+ d.all("palelist").innerHTML = palette_list();
+ checkin(p);
+ } else if (brwz == 2 && d.getElementById("palelist").innerHTML) {
+ d.getElementById("palelist").innerHTML = palette_list();
+ checkin(p);
+ }
}
-
// パレット削除
-function minsy(p){
- var d = document;
- var df = d.forms.palepale;
- if(!p&&p!=0){
- for(var j=0; j<=df.rad.length; j++){
- if(df.rad[j] && df.rad[j].checked==true){p=Number(df.rad[j].value); break; }
- }
- }
- if((!p&&p!=0)||p<0){ return; }
- pals[p] = '';
- var plong = pdefs.length;
- if(check_h_sb()==1){ plong = pdefx.length; }
- if(p>=plong){
- var k=0;
- var pds = new Array(); pds = pals;
- pals = new Array();
- for(var j=0; j<pds.length; j++){
- if(p!=j && pds[j]){ pals[k] = pds[j]; k++; }
- }
- }
-
- if(brwz==1 && d.all('palelist').innerHTML){
- d.all('palelist').innerHTML = palette_list();
- }else if(brwz==2 && d.getElementById('palelist').innerHTML){
- d.getElementById('palelist').innerHTML = palette_list();
- }
- checkout();
+function minsy(p) {
+ var d = document;
+ var df = d.forms.palepale;
+ if (!p && p != 0) {
+ for (var j = 0; j <= df.rad.length; j++) {
+ if (df.rad[j] && df.rad[j].checked == true) {
+ p = Number(df.rad[j].value);
+ break;
+ }
+ }
+ }
+ if ((!p && p != 0) || p < 0) {
+ return;
+ }
+ pals[p] = "";
+ var plong = pdefs.length;
+ if (check_h_sb() == 1) {
+ plong = pdefx.length;
+ }
+ if (p >= plong) {
+ var k = 0;
+ var pds = new Array();
+ pds = pals;
+ pals = new Array();
+ for (var j = 0; j < pds.length; j++) {
+ if (p != j && pds[j]) {
+ pals[k] = pds[j];
+ k++;
+ }
+ }
+ }
+
+ if (brwz == 1 && d.all("palelist").innerHTML) {
+ d.all("palelist").innerHTML = palette_list();
+ } else if (brwz == 2 && d.getElementById("palelist").innerHTML) {
+ d.getElementById("palelist").innerHTML = palette_list();
+ }
+ checkout();
}
-
// パレットデフォルト
-function def_list(){
- var okd = confirm("全体のパレットをデフォルトに戻します。\nよろしいですか?");
- if(!okd){ return; }
- var d = document;
- var df = d.forms.palepale;
- pals = new Array();
- var psy = 0;
- var plong = pdefs.length;
- if(check_h_sb()==1){ psy=1; plong = pdefx.length; }
- for (var p=0; p<plong; p++){
- if(psy==1){ pals[p]=pdefx[p]; }else{ pals[p]=pdefs[p]; }
- }
- for (var p=0; p<pals.length; p++){ if(pals[p]){ rady(p,1); } }
-
- if(brwz==1 && d.all('palelist').innerHTML){
- d.all('palelist').innerHTML = palette_list();
- }else if(brwz==2 && d.getElementById('palelist').innerHTML){
- d.getElementById('palelist').innerHTML = palette_list();
- }else{
- for (var p=0; p<pals.length; p++){
- if(pals[p]){ checkin(p,1); }
- }
- }
+function def_list() {
+ var okd = confirm("全体のパレットをデフォルトに戻します。\nよろしいですか?");
+ if (!okd) {
+ return;
+ }
+ var d = document;
+ var df = d.forms.palepale;
+ pals = new Array();
+ var psy = 0;
+ var plong = pdefs.length;
+ if (check_h_sb() == 1) {
+ psy = 1;
+ plong = pdefx.length;
+ }
+ for (var p = 0; p < plong; p++) {
+ if (psy == 1) {
+ pals[p] = pdefx[p];
+ } else {
+ pals[p] = pdefs[p];
+ }
+ }
+ for (var p = 0; p < pals.length; p++) {
+ if (pals[p]) {
+ rady(p, 1);
+ }
+ }
+
+ if (brwz == 1 && d.all("palelist").innerHTML) {
+ d.all("palelist").innerHTML = palette_list();
+ } else if (brwz == 2 && d.getElementById("palelist").innerHTML) {
+ d.getElementById("palelist").innerHTML = palette_list();
+ } else {
+ for (var p = 0; p < pals.length; p++) {
+ if (pals[p]) {
+ checkin(p, 1);
+ }
+ }
+ }
}
-
// デフォルト h_sb のフォームのチェック. H°にチェックがついてるなら1
-function check_h_sb(lst){
- var ch = 0;
- var df = document.forms.palepale;
- if(lst!=1 && df && df.h_sb){
- for (var i=0; i<df.h_sb.length; i++){
- if(df.h_sb[i].value==1 && df.h_sb[i].checked==true){ ch=1; break; }
- }
- }else{ ch=psx; }
- return ch;
+function check_h_sb(lst) {
+ var ch = 0;
+ var df = document.forms.palepale;
+ if (lst != 1 && df && df.h_sb) {
+ for (var i = 0; i < df.h_sb.length; i++) {
+ if (df.h_sb[i].value == 1 && df.h_sb[i].checked == true) {
+ ch = 1;
+ break;
+ }
+ }
+ } else {
+ ch = psx;
+ }
+ return ch;
}
-
// パレットデータ アップロード
-function pupload(){
- var d = document;
- var df = d.forms.palepale;
- var qs = new Array();
- var palx='';
- if(df.palz){ palx = df.palz.value; }
- if(!palx){ return; }
- pals = new Array();
- if(eval(palx)){}
- else{
- var px = palx.split(/\(|\)/);
- var ps = px[1].split(',');
- for (var p=0; p<ps.length; p++){
- var q=ps[p].replace(/[^0-9a-fA-F]/g,''); pals[p] = q;
- }
- }
-
- for (var p=0; p<pals.length; p++){ if(pals[p]){ rady(p,1); } }
-
- if(brwz==1 && d.all('palelist').innerHTML){
- d.all('palelist').innerHTML = palette_list();
- }else if(brwz==2 && d.getElementById('palelist').innerHTML){
- d.getElementById('palelist').innerHTML = palette_list();
- }else{
- for (var p=0; p<pals.length; p++){
- if(pals[p]){ checkin(p,1); }
- }
- }
+function pupload() {
+ var d = document;
+ var df = d.forms.palepale;
+ var qs = new Array();
+ var palx = "";
+ if (df.palz) {
+ palx = df.palz.value;
+ }
+ if (!palx) {
+ return;
+ }
+ pals = new Array();
+ if (eval(palx)) {
+ } else {
+ var px = palx.split(/\(|\)/);
+ var ps = px[1].split(",");
+ for (var p = 0; p < ps.length; p++) {
+ var q = ps[p].replace(/[^0-9a-fA-F]/g, "");
+ pals[p] = q;
+ }
+ }
+
+ for (var p = 0; p < pals.length; p++) {
+ if (pals[p]) {
+ rady(p, 1);
+ }
+ }
+
+ if (brwz == 1 && d.all("palelist").innerHTML) {
+ d.all("palelist").innerHTML = palette_list();
+ } else if (brwz == 2 && d.getElementById("palelist").innerHTML) {
+ d.getElementById("palelist").innerHTML = palette_list();
+ } else {
+ for (var p = 0; p < pals.length; p++) {
+ if (pals[p]) {
+ checkin(p, 1);
+ }
+ }
+ }
}
-
// パレットデータ ダウンロード
-function pdownload(){
- var d = document;
- var df = d.forms.palepale;
- var qs = new Array();
- for (var p=0; p<pals.length; p++){
- qs[p] = "\'"+pals[p].replace(/\n/g,'\\n')+"\'";
- }
- var palx = 'pals = new Array(\n' + qs.join('\,\n') + '\n);';
- if(df.palz){ df.palz.value = palx; }
+function pdownload() {
+ var d = document;
+ var df = d.forms.palepale;
+ var qs = new Array();
+ for (var p = 0; p < pals.length; p++) {
+ qs[p] = "'" + pals[p].replace(/\n/g, "\\n") + "'";
+ }
+ var palx = "pals = new Array(\n" + qs.join(",\n") + "\n);";
+ if (df.palz) {
+ df.palz.value = palx;
+ }
}
-
// 全体のパレット情報をクッキーにセーブ
-function pcookset(o){
- var df = document.forms.palepale;
- if(o&&df.autosave&&df.autosave.checked==false){ return; }
- var exp=new Date();
- exp.setTime(exp.getTime()+1000*86400*60);
- var cs = new Array();
- for(var i=0; i<pals.length; i++){
- cs[i] = escape(pals[i].replace(/\n/g,'_'));
- }
- var cooki = '';
- if(df.num){ cooki += df.num.value; }
- cooki += '_'+check_h_sb()+'_%00';
- cooki += cs.join('%00');
- document.cookie = cname + cooki + "; expires=" + exp.toGMTString();
+function pcookset(o) {
+ var df = document.forms.palepale;
+ if (o && df.autosave && df.autosave.checked == false) {
+ return;
+ }
+ var exp = new Date();
+ exp.setTime(exp.getTime() + 1000 * 86400 * 60);
+ var cs = new Array();
+ for (var i = 0; i < pals.length; i++) {
+ cs[i] = escape(pals[i].replace(/\n/g, "_"));
+ }
+ var cooki = "";
+ if (df.num) {
+ cooki += df.num.value;
+ }
+ cooki += "_" + check_h_sb() + "_%00";
+ cooki += cs.join("%00");
+ document.cookie = cname + cooki + "; expires=" + exp.toGMTString();
}
-
// 全体のパレット情報をクッキーからロード
-function pcookget(){
- var cooks = document.cookie.split("; ");
- var cooki = '';
- for (var i=0; i<cooks.length; i++){
- if (cooks[i].substr(0,cname.length) == cname){
- cooki = cooks[i].substr(cname.length,cooks[i].length);
- break;
- }
- }
- if(cooki){
- var cs = cooki.split('%00');
- pals = new Array();
- for(var i=0; i<cs.length-1; i++){
- pals[i] = unescape(cs[(i+1)]).replace(/\_/g,"\n");
- }
- if(cs[0]){
- var ps = cs[0].split('_');
- if(ps[0]){ pnum = ps[0]; }
- if(ps[1]){ psx = ps[1]; }else if(!ps[1]&&ps[1]==0){ psx=0; }
- }
- }
+function pcookget() {
+ var cooks = document.cookie.split("; ");
+ var cooki = "";
+ for (var i = 0; i < cooks.length; i++) {
+ if (cooks[i].substr(0, cname.length) == cname) {
+ cooki = cooks[i].substr(cname.length, cooks[i].length);
+ break;
+ }
+ }
+ if (cooki) {
+ var cs = cooki.split("%00");
+ pals = new Array();
+ for (var i = 0; i < cs.length - 1; i++) {
+ pals[i] = unescape(cs[i + 1]).replace(/\_/g, "\n");
+ }
+ if (cs[0]) {
+ var ps = cs[0].split("_");
+ if (ps[0]) {
+ pnum = ps[0];
+ }
+ if (ps[1]) {
+ psx = ps[1];
+ } else if (!ps[1] && ps[1] == 0) {
+ psx = 0;
+ }
+ }
+ }
}
-
// 増減する数を増やしたり減らしたり
-function num_plus(n){
- var df = document.forms.palepale;
- var m = Number(df.num.value); var l=n;
- n *= Math.abs(Math.round(m/10))+1; if(n==0){ n=l; }
- df.num.value = m+n;
+function num_plus(n) {
+ var df = document.forms.palepale;
+ var m = Number(df.num.value);
+ var l = n;
+ n *= Math.abs(Math.round(m / 10)) + 1;
+ if (n == 0) {
+ n = l;
+ }
+ df.num.value = m + n;
}
-
// トーンセレクトの値を±
-function tone_plus(n){
- var df = document.forms.palepale;
- var m = Number(df.tone.value);
- if(m>0){ n = Math.floor(m/10 + n)*10; }
- if(n<0){ n=0; }else if(n<5){ n=5; }else if(n>100){ n=100; }
- df.tone.value = n;
- tone_sel(n);
+function tone_plus(n) {
+ var df = document.forms.palepale;
+ var m = Number(df.tone.value);
+ if (m > 0) {
+ n = Math.floor(m / 10 + n) * 10;
+ }
+ if (n < 0) {
+ n = 0;
+ } else if (n < 5) {
+ n = 5;
+ } else if (n > 100) {
+ n = 100;
+ }
+ df.tone.value = n;
+ tone_sel(n);
}
-
// トーンセレクト
-function tone_sel(t){
- var dp=document.paintbbs;
- t = Number(t);
- if(t==0){ dp.getInfo().m.iTT = 0; }
- else{ dp.getInfo().m.iTT = Math.floor(t/10)+1; }
+function tone_sel(t) {
+ var dp = document.paintbbs;
+ t = Number(t);
+ if (t == 0) {
+ dp.getInfo().m.iTT = 0;
+ } else {
+ dp.getInfo().m.iTT = Math.floor(t / 10) + 1;
+ }
}
-
// -------------------------------------------------------------------------
// document.write
-function palette_selfy(){
- var d = document;
- var df = document.forms.palepale;
- var pzs=palette_selfy.arguments; //パレット指定があったとき
-
- // browzer
- if(brwz!=1 && brwz!=2){ return; }
-
- // パレットとパレットクッキー
- var plong = pdefs.length;
- if(psx==1){ plong = pdefx.length; }
- for (var p=0; p<plong; p++){
- if(psx==1){ pals[p]=pdefx[p]; }else{ pals[p]=pdefs[p]; }
- if(pzs && pzs.length>=1){ var ok=0; //?
- for (var q=0; q<pzs.length; q++){ if(p==pzs[q]){ ok=1; break; } }
- if(ok!=1){ pals[p]=''; }
- }
- }
- pcookget(); // cookie-get
- psx_ch[psx] = 'checked ';
- for (var p=0; p<pals.length; p++){ if(pals[p]){ rady(p,1,1); } }
-
- // basic
- d.write(selfytag[0]);
- if(selfv[3]) d.write(inr+'name="rad" value="-1" onclick="rady()" '+selfv[3]);
- if(pbase) d.write(csamp(-1,pbase,1));
-
- // +-する数
- if(selfv[0]){
- d.write('\n<small>&nbsp;</small>+-');
- d.write('<input type="text" name="num" value="'+pnum+'" '+selfv[0]);
- d.write(inp+'value="+" onclick="num_plus(1)">');
- d.write(inp+'value="-" onclick="num_plus(-1)">\n');
- }
- // パレットリスト
- if(pdefs||pdefx) d.write('<div id="palelist">\n'+palette_list(1)+'</div>\n');
-
- // 全体の HSB、RGB +-
- if(selfytag[1]) d.write(selfytag[1]);
- if(selfv[10]) d.write(inp+'onclick="alplus(0,1)" ' +selfv[10]);
- if(selfv[12]) d.write(inp+'onclick="alplus(1,1)" ' +selfv[12]);
- if(selfv[14]) d.write(inp+'onclick="alplus(2,1)" ' +selfv[14]);
- if(selfv[16]) d.write(inp+'onclick="alrgb(1)" ' +selfv[16]);
- if(selfv[11]) d.write(inp+'onclick="alplus(0,-1)" '+selfv[11]);
- if(selfv[13]) d.write(inp+'onclick="alplus(1,-1)" '+selfv[13]);
- if(selfv[15]) d.write(inp+'onclick="alplus(2,-1)" '+selfv[15]);
- if(selfv[17]) d.write(inp+'onclick="alrgb(-1)" ' +selfv[17]);
-
- // トーンセレクト
- if(selfv[0]){
- d.write('Tone <select name="tone" onchange="tone_sel(this.value)">');
- for (var i=0; i<=100; i+=5){
- d.write('<option value="'+i+'">'+i+'%</option>\n'); if(i>=10){i+=5;}
- }
- d.write('</select>');
- d.write(inp+'value="+" onclick="tone_plus(1)">');
- d.write(inp+'value="-" onclick="tone_plus(-1)">\n');
- }
-
- // GRADATION
- if(selfytag[2]) d.write(selfytag[2]);
- if(selfv[18]) d.write(inr+'name="gradc" value="2" '+selfv[18]); //18
- if(selfv[19]) d.write(inr+'name="gradc" value="3" '+selfv[19]); //19
- if(selfv[20]) d.write(inr+'name="gradc" value="4" '+selfv[20]); //20
- if(selfv[21]) d.write(inp+'onclick="grady(0)" ' +selfv[21]); //21
- if(selfv[22]) d.write(inp+'onclick="grady(1)" ' +selfv[22]); //22
- if(selfv[23]) d.write(inp+'onclick="grady(-1)" ' +selfv[23]); //23
-
- // 追加・削除
- if(selfytag[3]) d.write(selfytag[3]);
- if(selfv[24]) d.write(inp+'onclick="plusy()" ' +selfv[24]); //24
- if(selfv[25]) d.write(inp+'onclick="minsy()" ' +selfv[25]); //25
-
- // セーブ・オートセーブ
- if(selfytag[4]) d.write(selfytag[4]);
- if(selfv[26]) d.write('<input type="checkbox" name="autosave" value="1" '+selfv[26]); //26
- if(selfv[27]) d.write(inp+'onclick="pcookset()" ' +selfv[27]); //27
-
- // デフォルト
- if(selfytag[5]) d.write(selfytag[5]);
- if(selfv[28]) d.write(inr+'name="h_sb" value="1" ' +psx_ch[1]+selfv[28]); //28
- if(selfv[29]) d.write(inr+'name="h_sb" value="0" ' +psx_ch[0]+selfv[29]); //29
- if(selfv[30]) d.write(inp+'onclick="def_list()" ' +selfv[30]); //30
-
- // UPLOAD / DOWNLOAD
- if(selfytag[6]) d.write(selfytag[6]);
- if(selfv[31]) d.write('<input type="text" name="palz" '+selfv[31]); //31
- if(selfv[32]) d.write(inp+'onclick="pupload()" ' +selfv[32]); //32
- if(selfv[33]) d.write(inp+'onclick="pdownload()" ' +selfv[33]); //33
-
- // /FORM
- if(selfytag[7]) d.write(selfytag[7]);
+function palette_selfy() {
+ var d = document;
+ var df = document.forms.palepale;
+ var pzs = palette_selfy.arguments; //パレット指定があったとき
+
+ // browzer
+ if (brwz != 1 && brwz != 2) {
+ return;
+ }
+
+ // パレットとパレットクッキー
+ var plong = pdefs.length;
+ if (psx == 1) {
+ plong = pdefx.length;
+ }
+ for (var p = 0; p < plong; p++) {
+ if (psx == 1) {
+ pals[p] = pdefx[p];
+ } else {
+ pals[p] = pdefs[p];
+ }
+ if (pzs && pzs.length >= 1) {
+ var ok = 0; //?
+ for (var q = 0; q < pzs.length; q++) {
+ if (p == pzs[q]) {
+ ok = 1;
+ break;
+ }
+ }
+ if (ok != 1) {
+ pals[p] = "";
+ }
+ }
+ }
+ pcookget(); // cookie-get
+ psx_ch[psx] = "checked ";
+ for (var p = 0; p < pals.length; p++) {
+ if (pals[p]) {
+ rady(p, 1, 1);
+ }
+ }
+
+ // basic
+ d.write(selfytag[0]);
+ if (selfv[3])
+ d.write(inr + 'name="rad" value="-1" onclick="rady()" ' + selfv[3]);
+ if (pbase) d.write(csamp(-1, pbase, 1));
+
+ // +-する数
+ if (selfv[0]) {
+ d.write("\n<small>&nbsp;</small>+-");
+ d.write('<input type="text" name="num" value="' + pnum + '" ' + selfv[0]);
+ d.write(inp + 'value="+" onclick="num_plus(1)">');
+ d.write(inp + 'value="-" onclick="num_plus(-1)">\n');
+ }
+ // パレットリスト
+ if (pdefs || pdefx)
+ d.write('<div id="palelist">\n' + palette_list(1) + "</div>\n");
+
+ // 全体の HSB、RGB +-
+ if (selfytag[1]) d.write(selfytag[1]);
+ if (selfv[10]) d.write(inp + 'onclick="alplus(0,1)" ' + selfv[10]);
+ if (selfv[12]) d.write(inp + 'onclick="alplus(1,1)" ' + selfv[12]);
+ if (selfv[14]) d.write(inp + 'onclick="alplus(2,1)" ' + selfv[14]);
+ if (selfv[16]) d.write(inp + 'onclick="alrgb(1)" ' + selfv[16]);
+ if (selfv[11]) d.write(inp + 'onclick="alplus(0,-1)" ' + selfv[11]);
+ if (selfv[13]) d.write(inp + 'onclick="alplus(1,-1)" ' + selfv[13]);
+ if (selfv[15]) d.write(inp + 'onclick="alplus(2,-1)" ' + selfv[15]);
+ if (selfv[17]) d.write(inp + 'onclick="alrgb(-1)" ' + selfv[17]);
+
+ // トーンセレクト
+ if (selfv[0]) {
+ d.write('Tone <select name="tone" onchange="tone_sel(this.value)">');
+ for (var i = 0; i <= 100; i += 5) {
+ d.write('<option value="' + i + '">' + i + "%</option>\n");
+ if (i >= 10) {
+ i += 5;
+ }
+ }
+ d.write("</select>");
+ d.write(inp + 'value="+" onclick="tone_plus(1)">');
+ d.write(inp + 'value="-" onclick="tone_plus(-1)">\n');
+ }
+
+ // GRADATION
+ if (selfytag[2]) d.write(selfytag[2]);
+ if (selfv[18]) d.write(inr + 'name="gradc" value="2" ' + selfv[18]); //18
+ if (selfv[19]) d.write(inr + 'name="gradc" value="3" ' + selfv[19]); //19
+ if (selfv[20]) d.write(inr + 'name="gradc" value="4" ' + selfv[20]); //20
+ if (selfv[21]) d.write(inp + 'onclick="grady(0)" ' + selfv[21]); //21
+ if (selfv[22]) d.write(inp + 'onclick="grady(1)" ' + selfv[22]); //22
+ if (selfv[23]) d.write(inp + 'onclick="grady(-1)" ' + selfv[23]); //23
+
+ // 追加・削除
+ if (selfytag[3]) d.write(selfytag[3]);
+ if (selfv[24]) d.write(inp + 'onclick="plusy()" ' + selfv[24]); //24
+ if (selfv[25]) d.write(inp + 'onclick="minsy()" ' + selfv[25]); //25
+
+ // セーブ・オートセーブ
+ if (selfytag[4]) d.write(selfytag[4]);
+ if (selfv[26])
+ d.write('<input type="checkbox" name="autosave" value="1" ' + selfv[26]); //26
+ if (selfv[27]) d.write(inp + 'onclick="pcookset()" ' + selfv[27]); //27
+
+ // デフォルト
+ if (selfytag[5]) d.write(selfytag[5]);
+ if (selfv[28])
+ d.write(inr + 'name="h_sb" value="1" ' + psx_ch[1] + selfv[28]); //28
+ if (selfv[29])
+ d.write(inr + 'name="h_sb" value="0" ' + psx_ch[0] + selfv[29]); //29
+ if (selfv[30]) d.write(inp + 'onclick="def_list()" ' + selfv[30]); //30
+
+ // UPLOAD / DOWNLOAD
+ if (selfytag[6]) d.write(selfytag[6]);
+ if (selfv[31]) d.write('<input type="text" name="palz" ' + selfv[31]); //31
+ if (selfv[32]) d.write(inp + 'onclick="pupload()" ' + selfv[32]); //32
+ if (selfv[33]) d.write(inp + 'onclick="pdownload()" ' + selfv[33]); //33
+
+ // /FORM
+ if (selfytag[7]) d.write(selfytag[7]);
}