/**
 * class	Popin
 * author	Paul Kruijt
 */
var Popin = new Class(
{
	/**
	 * initialize
	 * @return	void
	 */
	initialize: function()
	{
		// id's
		this.popin_node			= $('popin');
		this.popin_content_node	= $('popin_content');
		this.popin_close_node	= $('popin_close');
		this.blocker_node		= $('page_blocker');
	},

	/**
	 * show
	 * @return void
	 */
	show: function(handler_location, job_link)
	{
		var _this	= this;
		job_link	= !job_link ? '' : job_link;

		if (this.popin_node)
		{
			this.popin_node.setStyle('display', 'block');
			
			if (this.blocker_node) this.blocker_node.setStyle('display', 'block');
			
			this.popin_close_node.removeEvents();
			this.popin_close_node.addEvents(
			{
				'click': function()
				{
					_this.hide();

					return false;
				}
			});
			
			this.loadContent(handler_location, job_link);
		}
	},

	/**
	 * hide
	 * @return	void
	 */
	hide: function()
	{
		if (this.popin_node)
		{
			this.popin_node.setStyle('display', 'none');
			
			if (this.blocker_node) this.blocker_node.setStyle('display', 'none');
			
			if (this.popin_content_node) this.popin_content_node.innerHTML = '';
		}
	},

	/**
	 * load content with http request
	 * @param	string	url_location
	 * @param	string	job_link
	 * @return	void
	 */
	loadContent: function(url_location, job_link)
	{
		var _this = this;
		
		if (url_location)
		{
			if (this.popin_content_node)
			{
				// make request
				var http_request = new Request.HTML(
				{
					url			: url_location,
					method		: 'get',
					update		: this.popin_content_node,
					evalScripts	: true,
					onSuccess	: function(responseTree, responseElements, responseHTML, responseJavaScript)
					{
						_this.setFormEvents(job_link);
					}
				});

				http_request.send();
			}
		}
	},
	
	/**
	 * Set form events
	 * @param	string	job_link
	 * @return	void
	 */
	setFormEvents: function(job_link)
	{
		var _this			= this;
		var form_node		= this.popin_content_node.getElement('form');
		var local_job_link	= job_link ? job_link : ym_job_link;

		if (form_node)
		{
			var handler_node = form_node.getElement('.cs_submit');

			if (handler_node)
			{
				var textarea_node	= form_node.getElement('textarea');

				if (textarea_node && local_job_link)
				{
					var text = textarea_node.value;
					
					textarea_node.value = text.replace("{link}", local_job_link);
				}

				handler_node.setStyle('display', 'block');
				
				handler_node.removeEvents();
				handler_node.addEvents(
				{
					'click' : function()
					{
						// send form (ajax)
						form_node.set('send', {
							onRequest: function()
							{
								handler_node.setStyle('display', 'none');
							},
							onSuccess: function(data)
							{
								_this.popin_content_node.innerHTML = data;
								
								var form_node	= _this.popin_content_node.getElement('form');

								if (form_node)
								{
									var textarea_node	= form_node.getElement('textarea');

									if (textarea_node)
									{
										//var text = textarea_node.get('text');
										
										//textarea_node.value = text.replace("br","ggbfgbfg");
									}

									_this.setFormEvents();
								}
							}
						});

						form_node.send();

						return false;
					}
				});
			}
		}
	}
});
