$(document).ready(function() 
{
	$('.artlistcolorfilteritem').each(function()
	{
		var currentColor = rgb2hex($(this).css('background-color'));
		var colorThreshold = "c";
		var colorComponentsOverThreshold = 0;
		
		if(currentColor.substr(1, 1)>colorThreshold)
			colorComponentsOverThreshold++;

		if(currentColor.substr(3, 1)>colorThreshold)
			colorComponentsOverThreshold++;
		
		if(currentColor.substr(5, 1)>colorThreshold)
			colorComponentsOverThreshold++;
		
		if(colorComponentsOverThreshold>=2)
		{
			$(this).addClass("artlistcolorfilteritemwhite");
			$('.artlistcolorfilteritemhover', this).addClass("artlistcolorfilteritemhoverwhite");
		}
	});

	if($.url.param("attr1_ids"))
	{
		var selectedAttr1_ids = $.url.param("attr1_ids").split(',')
		for(var i=0; i<selectedAttr1_ids.length; i++)
		{
			
			if($("#artlistcolorfilteritem-"+selectedAttr1_ids[i]).hasClass("artlistcolorfilteritemwhite"))
				$("#artlistcolorfilteritem-"+selectedAttr1_ids[i]).addClass("artlistcolorfilteritemselectedwhite");
			else
				$("#artlistcolorfilteritem-"+selectedAttr1_ids[i]).addClass("artlistcolorfilteritemselected");
		}
	}
	if($.url.param("attr2_ids")!=undefined&&$.url.param("attr2_ids").length>0)
	{
		var attributesToShow = 2;
		$('#artlistsizefiltershowallbutton').css('display', 'block');
		var selectedAttr2_ids = $.url.param("attr2_ids").split(',')
		for(var i=0; i<selectedAttr2_ids.length; i++)
		{
			if(i<attributesToShow)
			{
				$('#artlistsizefiltershowing').html($('#artlistsizefiltershowing').html()+$("#artlistsizefilteritem-"+selectedAttr2_ids[i]).html()+(i<attributesToShow-1&&selectedAttr2_ids.length>i+1?',':''))
			}
			else if(i==attributesToShow)
			{
				$('#artlistsizefiltershowing').html($('#artlistsizefiltershowing').html()+'...')
			}
			$("#artlistsizefilteritem-"+selectedAttr2_ids[i]).addClass("artlistsizefilteritemselected");
		}
	}
	else
	{
		$('#artlistsizefilterisshowingallbutton').css('display', 'block');
		$('#artlistsizefiltershowing').html($('#artlistsizefiltershowing').html()+getTranslatedString('show_it_all_lowercase'))
	}
	
	$('.artlistcolorfilteritem').each(function()
	{
		$(this).bind('mouseover', function()
		{
			$('.artlistcolorfilteritemhover', this).fadeIn(200);
		});
		$(this).bind('mouseleave', function()
		{
			$('.artlistcolorfilteritemhover', this).fadeOut(200);
		});
	
	});

	
	$('#artlistsizefilter').bind('mouseover', function()
	{
		$('#artlistsizefilterpopup').css('display', 'block');
		$('#artlistsizefilterhideshadow').css('display', 'block');
		$('#artlistsizefilter').addClass('artlistsizefilterhover');

	});

	$('#artlistsizefilterpopup').bind('mouseover', function()
	{
		$('#artlistsizefilter').addClass('artlistsizefilterhover');
		$('#artlistsizefilterpopup').stop();
		$('#artlistsizefilterpopup').css('display', 'block');
		$('#artlistsizefilterhideshadow').css('display', 'block');
	});
	$('#artlistsizefilterhideshadow').bind('mouseover', function()
	{
		$('#artlistsizefilter').addClass('artlistsizefilterhover');
		$('#artlistsizefilterpopup').stop();
		$('#artlistsizefilterpopup').css('display', 'block');
		$('#artlistsizefilterhideshadow').css('display', 'block');
	});
	$('#artlistsizefilter').bind('mouseleave', function()
	{
		$('#artlistsizefilter').removeClass('artlistsizefilterhover');
		$('#artlistsizefilterpopup').delay(200).css('display', 'none');
		$('#artlistsizefilterhideshadow').delay(200).css('display', 'none');
	});
	$('#artlistsizefilterhideshadow').bind('mouseleave', function()
	{
		$('#artlistsizefilter').removeClass('artlistsizefilterhover');
		$('#artlistsizefilterpopup').delay(200).css('display', 'none');
		$('#artlistsizefilterhideshadow').delay(200).css('display', 'none');
	});
	$('#artlistsizefilterpopup').bind('mouseleave', function()
	{
		$('#artlistsizefilterpopup').delay(200).css('display', 'none');
		$('#artlistsizefilterhideshadow').delay(200).css('display', 'none');
	});
	$('#artlistsizefiltershowallbutton').bind('click', function()
	{
		fixfilter(2, -1, true);
	});
	$('#artlistsizefilterisshowingallbutton').bind('click', function()
	{
		submitfilters();
	});
});




function fixfilter(attribute, attr_id, clearall)
{
	
	var oldFilterString = $(document).data('newfilterstring_'+attribute)?$(document).data('newfilterstring_'+attribute):$.url.param('attr'+attribute+'_ids')

	if(clearall)
	{
		var newFilterString = '';
	}
	else if(attribute==1)
	{
		var newFilterString = fixcolorfilter(attr_id, oldFilterString);
	}
	else if(attribute==2)
	{
		var newFilterString = fixsizefilter(attr_id, oldFilterString);
	}

	$(document).data('newfilterstring_'+attribute, newFilterString)
	if(attribute==1||clearall)
	{
		submitfilters();
	}
}


function submitfilters()
{
	/*
	 * TODO:
	 * 			- submitfilters() <- submitta både 1 & 2, så om man råkar klicka på färgfilter (submittas direkt) så submittas ändå de storleksfilter som är gjorda
	 * 			- markera storleksfilter som är "pending" på/borttag
	 * 			- hantera borttag av storleksfilter
	 * 			- sista färgfiltret går inte att ta bort
	*/
	
	var queryString = window.location.search;

	var oldFilterString1 = $.url.param('attr1_ids')
	var oldFilterString2 = $.url.param('attr2_ids')

	var newFilterString1 = $(document).data('newfilterstring_1')===undefined?($.url.param('attr1_ids')?$.url.param('attr1_ids'):''):$(document).data('newfilterstring_1');
	var newFilterString2 = $(document).data('newfilterstring_2')===undefined?($.url.param('attr2_ids')?$.url.param('attr2_ids'):''):$(document).data('newfilterstring_2');
	
	if(queryString==0)
		queryString+='attr1_ids='+newFilterString1;
	else if(queryString.indexOf('attr1_ids')==-1)
		queryString+='&attr1_ids='+newFilterString1;
	else
		queryString = queryString.replace('attr1_ids='+oldFilterString1, 'attr1_ids='+newFilterString1);

	if(queryString==0)
		queryString+='attr2_ids='+newFilterString2;
	else if(queryString.indexOf('attr2_ids')==-1)
		queryString+='&attr2_ids='+newFilterString2;
	else
		queryString = queryString.replace('attr2_ids='+oldFilterString2, 'attr2_ids='+newFilterString2);

	window.location.search=queryString;
}

function fixsizefilter(attr2_id, oldFilterString)
{
	var newFilterString='';
	if($("#artlistsizefilteritem-"+attr2_id).hasClass("artlistsizefilteritemselected"))
	{
		var oldFilterStringArray = oldFilterString.split(',');
		var isFirst = true;
		for(var i=0; i<oldFilterStringArray.length; i++)
		{
			if(oldFilterStringArray[i]!=attr2_id)
			{
				if(isFirst)
				{
					isFirst = false;
				}
				else
				{
					newFilterString+=',';
				}
				newFilterString+=oldFilterStringArray[i];
			}
		}
		$("#artlistsizefilteritem-"+attr2_id).removeClass("artlistsizefilteritemselected")
	}
	else
	{
		$("#artlistsizefilteritem-"+attr2_id).addClass("artlistsizefilteritemselected")
		//is not selected => select
		if(oldFilterString)
			newFilterString=oldFilterString+',';
		newFilterString+=attr2_id;
	}
	
	$('#artlistsizefiltershowallbutton').css('display','none');
	$('#artlistsizefilterisshowingallbutton').css('display','block');
	
	return newFilterString;
}
function fixcolorfilter(attr1_id, oldFilterString)
{
	var newFilterString='';
	if($("#artlistcolorfilteritem-"+attr1_id).hasClass("artlistcolorfilteritemselectedwhite")||$("#artlistcolorfilteritem-"+attr1_id).hasClass("artlistcolorfilteritemselected"))
	{
		var oldFilterStringArray = oldFilterString.split(',');
		var isFirst = true;
		for(var i=0; i<oldFilterStringArray.length; i++)
		{
			if(oldFilterStringArray[i]!=attr1_id)
			{
				if(isFirst)
				{
					isFirst = false;
				}
				else
				{
					newFilterString+=',';
				}
				newFilterString+=oldFilterStringArray[i];
			}
		}	
	}
	else
	{
		//is not selected => select
		if(oldFilterString)
			newFilterString=oldFilterString+',';
		newFilterString+=attr1_id;
	}
	return newFilterString;
}

function rgb2hex(rgb) {
	if(rgb.substr(0, 1)=='#')
		return rgb;
    rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    function hex(x) {
        return ("0" + parseInt(x).toString(16)).slice(-2);
    }
    return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}

function setparenthaschildren(id)
{
	if($('#artmenuitem_'+id).hasClass('artmenuitemhaschildren')||$('#artmenuitem_'+id).hasClass('artmenuitemhaschildrenopen'))
		return;
	$('#artmenuitem_'+id).addClass('artmenuitemhaschildren')
	$('#artmenuitem_'+id).append($('<div class="artmenuitemhaschildrenarrow"></div>'));

}
function setparenthaschildrenopen(id)
{
	if($('#artmenuitem_'+id).hasClass('artmenuitemhaschildren')||$('#artmenuitem_'+id).hasClass('artmenuitemhaschildrenopen'))
		return;
	$('#artmenuitem_'+id).addClass('artmenuitemhaschildrenopen')
	$('#artmenuitem_'+id).append($('<div class="artmenuitemhaschildrenopenarrow"></div>'));
}

