function getImageSliderHeight(){
if(!slider_handle_image_obj){
slider_handle_image_obj=new Image();
slider_handle_image_obj.src=form_widget_amount_slider_handle;
}
if(slider_handle_image_obj.width>0){
return;
}else{
setTimeout('getImageSliderHeight()',50);
}
}
function positionSliderImage(e,theIndex,inputObj)
{
if(this)inputObj=this;
if(!theIndex)theIndex=inputObj.getAttribute('sliderIndex');
var handleImg=document.getElementById('slider_handle'+theIndex);
var ratio=sliderObjectArray[theIndex]['width']/(sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);
var currentValue=sliderObjectArray[theIndex]['formTarget'].value-sliderObjectArray[theIndex]['min'];
handleImg.style.left=currentValue*ratio+'px';
setColorByRGB();
}
function adjustFormValue(theIndex)
{
var handleImg=document.getElementById('slider_handle'+theIndex);
var ratio=sliderObjectArray[theIndex]['width']/(sliderObjectArray[theIndex]['max']-sliderObjectArray[theIndex]['min']);
var currentPos=handleImg.style.left.replace('px','');
sliderObjectArray[theIndex]['formTarget'].value=Math.round(currentPos/ratio)+sliderObjectArray[theIndex]['min'];
}
function initMoveSlider(e)
{
if(document.all)e=event;
slideInProgress=true;
event_start_x=e.clientX;
handle_start_x=this.style.left.replace('px','');
currentSliderIndex=this.id.replace(/[^\d]/g,'');
return false;
}
function startMoveSlider(e)
{
if(document.all)e=event;
if(!slideInProgress)return;
var leftPos=handle_start_x/1+e.clientX/1-event_start_x;
if(leftPos<0)leftPos=0;
if(leftPos/1>sliderObjectArray[currentSliderIndex]['width'])leftPos=sliderObjectArray[currentSliderIndex]['width'];
document.getElementById('slider_handle'+currentSliderIndex).style.left=leftPos+'px';
adjustFormValue(currentSliderIndex);
if(sliderObjectArray[currentSliderIndex]['onchangeAction']){
eval(sliderObjectArray[currentSliderIndex]['onchangeAction']);
}
}
function stopMoveSlider()
{
slideInProgress=false;
}
function form_widget_amount_slider(targetElId,formTarget,width,min,max,onchangeAction)
{
if(!slider_handle_image_obj){
getImageSliderHeight();
}
slider_counter=slider_counter+1;
sliderObjectArray[slider_counter]=new Array();
sliderObjectArray[slider_counter]={"width":width-9,"min":min,"max":max,"formTarget":formTarget,"onchangeAction":onchangeAction};
formTarget.setAttribute('sliderIndex',slider_counter);
formTarget.onchange=positionSliderImage;
var parentObj=document.createElement('DIV');
parentObj.style.width=width+'px';
parentObj.style.height='12px';
parentObj.style.position='relative';
parentObj.id='slider_container'+slider_counter;
document.getElementById(targetElId).appendChild(parentObj);
var obj=document.createElement('DIV');
obj.className='form_widget_amount_slider';
obj.innerHTML='<span></span>';
obj.style.width=width+'px';
obj.id='slider_slider'+slider_counter;
obj.style.position='absolute';
obj.style.bottom='0px';
parentObj.appendChild(obj);
var handleImg=document.createElement('IMG');
handleImg.style.position='absolute';
handleImg.style.left='0px';
handleImg.style.zIndex=5;
handleImg.src=slider_handle_image_obj.src;
handleImg.id='slider_handle'+slider_counter;
handleImg.onmousedown=initMoveSlider;
if(document.body.onmouseup){
if(document.body.onmouseup.toString().indexOf('stopMoveSlider')==-1){
alert('You allready have an onmouseup event assigned to the body tag');
}
}else{
document.body.onmouseup=stopMoveSlider;
document.body.onmousemove=startMoveSlider;
}
handleImg.ondragstart=form_widget_cancel_event;
parentObj.appendChild(handleImg);
positionSliderImage(false,slider_counter);
}
var namedColors=new Array('AliceBlue','AntiqueWhite','Aqua','Aquamarine','Azure','Beige','Bisque','Black','BlanchedAlmond','Blue','BlueViolet','Brown',
'BurlyWood','CadetBlue','Chartreuse','Chocolate','Coral','CornflowerBlue','Cornsilk','Crimson','Cyan','DarkBlue','DarkCyan','DarkGoldenRod','DarkGray',
'DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','Darkorange','DarkOrchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateGray',
'DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DimGray','DodgerBlue','Feldspar','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsboro',
'GhostWhite','Gold','GoldenRod','Gray','Green','GreenYellow','HoneyDew','HotPink','IndianRed','Indigo','Ivory','Khaki','Lavender','LavenderBlush',
'LawnGreen','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGoldenRodYellow','LightGrey','LightGreen','LightPink','LightSalmon','LightSeaGreen',
'LightSkyBlue','LightSlateBlue','LightSlateGray','LightSteelBlue','LightYellow','Lime','LimeGreen','Linen','Magenta','Maroon','MediumAquaMarine',
'MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateBlue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','MidnightBlue',
'MintCream','MistyRose','Moccasin','NavajoWhite','Navy','OldLace','Olive','OliveDrab','Orange','OrangeRed','Orchid','PaleGoldenRod','PaleGreen',
'PaleTurquoise','PaleVioletRed','PapayaWhip','PeachPuff','Peru','Pink','Plum','PowderBlue','Purple','Red','RosyBrown','RoyalBlue','SaddleBrown',
'Salmon','SandyBrown','SeaGreen','SeaShell','Sienna','Silver','SkyBlue','SlateBlue','SlateGray','Snow','SpringGreen','SteelBlue','Tan','Teal','Thistle',
'Tomato','Turquoise','Violet','VioletRed','Wheat','White','WhiteSmoke','Yellow','YellowGreen');
var namedColorRGB=new Array('#F0F8FF','#FAEBD7','#00FFFF','#7FFFD4','#F0FFFF','#F5F5DC','#FFE4C4','#000000','#FFEBCD','#0000FF','#8A2BE2','#A52A2A','#DEB887',
'#5F9EA0','#7FFF00','#D2691E','#FF7F50','#6495ED','#FFF8DC','#DC143C','#00FFFF','#00008B','#008B8B','#B8860B','#A9A9A9','#006400','#BDB76B','#8B008B',
'#556B2F','#FF8C00','#9932CC','#8B0000','#E9967A','#8FBC8F','#483D8B','#2F4F4F','#00CED1','#9400D3','#FF1493','#00BFFF','#696969','#1E90FF','#D19275',
'#B22222','#FFFAF0','#228B22','#FF00FF','#DCDCDC','#F8F8FF','#FFD700','#DAA520','#808080','#008000','#ADFF2F','#F0FFF0','#FF69B4','#CD5C5C','#4B0082',
'#FFFFF0','#F0E68C','#E6E6FA','#FFF0F5','#7CFC00','#FFFACD','#ADD8E6','#F08080','#E0FFFF','#FAFAD2','#D3D3D3','#90EE90','#FFB6C1','#FFA07A','#20B2AA',
'#87CEFA','#8470FF','#778899','#B0C4DE','#FFFFE0','#00FF00','#32CD32','#FAF0E6','#FF00FF','#800000','#66CDAA','#0000CD','#BA55D3','#9370D8','#3CB371',
'#7B68EE','#00FA9A','#48D1CC','#C71585','#191970','#F5FFFA','#FFE4E1','#FFE4B5','#FFDEAD','#000080','#FDF5E6','#808000','#6B8E23','#FFA500','#FF4500',
'#DA70D6','#EEE8AA','#98FB98','#AFEEEE','#D87093','#FFEFD5','#FFDAB9','#CD853F','#FFC0CB','#DDA0DD','#B0E0E6','#800080','#FF0000','#BC8F8F','#4169E1',
'#8B4513','#FA8072','#F4A460','#2E8B57','#FFF5EE','#A0522D','#C0C0C0','#87CEEB','#6A5ACD','#708090','#FFFAFA','#00FF7F','#4682B4','#D2B48C','#008080',
'#D8BFD8','#FF6347','#40E0D0','#EE82EE','#D02090','#F5DEB3','#FFFFFF','#F5F5F5','#FFFF00','#9ACD32');
var color_picker_div=false;
var color_picker_active_tab=false;
var color_picker_form_field=false;
var color_picker_active_input=false;
function baseConverter(number,ob,nb){
number=number+"";
number=number.toUpperCase();
var list="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var dec=0;
for(var i=0;i<=number.length;i++){
dec+=(list.indexOf(number.charAt(i)))*(Math.pow(ob,(number.length-i-1)));
}
number="";
var magnitude=Math.floor((Math.log(dec))/(Math.log(nb)));
for(var i=magnitude;i>=0;i--){
var amount=Math.floor(dec/Math.pow(nb,i));
number=number+list.charAt(amount);
dec-=amount*(Math.pow(nb,i));
}
if(number.length==0)number=0;
return number;
}
function colorPickerGetTopPos(inputObj)
{
var returnValue=inputObj.offsetTop;
while((inputObj=inputObj.offsetParent)!=null){
returnValue+=inputObj.offsetTop;
}
return returnValue;
}
function colorPickerGetLeftPos(inputObj)
{
var returnValue=inputObj.offsetLeft;
while((inputObj=inputObj.offsetParent)!=null)returnValue+=inputObj.offsetLeft;
return returnValue;
}
function cancelColorPickerEvent(){
return false;
}
function showHideColorOptions(e,inputObj)
{
var thisObj=this;
if(inputObj){
var parentNode=inputObj.parentNode;
thisObj=inputObj;
}else var parentNode=this.parentNode;
var activeColorDiv=false;
var subDiv=parentNode.getElementsByTagName('DIV')[0];
counter=0;
var initZIndex=10;
var contentDiv=document.getElementById('color_picker_content').getElementsByTagName('DIV')[0];
do{
if(subDiv.tagName=='DIV'&&subDiv.className!='colorPickerCloseButton'){
if(subDiv==thisObj){
thisObj.className='colorPickerTab_active';
thisObj.style.zIndex=50;
var img=thisObj.getElementsByTagName('IMG')[0];
img.src="images/nopreload/tab_right_active.gif"
img.src=img.src.replace(/inactive/,'active');
contentDiv.style.display='block';
activeColorDiv=contentDiv;
}else{
subDiv.className='colorPickerTab_inactive';
var img=subDiv.getElementsByTagName('IMG')[0];
img.src="images/nopreload/tab_right_inactive.gif";
if(activeColorDiv)
subDiv.style.zIndex=initZIndex-counter;
else
subDiv.style.zIndex=counter;
contentDiv.style.display='none';
}
counter++;
}
subDiv=subDiv.nextSibling;
if(contentDiv.nextSibling)contentDiv=contentDiv.nextSibling;
}while(subDiv);
document.getElementById('colorPicker_statusBarTxt').innerHTML='&nbsp;';
}
function createColorPickerTopRow(inputObj){
var tabs=['RGB','Named colors','Color slider'];
var tabWidths=[37,90,70];
var div=document.createElement('DIV');
div.className='colorPicker_topRow';
inputObj.appendChild(div);
var currentWidth=0;
for(var no=0;no<tabs.length;no++){
var tabDiv=document.createElement('DIV');
tabDiv.onselectstart=cancelColorPickerEvent;
tabDiv.ondragstart=cancelColorPickerEvent;
if(no==0){
suffix='active';
color_picker_active_tab=this;
}else suffix='inactive';
tabDiv.id='colorPickerTab'+no;
tabDiv.onclick=showHideColorOptions;
if(no==0)tabDiv.style.zIndex=50;else tabDiv.style.zIndex=1+(tabs.length-no);
tabDiv.style.left=currentWidth+'px';
tabDiv.style.position='absolute';
tabDiv.className='colorPickerTab_'+suffix;
var tabSpan=document.createElement('SPAN');
tabSpan.innerHTML=tabs[no];
tabDiv.appendChild(tabSpan);
var tabImg=document.createElement('IMG');
tabImg.src="images/nopreload/tab_right_"+suffix+".gif";
tabDiv.appendChild(tabImg);
div.appendChild(tabDiv);
if(navigatorVersion<6&&MSIE){
tabSpan.style.position='relative';
tabImg.style.position='relative';
tabImg.style.left='-3px';
tabDiv.style.cursor='hand';
}
currentWidth=currentWidth+tabWidths[no];
}
var closeButton=document.createElement('DIV');
closeButton.className='colorPickerCloseButton';
closeButton.innerHTML='x';
closeButton.onclick=closeColorPicker;
closeButton.onmouseover=toggleCloseButton;
closeButton.onmouseout=toggleOffCloseButton;
div.appendChild(closeButton);
}
function toggleCloseButton()
{
this.style.color='#FFF';
this.style.backgroundColor='#317082';
}
function toggleOffCloseButton()
{
this.style.color='';
this.style.backgroundColor='';
}
function closeColorPicker()
{
color_picker_div.style.display='none';
}
function createWebColors(inputObj){
var webColorDiv=document.createElement('DIV');
webColorDiv.style.paddingTop='1px';
inputObj.appendChild(webColorDiv);
for(var r=15;r>=0;r-=3){
for(var g=0;g<=15;g+=3){
for(var b=0;b<=15;b+=3){
var red=baseConverter(r,10,16)+'';
var green=baseConverter(g,10,16)+'';
var blue=baseConverter(b,10,16)+'';
var color='#'+red+red+green+green+blue+blue;
var div=document.createElement('DIV');
div.style.backgroundColor=color;
div.innerHTML='<span></span>';
div.className='colorSquare';
div.title=color;
div.onclick=chooseColor;
div.setAttribute('rgbColor',color);
div.onmouseover=colorPickerShowStatusBarText;
div.onmouseout=colorPickerHideStatusBarText;
webColorDiv.appendChild(div);
}
}
}
}
function createNamedColors(inputObj){
var namedColorDiv=document.createElement('DIV');
namedColorDiv.style.paddingTop='1px';
namedColorDiv.style.display='none';
inputObj.appendChild(namedColorDiv);
for(var no=0;no<namedColors.length;no++){
var color=namedColorRGB[no];
var div=document.createElement('DIV');
div.style.backgroundColor=color;
div.innerHTML='<span></span>';
div.className='colorSquare';
div.title=namedColors[no];
div.onclick=chooseColor;
div.onmouseover=colorPickerShowStatusBarText;
div.onmouseout=colorPickerHideStatusBarText;
div.setAttribute('rgbColor',color);
namedColorDiv.appendChild(div);
}
}
function colorPickerHideStatusBarText()
{
document.getElementById('colorPicker_statusBarTxt').innerHTML='&nbsp;';
}
function colorPickerShowStatusBarText()
{
var txt=this.getAttribute('rgbColor');
if(this.title.indexOf('#')<0)txt=txt+" ("+this.title+")";
document.getElementById('colorPicker_statusBarTxt').innerHTML=txt;
}
function createAllColorDiv(inputObj){
var allColorDiv=document.createElement('DIV');
allColorDiv.style.display='none';
allColorDiv.className='js_color_picker_allColorDiv';
allColorDiv.style.paddingLeft='3px';
allColorDiv.style.paddingTop='5px';
allColorDiv.style.paddingBottom='5px';
inputObj.appendChild(allColorDiv);
var labelDiv=document.createElement('DIV');
labelDiv.className='colorSliderLabel';
labelDiv.innerHTML='R';
allColorDiv.appendChild(labelDiv);
var innerDiv=document.createElement('DIV');
innerDiv.className='colorSlider';
innerDiv.id='sliderRedColor';
allColorDiv.appendChild(innerDiv);
var innerDivInput=document.createElement('DIV');
innerDivInput.className='colorInput';
var input=document.createElement('INPUT');
input.id='js_color_picker_red_color';
input.maxlength=3;
input.style.width='48px';
input.style.fontSize='11px';
input.name='redColor';
input.value=0;
innerDivInput.appendChild(input);
allColorDiv.appendChild(innerDivInput);
var labelDiv=document.createElement('DIV');
labelDiv.className='colorSliderLabel';
labelDiv.innerHTML='G';
allColorDiv.appendChild(labelDiv);
var innerDiv=document.createElement('DIV');
innerDiv.className='colorSlider';
innerDiv.id='sliderGreenColor';
allColorDiv.appendChild(innerDiv);
var innerDivInput=document.createElement('DIV');
innerDivInput.className='colorInput';
var input=document.createElement('INPUT');
input.id='js_color_picker_green_color';
input.maxlength=3;
input.style.width='48px';
input.style.fontSize='11px';
input.name='GreenColor';
input.value=0;
innerDivInput.appendChild(input);
allColorDiv.appendChild(innerDivInput);
var labelDiv=document.createElement('DIV');
labelDiv.className='colorSliderLabel';
labelDiv.innerHTML='B';
allColorDiv.appendChild(labelDiv);
var innerDiv=document.createElement('DIV');
innerDiv.className='colorSlider';
innerDiv.id='sliderBlueColor';
allColorDiv.appendChild(innerDiv);
var innerDivInput=document.createElement('DIV');
innerDivInput.className='colorInput';
var input=document.createElement('INPUT');
input.id='js_color_picker_blue_color';
input.maxlength=3;
input.style.width='48px';
input.style.fontSize='11px';
input.name='BlueColor';
input.value=0;
innerDivInput.appendChild(input);
allColorDiv.appendChild(innerDivInput);
var colorPreview=document.createElement('DIV');
colorPreview.className='colorPreviewDiv';
colorPreview.id='colorPreview';
colorPreview.style.backgroundColor='#000000';
colorPreview.innerHTML='<span></span>';
colorPreview.title='Click on me to assign color';
allColorDiv.appendChild(colorPreview);
colorPreview.onclick=chooseColorSlider;
var colorCodeDiv=document.createElement('DIV');
colorCodeDiv.className='colorCodeDiv';
var input=document.createElement('INPUT');
input.id='js_color_picker_color_code';
colorCodeDiv.appendChild(input);
input.maxLength=7;
input.style.fontSize='11px';
input.style.width='48px';
input.value='#000000';
input.onchange=setPreviewColorFromTxt;
input.onblur=setPreviewColorFromTxt;
allColorDiv.appendChild(colorCodeDiv);
var clearingDiv=document.createElement('DIV');
clearingDiv.style.clear='both';
allColorDiv.appendChild(clearingDiv);
form_widget_amount_slider('sliderRedColor',document.getElementById('js_color_picker_red_color'),170,0,255,"setColorByRGB()");
form_widget_amount_slider('sliderGreenColor',document.getElementById('js_color_picker_green_color'),170,0,255,"setColorByRGB()");
form_widget_amount_slider('sliderBlueColor',document.getElementById('js_color_picker_blue_color'),170,0,255,"setColorByRGB()");
}
function setPreviewColorFromTxt()
{
if(this.value.match(/\#[0-9A-F]{6}/g)){
document.getElementById('colorPreview').style.backgroundColor=this.value;
var r=this.value.substr(1,2);
var g=this.value.substr(3,2);
var b=this.value.substr(5,2);
document.getElementById('js_color_picker_red_color').value=baseConverter(r,16,10);
document.getElementById('js_color_picker_green_color').value=baseConverter(g,16,10);
document.getElementById('js_color_picker_blue_color').value=baseConverter(b,16,10);
positionSliderImage(false,1,document.getElementById('js_color_picker_red_color'));
positionSliderImage(false,2,document.getElementById('js_color_picker_green_color'));
positionSliderImage(false,3,document.getElementById('js_color_picker_blue_color'));
}
}
function chooseColor()
{
bbc('COLOR',this.getAttribute('rgbColor'));
color_picker_div.style.display='none';
}
function createStatusBar(inputObj)
{
var div=document.createElement('DIV');
div.className='colorPicker_statusBar';
var innerSpan=document.createElement('SPAN');
innerSpan.id='colorPicker_statusBarTxt';
div.appendChild(innerSpan);
inputObj.appendChild(div);
}
function chooseColorSlider()
{
bbc('COLOR',document.getElementById('js_color_picker_color_code').value);
color_picker_div.style.display='none';
}
function showColorPicker(inputObj,formField)
{
if(!color_picker_div){
color_picker_div=document.createElement('DIV');
color_picker_div.id='dhtmlgoodies_colorPicker';
color_picker_div.style.display='none';
document.body.appendChild(color_picker_div);
createColorPickerTopRow(color_picker_div);
var contentDiv=document.createElement('DIV');
contentDiv.id='color_picker_content';
color_picker_div.appendChild(contentDiv);
createWebColors(contentDiv);
createNamedColors(contentDiv);
createAllColorDiv(contentDiv);
createStatusBar(color_picker_div);
}
if(color_picker_div.style.display=='none'||color_picker_active_input!=inputObj)color_picker_div.style.display='block';else color_picker_div.style.display='none';
color_picker_div.style.left=colorPickerGetLeftPos(inputObj)+'px';
color_picker_div.style.top=colorPickerGetTopPos(inputObj)+inputObj.offsetHeight+2+'px';
color_picker_form_field=formField;
color_picker_active_input=inputObj;
}
function setColorByRGB()
{
var formObj=document.forms[0];
var r=document.getElementById('js_color_picker_red_color').value.replace(/[^\d]/,'');
var g=document.getElementById('js_color_picker_green_color').value.replace(/[^\d]/,'');
var b=document.getElementById('js_color_picker_blue_color').value.replace(/[^\d]/,'');
if(r/1>255)r=255;
if(g/1>255)g=255;
if(b/1>255)b=255;
r=baseConverter(r,10,16)+'';
g=baseConverter(g,10,16)+'';
b=baseConverter(b,10,16)+'';
if(r.length==1)r='0'+r;
if(g.length==1)g='0'+g;
if(b.length==1)b='0'+b;
document.getElementById('colorPreview').style.backgroundColor='#'+r+g+b;
document.getElementById('js_color_picker_color_code').value='#'+r+g+b;
}
function baseConverter(number,ob,nb){
number=number+"";
number=number.toUpperCase();
var list="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var dec=0;
for(var i=0;i<=number.length;i++){
dec+=(list.indexOf(number.charAt(i)))*(Math.pow(ob,(number.length-i-1)));
}
number="";
var magnitude=Math.floor((Math.log(dec))/(Math.log(nb)));
for(var i=magnitude;i>=0;i--){
var amount=Math.floor(dec/Math.pow(nb,i));
number=number+list.charAt(amount);
dec-=amount*(Math.pow(nb,i));
}
if(number.length==0)number=0;
return number;
}
function toHSV(rgbColor){
rgbColor=rgbColor.replace('#','');
red=baseConverter(rgbColor.substr(0,2),16,10);
green=baseConverter(rgbColor.substr(2,2),16,10);
blue=baseConverter(rgbColor.substr(4,2),16,10);
if(red.length==0)red=0;
if(green.length==0)green=0;
if(blue.length==0)blue=0;
red=red/255;
green=green/255;
blue=blue/255;
maxValue=Math.max(red,green,blue);
minValue=Math.min(red,green,blue);
var hue=0;
if(maxValue==minValue){
hue=0;
saturation=0;
}else{
if(red==maxValue){
hue=(green-blue)/(maxValue-minValue)/1;
}else if(green==maxValue){
hue=2+(blue-red)/1/(maxValue-minValue)/1;
}else if(blue==maxValue){
hue=4+(red-green)/(maxValue-minValue)/1;
}
saturation=(maxValue-minValue)/maxValue;
}
hue=hue*60;
valueBrightness=maxValue;
if(valueBrightness/1<0.5){
}
if(valueBrightness/1>=0.5){
}
returnArray=[hue,saturation,valueBrightness];
return returnArray;
}
function toRgb(hue,saturation,valueBrightness){
Hi=Math.floor(hue/60);
if(hue==360)Hi=0;
f=hue/60-Hi;
p=(valueBrightness*(1-saturation)).toPrecision(2);
q=(valueBrightness*(1-(f*saturation))).toPrecision(2);
t=(valueBrightness*(1-((1-f)*saturation))).toPrecision(2);
switch(Hi){
case 0:
red=valueBrightness;
green=t;
blue=p;
break;
case 1:
red=q;
green=valueBrightness;
blue=p;
break;
case 2:
red=q;
green=valueBrightness;
blue=t;
break;
case 3:
red=p;
green=q;;
blue=valueBrightness;
break;
case 4:
red=t;
green=p;
blue=valueBrightness;
break;
case 5:
red=valueBrightness;
green=p;
blue=q;
break;
}
if(saturation==0){
red=valueBrightness;
green=valueBrightness;
blue=valueBrightness;
}
red*=255;
green*=255;
blue*=255;
red=Math.round(red);
green=Math.round(green);
blue=Math.round(blue);
red=baseConverter(red,10,16);
green=baseConverter(green,10,16);
blue=baseConverter(blue,10,16);
red=red+"";
green=green+"";
blue=blue+"";
while(red.length<2){
red="0"+red;
}
while(green.length<2){
green="0"+green;
}
while(blue.length<2){
blue="0"+""+blue;
}
rgbColor="#"+red+""+green+""+blue;
return rgbColor.toUpperCase();
}
function findColorByDegrees(rgbColor,degrees){
rgbColor=rgbColor.replace('#','');
myArray=toHSV(rgbColor);
myArray[0]+=degrees;
if(myArray[0]>=360)myArray[0]-=360;
if(myArray[0]<0)myArray[0]+=360;
return toRgb(myArray[0],myArray[1],myArray[2]);
}
function findColorByBrightness(rgbColor,brightness){
rgbColor=rgbColor.replace('#','');
myArray=toHSV(rgbColor);
myArray[2]+=brightness/100;
if(myArray[2]>1)myArray[2]=1;
if(myArray[2]<0)myArray[2]=0;
myArray[1]+=brightness/100;
if(myArray[1]>1)myArray[1]=1;
if(myArray[1]<0)myArray[1]=0;
return toRgb(myArray[0],myArray[1],myArray[2]);
}
function base64_decode(data){
var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,dec="",tmp_arr=[];
if(!data){
return data;
}
data+='';
do{
h1=b64.indexOf(data.charAt(i++));
h2=b64.indexOf(data.charAt(i++));
h3=b64.indexOf(data.charAt(i++));
h4=b64.indexOf(data.charAt(i++));
bits=h1<<18|h2<<12|h3<<6|h4;
o1=bits>>16&0xff;
o2=bits>>8&0xff;
o3=bits&0xff;
if(h3==64){
tmp_arr[ac++]=String.fromCharCode(o1);
}else if(h4==64){
tmp_arr[ac++]=String.fromCharCode(o1,o2);
}else{
tmp_arr[ac++]=String.fromCharCode(o1,o2,o3);
}
}while(i<data.length);
dec=tmp_arr.join('');
dec=utf8_decode(dec);
return dec;
}
function utf8_decode(str_data){
var tmp_arr=[],i=0,ac=0,c1=0,c2=0,c3=0;
str_data+='';
while(i<str_data.length){
c1=str_data.charCodeAt(i);
if(c1<128){
tmp_arr[ac++]=String.fromCharCode(c1);
i++;
}else if((c1>191)&&(c1<224)){
c2=str_data.charCodeAt(i+1);
tmp_arr[ac++]=String.fromCharCode(((c1&31)<<6)|(c2&63));
i+=2;
}else{
c2=str_data.charCodeAt(i+1);
c3=str_data.charCodeAt(i+2);
tmp_arr[ac++]=String.fromCharCode(((c1&15)<<12)|((c2&63)<<6)|(c3&63));
i+=3;
}
}
return tmp_arr.join('');
}
function base64_encode(data){
var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,enc="",tmp_arr=[];
if(!data){
return data;
}
data=utf8_encode(data+'');
do{
o1=data.charCodeAt(i++);
o2=data.charCodeAt(i++);
o3=data.charCodeAt(i++);
bits=o1<<16|o2<<8|o3;
h1=bits>>18&0x3f;
h2=bits>>12&0x3f;
h3=bits>>6&0x3f;
h4=bits&0x3f;
tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);
}while(i<data.length);
enc=tmp_arr.join('');
switch(data.length%3){
case 1:
enc=enc.slice(0,-2)+'==';
break;
case 2:
enc=enc.slice(0,-1)+'=';
break;
}
return enc;
}
function utf8_encode(string){
string=(string+'').replace(/\r\n/g,"\n").replace(/\r/g,"\n");
var utftext="";
var start,end;
var stringl=0;
start=end=0;
stringl=string.length;
for(var n=0;n<stringl;n++){
var c1=string.charCodeAt(n);
var enc=null;
if(c1<128){
end++;
}else if((c1>127)&&(c1<2048)){
enc=String.fromCharCode((c1>>6)|192)+String.fromCharCode((c1&63)|128);
}else{
enc=String.fromCharCode((c1>>12)|224)+String.fromCharCode(((c1>>6)&63)|128)+String.fromCharCode((c1&63)|128);
}
if(enc!==null){
if(end>start){
utftext+=string.substring(start,end);
}
utftext+=enc;
start=end=n+1;
}
}
if(end>start){
utftext+=string.substring(start,string.length);
}
return utftext;
}
function urldecode(str){
var histogram={};
var ret=str.toString();
var replacer=function(search,replace,str){
var tmp_arr=[];
tmp_arr=str.split(search);
return tmp_arr.join(replace);
};
histogram["'"]='%27';
histogram['(']='%28';
histogram[')']='%29';
histogram['*']='%2A';
histogram['~']='%7E';
histogram['!']='%21';
histogram['%20']='+';
histogram['\u20AC']='%80';
histogram['\u0081']='%81';
histogram['\u201A']='%82';
histogram['\u0192']='%83';
histogram['\u201E']='%84';
histogram['\u2026']='%85';
histogram['\u2020']='%86';
histogram['\u2021']='%87';
histogram['\u02C6']='%88';
histogram['\u2030']='%89';
histogram['\u0160']='%8A';
histogram['\u2039']='%8B';
histogram['\u0152']='%8C';
histogram['\u008D']='%8D';
histogram['\u017D']='%8E';
histogram['\u008F']='%8F';
histogram['\u0090']='%90';
histogram['\u2018']='%91';
histogram['\u2019']='%92';
histogram['\u201C']='%93';
histogram['\u201D']='%94';
histogram['\u2022']='%95';
histogram['\u2013']='%96';
histogram['\u2014']='%97';
histogram['\u02DC']='%98';
histogram['\u2122']='%99';
histogram['\u0161']='%9A';
histogram['\u203A']='%9B';
histogram['\u0153']='%9C';
histogram['\u009D']='%9D';
histogram['\u017E']='%9E';
histogram['\u0178']='%9F';
for(replace in histogram){
search=histogram[replace];
ret=replacer(search,replace,ret)
}
ret=decodeURIComponent(ret);
return ret;
}
function urlencode(str){
var histogram={},tmp_arr=[];
var ret=(str+'').toString();
var replacer=function(search,replace,str){
var tmp_arr=[];
tmp_arr=str.split(search);
return tmp_arr.join(replace);
};
histogram["'"]='%27';
histogram['(']='%28';
histogram[')']='%29';
histogram['*']='%2A';
histogram['~']='%7E';
histogram['!']='%21';
histogram['%20']='+';
histogram['\u20AC']='%80';
histogram['\u0081']='%81';
histogram['\u201A']='%82';
histogram['\u0192']='%83';
histogram['\u201E']='%84';
histogram['\u2026']='%85';
histogram['\u2020']='%86';
histogram['\u2021']='%87';
histogram['\u02C6']='%88';
histogram['\u2030']='%89';
histogram['\u0160']='%8A';
histogram['\u2039']='%8B';
histogram['\u0152']='%8C';
histogram['\u008D']='%8D';
histogram['\u017D']='%8E';
histogram['\u008F']='%8F';
histogram['\u0090']='%90';
histogram['\u2018']='%91';
histogram['\u2019']='%92';
histogram['\u201C']='%93';
histogram['\u201D']='%94';
histogram['\u2022']='%95';
histogram['\u2013']='%96';
histogram['\u2014']='%97';
histogram['\u02DC']='%98';
histogram['\u2122']='%99';
histogram['\u0161']='%9A';
histogram['\u203A']='%9B';
histogram['\u0153']='%9C';
histogram['\u009D']='%9D';
histogram['\u017E']='%9E';
histogram['\u0178']='%9F';
ret=encodeURIComponent(ret);
for(search in histogram){
replace=histogram[search];
ret=replacer(search,replace,ret);
}
return ret.replace(/(\%([a-z0-9]{2}))/g,function(full,m1,m2){
return"%"+m2.toUpperCase();
});
return ret;
}
function nl2br(str,is_xhtml){
var breakTag='';
breakTag='<br />';
if(typeof is_xhtml!='undefined'&&!is_xhtml){
breakTag='<br>';
}
return(str+'').replace(/([^>]?)\n/g,'$1'+breakTag+'\n');
}

dragDrop={
keyHTML:'<a href="#" class="keyLink"></a>',
keySpeed:10,
initialMouseX:undefined,
initialMouseY:undefined,
startX:undefined,
startY:undefined,
dXKeys:undefined,
dYKeys:undefined,
draggedObject:undefined,
initElement:function(element){
if(typeof element=='string')
element=document.getElementById(element);
element.onmousedown=dragDrop.startDragMouse;
element.innerHTML+=dragDrop.keyHTML;
var links=element.getElementsByTagName('a');
var lastLink=links[links.length-1];
lastLink.relatedElement=element;
lastLink.onclick=dragDrop.startDragKeys;
},
startDragMouse:function(e){
dragDrop.startDrag(document.getElementById('pop1'));
var evt=e||window.event;
dragDrop.initialMouseX=evt.clientX;
dragDrop.initialMouseY=evt.clientY;
addEventSimple(document,'mousemove',dragDrop.dragMouse);
addEventSimple(document,'mouseup',dragDrop.releaseElement);
return false;
},
startDragKeys:function(){
dragDrop.startDrag(this.relatedElement);
dragDrop.dXKeys=dragDrop.dYKeys=0;
addEventSimple(document,'keydown',dragDrop.dragKeys);
addEventSimple(document,'keypress',dragDrop.switchKeyEvents);
this.blur();
return false;
},
startDrag:function(obj){
if(dragDrop.draggedObject)
dragDrop.releaseElement();
dragDrop.startX=obj.offsetLeft;
dragDrop.startY=obj.offsetTop;
dragDrop.draggedObject=obj;
obj.className+=' dragged';
},
dragMouse:function(e){
var evt=e||window.event;
var dX=evt.clientX-dragDrop.initialMouseX;
var dY=evt.clientY-dragDrop.initialMouseY;
dragDrop.setPosition(dX,dY);
return false;
},
dragKeys:function(e){
var evt=e||window.event;
var key=evt.keyCode;
switch(key){
case 37:
case 63234:
dragDrop.dXKeys-=dragDrop.keySpeed;
break;
case 38:
case 63232:
dragDrop.dYKeys-=dragDrop.keySpeed;
break;
case 39:
case 63235:
dragDrop.dXKeys+=dragDrop.keySpeed;
break;
case 40:
case 63233:
dragDrop.dYKeys+=dragDrop.keySpeed;
break;
case 13:
case 27:
dragDrop.releaseElement();
return false;
default:
return true;
}
dragDrop.setPosition(dragDrop.dXKeys,dragDrop.dYKeys);
if(evt.preventDefault)
evt.preventDefault();
return false;
},
setPosition:function(dx,dy){
dragDrop.draggedObject.style.left=dragDrop.startX+dx+'px';
dragDrop.draggedObject.style.top=dragDrop.startY+dy+'px';
},
switchKeyEvents:function(){
removeEventSimple(document,'keydown',dragDrop.dragKeys);
removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
addEventSimple(document,'keypress',dragDrop.dragKeys);
},
releaseElement:function(){
removeEventSimple(document,'mousemove',dragDrop.dragMouse);
removeEventSimple(document,'mouseup',dragDrop.releaseElement);
removeEventSimple(document,'keypress',dragDrop.dragKeys);
removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
removeEventSimple(document,'keydown',dragDrop.dragKeys);
dragDrop.draggedObject.className=dragDrop.draggedObject.className.replace(/dragged/,'');
dragDrop.draggedObject=null;
}
}
function addEventSimple(obj,evt,fn){
if(obj.addEventListener)
obj.addEventListener(evt,fn,false);
else if(obj.attachEvent)
obj.attachEvent('on'+evt,fn);
}
function removeEventSimple(obj,evt,fn){
if(obj.removeEventListener)
obj.removeEventListener(evt,fn,false);
else if(obj.detachEvent)
obj.detachEvent('on'+evt,fn);
}


function swapSrc(obj,src){
if(obj){
obj.src=src;
}
}