﻿var DEFAULT_SEARCH_TEXT = 'cauta aici filmul tau preferat';

function FiltersSet()
{
	//FILTERSOB TYPE:
	//{keyword:'cu\'cubau', actor:{id:'356', name: 'Brad'}, director:{id:'12', name: 'Spielberg'}, 
	//prize:{id:'5', name: 'oscar'}, type:{id:'8', name: 'filme noi'}, genres:[ {id:'11', name: actiune}, 
	//{id:'15', name: romance}],sort{id:'1', name: 'Rating ascendent'} }	

	var search_details_text = '';
	var arrSearchDetailsText = []; //used to build search_details_text
	
	if (Filters.keywords != '')
	{
		$('#filters_keywords').val(Filters.keywords);
		$('#search_keywords_text').html('Rezultatele cautarii dupa: "' + Filters.keywords + '"');
		// <a style="color:red;" href="javascript:void(0);" onclick="FiltersRemove(\'keywords\');">sterge filtru</a>');
	}
	else		
		$('#search_keywords_text').html('Toate filmele de pe Muvix.ro');	
	
//	if (typeof (Filters.actor) != 'undefined')
//		$('#filters_actor option[value="' + Filters.actor.id + '"]').attr('selected', true);
//	if (typeof (Filters.director) != 'undefined')
//		$('#filters_director option[value="' + Filters.director.id + '"]').attr('selected', true);
//	if (typeof (Filters.prize) != 'undefined')
//		$('#filters_prize option[value="' + Filters.prize.id + '"]').attr('selected', true);
//	if (typeof (Filters.country) != 'undefined')
//		$('#filters_country option[value="' + Filters.country.id + '"]').attr('selected', true);
	if (typeof (Filters.sort) != 'undefined')
	{
		var opt = parseInt(Filters.sort.id);
		if((opt % 2) == 0)
		{
			opt = opt - 1;
			$('#sort_down').removeClass("iconSortDown").addClass("iconSortDownSelected");
			$('#sort_up').removeClass("iconSortUpSelected").addClass("iconSortUp");
		}	
		else
		{
			$('#sort_up').removeClass("iconSortUp").addClass("iconSortUpSelected");
			$('#sort_down').removeClass("iconSortDownSelected").addClass("iconSortDown");
		}
			
		$('#filters_sort option[value="' + opt + '"]').attr('selected', true);
	}
	
	var bType = false;
	
	if (typeof (Filters.type) != 'undefined' && typeof (Filters.type.id) != 'undefined')
	{
		var typeName = '<strong>' + Filters.type.name + '</strong><a href="javascript:void(0);" title="Sterge filtrare dupa ' + Filters.type.name + '" onclick="FiltersRemove(\'type\');">&nbsp;</a>';
		arrSearchDetailsText.push('Din categoria: ' + typeName);	
		bType = true;
	}
		
	var genreCount = Filters.genres.length;	
		
	$.each(Filters.genres, function(i, genre)
	{		
		$('#gen_' + genre.id).attr('checked', true);
	
		var genreName = '<strong>' + genre.name + '</strong><a href="javascript:void(0);" title="Sterge filtrare dupa ' + genre.name + '" onclick="FiltersRemove(\'genres\', ' + genre.id + ');">&nbsp;</a>';
		
		if(i == 0)
		{
			if(bType)			
				arrSearchDetailsText.push(", dupa ");
			else
				arrSearchDetailsText.push("Filtrate dupa ");
				
			if(genreCount > 1)
				arrSearchDetailsText.push("genurile: ");
			else
				arrSearchDetailsText.push("genul: ");
		}
		
		arrSearchDetailsText.push(genreName);
	});
	
	if (typeof (Filters.actor) != 'undefined' && typeof(Filters.actor.name) != 'undefined')
	{	
		var actorName = '<strong>' + Filters.actor.name + '</strong><a href="javascript:void(0);" title="Sterge filtrare dupa ' + Filters.actor.name + '" onclick="FiltersRemove(\'actor\', ' + Filters.actor.id + ');">&nbsp;</a>';
		arrSearchDetailsText.push('Filtrate dupa actorul/actrita: ');		
		arrSearchDetailsText.push(actorName);			
	}
	
	if (typeof (Filters.director) != 'undefined' && typeof(Filters.director.name) != 'undefined')
	{	
		var directorName = '<strong>' + Filters.director.name + '</strong><a href="javascript:void(0);" title="Sterge filtrare dupa ' + Filters.director.name + '" onclick="FiltersRemove(\'director\', ' + Filters.director.id + ');">&nbsp;</a>';
		arrSearchDetailsText.push('Filtrate dupa regizorul: ');		
		arrSearchDetailsText.push(directorName);			
	}	

	search_details_text = arrSearchDetailsText.join('');

	if (search_details_text != '')
	{
		$('#search_details').css('display', 'inline');
		$('#search_details').html(search_details_text);
	}
}

function FiltersGather(typeID, sortDir)
{
	var arrSearchUrl = [];
	var bHasSearched = false;

	//search input
	var cuvinte = $('#filters_keywords').val().replace(/[^a-zA-Z0-9 \-\.\,\&\$\!\?\(\)]+/gi, '');

	if (cuvinte != '' && cuvinte != DEFAULT_SEARCH_TEXT)
	{
		//Filters.keywords = cuvinte;
		arrSearchUrl.push('dupa=' + cuvinte);
		bHasSearched = true;
	}

	//advanced search page?
	if ($('#filters_actor').length > 0 && $('#filters_director').length > 0 && $('#filters_prize').length > 0 && $('#filters_country').length > 0)
	{
		//actors - push any other option than default	
		option = $('#filters_actor option:selected');
		if (option.val() != 0)
		{
			arrSearchUrl.push('actor=' + option.val() + '--' + option.text());
			bHasSearched = true;
		}

		//directors
		option = $('#filters_director option:selected');
		if (option.val() != 0)
		{
			arrSearchUrl.push('regizor=' + option.val() + '--' + option.text());
			bHasSearched = true;
		}

		//prizes
		option = $('#filters_prize option:selected');
		if (option.val() != 0)
		{
			arrSearchUrl.push('premiu=' + option.val() + '--' + option.text());
			bHasSearched = true;
		}

		//countries	
		option = $('#filters_country option:selected');
		if (option.val() != 0)
		{
			arrSearchUrl.push('productie=' + option.val() + '--' + option.text());
			bHasSearched = true;
		}
	}

	//check if a certain typeID was chosen by clicking the type link -- 'Filme 2008'
	if (typeID != null && typeof (typeID) != 'undefined' && typeID > 0)
	{
		arrSearchUrl.push('tip=' + typeID + '--' + $('#type_' + typeID).text());
		bHasSearched = true;
	} //check if a certain typeID had been chosen previously and is set in the Filters object
	else if (typeof (Filters) != 'undefined' && typeof (Filters.type) != 'undefined' && typeof (Filters.type.id) != 'undefined')
	{
		arrSearchUrl.push('tip=' + Filters.type.id + '--' + Filters.type.name);
		bHasSearched = true;
	}

	//genres	
	var arrGenres = [];
	//iterate through checked genres	
	$('#filters_genres li input:checkbox:checked').each(function(i, o)
	{
		var gen_id = o.value;
		var gen_name = $(this).parent().children('label').text().toLowerCase();

		arrGenres.push(gen_id + '--' + gen_name);
	});
	if (arrGenres.length > 0)
	{
		arrSearchUrl.push('genuri=' + arrGenres.join('|'));
		bHasSearched = true;
	}
		
	if ($('#filters_sort').length > 0)
	{
		//sort
		var option = $('#filters_sort option:selected');
		if (option.val() != 0)
		{			
			var opt = (parseInt(option.val()) + parseInt(sortDir) - 1);
			//alert('sortDir ' + sortDir);
			//alert('option.val()' + option.val());
			
			arrSearchUrl.push('sortare=' + opt + '--' + option.text());
			bHasSearched = true;
		}
	}
		
	//var search_url = $('#search_url').val() + '/cauta.aspx?' + arrSearchUrl.join('&');
	var search_url = APP_PATH + 'cauta.aspx' + (arrSearchUrl.length > 0 ? '?' + arrSearchUrl.join('&') : '');
	//alert(search_url);
	
	//return false;
	//if (bHasSearched)
	//{
	setTimeout(function() { window.location = search_url; }, 0);
	//}
	//else
	//{
	//	$('#filters_keywords').val('');
	//	$('#filters_keywords').focus();
	//}

	return false;
}

function FiltersRemove(filter_name, id)
{
	switch (filter_name)
	{
		case 'keywords':
			$('#filters_keywords').val('');
			break;
			
		case 'genres':
			$('#gen_' + id).attr('checked', false);
			break;

		case 'type':
			if (typeof (Filters) != 'undefined' && typeof (Filters.type) != 'undefined')
				Filters.type = {};
			break;

		case 'actor':
			if (typeof (Filters) != 'undefined' && typeof (Filters.actor) != 'undefined')
				Filters.actor = {};
			break;

		case 'director':
			if (typeof (Filters) != 'undefined' && typeof (Filters.director) != 'undefined')
				Filters.director = {};
			break;		
		default:		
			break;
	}

	FiltersGather();
}

function FiltersEnterSubmit(e)
{
	var keycode;

	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;

	if (keycode == 13)
	{
		FiltersGather();
		return false;
	}
	else
		return true;
}

function SetListType(type)
{
	//table
	if (type == 2)
	{
		Cookie_Delete('SearchListing');
		SetListingListType();		
	}
	else
	{
		Cookie_Set('SearchListing', 1, 3600 * 24);
		SetTableListType();
	}

	return false;
}

function CorrectSearch(o)
{	
	if(o.value == '')
		o.value = 'cauta aici filmul tau preferat';
	else
	{
		o.value = o.value.replace(/[^a-zA-Z0-9 \-\.\,\&\$\!\?\(\)]+/gi, '');
		if(o.value == '')
			o.value = 'cauta aici filmul tau preferat';
	}
}

function ClearSearch(o)
{
	if(o.value == 'cauta aici filmul tau preferat')
		o.value = '';
}