var g_colorPicker;
var g_siteRoot;

function CreateColorPicker()
{
	g_colorPicker = new DualColorPicker();
	g_colorPicker.initialize("cp1");
	g_colorPicker.writeSimpleColorPicker();
}

function OpenSimpleColorPicker()
{
	OpenTab('colorPickerType', 'colorPickerTypeSimple'); 
	g_colorPicker.showSimpleColorPicker();
}

function OpenAdvancedColorPicker()
{
	OpenTab('colorPickerType', 'colorPickerTypeAdvanced'); 
	g_colorPicker.showAdvancedColorPicker();
}

function OpenColorPickerForm(event, color, closeHandler)
{
	g_colorPicker.setColor(color);
	
	var colorPickerForm = GetElement("colorPickerForm");
	colorPickerForm.style.top  = GetMouseOnEventYPosition(event);
	colorPickerForm.style.left = GetMouseOnEventXPosition(event) - 430;
	
	var updateButton = GetElement("updateColorButton");
	updateButton.onclick = function()
	{
		closeHandler(g_colorPicker.color());
		CloseColorPickerForm();
	}
		
	colorPickerForm.style.display = '';
	g_colorPicker.show();
}

function CloseColorPickerForm()
{
	g_colorPicker.hide();
	GetElement("colorPickerForm").style.display = 'none';
}

function ChooseWidgetSettingColor(settingName, event)
{
	var colorBlock = GetElement(settingName + "Block");
	var color = GetElementBg(settingName + "Block");

	OpenColorPickerForm(event, color, 
		function(newColor)
		{
			colorBlock.style.background = newColor;
		});
}

function ColorToHex(c)
{
	c = Number(c).toString(16);
	return (c.length == 1 ? "0" + c : c).toUpperCase(); 
}

function GetElementBg(elementName)
{
	var element = GetElement(elementName);
	var color = element.style.backgroundColor;
	if (color.substr(0, 3) == 'rgb')
	{
		var rgb = color.match(/\(([0-9]+), ([0-9]+), ([0-9]+)\)/);
		color = "#" + ColorToHex(rgb[1]) + ColorToHex(rgb[2]) + ColorToHex(rgb[3]);
	}
	return color;
}

function ReloadWidget()
{
	var countPresentations = GetElementValue('presentationsQuantity');
	var widgetSettings = 
	{
		"presentationsQuantity": countPresentations,
		"headerColor":           GetElementBg('headerColorBlock'),
		"headerFontColor":       GetElementBg('headerFontColorBlock'),
		"backgroundColor":       GetElementBg('backgroundColorBlock'),
		"linkFontColor":         GetElementBg('linkFontColorBlock'),
		"openLinkMethod":        "_self",
		"feedURL":               GetWidgetFeedUrl()
	};
	
	var widgetHeight = 644;
	if (GetFlashApp('widget'))
	{
		widgetHeight = GetFlashApp('widget').calculateWidgetHeight(countPresentations);
		widgetHeight += 2;
	}
	
	InsertPlayerIntoDiv('widgetContent', 'widget', g_siteRoot + "/flash/SidebarWidget.swf", widgetSettings, 152, widgetHeight);
	GetElement('widgetEmbed').value = GetPlayerEmbed('widget', g_siteRoot + "/flash/SidebarWidget.swf", widgetSettings, 152, widgetHeight);
}

function GetWidgetFeedUrl()
{
	var feedType  = 'user';
	var feedTypes = document.getElementsByName('feed_type');
	for(var i = 0; i < feedTypes.length; ++i)
	{
		if (feedTypes[i].checked)
			feedType = feedTypes[i].value;
	}
		
	var feedUrl;
	switch(feedType)
	{
		case 'otherUser':
			feedUrl = g_siteRoot + "/people/" + GetElementValue('otherUserLogin') + "/subscribe" + GetElementValue('otherUserFeed');			
			break;
		default:
			feedUrl = GetElementValue(feedType + 'Feed'); 
	}
	return feedUrl;
}

function CopyWidgetEmbed()
{
	CopyToClipboard(GetElementValue('widgetEmbed'));
}

$(function(){
    g_siteRoot = $("#site_root").val();

    ReloadWidget();

    RegisterTabControl("colorPickerType");
    OpenTab("colorPickerType", "colorPickerTypeSimple");
});
