ITV.provider = function() {
	
	var providers = []
	var lineupId = ""
	var $providerZip = $("#providerZip")
	var $providerType = $("#providerType")
	var $providerProvider = $("#providerProvider")
	var $providerTier = $("#providerTier")
	
	$("#providerSelection").submit(function(e) {
		e.preventDefault()
		var zip = $("input.zip").val()
		if (!zip) return
		
		$.get("/providers/" + zip, function(data) {
			providers = data
			$providerZip.hide()
			$providerType.show()
		}, "json")
	})
	
	$("a.type").live("click", function(e) {
		e.preventDefault()
		var type = $(this).data("provider-type")
		var $ul = $providerProvider.find("ul")
		var html = ""
		var provider = {}
		var lineup
		for (var i = 0; i < providers.length; i++) {
			lineup = providers[i]
			if (lineup.type !== type) continue
			html += '<li><a href="#" class="provider" data-provider-id="' + lineup.lineupId + '" data-provider-name="' + lineup.name + '"> ' + lineup.name + ', <span class="deemphasis">' + lineup.location + '</span></a></li>'
		}
		$ul.html(html)
		$providerProvider.show()
		$providerTier.hide()
	})
	
	$("a.provider").live("click", function(e) {
		e.preventDefault()
		lineupId = $(this).data("provider-id")
		$.get("/providers/" + lineupId + "/counts", function(counts) {
			$providerTier.show()
			$providerTier.find(".premium").text(counts.premiumTier)
			$providerTier.find(".basic").text(counts.basicTier)
			$providerTier.find(".extended").text(counts.extendedTier)
		})
	})
	
	$("a.tier").live("click", function(e) {
		e.preventDefault()
		var tier = $(this).data("tier")
		$.ajax({
			url: "/users/provider",
			type: "post",
			data: {lineupId: lineupId, tier: tier},
			success: function() {
				window.location.href = "/guide"
			},
			error: function() {
				alert("Sorry we could no update your provider")
			}
		})
	})
	
	// geo-location of zip code
	if ($("#providerSelection").length && !$("input.zip").val() && navigator.geolocation) {    
	    navigator.geolocation.getCurrentPosition(function(p) {
		    if ($("input.zip").val()) return
			$.get("/postalCode?lat=" + p.coords.latitude + "&lon=" + p.coords.longitude, function(data) {
				$("input.zip").val(data.postalCode)
		    }, "json")
	    }, function(e) {
			window.console && console.log(e)
	    })
	}	
	
}
