
var categoriesURL = "/index.php?eID=tx_nfcshop_factfinder&action=categories";
var manufacturersURL = "/index.php?eID=tx_nfcshop_factfinder&action=manufacturers";
var searchResultURL = "/index.php?eID=tx_nfcshop_factfinder&action=updateSearchResult";
var clickProductURL = "/index.php?eID=tx_nfcshop_factfinder&action=clickProduct";
var recommendationURL = "/index.php?eID=tx_nfcshop_factfinder&action=recommendation";

var searchResultDiv = "ffsearchresult";
var categoriesDiv = "ffcategories";
var manufacturersDiv = "ffmanufacturers";
var productsDiv = "ffproducts";
var pricesDiv = "ffprices";
var sortingDiv = "ffsorting";
var filtersDiv = "fffilters";
var groupsDiv = "ffgroups";
var pagerDiv = "ffpager";
var switchDiv = "ffswitch";
var breadCrumbDiv = "ffbreadcrumb";
var modulesDiv = "ffmodules";
var loadingDiv = "ffloading";
var pricesSliderDiv = "ffprices-slider";
var pricesAmountDiv = "ffprices-amount";
var suggestDeepUrlInput = "ffsuggest-url";
var recommendationDiv = "ffrecommendation";

var tagCloudURL = "/index.php?eID=tx_nfcshop_factfinder&action=tagcloud&xml=true";
var tagCloudDiv = "fftagcloud";

var searchURL = "/index.php?eID=tx_nfcshop_factfinder&action=suggest";
var formname = "factfinder_search";
var queryParamName = "query";
var areaParamName = "area";
var divLayername = "ffsuggest-box";

var loadingImg = "fileadmin/templates/graphics/fahrrad/icons/loading.gif";

var pSearchURL = '';
var pLayerName = '';
var pQueryParamName = '';
var pAreaParamName = '';
var pFormName = '';
var pLastQuery = ''; 
var outputText = '';

var pSuggestSearchfieldClass = 'factfinder_searchfield';
var pSuggestQueryClass = 'ffsuggest-query';
var pSuggestFooterClass = 'ffsuggest-footer';
var pSuggestHeaderClass = 'ffsuggest-header';
var pSuggestRowClass = 'ffsuggest-table-tr';
var pSuggestHighlightClass = 'ffsuggest-highlight';


/* FactFinder Suggest */

// FactFinder Suggest init 
function ffSuggestInit() 
{
	pSearchURL = searchURL;
	pFormname = formname;
	pLayerName = divLayername;
	pQueryParamName = queryParamName;
	pAreaParamName = areaParamName;
	
	$j("#"+pSuggestSearchfieldClass).attr( "autocomplete","off" );
	$j("#"+pSuggestSearchfieldClass).focus();
	
	 $j('form[name='+formname+'] input[name='+queryParamName+']').keyup
	 (
		function (e) 
		{
			if (e.keyCode == 38) 
			{
				ffMoveUp();
			}
			else if(e.keyCode == 40)
			{
				ffMoveDown();
			}
			else if(e.keyCode == 13) // Enter
			{
				ffSetSearchWord();
			}
			else if (e.keyCode == 27) 
			{
				$j('#'.divLayername).hide(); 
			}
			else
			{
				ffGetSuggestions(); 
			}
		}
	);
	
	$j('body').click(function () { 
      //hide layer
			$j('#'+divLayername).hide();
   });

	 
	//$j('form[name='+formname+']').html('asdf');
}


// get suggestion data with ajax
function ffGetSuggestions()
{
	var query = $j('input[name='+pQueryParamName+']').attr('value');
	var area = $j('input[name='+pAreaParamName+']').attr('value');

	//check if the same query was asked before
	if(pLastQuery == query)
	{
		return;
	}
	else
	{
		pLastQuery = query;
	}
	
	$j.ajax
	(
		{
			type: "GET",
			url: pSearchURL+'&'+pQueryParamName+'='+escape(query)+'&'+pAreaParamName+'='+area+'&xml=true',
			contentType: "application/x-www-form-urlencoded; charset=UTF-8",
			success:
				function (outputText, textStatus) 
				{
					if (outputText.length > 0) 
					{
						//show layer
						$j('#'+divLayername).html(outputText).show();
					}
					else
					{
						//hide layer
						$j('#'+divLayername).hide();
					}
				}
		}
	);
}


// suggest mouse over
function ffMouseOver(id)
{
	$j('tr#'+id).addClass(pSuggestHighlightClass);
}


// suggest mouse out
function ffMouseOut(id)
{
	$j('tr#'+id).removeClass(pSuggestHighlightClass);
}


// suggest submit
function ffSuggestSubmit()
{
	if(ffSetSearchWord())
	{
		$j('.factfinder-searchbox form').submit();
	}
}


// suggest get search word
function ffSetSearchWord(returnValue)
{
	if($j('tr.'+pSuggestHighlightClass).length > 0)
	{
		var deepUrl = $j('tr.'+pSuggestHighlightClass+' .'+suggestDeepUrlInput).text();
		if(returnValue === false || deepUrl.length > 0)
		{
			window.location = deepUrl;
			return false;
		}
		else
		{
			var searchText = $j('tr.'+pSuggestHighlightClass+' .'+pSuggestQueryClass).text();
			$j('#'+pSuggestSearchfieldClass).attr('value', searchText);
			return true;
		}
	}
}


// suggest mouse down event
function ffMoveDown()
{
	if($j('tr.'+pSuggestHighlightClass).length === 0)
	{
		$j('tr.'+pSuggestRowClass+':first').addClass(pSuggestHighlightClass);
	}
	else
	{
		if($j('tr.'+pSuggestHighlightClass).next('tr.'+pSuggestRowClass).length === 0)
		{
			$j('tr.'+pSuggestHighlightClass).removeClass(pSuggestHighlightClass);
			$j('tr.'+pSuggestRowClass+':first').addClass(pSuggestHighlightClass);
		}
		else
		{
			$j('tr.'+pSuggestHighlightClass).removeClass(pSuggestHighlightClass)
			.next('tr.'+pSuggestRowClass)
			.addClass(pSuggestHighlightClass); 
		}
	}
	ffSetSearchWord(true);
	$j('tr.'+pSuggestHighlightClass).attr('id');
}


// suggest mouse up event
function ffMoveUp()
{
	if($j('tr.'+pSuggestHighlightClass).length === 0)
	{
		$j('tr.'+pSuggestRowClass+':last').addClass(pSuggestHighlightClass);
	}
	else
	{
		if($j('tr.'+pSuggestHighlightClass).prev('tr.'+pSuggestRowClass).length === 0)
		{
			$j('tr.'+pSuggestHighlightClass).removeClass(pSuggestHighlightClass);
			$j('tr.'+pSuggestRowClass+':last').addClass(pSuggestHighlightClass);
		}
		else
		{
			$j('tr.'+pSuggestHighlightClass).removeClass(pSuggestHighlightClass)
			.prev('tr.'+pSuggestRowClass)
			.addClass(pSuggestHighlightClass); 
		}	
	}
	ffSetSearchWord(true);
}



/* FactFinder TagCloud */


// FactFinder TagCloud
function ffTagCloud(area)
{
	if($j('#'+tagCloudDiv).html())
	{
		$j('#'+tagCloudDiv).html('<div style="text-align: center"><img src="'+loadingImg+'" /></div>');
		
		$j.ajax
		(
			{
				type: "GET",
				url: tagCloudURL+'&'+pAreaParamName+'='+area,
				contentType: "application/x-www-form-urlencoded; charset=UTF-8",
				success:
					function (outputText, textStatus) 
					{
						if (outputText.length > 0) 
						{
							//show layer
							$j('#'+tagCloudDiv).html(outputText).show();
						}
						else
						{
							//hide layer
							$j('#'+tagCloudDiv).hide();
						}
					}
			}
		);
	}
}




/* FactFinder Search Result */


// FactFinder Search Result Update
function ffUpdateSearchResult(searchQuery)
{
	if($j('#'+searchResultDiv).html())
	{
		ffLoading();
		
		$j.ajax
		(
			{
				type: "GET",
				url: searchResultURL+searchQuery,
				contentType: "application/x-www-form-urlencoded; charset=UTF-8",
				success:
					function (outputText, textStatus) 
					{
						var jsonobj = JSON.parse(outputText);
						ffLoadingStop();
						ffCategories(jsonobj.categories);
						ffManufacturers(jsonobj.manufacturers);
						ffProducts(jsonobj.products);
						ffSorting(jsonobj.sorting);
						ffFilters(jsonobj.filters);
						ffPager(jsonobj.pager);
						ffGroups(jsonobj.groups);
						//ffSwitch(jsonobj.switchs);
						ffBreadCrumb(jsonobj.breadcrumb);
						ffModules(jsonobj.modules);
						ffTagCloud(jsonobj.tagCloud);
						
						if(jsonobj.prices.length === 0)
						{
							$j('#'+pricesDiv).hide();
						}
						else
						{
							$j('#'+pricesDiv).show();
						}
					}
			}
		);
	}
}


function ffLoading()
{
	$j("#"+loadingDiv).html('<img src="fileadmin/_global/graphics/icons/loading_blue.gif" />');
}


function ffLoadingStop()
{
	$j("#"+loadingDiv).html('');
}



// FactFinder Search Result Categories Box
function ffCategories(outputText)
{
	if($j('#'+categoriesDiv).html())
	{
		if (outputText.length > 0 && outputText.length !== null)
		{
			//show layer
			$j('#'+categoriesDiv).html(outputText).show();
		}
		else
		{
			$j('#'+categoriesDiv).hide();
		}
	}
}


// FactFinder Search Result Manufacturers Box
function ffManufacturers(outputText)
{
	if($j('#'+manufacturersDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+manufacturersDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+manufacturersDiv).hide();
		}
	}
}


// FactFinder Search Result Productlist
function ffProducts(outputText)
{
	if($j('#'+productsDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+productsDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+productsDiv).hide();
		}
	}
}


// FactFinder Search Result Prices Box
function ffPrices(arrPrices, searchQuery)
{
	var maxPriceFinal;
	if($j('#'+pricesDiv).html())
	{
		var maxCountes = (arrPrices.length)-1;
		$j('#'+pricesSliderDiv).slider
		(
			{
				min: 0,
				max: maxCountes,
				slide: function(event, ui) 
				{
					$j("#"+pricesAmountDiv).html('<div style="text-align: center">' + arrPrices[ui.value][0] + '</div>');
				},
				stop: function(event, ui) 
				{
					ffUpdateSearchResult(arrPrices[ui.value][1]);
				}
			}
		);

		$j("#"+pricesAmountDiv).html('<div style="text-align: center">' + arrPrices[0][0] + ' </div>');
	}
}


// FactFinder Search Result Pager
function ffPager(outputText)
{
	if($j('#'+pagerDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('.'+pagerDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('.'+pagerDiv).hide();
		}
	}
}


// FactFinder Search Result Sorting
function ffSorting(outputText)
{
	if($j('#'+sortingDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+sortingDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+sortingDiv).hide();
		}
	}
}


// FactFinder Search Result Filters
function ffFilters(outputText)
{
	if($j('#'+filtersDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+filtersDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+filtersDiv).hide();
		}
	}
}


// FactFinder Search Result Groups
function ffGroups(outputText)
{
	if($j('#'+groupsDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+groupsDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+groupsDiv).hide();
		}
	}
}


// FactFinder Search Result Switch
function ffSwitch(outputText)
{
	if($j('#'+switchDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+switchDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+switchDiv).hide();
		}
	}
}


// FactFinder Search Result BreadCrumb
function ffBreadCrumb(outputText)
{
	if($j('#'+breadCrumbDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+breadCrumbDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+breadCrumbDiv).hide();
		}
	}
}


// FactFinder Search Result Community Modules
function ffModules(outputText)
{
	if($j('#'+modulesDiv).html())
	{
		if (outputText.length > 0) 
		{
			//show layer
			$j('#'+modulesDiv).html(outputText).show();
		}
		else
		{
			//hide layer
			$j('#'+modulesDiv).hide();
		}
	}
}



function ffClickProduct(area, query, artId, artPos, origArtPos, pageNum, artSimi,	sessionId, artTitle, pageSize, origPageSize, channel, eventName, userId, mainId, count, price)
{
	/*
	console.log(area);
	console.log(query);
	console.log(artId);
	console.log(artPos);
	console.log(origArtPos);
	console.log(pageNum);
	console.log(artSimi);
	console.log(artTitle);
	console.log(pageSize);
	console.log(origPageSize);
	console.log(channel);
	console.log(eventName);
	console.log(userId);
	console.log(mainId);
	console.log(count);
	console.log(price);
	*/
	
	if(eventName === null)
	{
		eventName = 'click';
	}
	$j.ajax
	(
		{
			type: 'GET',
			url: clickProductURL+'&'+pAreaParamName+'='+area,
			data: 
			{
				query: query,
				id: artId,
				pos: artPos,
				origPos: origArtPos,
				page: pageNum,
				simi: artSimi,
				sid: sessionId,
				title: artTitle,
				event: eventName,
				pageSize: pageSize,
				origPageSize: origPageSize,
				channel: channel,
				userId: userId,
				mainId: mainId,
				count: count,
				price: price
			},
			contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
			cache: false,
			async: false
		}
	);
}





// FactFinder Recommendation init 
function ffRecommendationInit(pageId, ceUid)
{
	if($j('#'+recommendationDiv).html())
	{
		var className = $j('#'+recommendationDiv).attr('class');
		var productsId = $j('#'+recommendationDiv).html();
		
		if(productsId.length > 0)
		{
			$j.ajax
			(
				{
					type: 'GET',
					url: "index.php?id="+pageId+"&type=576&tx_nfcshop_pi1[action]=AJAX_FFRECOMMENDATION&tx_nfcshop_pi1[ce_uid]="+ceUid,
					data: 
					{
						productsId: productsId,
						className: className
					},
					contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
					cache: false,
					async: false,
					success:
						function (outputText, textStatus) 
						{
							if (outputText.length > 0) 
							{
								//show layer
								$j('#'+recommendationDiv).html(outputText).show();
							}
							else
							{
								//hide layer
								$j('#'+recommendationDiv).hide();
							}
						}
				}
			);
		}
	}
}


// onload 
$j(document).ready(function()
	{
	}
);



