function dec2hex(dec) {
	var hchars = "0123456789abcdef" // строка, содержащая все 16-е цифры
	if (dec > 255) return null;
	var i = dec%16;
	var j = (dec - i) /16;
	rezult = hchars.charAt(j);
	rezult += hchars.charAt(i);
	return rezult;
}

Dragger = function(){
	var _p = this;
	var current_maincolor = '';
	var current_y = 74;

	this.init = function(){

		var horiz_line = $('#horizontal_line').offset();

		$('div.dragger_point').mouseenter(function(){ /*$('#debug2').html('Enter');*/ });
		
		$('#horizontal_line div.dragger_point').draggable({
			axis: "x",
			containment: "parent",
			scroll: false,
			drag: function(event, ui){
				var move_x = event.pageX - horiz_line.left - 8;
				if(colorArray[move_x]){
					$('#debug1').html(colorArray[move_x]);
					_p.current_maincolor = colorArray[move_x];
					_p.adjustBrightness();
					//$('#car_bg').css('background-color',colorArray[move_x]);
					$('div.vertical_line_container').css('background-position-x',0-move_x);
				}
			}
		});

		$('#vertical_line div.dragger_point').draggable({
			axis: "y",
			containment: "parent",
			scroll: false,
			drag: function(event, ui){
				var move_y = event.pageY - horiz_line.top - 35;
				if(move_y > 0 && move_y < 150){
					_p.adjustBrightness();
					current_y = move_y;
				}
				//$('#debug1').html(colorArray[move_x]); 

				//$('#car_bg').css('background-color',colorArray[move_x]);
			}
		});

		$('div.dragger_point').mouseleave(function(){ /*$('#debug2').html('Leave');*/ });
	}
	this.adjustBrightness = function(){
		var hex_r = parseInt("0x"+_p.current_maincolor.substr(1,2));
		var hex_g = parseInt("0x"+_p.current_maincolor.substr(3,2));
		var hex_b = parseInt("0x"+_p.current_maincolor.substr(5,2));
		
		n = _p.calculateBrightness({'r':hex_r,'g':hex_g,'b':hex_b,'y':current_y});

		$('#debug4').html(n[0]+" "+n[1]+" "+n[2]);
		var rColor = '#'+dec2hex(n[0])+dec2hex(n[1])+dec2hex(n[2]);
		$('#debug4').html(rColor);
		$('#car_bg').css('background-color',rColor);
	}
	this.calculateBrightness = function(d){
		var y = d.y - 74;
		var r=-1;var g=-1;var b=-1;var per=0;
		//$('#debug3').html(d.r+" "+d.g+" "+d.b);
		per_px_to_255 = 0.28378378378378377;
		per_px_to_0 = 3.1621621621621621621621621621622;
		
		var da = [d.r,d.g,d.b];
		var m = max(da).index;

		if(y < 0){//Осветление
			y = Math.abs(y);
			if(m == 0){r = d.r + Math.round(y*per_px_to_255);}
			if(m == 1){g = d.g + Math.round(y*per_px_to_255);}
			if(m == 2){b = d.b + Math.round(y*per_px_to_255);}

			if(r < 0){per = (255 - d.r)/74;r = d.r + Math.round(y*per);}	
			if(g < 0){per = (255 - d.g)/74;g = d.g + Math.round(y*per);}
			if(b < 0){per = (255 - d.b)/74;b = d.b + Math.round(y*per);}

		}else{//Затемнение
			if(m == 0){r = d.r - Math.round(y*per_px_to_0);}
			if(m == 1){g = d.g - Math.round(y*per_px_to_0);}
			if(m == 2){b = d.b - Math.round(y*per_px_to_0);}

			if(r < 0){per = (d.r)/74;r = d.r - Math.round(y*per);}	
			if(g < 0){per = (d.g)/74;g = d.g - Math.round(y*per);}
			if(b < 0){per = (d.b)/74;b = d.b - Math.round(y*per);}
		}

		return [r,g,b];
	}
}
function max(d){var cur = Number.MIN_VALUE;var a = 0;for(i=0;i<=d.length;i++){if(d[i] > cur){cur = d[i];a = i;}}return {'index':a,'value':cur};}
function min(d){var cur = Number.MAX_VALUE;var a = 0;for(i=0;i<=d.length;i++){if(d[i] < cur){cur = d[i];a = i;}}return {'index':a,'value':cur};}
