// ***************************************************************************
//                          wmColorPicker.js  -  description
//                             -------------------
//    begin                : Fri Dec 11 2005
//    copyright            : (C) 2005 by Andrei Gavrila
//    email                : andrei.gavrila@gmail.com
// ***************************************************************************
//
// ***************************************************************************
// *                                                                         *
// *   This program is free software; you can redistribute it and/or modify  *
// *   it under the terms of the GNU General Public License as published by  *
// *   the Free Software Foundation; either version 2 of the License, or     *
// *   (at your option) any later version.                                   *
// *                                                                         *
// ***************************************************************************

var wmColorPickerDefined = 0;
var wmColorPickerColors1 = Array("000000","000033","000066","000099","0000CC","0000FF","330000","330033","330066","330099","3300CC",
                                 "3300FF","660000","660033","660066","660099","6600CC","6600FF","990000","990033","990066","990099",
                                 "9900CC","9900FF","CC0000","CC0033","CC0066","CC0099","CC00CC","CC00FF","FF0000","FF0033","FF0066",
                                 "FF0099","FF00CC","FF00FF","003300","003333","003366","003399","0033CC","0033FF","333300","333333",
                                 "333366","333399","3333CC","3333FF","663300","663333","663366","663399","6633CC","6633FF","993300",
                                 "993333","993366","993399","9933CC","9933FF","CC3300","CC3333","CC3366","CC3399","CC33CC","CC33FF",
                                 "FF3300","FF3333","FF3366","FF3399","FF33CC","FF33FF","006600","006633","006666","006699","0066CC",
                                 "0066FF","336600","336633","336666","336699","3366CC","3366FF","666600","666633","666666","666699",
                                 "6666CC","6666FF","996600","996633","996666","996699","9966CC","9966FF","CC6600","CC6633","CC6666",
                                 "CC6699","CC66CC","CC66FF","FF6600","FF6633","FF6666","FF6699","FF66CC","FF66FF","009900","009933",
                                 "009966","009999","0099CC","0099FF","339900","339933","339966","339999","3399CC","3399FF","669900",
                                 "669933","669966","669999","6699CC","6699FF","999900","999933","999966","999999","9999CC","9999FF",
                                 "CC9900","CC9933","CC9966","CC9999","CC99CC","CC99FF","FF9900","FF9933","FF9966","FF9999","FF99CC",
                                 "FF99FF","00CC00","00CC33","00CC66","00CC99","00CCCC","00CCFF","33CC00","33CC33","33CC66","33CC99",
                                 "33CCCC","33CCFF","66CC00","66CC33","66CC66","66CC99","66CCCC","66CCFF","99CC00","99CC33","99CC66",
                                 "99CC99","99CCCC","99CCFF","CCCC00","CCCC33","CCCC66","CCCC99","CCCCCC","CCCCFF","FFCC00","FFCC33",
                                 "FFCC66","FFCC99","FFCCCC","FFCCFF","00FF00","00FF33","00FF66","00FF99","00FFCC","00FFFF","33FF00",
                                 "33FF33","33FF66","33FF99","33FFCC","33FFFF","66FF00","66FF33","66FF66","66FF99","66FFCC","66FFFF",
                                 "99FF00","99FF33","99FF66","99FF99","99FFCC","99FFFF","CCFF00","CCFF33","CCFF66","CCFF99","CCFFCC",
                                 "CCFFFF","FFFF00","FFFF33","FFFF66","FFFF99","FFFFCC","FFFFFF");

var wmColorPickerColors2 = Array("000000","080808","101010","181818","202020","282828","303030","383838","404040","484848","505050",
                                 "585858","606060","686868","707070","787878","808080","888888","909090","989898","A0A0A0","A8A8A8",
                                 "B0B0B0","B8B8B8","C0C0C0","C8C8C8","D0D0D0","D8D8D8","E0E0E0","E8E8E8","F0F0F0","F8F8F8","FFFFFF");

function wmColorPicker(field, x, y, fCall)
{
	if (!wmColorPickerDefined) {
		// We need mouse position
		//

		if (!mouse_captured)
			wmCaptureMouse();

		// Create the color picker
		//

		var wmColorPicker       = document.createElement('div');
		wmColorPicker.id        = 'wmColorPicker';
		wmColorPicker.className = 'wmColorPicker';

		// Attach the events

		wmAddEventListener(wmColorPicker, 'mousedown', function () { wmZIndex(wmColorPicker, wmZIndexIndex); wmZIndexIndex++; }, false);

		// Attach it to the main window
		//

		wmGetElementById(wmContainerId).appendChild(wmColorPicker);


		wmColorPickerDefined = 1;
	}

	// Build the content
	//

	var       i = 0;
	var content = '<b>' + wmText(100) + '</b><br /><br />';

	for (i = 0; i < wmColorPickerColors1.length; i++)
		content += ' \
<div class="wmColorPickerColor" style="background-color: #' + wmColorPickerColors1[i] + ';" \
  onMouseOver="javascript: wmColorPickerPreview(\''+ wmColorPickerColors1[i] + '\');" \
  onMouseDown="javascript: wmColorPickerSetColor(\''+ wmColorPickerColors1[i] + '\', \'' + field + '\', \'' + fCall + '\');" \
></div>';

	content += '<div class="wmColorPickerSeparator"></div>';

	for (i = 0; i < wmColorPickerColors2.length; i++)
		content += ' \
<div class="wmColorPickerColor" style="background-color: #' + wmColorPickerColors2[i] + ';" \
  onMouseOver="javascript: wmColorPickerPreview(\''+ wmColorPickerColors2[i] + '\');" \
  onMouseDown="javascript: wmColorPickerSetColor(\''+ wmColorPickerColors2[i] + '\', \'' + field + '\', \'' + fCall + '\');" \
></div>';

	content += '<div id="wmColorPickerPreview" class="wmColorPickerPreview" style="background-color: #' + wmGetElementById(field).value + ';"></div>';
	content += '<a href="javascript: wmColorPickerCancel();">' + wmText(101) + '</a>';

	wmGetElementById('wmColorPicker').innerHTML = content;

	// Set up the position
	//

	wmMove('wmColorPicker', x, y);

	// Display it
	//

	wmShow(wmGetElementById('wmColorPicker'));
	wmZIndex(wmGetElementById('wmColorPicker'), wmZIndexIndex);
	wmZIndexIndex++;
}

function wmColorPickerPreview(src)
{
	wmGetElementById('wmColorPickerPreview').style.backgroundColor = '#' + src;
}

function wmColorPickerSetColor(src, field, fCall)
{
	wmGetElementById(field).value = src.toLowerCase();

	if (fCall != 'undefined') {
		eval(fCall);
	}

	wmHide('wmColorPicker');

	wmWindowSaved = false;
}

function wmColorPickerCancel()
{
	wmHide('wmColorPicker');
}

