function ConfirmMessage(message, callback_yes, callback_no)
{
	if (typeof(callback_no) == "undefined")
	{
		callback_no = 'close';
	}
	
	if (typeof(callback_yes) == "undefined")
	{
		callback_yes = 'close';
	}
	
	var dia = new Dialog(message, [
		{
			label: PHPVars.get('yes'),
			callback: callback_yes
		},
		{
			label: PHPVars.get('no'),
			callback: callback_no
		}
	]);	
}

function AlertMessage(message, callback_ok)
{
	if (typeof(callback_ok) == "undefined")
	{
		callback_ok = 'close';
	}
	
	var dia = new Dialog(message, [
		{
			label: 'Ok',
			callback: callback_ok
		}
	]);	
}

function extend_data(table_id, display)
{
	var table = $('extend_table_' + table_id);
	var tbodies = table.tBodies;
	var isHidden = tbodies[0].style.display == 'none';
	
	if (display === undefined)
	{
		display = isHidden;
	}
	else
	{
		if (display == !isHidden) return;
	}
	
	if (display)
	{
		display = '';
		set_config('extend_tab_' + table_id, 1);
		$('extend_icon_' + table_id).src = Images.basePath + '../' + 'box_' + 'minus.gif';
	}
	else
	{
		display = 'none';
		set_config('extend_tab_' + table_id, 0);
		$('extend_icon_' + table_id).src = Images.basePath + '../' + 'box_' + 'plus.gif';
	}
	
	for (var r = 0; r < tbodies.length; r++)
	{
		
		tbodies[r].style.display = display;
	}
}

function copy_data(btn, from, to)
{
	var form = DOM.up(btn, 'form');
	
	new Dialog(PHPVars.get('copy_confirm'), [
		{
			label : PHPVars.get('yes'),
			callback : function()
			{
				form.appendChild(DOM.create('input', {
					type : 'hidden',
					name : 'copy_from',
					value : from
				}));
				form.appendChild(DOM.create('input', {
					type : 'hidden',
					name : 'copy_to',
					value : to
				}));
				
				this.close();
				
				var valid;
				try
				{
					var to_table = $(DOM.up(btn, 'table').id.replace(RegExp('_' + from), '_' + to));
					valid = Validation.validateForm(form, true, DOM.formElements(to_table));
				}
				catch(e)
				{
					valid = true;
				}
				
				if (valid) form.submit();
			}
		},
		{
			label : PHPVars.get('no'),
			callback : 'close'
		}
	]);
}

function set_config(name, value)
{
	new AJAX.Request(Request.get('basepath') + '/' + Request.get('module') + '/api_set_config/' + name + '/' + value, 
	{
		method: "POST",
		json: true
	});
}

function set_lang(lang)
{
	var response, req = new AJAX.Request(Request.get('basepath') + '/users/api_set_lang/', 
	{
		method: 'POST',
		asynchronous : false,
		json: true,
		parameters: 'lang=' + lang
	});
	
	if (response = req.response.responseJSON.result)
	{
		location.reload();
	}
}

function update_user_activity()
{
	if (document.getElementsByTagName('form').length == 0)
	{
		return false;
	}
	
	activityParams = ['module=' + Request.get('module')];
	
	if (Request.get('action') != 'edit')
	{
		activityParams.push('submodule=' + Request.get('action'));
	}
	
	params = Request.get('params');
	
	if (params == null) return false;
	
	if (params.length == 0 || params[params.length - 1] == '')
	{
		return false;
	}
	
	activityParams.push('id=' + params[params.length - 1]);

	new AJAX.Request(Request.get('basepath') + '/users/api_update_activity', 
	{
		parameters: activityParams,
		method: "POST",
		json: true
	});
}

function populate_select(element, url, parameters, none, id_column, label_column,is_hidden)
{
	element.innerHTML = null;
	
	if (none)
	{
		var noneOption = new Option();
		noneOption.value = 0;
		noneOption.innerHTML = PHPVars.get('select-from-list');
		element.appendChild(noneOption);
	}
	
	DOM.populate(element, url, Template.SELECT_OPTION, parameters, id_column, label_column);
	
	if(is_hidden == true)
	{
		display_select(element);
	}
}

function display_select(element)
{
	if(element.length == 0)
	{
		var to_display = 'none'
	}
	else
	{
		var to_display = 'inline';	
	}
	
	element.style.display = to_display;	
}

Browser.registerOnLoad(function(){
	
	var container = $('layout_table_menu');
	
	if (container)
	{
		var tabs = container.getElementsByTagName('div');
		var active = null;
		
		Tabs = {
			
			focus : function (index)
			{
				Tabs.blur();
				
				var tab = Tabs.get(active = index);
				
				DOM.addClassName(tab, 'topbtn_selected');
				
				return tab;
			},
			
			blur : function (index)
			{
				if (!index)
				{
					if (active !== null)
						index = active;
					else return;
				}

				var tab = Tabs.get(index);
				
				DOM.removeClassName(tab, 'topbtn_selected');
				
				return tab;
			},
			
			add : function (name, href, position, focus)
			{
				var div = DOM.create('div', {
					'class' : 'layout_table_topbtn'
				});
				
				var link = DOM.create('a', {
					'href' : href
				});
				link.innerHTML = name;
				
				div.appendChild(link);
				
				if (typeof position == 'undefined' || position == divs.length)
				{
					container.insertBefore(div, container.firstChild);
				}
				else
				{
					var reference = DOM.next(Tabs.get(position));
					if (!reference)
					{
						container.appendChild(div);
					}
					else container.insertBefore(div, reference);
				}
				
				divs = container.getElementsByTagName('div');
				
				if (position <= active) active ++;
				
				if (focus) Tabs.focus(position);
				
				return div;
			},
			
			remove : function (index)
			{
				return DOM.remove(Tabs.get(index));
			},
			
			get : function (index)
			{
				return tabs[tabs.length - 1 - index];
			},
			
			index : function (id)
			{
				id = 'tab_' + id;
				
				for (var i = 0; i < tabs.length; i++) 
				{
					if (tabs[i].id == id) return tabs.length - 1 - i;
				}
				
				return null;
			},
			
			active : function ()
			{
				return active;
			},
			
			length : function ()
			{
				return tabs.length;
			}
		};
		
		for (var i = 0; i < tabs.length; i++)
		{
			if (DOM.hasClassName(tabs[i], 'topbtn_selected'))
			{
				active = tabs.length - 1 - i;
				break;
			}
		}
	}
});

function formatFileSize(size)
{
	var prefixes = ['KB', 'MB', 'GB'];
	
	for(var prefId = 0; prefId < prefixes.length; prefId++)
	{
		size = size / 1024;
		
		prefLen = Math.ceil(size);
		
		if (prefLen < 1000)
		{
			return (Math.round(size * 100) / 100) + ' ' + prefixes[prefId];
		}
	}
	
	return prefLen + ' ' + prefixes[prefId];
}
