var portal_index_rules = {

	'body' : function(el)
	{
		var left = $('front-bottom-col-left').getHeight();
		var right = $('front-bottom-col-right').getHeight();

		if (left > right) {
			$('front-bottom-col-right').setStyle({height: (left - 32) + 'px'});
		} else if (left < right) {
			$('front-bottom-col-left').setStyle({height: (right - 7) + 'px'});
		}
	},

	'#front-latest' : function(el)
	{
		Selector.findChildElements(el, ['.latest-images .image', '.video-thumb .picture']).each(function(e) {
			new Tooltip(e, e.next('.tooltip'), {
				min_distance_x: 15,
				min_distance_y: -40
			});
		})
		$$('.tooltip').invoke('setStyle','z-index: 20000');
	},

	'#latest-releases-scroll' : function(el)
	{
		var limit = 3;

		for (var i = 0; i < el.children.length; i++) {
			if (i >= limit) {
				Element.extend(el.children[i]);
				el.children[i].hide();
			}
		}
	},

	'#latest-releases .more a' : function(el)
	{
		el.handleClick = function(event)
		{
			event.stop();

			_scrollMore('latest-releases-scroll', 3, 0);
		}

		el.observe('click', el.handleClick);
	},

	'#featured-newsroom-scroll' : function(el)
	{
		var limit = 4;

		for (var i = 0; i < el.children.length; i++) {
			if (i >= limit) {
				Element.extend(el.children[i]);
				el.children[i].hide();
			}
		}
	},

	'#featured-newsroom .more a' : function(el)
	{
		el.handleClick = function(event)
		{
			event.stop();

			_scrollMore('featured-newsroom-scroll', 4, 0);
		}

		el.observe('click', el.handleClick);
	},

	'#most-read-scroll' : function(el)
	{
		var limit = 3;

		for (var i = 0; i < el.children.length; i++) {
			if (i >= limit) {
				Element.extend(el.children[i]);
				el.children[i].hide();
			}
		}
	},

	'#most-read .more a' : function(el)
	{
		el.handleClick = function(event)
		{
			event.stop();

			_scrollMore('most-read-scroll', 3, 0);
		}

		el.observe('click', el.handleClick);
	},

	'#start-here form .text' : function(el)
	{
		el.handleKeyUp = function(e)
		{
			if (el.value.length > 1) {
				clearTimeout(_startHereTO);

				_startHereTO = setTimeout(function(){return _checkHandle(el);}, 1000);
			}
		};

		el.observe('keyup', el.handleKeyUp);
	}
}
Behaviour.register(portal_index_rules);

var _startHereTO = null;

var _checkHandle = function(el)
{
	new Ajax.Request("/handle/check", {
		parameters: {
			handle: el.value
		},
		onSuccess: _handleResult,
		evalJSON: 'force',
		evalJS: false
	});
}

var _handleResult = function(req)
{
	var el = $$('#start-here form input.text')[0];
	el.removeClassName('warning');
	el.up('form').down('input.button').removeAttribute('disabled');

	if ('' != req.responseJSON.result) {
		el.setValue(req.responseJSON.result);
	}
	
	if (req.responseJSON.is_error) {
		el.addClassName('warning');
		el.up('form').down('input.button').writeAttribute('disabled', 'disabled');
	}
}

var _scrollMore = function(source, limit, offset)
{
	var children = $(source).children;
	var count = 0;
	var height = 0;
	for (var i = 0; i < children.length; i++) {
		Element.extend(children[i]);
		if (children[i].visible()) {
			height += children[i].getHeight() + offset;
			continue;
		}

		if (count >= limit) {
			break;
		}

		children[i].show();
		count++;
	}

	if (count > 0) {
		var content = $(source);
		var margin = content.scrollTop;

		new Effect.Move(content, {
			y: (margin - height),
			mode: 'absolute',
			transition: Effect.Transitions.linear,
			queue: 'end'
		});

		return true;
	}

	return false;
}
