$(function()
{
	/* Loading the language phrases and script configuration */
	esyndicat.loader({
		lang: 'apply,change,cross_warning,mcross_warning,title,url,edit,characters_count',
		conf: 'mcross_functionality,mcross_number_links,sponsored_listings,paypal_module,checkout_module'
	});

	/* Listing fields */
	var fields = new esyndicat.fields({
		id: 'fields',
		restore: true,
		session: sessvars.fields
	});

	/* Setting up the tree categories */
	var treeCat = new esyndicat.tree({
		id: 'tree',
		type: 'radio',
		state: '',
		hideRoot: true,
		callback: function()
		{
			/* array crossed categories */
			var crossed = $('#multi_crossed').val().split(',');
			var catId = $(this).val();
			var letter = $('#prefix_mCrossTree').val();

			if(esyndicat.inArray(crossed, catId))
			{
				$('#mcrossedCat_' + catId).remove();

				crossed = esyndicat.remove(crossed, catId);

				$('#multi_crossed').val(crossed.join(','));

				$('#cat_' + letter + '_' + catId).attr('checked', '');

				esyndicat.error(esyndicat.lang.cross_warning);
			}
			else
			{
				$('#categoryTitle > strong').text($(this).attr('title'));
				$('#category_id').val($(this).val());
			}

			fields.fillFields();
		}
	});

	/* Initialization tree categories */
	treeCat.init();

	/* Event handler for displaying tree categories */
	$('#changeLabel').click(function()
	{
		esyndicat.display('#treeContainer', 'auto'); 

		if(esyndicat.lang.change == $(this).text())
		{
			$(this).text(esyndicat.lang.apply);
		}
		else
		{
			$(this).text(esyndicat.lang.change);
		}
	});

	/* Multicross */

	/* Showing up the multi cross tree */
	if(1 == esyndicat.conf.mcross_functionality)
	{
		esyndicat.display('mCrossDiv', 'show');

		/* Event handler for displaying multi cross tree */
		$('#crossLabel').click(function()
		{
			esyndicat.display('mCrossContainer', 'auto');
		});

		/* Setting up the multi cross tree categories */
		var crossedCat = new esyndicat.tree({
			id: 'mCrossTree',
			type: 'checkbox',
			state: '',
			hideRoot: true,
			defaultCategory: [{id: 0, title: 'ROOT', sub: true, disabled: true, checked: false}],
			callback: function()
			{
				/* this object */
				var thisItem = $(this);

				/* id checked category */
				var thisId = thisItem.attr('id').split('_')[2];

				/* id plan */
				var planId =fields.getIdPlan();

				/* id category */
				var catId = fields.getIdCategory();

				/* array crossed categories */
				var crossed = $('#multi_crossed').val().split(',');

				/* max number of crossed categories */
				/* if there is no limit for plan, therefore use script configuration */
				var maxCrossed = ($('#planCrossedMax_' + planId).val() > 0) ? $('#planCrossedMax_' + planId).val() : esyndicat.conf.mcross_number_links;
				
				var error = false;
				var html = '';

				crossed = ('' == crossed) ? [] : crossed;

				if(thisItem.attr('checked'))
				{
					if(crossed.length + 1 > maxCrossed)
					{
						esyndicat.error(esyndicat.lang.mcross_warning);
						error = true;
					}

					if(catId == thisId)
					{
						esyndicat.error(esyndicat.lang.cross_warning);
						error = true;
					}

					if(!error)
					{
						html += '<p id="mcrossedCat_'+ thisId +'">';
						html += '<b>';
						html += thisItem.attr('title');
						html += '</b>';
						html += '</p>';

						$('#crossedCategories').append(html);

						if(!esyndicat.inArray(crossed, thisId))
						{
							crossed.push(thisId);
						}

						$('#multi_crossed').val(crossed.join(','));
					}
					else
					{
						thisItem.attr('checked', '');
					}
				}
				else
				{
					$('#mcrossedCat_' + thisId).remove();

					crossed = esyndicat.remove(crossed, thisId);

					$('#multi_crossed').val(crossed.join(','));
				}
			}
		});

		/* Initialization multi cross tree */
		crossedCat.init();
	}

	/* Deep links */
	var deepLinks = new esyndicat.deepLinks({
		id: 'deepLinks',
		container: 'deepLinksDiv',
		restore: true,
		session: sessvars.deepLinks
	});

	/* Plans */
	
	/* If plans exist */
	if($('#plans').length > 0)
	{
		var plans = new esyndicat.plans({
			id: 'plans',
			idPlan: sessvars.idPlan,
			callback: function()
			{
				var idPlan = $(this).val();
				var numDeepLinks = $('#planDeepLinks_' + idPlan).val();

				esyndicat.display('#divSuggestButton', 'hide');
				esyndicat.display('#divSaveChanges', 'show');

				fields.fillFields();

				if(numDeepLinks > 0)
				{
					deepLinks.create(numDeepLinks);
					deepLinks.display('show');
				}
				else
				{
					deepLinks.display('hide');
				}

				if($('#planCost_' + idPlan).val() > 0)
				{
					esyndicat.display('gateways', 'show');
				}
				else
				{
					esyndicat.display('gateways', 'hide');
				}
			}
		});
		plans.init();
	}
	else
	{
		fields.fillFields();
	}

	if($('#planCost_' + fields.getIdPlan()).val() > 0)
	{
		esyndicat.display('gateways', 'show');
	}
	else
	{
		esyndicat.display('gateways', 'hide');
	}

	/* Save button event */
	$('#saveChanges').click(function()
	{
		/* Conversion forms */
		fields.conversion();
		deepLinks.conversion();

		/* Saving the current values */
		sessvars.fields = fields.getLastState();
		sessvars.deepLinks = deepLinks.getLastState();
		sessvars.idPlan = fields.getIdPlan();

		esyndicat.display('notifBox', 'hide');

		esyndicat.display($(this), 'hide');
		esyndicat.display('divSuggestButton', 'show');

		return false;
	});
});

