var DropDownMenu = Class.create
({
	duration: .1,
	initialize: function (element, hidden)
	{
		this.element = element;
		this.hidden = hidden;

		this._onMouseOver = this.onMouseOver.bindAsEventListener(this);
		this._onMouseOut = this.onMouseOut.bindAsEventListener(this);

		this.element.observe('mouseover', this._onMouseOver);
		this.element.observe('mouseout', this._onMouseOut);
	}
	,
	onMouseOver: function(event)
	{
		if (this.timeout_id)
		{
			clearTimeout(this.timeout_id);
			delete this.timeout_id;
		}
		Event.stop(event);
		this.show()
	}
	,
	onMouseOut: function(event)
	{
		if (!Position.within(this.element, event.clientX, event.clientY + document.body.scrollTop))
		{
			Event.stop(event);
			this.timeout_id = setTimeout(this.hide.bind(this), 100);
		}
		Event.stop(event);
		//this.hide();
	}
	,
	show: function ()
	{
		Effect.Appear(this.hidden, {duration: this.duration});
	}
	,
	hide: function ()
	{
		Effect.Fade(this.hidden, {duration: this.duration});
	}

})

function show_sms()
{
	$('form_sms').show();
	$('form_sms').scrollTo();
	$('fade').style.height = (document.body.offsetHeight + 65) + 'px';
	return false;
}

function close_sms()
{
	$('form_sms').hide();
	return false;
}

function submit_webmoney(service_id, payment_sum)
{
	$('wm_service_id').value = service_id;
	$('wm_payment_sum').value = payment_sum;
	$('wm_form').submit();
	return false;
}

function submit_2pay(service_id, method)
{
	$('pay_service_id').value = service_id;
	$('pay_method').value = method;
	$('pay_form').submit();
	return false;
}


function select_country()
{
    var select = $('country_selector');
    var selected_country = select.value;

    var country_numbers = sms_countries.get(selected_country);

    $('sms_2').hide();
    $('nodx_sms_2').hide();
    $('sms_3').hide();
    $('nodx_sms_3').hide();
    $('sms_4').hide();

    country_numbers.each(
    function (item){

            var prefix = '';
            $('dx_prefix').innerHTML = 'dx';
            if (selected_country == 'ru' || selected_country == 'ua') {
                prefix = 'nodx_';
                $('dx_prefix').innerHTML = '';
            }

            $(prefix + 'sms_' + item.key).show();
            $(prefix + 'sms_' + item.key + '_num').innerHTML = item.value;
            $(prefix + 'sms_' + item.key + '_sh').innerHTML = item.value;
            $(prefix + 'sms_' + item.key + '_num2').innerHTML = item.value;
            $(prefix + 'sms_' + item.key + '_sh2').innerHTML = item.value;
    });
}

function register(form)
{
	new Ajax.Updater($('reg_out'), '/users/register/', {parameters: Form.serialize(form), evalScripts: true});
	return false;
}

function open_reg(service_id)
{
	$('payment_win').show();

	$$('#payment_win .pay_title').invoke('hide');
	$('service_title_'+service_id).show();
	$('pay_service_id').value = service_id;
	if ($('r_liqpay'))
	{
		$('r_liqpay').checked = true;
	}
}

function redirect_to_status()
{
	window.setTimeout('window.location="/processing/track/"', 5000);
}

function show_sign_in()
{
    if ($('reg_action').value == 'register') {
		$('reg_title').innerHTML = 'Sign in';
		$('reg_action').value = 'login';
	} else {
		$('reg_title').innerHTML = 'Fast Registration';
		$('reg_action').value = 'register';
	}
}

function show_sign_in_ru()
{
    if ($('reg_action').value == 'register') {
		$('reg_title').innerHTML = 'Авторизация';
		$('reg_action').value = 'login';
	} else {
		$('reg_title').innerHTML = 'Моментальная регистрация';
		$('reg_action').value = 'register';
	}
}

function select_file(link, file_id)
{
	var link = $(link);
	if (link.hasClassName('chkpnt-selected'))
	{
		link.removeClassName('chkpnt-selected');
		$('file_' + file_id).value=0;
	}
	else
	{
		link.addClassName('chkpnt-selected');
		$('file_' + file_id).value=1;
	}
	return false;
}

function select_all(fieldObj)
{
	var boxes = $$('.checkpoint');
	if (fieldObj.hasClassName('chkpnt-selected'))
	{
		// deselect all
		fieldObj.removeClassName('chkpnt-selected');
		fieldObj.checked = false;
		boxes.each(function(box)
		{
			var file_id = box.id.split('_')[1];
			if (box.hasClassName('chkpnt-selected'))
			{
				box.removeClassName('chkpnt-selected');
				$('file_' + file_id).value=0;
				box.checked = false;
			}
		})
	}
	else
	{
		//select all
		fieldObj.addClassName('chkpnt-selected');
		fieldObj.checked = true;
		boxes.each(function(box)
		{
			var file_id = box.id.split('_')[1];
			if (!box.hasClassName('chkpnt-selected'))
			{
				box.addClassName('chkpnt-selected');
				$('file_' + file_id).value=1;
				box.checked = true;
			}
		})
	}
}

function searchFormSubmit()
{
    $('search_str').value = $('fake_search_str').value;
    $('search_form').submit();
    return false;
}

/*function select_all(link)
{
	var link = $(link);
	var boxes = $$('.checkpoint');
	if (link.hasClassName('chkpnt-selected'))
	{
		// deselect all
		link.removeClassName('chkpnt-selected');
		boxes.each(function(box)
		{
			var file_id = box.id.split('_')[1];
			if (box.hasClassName('chkpnt-selected'))
			{
				box.removeClassName('chkpnt-selected');
				$('file_' + file_id).value=0;
			}
		})
	}
	else
	{
		//select all
		link.addClassName('chkpnt-selected');
		boxes.each(function(box)
		{
			var file_id = box.id.split('_')[1];
			if (!box.hasClassName('chkpnt-selected'))
			{
				box.addClassName('chkpnt-selected');
				$('file_' + file_id).value=1;
			}
		})
	}
	return false;
}*/

function show_info(link, file_data)
{
	$('fileinfo').show();
	var link_pos = $(link).cumulativeOffset();
	var viewport_center = document.viewport.getWidth()/2;

	if (link_pos[0] > viewport_center)
	{
		if ($('fileinfo').hasClassName('leftcol'))
		{
			$('fileinfo').removeClassName('leftcol')
		}
		$('fileinfo').style.top = (link_pos[1] + 20) + 'px';
	}
	else
	{
		if (!$('fileinfo').hasClassName('leftcol'))
		{
			$('fileinfo').addClassName('leftcol')
		}
		$('fileinfo').style.top = (link_pos[1] - 80) + 'px';
	}

	$('info_file_id').value = file_data.id;
	$('info_name').innerHTML = file_data.name;
	$('info_size').innerHTML = file_data.size;
//		$('info_downloads_count').innerHTML = file_data.downloads_count;
//		$('info_days_left').innerHTML = file_data.days_left;
	$('info_link').value = file_data.link;
	$('info_delete_link').value = file_data.delete_link;
	$('info_delete').href = file_data.delete_link + '&mode=auto';
	$('info_description').value = $('description_' + file_data.id).value;

	if ($('file_tags_' + file_data.id))
	{
		$('info_tags').value = $('file_tags_' + file_data.id).value;
	}

	return false;
}
function close_info()
{
	$('fileinfo').hide();
	return false;
}

function show_finfo(link, folder_data)
{
	var link_pos = $(link).cumulativeOffset();
	$('folderinfo').style.top = (link_pos[1] - 75) + 'px';

	$('folderinfo').show();

	$('finfo_folder_id').value = folder_data.id;
	$('finfo_name').value = folder_data.name;
	$('finfo_link').value = folder_data.link;
	$('finfo_files_count').innerHTML = folder_data.files_count;
	$('finfo_files_str').innerHTML = folder_data.files_str;
	$('finfo_delete_link').value = folder_data.delete_link;
	$('finfo_delete_go').href = folder_data.delete_link + '&mode=auto';
	$('finfo_ungroup').href = '/uploads/ungroup/' + folder_data.id + '/';

	$('finfo_description').value = $('folder_description_' + folder_data.id).value;

	return false;
}
function close_finfo()
{
	$('folderinfo').hide();
	return false;
}

function save_folder(form)
{
	var form = $(form);
	$('folder_description_' + $('finfo_folder_id').value).value = $('finfo_description').value;
	$('folder_name_' + $('finfo_folder_id').value).innerHTML = $('finfo_name').value;

	if(form.description.value)
	{
		$($('fdescription_' + $('finfo_folder_id').value).parentNode).show();
		$('fdescription_' + $('finfo_folder_id').value).innerHTML = form.description.value.replace("\n","<br>");
	}
	else
	{
		$($('fdescription_' + $('finfo_folder_id').value).parentNode).hide();
	}

	new Ajax.Updater('finfo_status', window.location,
		{
			onSuccess:	function() {
				$('finfo_loader').hide();
			},
			onCreate: function() {
				$('finfo_loader').show();
			},
			parameters:	Form.serialize(form)
		});
	return false;
}

function save_file(form)
{
	var form = $(form);
	$('description_' + $('info_file_id').value).value = $('info_description').value;
	if ($('file_tags_' + $('info_file_id').value))
	{
		$('file_tags_' + $('info_file_id').value).value = $('info_tags').value;
	}
/*Я вообще не понял, нафига этот кусок кода
	if (form.folder_id && form.folder_id.value)
	{
		if (form.folder_id.value || form.new_folder_name)
		{
			return false;
		}
	}
*/
	new Ajax.Updater('info_status', window.location,
	{
		onSuccess:	function(req) {
			Element.hide('info_loader');
		},
		onCreate: function(req) {
			Element.show('info_loader');
		},
		parameters:	Form.serialize(form)
	});

	return false;
}

function slidePanel(id)
{
    Effect.toggle(id + '_g','slide');
    Effect.toggle(id + '_w','slide');
}

function submitProcessingForm(id)
{
    if ($(id + '_user_email').value == '') {
        alert('Введите E-mail');
        return false;
    }

    $(id + '_reg_form').submit();
    redirect_to_status();
}

function select_processing_tarif(service_id, name, price, processing_id)
{
    $$('#tariffs_container_' + processing_id + ' a').each(function(element) {
        element.removeClassName('selected');
    });

    $(processing_id + '_tariff_' + service_id).addClassName('selected');
    $(processing_id + '_tariff_name').innerHTML = name;
    $(processing_id + '_tariff_price').innerHTML = price.toFixed(1) + '$';
    $(processing_id + '_pay_service_id').value = service_id;
}