if (!window.navsys) { 
    window.navsys = {};
}

if (!navsys.gui) { 
    navsys.gui = {};
}

navsys.gui.TrackLocator = function() {
	this.group_id = null;
	this.as_map = null;
	this.map = null;
}

navsys.gui.TrackLocator.prototype.setGroupId = function(id) {
	this.group_id = id;
}

navsys.gui.TrackLocator.prototype.getGroupId = function() {
	return this.group_id;
}

navsys.gui.TrackLocator.prototype.getAsMap = function() {
	return this.as_map;
}

navsys.gui.TrackLocator.prototype.init = function() {
	this.initMap();
	this.fillUserTrackList();
	
	$("#userTrackSubmit").click(function () {
		var user = $("[name=userTrackUserName]", $(this.form)).val();
		var track = $("[name=userTrackTrackName]", $(this.form)).val();
		tlocator.fillUserTrackList({
			user_name_like: user,
			track_name_like: track
		});
	});	
}

navsys.gui.TrackLocator.prototype.initMap = function(map) {
	this.as_map = new As.Gui.Gmap($("#userTrackMap").get(0));
	this.map = this.as_map.getMap();	
	this.map = new GMap2($("#userTrackMap").get(0));
	this.map.enableScrollWheelZoom();
	this.map.enableContinuousZoom();
	this.map.addControl(new GMapTypeControl());
	this.map.addControl(new GLargeMapControl());
	
	this.map.setCenter(new GLatLng(67.5484, 95.8007), 5);
}

navsys.gui.TrackLocator.prototype.fillUserTrackList = function (options) {
	var options = options || {};

	$.get("/group/"+this.group_id+"/track/list.json", options, function (response){

		eval("var list = " + response + ";");

		var container = $("#userTrackList");
		container.html("");
		container.prepend("<ul />");

		var ul = $(container.children()[0]);

		for (var i = 0; i < list.length; i++) {
			ul.append("<li class=\"track_" + list[i].id + "\"><span>" + list[i].name + "</span></li>");
		}

		$("li", ul).click(function () {
			var tid = this.className.match(/(\d+)/)[1];
			tlocator.getAsMap().showTrack(tid);
		});
	});
}
