/*
	spinner
*/
Spinner = Class.create();
Spinner.prototype = {

    initialize: function()
    {
        this.id = 'spinner';
    },

    Show: function()
    {
    	if ( $('title') )
    	{
	    	top		= getRelTop($('title'));
	    	left	= getRelLeft($('title'));

	    	$(this.id).style.top		= (top + 26)  + 'px';
	    	$(this.id).style.left		= (left + 520) + 'px';
			$(this.id).style.display	= '';
    	}
	},

	Hide: function()
    {
		$(this.id).style.display	= 'none';
	}
}

Message = Class.create();
Message.prototype = {

    initialize: function()
    {
        this.id = 'msg';
    },

    Show: function(msgType, msgText)
    {
    	$(this.id).innerHTML = msgText;
    	$(this.id).className = msgType;
		$(this.id).style.visibility = 'visible';
	},

	Hide: function()
    {
    	$(this.id).innerText = '';
    	$(this.id).className = '';
		$(this.id).style.visibility = 'hidden';
	}
}

var oSpinner	= new Spinner();
var oMessage	= new Message();

function send_request(prm, _OnComplete)
{
	oSpinner.Show();

	var url = '/service.php';
	var oAjax = new Ajax.Request(url, {
		method:		'post',
		encoding:	'UTF-8',
		parameters:	prm,
		onComplete: _OnComplete,
		onSuccess: function()
		{
			oSpinner.Hide();
		},
		onFailure: function()
		{
			oSpinner.Hide();
		}
	});

	return oAjax;
}

function load_good_type_list()
{
	if ( !$('good_category_id') )
	{
		return false;
	}

	var index		= $('good_category_id').selectedIndex;
	var category_id	= $('good_category_id')[index].value;

	if ( category_id )
	{
		$('good_type_id').options[0] = new Option('-- Загрузка... --', '');

		var prm = 'service=GetGoodTypeList&category_id=' + category_id;
		send_request(prm, put_good_type_list);
	}
	else
	{
		$('good_type_id').options[0] = new Option('-- Нет типов для выбранной категории --', '');
	}
}

function put_good_type_list(oRequest)
{
	XMLresponse = oRequest.responseXML;
	root = XMLresponse.documentElement;

	$('good_type_id').options.length = 1;

	var options = root.getElementsByTagName('option');

	if ( options )
	{
		if ( options.length )
		{
			$('good_type_id').options[0] = new Option('-- Выберите тип --', '');

			for ( var i = 0; i < options.length; i++ )
			{
				opt_value = options[i].getAttribute('id');
				opt_title = options[i].getAttribute('value');

				$('good_type_id').options[$('good_type_id').options.length] = new Option(opt_title, opt_value);

				if ( opt_value == _good_type_id )
				{
					$('good_type_id').options[$('good_type_id').options.length - 1].selected = true;
				}
			}
		}
		else
		{
			$('good_type_id').options[0] = new Option('-- Нет типов для выбранной категории --', '');
		}
	}
}

function load_category_option_list()
{
	if ( $('category_id') && $('good_id') && $('good_option_list') )
	{
		var index		= $('category_id').selectedIndex;
		var category_id	= $('category_id')[index].value;
		var good_id		= $('good_id').value;

		$('good_option_list').innerHTML = '&nbsp;';

		if ( category_id )
		{
			var prm = 'service=GetCategoryOptionList&category_id=' + category_id + '&good_id=' + good_id;
			send_request(prm, put_category_option_list);
		}
	}
}

function put_category_option_list(oRequest)
{
	XMLresponse = oRequest.responseXML;
	root = XMLresponse.documentElement;

	var html = '';

	var options = root.getElementsByTagName('option');

	if ( options )
	{
		if ( options.length )
		{
			html += '<h4>Дополнительные опции</h4>';
			html += '<table class="form" border="0" cellpadding="5" cellspacing="0" width="100%">';

			for ( var i = 0; i < options.length; i++ )
			{
				id	 	= options[i].getAttribute('id');
				title	= options[i].getAttribute('title');
				val		= options[i].getAttribute('val');
				req		= options[i].getAttribute('required');

				r = req ? ' <span class="asterisk">*</span>' : '';

				html += '<tr>'
						+ '<td><label for="opt_' + id + '">' + title + r + '</label><br />'
						+ '<input class="input" type="text" id="opt_' + id + '" name="data[option][' + id + ']" value="' + val + '" maxlength="255" style="width: 400px;" />'
						+ '</td></tr>';
			}
			html += '</table>';

			$('good_option_list').innerHTML = html;
		}
	}
}

function add_kit_part_element(element_id, before_id)
{
	var prefix	= 'part_';
	var max_num	= 0;

	if ( $('kit_container') )
	{
		for ( var i = 0; i < $('kit_container').childNodes.length; i++)
		{
			var child = $('kit_container').childNodes[i];

			if ( child.id && child.id.indexOf('part_') == 0 )
			{
				var tmp_num = parseInt(child.id.substring(5, child.id.length));

				if ( !isNaN(tmp_num) && tmp_num > max_num )
				{
					max_num = tmp_num;
				}
			}
		}
	}
	else
	{
		return false;
	}

	max_num++;

	var new_id	= prefix + max_num;
	var clone	= $(element_id).cloneNode(true);

	clone.id		= new_id;
	clone.innerHTML	= clone.innerHTML.replace(/\[0\]/g,"[" + max_num + "]");
	clone.innerHTML	= clone.innerHTML + "&nbsp;&nbsp;<a onclick=\"delete_kit_part_element('" + new_id +"');\">[ X ]</a>";

	for ( var i = 0; i < clone.childNodes.length; i++)
	{
		var child = clone.childNodes[i];

		if ( child.tagName == 'SELECT' && child.options.length )
		{
			child.options[0].selected = true;
		}
		else if ( child.tagName == 'INPUT' && child.type == 'text' )
		{
			child.value = '1';
		}
	}

	new Insertion.Before($(before_id), clone);
}

function delete_kit_part_element(element_id)
{
	$(element_id).remove();
}

function form_submit(frm_id, confirm_text)
{
	if ( confirm_text )
	{
		if ( confirm(confirm_text) )
		{
			$(frm_id).submit();
			return true;
		}
		return false;
	}
	else
	{
		$(frm_id).submit();
		return true;
	}
}

function reload_captcha()
{
	var d = new Date();
	$('_captcha_').src = '/captcha.php?t=' + d.getTime();
}

function getRelLeft(elem)
{
	var pos = elem.offsetLeft;
    while (elem.offsetParent != null)
    {
        elem = elem.offsetParent;
        pos += elem.offsetLeft;
    }
    return pos;
}

function getRelTop(elem)
{
	var pos = elem.offsetTop;
	while (elem.offsetParent != null)
	{
		elem = elem.offsetParent;
		pos += elem.offsetTop;
	}
	return pos;
}

function parent_change()
{
	var parent_id = $('fld_parent_id').value;

	if ( parent_id )
	{
		$('fld_rubric_id').selectedIndex = 0;
		$('fld_rubric_id').disabled = true;
		$('fld_rubric_id').options.item(0).innerHTML = '-- Не применимо --';
	}
	else
	{
		$('fld_rubric_id').disabled = false;
		$('fld_rubric_id').options.item(0).innerHTML = '-- Выберите --';
	}
}