var ajaxInProcess=false;

function getHtml(elem,id,requestUrl)
{
	if (ajaxInProcess) return;
	thisEl=$(elem);
	el=$(id);
	
	var htmlRequst = new Request.HTML
	(
		{
			url: requestUrl,
			method: 'post',
			data: {'task':'getHtml'},
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript)
			{
				ajaxInProcess=false;
				el.fade(0);
				
				if ($defined(thisEl.getParent()))
				{
					thisEl.getParent().getChildren().each(function(item)
					{
						if (item.hasClass('activeTab')) item.removeClass('activeTab');
					});
					
					thisEl.addClass('activeTab');
				}
				
				oldHeight=el.getSize().y;
				
				var myFx = new Fx.Tween
				(
					el,
					{
						onComplete: function()
						{
							div.setStyle('visibility','visible');
							el.fade(1);
						}
					}
				);

				var div=new Element('div');
				div.set('html',responseHTML);
				div.setStyle('visibility','hidden');
				el.empty();
				el.grab(div);
				
				newHeight=div.getSize().y;
				myFx.start('height', [oldHeight, newHeight]);
			},
			onRequest: function() 
			{
				ajaxInProcess=true;
				
				var img=new Element('img');
				
				img.set('src','images/general/tabloading.gif');
				
				loaderTop=el.getSize().y/2-7;
				loaderLeft=el.getSize().x/2-75;
				
				img.setStyles
				(
					{
						position: 'absolute',
						top: loaderTop+'px',
						left: loaderLeft+'px'
					}
				);
				
				el.grab(img);
				
			},	
			onError: function()
			{
				ajaxInProcess=false;
				alert('error');
				if ($defined(img)) img.dispose();
			}
		}
	).post();
}

function _alert(msg)
{
	new mooWindow
	(
		{
			'html': msg
		}
	);
}

var showHideModule=new Class
(
	{
		initialize: function(elements)
		{
			this.elements=$$('.'+elements);
			
			this.elements.each(function(item)
			{
				if ($defined(item.getParent()) && $defined(item.getParent().getNext())) 
				{
					el=item.getParent().getNext();
					var slider = new Fx.Slide
					(
						el,
						{
							onComplete: function()
							{
        				item.toggleClass('hide');
        				if (slider.wrapper.getStyle('height')!='0px') slider.wrapper.setStyle('height','auto');
        				if ($defined(item.getNext('span.control'))) item.getNext('span.control').setStyle('display',slider.open?'inline':'none');
    					}
						}
					);
					item.addEvent("click",function(event)
					{
						slider.toggle();
					}.bind(this));
				}
			}.bind(this));
		}
	}
);

var links=new Class
(
	{
		initialize: function(elements)
		{
			this.elements=$$('.'+elements);
			
			this.elements.each(function(item)
			{
				item.addEvent('click',function(event)
				{
					event.stop();
					this.linkClick(item);	
				}.bind(this));
			}.bind(this));
		},
		
		linkClick: function(link)
		{
			if (link.hasClass('addToFriends')) this.addToFriends(link);
			else if (link.hasClass('removeFromFriends')) this.removeFromFriends(link);
			else if (link.hasClass('sendMessage')) this.sendMessage(link);
		},
		
		addToFriends: function(link)
		{
			new mooWindow
			(
				{
					'type': 'ajax',
					'url': link.get('href'),
					'modal': false,
					'html': 'add'
				}
			);
		},
		
		removeFromFriends: function(link)
		{
			var confirmWindow=new mooWindow
			(
				{
					'type': 'confirm',
					'html': 'remove'
				}
			);
			confirmWindow.addEvent('ok',function()
			{
				alert('qwe'); 
			});
		},
		
		sendMessage: function(link)
		{
			new mooWindow
			(
				{
					'type': 'ajax',
					'url': link.get('href'),
					'modal': false,
					'html': 'send',
					'opacityShowHide': true
				}
			);
		}
	}
);


function getOptions(mainId,subId,url,activeSubId)
{
	$(subId).setStyle('opacity','0.2');
	$(mainId).addEvent('change',function(event)
	{
		value=$(mainId).value;
		if ($chk(value))
		{
			new Request.HTML
			(
				{
					url: url,
					data: {'task':'getContent','id':value},
					method: 'post',
					update: $(subId),
					onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript)
					{
						$(subId).fade(1);
						if ($defined(activeSubId)&&$chk(activeSubId))
						{
							$(subId).getChildren().each(function(item)
							{
								if (item.get('value')==activeSubId) item.set('selected','selected');
							});	 
						}
					}.bind(this),
					onRequest: function() 
					{
					}.bind(this),	
					onError: function()
					{	
						alert('error');
					}.bind(this)
				}
			).post();
		}
		else
		{
			$(subId).fade(0.2);
		}
	});
	if ($defined(activeSubId)&&$chk(activeSubId))
	{
		$(mainId).fireEvent('change');
	}
}
