
Array.prototype.has=function(v,i)
{
	for (var j=0;j<this.length;j++)
	{
		if (this[j]==v) return (!i ? true : j);
	}
	return false;
}

$().ready(function()
{
	var responsibilities = Array();
	$("div.config > span.responsibilities").each(function() {
		var tmp = $(this).text().split(",");
		for (var i = 0; i < tmp.length; i++)
		{
			var s = $.trim(tmp[i]);
			if (!responsibilities.has(s))
			{
				responsibilities[responsibilities.length] = s;
			}
		}
	});
	
	responsibilities.sort();

	for (var i = 0; i < responsibilities.length; i++)
	{
		var s = responsibilities[i];
		$("div.zipRangeForm select").append('<option value="' + s + '">' + s + '</option>');
	}

	$("div.zipRangeForm").submit(function(event) {
		filterResults();
		return false;
	});

	$("div.zipRangeForm").keydown(function(event) {
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 13)
		{
			filterResults();
			return false;
		}
	});

	
	$("div.zipRangeForm input:button").click(function() {
		filterResults();
		return false;
	});

	$("div.zipRangeForm").removeClass("hidden");
});

function filterResults()
{
	var r = $("div.zipRangeForm select:first").val();
	var n = parseInt($("div.zipRangeForm input:first").val(), 10);
	$("div.zipRange").each(function()
	{
		var show = false;
		if ((n + '') != 'NaN')
		{
			var zr = $(this).find("span.ziprange").text().split(",");
			for (var i = 0; i < zr.length; i++)
			{
				var rng = $.trim(zr[i]).split("-");
				if (rng.length == 2)
				{
					var a = parseInt($.trim(rng[0]), 10);
					var b = parseInt($.trim(rng[1]), 10);
					log(a + " , " + b + " : " + n)
					if (a <= n && n <= b)
					{
						show = true;
						break;
					}
				}
			}		
		}
		else
		{
			show = true;
		}
		log(show);
		show = (show && $(this).find("span.responsibilities").text().indexOf(r) > -1);
		if (show)
			$(this).removeClass("hidden");
		else
			$(this).addClass("hidden");
	});
}
