var map;

function loadGoogleMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		map.setCenter(new GLatLng(42.00,-87.98) , 9);
	}
}

function addOfficePin(latlng, number) {
	var icon = getBaseIcon();
	var leadZeroes = "00";
	if (number < 100) leadZeroes = "0";
	if (number < 10) leadZeroes = "00";
	
	icon.image = "/images/gmaps/pushpins/pin_" + leadZeroes + number + ".png";
	var marker = new GMarker(latlng, icon);
	
	GEvent.addListener(marker, "mouseover", function() {
		$("#small-office-pin").html("<img src='" + icon.image + "'>");
		$("#small-office-card").html($("#office-card-" + number).html());
	});
	map.addOverlay(marker);
}

function addOfficePins() {
	$(".officePin").each(function(i) {
		var latlng = $(this).val().split(",");
		//SKD i starts at 0, but we need it to start at 1
		addOfficePin(new GLatLng(latlng[0], latlng[1]), i+1);
	});
}

function filterResults() {
	if (document.frmAgentNameSearch.jobType.value == 0) {
		$("p.Agent").show();
		$("p.LoanOfficer").show();
		$("p.OfficeManager").show();
		$("p.Staff").show();
	} else if (document.frmAgentNameSearch.jobType.value == 1) {
		$("p.Agent").show();
		$("p.LoanOfficer").hide();
		$("p.OfficeManager").hide();
		$("p.Staff").hide();
		$("#no-agents-message").hide();
		if ($("p.Agent").length == 0) {
			$("#no-agents-message").show();
		}
	} else if (document.frmAgentNameSearch.jobType.value == 2) {
		$("p.Agent").hide();
		$("p.LoanOfficer").show();
		$("p.OfficeManager").hide();
		$("p.Staff").hide();
		$("#no-agents-message").hide();
		if ($("p.LoanOfficer").length == 0) {
			$("#no-agents-message").show();
		}
	} else if (document.frmAgentNameSearch.jobType.value == 3) {
		$("p.Agent").hide();
		$("p.LoanOfficer").hide();
		$("p.OfficeManager").show();
		$("p.Staff").hide();
		$("#no-agents-message").hide();
		if ($("p.OfficeManager").length == 0) {
			$("#no-agents-message").show();
		}
	} else if (document.frmAgentNameSearch.jobType.value == 4) {
		$("p.Agent").hide();
		$("p.LoanOfficer").hide();
		$("p.OfficeManager").hide();
		$("p.Staff").show();
		$("#no-agents-message").hide();
		if ($("p.Staff").length == 0) {
			$("#no-agents-message").show();
		}
	}
};

function getAgentsByLetter(letter) {
	$("#agent-results").html($("#ajax-loader").html());
	$.ajax({
		type: "GET",
		url: "/cfc/remote/AssociateRemote.cfc?method=getAssociatesByLetter",
		data: "letter=" + letter,
		dataType: "html",
		success: function(message) {
			$("#agent-results").html(message);
			filterResults();
		}
	});
}

function getAgentsByName(searchstring) {
	$("#agent-results").html($("#ajax-loader").html());
	$.ajax({
		type: "GET",
		url: "/cfc/remote/AssociateRemote.cfc?method=getAssociatesByName",
		data: "searchstring=" + searchstring,
		dataType: "html",
		success: function(message) {
			$("#agent-results").html(message);
			filterResults();
		}
	});
}

function getAgentsByOffice(officeid) {
	$("#agent-results").html($("#ajax-loader").html());
	$.ajax({
		type: "GET",
		url: "/cfc/remote/AssociateRemote.cfc?method=getAssociatesByOfficeID",
		data: "officeid=" + officeid,
		dataType: "html",
		success: function(message) {
			$("#agent-results").html(message);
			filterResults();
		}
	});
}

function getAgentsByLanguage(languageid) {
	$("#agent-results").html($("#ajax-loader").html());
	$.ajax({
		type: "GET",
		url: "/cfc/remote/AssociateRemote.cfc?method=getAssociatesByLanguageID",
		data: "languageid=" + languageid,
		dataType: "html",
		success: function(message) {
			$("#agent-results").html(message);
			filterResults();
		}
	});
}

function loadAgentSearch() {
	$.ajax({
		type: "GET",
		url: "/agent-office/agent-search.cfm?jobType=" + $("#urlJobType").val(),
		dataType: "html",
		success: function(message) {
			$("#agent-search").html(message);
			AddTitleBackgrounds();
			$(".search-letter").bind("click", function(e) {
				e.preventDefault();
				getAgentsByLetter($(this).html());
			});
			$("#AgentNameSearch").bind("click", function(e) {
				e.preventDefault();
				getAgentsByName($("#agentname").val());
			});
			$("#frmAgentNameSearch").bind("submit", function(e) {
				e.preventDefault();
				getAgentsByName($("#agentname").val());
			});
			$("#frmAgentSearchByOffice").bind("submit", function(e) {
				e.preventDefault();
				if($("#officeid").val() != "") {
					getAgentsByOffice($("#officeid").val());
				}
			});
			$("#frmAgentSearchByLanguage").bind("submit", function(e) {
				e.preventDefault();
				if($("#languageid").val() != "") {
					getAgentsByLanguage($("#languageid").val());
				}
			});
			defaultAgentList();
			$("#jobType").bind("click", function(e) {
				filterResults(); 
			});
		}
	});
}

function loadOffices() {
	$.ajax({
		type: "GET",
		url: "/agent-office/office-list.cfm",
		dataType: "html",
		success: function(message) {
			$("#office-results").html(message);
			loadGoogleMap();
			addOfficePins();
		}
	});
}

$(document).ready(function() {
	document.onunload = "GUnload()";
	$("#find-an-office > ul").tabs().tabs('select', 1);
	loadAgentSearch();
	loadOffices();
});