var map;

$(document).ready(function() {
	var h = $(window).height() - $("#masthead").height() - $("#section1").height() - 100;
	
	if ($("#propertytax").length) $("#propertytax").css("min-height", h+"px");
				
	if ($("#propertytax-details").length) $("#propertytax-details")
		.css("min-height", h+"px")
			.tabs();
	
	$("#ptax-search-address").keyup(function() {
		var val = $(this).val().replace(/\s/g, "_");
		if (val.length > 1) {
			$("#loading").show();
			$.getJSON('/propertytax/search/' + val, function(json) {
				var l=json.length/2;
				var ul=0;
				$("#loading").hide();
				if (l) {
					$("#ptax-suggest-results").empty().html('<ul></ul><ul></ul>');
					$.each(json, function(i, item) {
						var address=item.LOC;
						ul=(i>l)?1:0;
						$("#ptax-suggest-results ul:eq("+ul+")")
							.append('<li><a href="/propertytax/address/' + address + '">' + address + '</a></li>');											
					});
				}
				else $("#ptax-suggest-results").empty().html('<p>No results found.</p>');
			});	
		}
	});
	
	$("#propertytax-register-email").blur(function() {
		var val = $(this).val();
		
		$.post("/propertytax/validate/", {element: "email", address: val},  function(resp) {
			if (resp.count > 0)	
				$("#propertytax-register-email")
					.addClass("ui-state-error")
						.siblings("span.alert")
							.text("Email address is taken.");
		}, "json");
	});
	
	
	$("#propertytax-checkout input[name='submit-payment']").click(function(e) {
		$(this).addClass("clicked");
	});
	
	if ($("#map").length) {
		$('#propertytax-details').bind('tabsshow', function(event, ui) {
    	if (ui.panel.id == "tab-2") {
        init();
	    }
		});		
	}
});


function init() {
	var h=$(window).height() - $("#masthead").outerHeight() - $("#section1").outerHeight() - $("#footer").outerHeight();
	$("#map").height(h + "px");
	
	map = new GMap2(document.getElementById("map"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
			
	showAddress($("#details-loc").text()); 
	
	$(window).unload(function() { GUnload(); });	
}


function showAddress(address) {
	var geocoder = new GClientGeocoder();
	
	geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
      	// alert(address + " not found");
				GUnload();
      } else {
        map.setCenter(point, 14);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
      }
    }
  );
}