/**
 * Module Promo Class
 * 
 * @package	shop
 * @author	Sven Sanzenbacher <sven.sanzenbacher@naucon.de>
 * @author	Marcel Detrois <marcel.detrois@burda.com>
 * @version $Id$
 */
var ModulePromo = function(newPromoNavTabsId, newPromoTargetId)
{
	/**
	 * @var string
	 */
	var tabUrl = '';
	
	/**
	 * @var string
	 */
	var tabStyleClassEnabled = 'activeTab';

	/**
	 * @var string
	 */
	var tabStyleClassDisabled = 'noactiveTab';
	
	/**
	 * @var string
	 */
	var promoNavTabsId = newPromoNavTabsId;
	
	/**
	 * @var string
	 */
	var promoTargetId = newPromoTargetId;

	/**
	 * @return	string
	 */
	this.getTabUrl = function()
	{
		return tabUrl;
	};

	/**
	 * @param	string
	 * @return	void
	 */
	this.setTabUrl = function(newUrl)
	{
		tabUrl = newUrl;
	};

	/**
	 * @return	string		promo target id
	 */
	this.getPromoTargetId = function()
	{
		return promoTargetId;
	};

	/**
	 * @param	string		promo target id
	 * @return	void
	 */
	this.setPromoTargetId = function(value)
	{
		promoTargetId = String(value);
	};

	/**
	 * @param	string		filter option
	 * @param	string		filter value
	 * @return	void
	 */
	this.clickFilter = function(option, value)
	{
		var delimiter = ( tabUrl.search(/[?]/) == -1 ) ? '?' : '&';
		var filterUrl = tabUrl + delimiter + option + '=' + value;
		
		this.dispatch(filterUrl);
	};

	/**
	 * @return	void
	 */
	this.resetFilter = function()
	{
		$filters = $('#promoFilterForm input:radio');
		
		$filters.attr('checked', false);
		$filters.first().attr('checked', true);
	};

	/**
	 * @param	string		tab id
	 * @return	void
	 */
	this.clickTab = function(tabId, newTabUrl)
	{
		var containerId = 'bdi_promoTabNav';
		$('#' + containerId + ' div').removeClass(tabStyleClassEnabled).addClass(tabStyleClassDisabled);
		
		$('#' + tabId).show().removeClass(tabStyleClassDisabled).addClass(tabStyleClassEnabled);
		
		this.setTabUrl(newTabUrl);
		this.dispatch(tabUrl);
		this.resetFilter();
	};

	/**
	 * @return void
	 */
	this.dispatch = function(url)
	{
		$.ajax({
		  url: url,
		  success: function(data) {
			 $('#' + promoTargetId).html(data);
		  }
		});
		
	};
};
