var initDOM = false;

var index = 0;
var link_items = [];
var f;
var $color_r;
var $color_g;
var $color_b;
var $color_hex;
var is_upload_image = false;
var is_reset = false;

$(document).ready(function()
{
	//Enable all functions
    initDOM = true;
	
	$color_r = $("#popup_pd_r");
	$color_g = $("#popup_pd_g");
	$color_b = $("#popup_pd_b");
	$color_hex = $("#popup_pd_hex");
	
	$(".selectColors > .colors .selectors .pickItems .item .text span").live('click', function()
    {
		index = $(".selectColors > .colors .selectors .pickItems .item .text span").index(this);
		//console.log(index);
		
		$color_r.val(pd.colors[index].R);
		$color_g.val(pd.colors[index].G);
		$color_b.val(pd.colors[index].B);
		$color_hex.val(pd.colors[index].HEX);
		
		f.setColor(pd.colors[index].HEX);

		return false;
	});
	
	$("#popup_pd_default").click(function()
	{
		pd.colors = pd.default_colors;
		
		//Рисуем цвета квадратиков
		$(link_items).each(function(i, $item)
		{
			if (i == 2)
				return true;
			set_box_color($item, pd.colors[i].HEX);
		});
		
		is_reset = true;
		
		return false;
	});
});

function splitRGB(color)
{
  color = getHexRGBColor(color); 
  var matches = color.match(/^#?([\dabcdef]{2})([\dabcdef]{2})([\dabcdef]{2})$/i);
    
  if (!matches) return false;
  
  for (var i=1, rgb = new Array(3);  i<=3; i++) rgb[i-1] = parseInt(matches[i],16);
  
  return rgb;
}

function getHexRGBColor(color)
{
  color = color.replace(/\s/g,"");
  var aRGB = color.match(/^rgb\((\d{1,3}[%]?),(\d{1,3}[%]?),(\d{1,3}[%]?)\)$/i);

  if(aRGB)
  {
    color = '';
    for (var i=1;  i<=3; i++) color += Math.round((aRGB[i][aRGB[i].length-1]=="%"?2.55:1)*parseInt(aRGB[i])).toString(16).replace(/^(.)$/,'0$1');
  }
  else color = color.replace(/^#?([\da-f])([\da-f])([\da-f])$/i, '$1$1$2$2$3$3');
  
  return color;
}

/**
global namespace 
pd.source_id
pd.source_type
pd.active_link  = [0,1,3,4]
pd.colors[0,1,3,4].R
pd.colors[0,1,3,4].G
pd.colors[0,1,3,4].B
pd.colors[0,1,3,4].HEX
pd.default_colors
*/

function pd_setting_show()
{
	if (!initDOM)
		return;
		
	link_items = [];
	
	var $popup = $("#popup_pd");
	var $popup_ajax = $popup.find(".ajaxLoaderP");
	var $item_color_menu = $("#popup_pd_color_menu");
	var $item_color_links = $("#popup_pd_color_links");
	var $item_upload_picture = $("#popup_pd_upload_picture");
	var $item_color_text = $("#popup_pd_color_text");
	var $item_color_background = $("#popup_pd_color_background");
	
	link_items[0] = $item_color_menu;
	link_items[1] = $item_color_links;
	link_items[3] = $item_color_text;
	link_items[4] = $item_color_background;
	
	$popup.modal(
	{
		closeClass: "cancel", 
		opacity:30,
		overlayCss: {backgroundColor:"#000"},
		onShow: function (dialog) 
		{
			//Рисуем цвета квадратиков
			$(link_items).each(function(i, $item)
			{
				if (i == 2)
					return true;
				set_box_color($item, pd.colors[i].HEX);
			});
			
			f = $.farbtastic('#popup_pd_ring');
			
			$color_r.val(pd.colors[0].R);
			$color_g.val(pd.colors[0].G);
			$color_b.val(pd.colors[0].B);
			$color_hex.val(pd.colors[0].HEX.substring(1));
			f.setColor(pd.colors[0].HEX);
			
			f.linkTo(function(color)
			{
				set_box_color(link_items[index], color);
				
				var rgbArr = splitRGB(color);
				var R = rgbArr[0];
				var G = rgbArr[1];
				var B = rgbArr[2];
				
				pd.colors[index].HEX = color;
				
				color = color.substring(1);
				$color_hex.val(color);
				$color_r.val(R);
				$color_g.val(G);
				$color_b.val(B);
				
				pd.colors[index].R = R;
				pd.colors[index].G = G;
				pd.colors[index].B = B;
			});
			
			//uploader
			$("#upload_background").uploadify({
					'uploader'       : 'uploadify.swf',
					'script'         : 'upload.php?PHPSESSID='+sess_id,
					'cancelImg'      : 'upload/uploadify/cancel.png',
					'buttonText'     : 'browse image',
					'auto'           : true,
					'buttonImg'		 : 'images/232x27.png',
					'fileDataName'	 : 'background',
					'scriptData'	 : 
					{
						'action':'background', 
						"cookie":$.cookie("iflycookie"), 
						"source_id":pd.source_id, 
						"source_type":pd.source_type
					},
					'linkID'		 : 'link_upload_pd',
					onComplete: function(event, queueID, fileObj, response, data)
					{				
                        $popup_ajax.hide();
						is_upload_image = true;
						//console.log(response);
					},
                    onSelect: function (event, queueID, fileObj)
                    {
                        $popup_ajax.show(); 
                    }
				});
			
			$(".save").focus();
			//Сохраняем
			$popup.find(".save").click(function()
			{
				$popup_ajax.show();
				$.ajax(
				{
					type: "POST", 
					url: "processing.php", 
					data: {
						'page': 'pagedesign',
						'action': 'set_colors',
						'source_id': pd.source_id,
						'source_type': pd.source_type,
						'color_menu': pd.colors[0].HEX,
						'color_links': pd.colors[1].HEX,
						'color_text': pd.colors[3].HEX,
						'color_background': pd.colors[4].HEX,
						'is_upload_image': is_upload_image,
						'is_reset': is_reset,
						'rnd': Math.random(100)
					},
					dataType: "json",
					beforeSend: function(xhr) 
					{
						xhr.setRequestHeader("Cookie", document.cookie);
					},
					success: function(data)
					{					
						window.location.reload();
					},
					error: function(XMLHttpRequest, textStatus, errorThrown)
					{
					}
				});
					
				return false;
			});
		}
	});
}

function set_box_color($item, color)
{
	return $item.find(".pick").css("background-color", color);
}
