
function GScript(src)
{
// 	document.write('<' + 'script src="' + src + '"' +' type="text/javascript"><' + '/script>');
	console.log(src);
}

function	init_color_chooser()
{
	var	d=$('color-chooser')
	var	e;
	var	i,j;
	j=0;
	for(i=0;i<d.childNodes.length;i++)
	{
		e=d.childNodes[i];
		if(e.className=="color")
		{
			e.title=colors[j][0];
			e.style.backgroundColor=colors[j][1];
			e.onclick=set_choosed_color;
			j++;
		}
	}
}


function	xxasd()
{
	console.log(event.type);
}

var	r_tabgroup=0;
var	editor=0;
var	tracker=0;
var	travels=0;

var	dCore={
	init:	function()
	{
		this.log_target=$('loader_output');
		var	google_key=$('__head__').readAttribute('google_api_key');
		if(google_key.length < 50)
			alert('google api key is missing');

		this.parts=[
					[	"misc/colors", 				"/javascripts/colors/colors.js"		],
					[	"Effects(script.aculo.us)",		"/javascripts/effects.js"			],
// 					[	"Google jsAPI",				"http://www.google.com/jsapi?key=ABQIAAAA3hlAML9I4ZiRCMv4N3MUYhQHxFqYgeGWvVLiNCyHj1ReJEda1xTntRTVXuw9WcVFo308CAExJWkLcQ"	],

					[	"Google Maps API",				"http://maps.google.com/maps?file=api&v=2&key="+google_key+"&async=2"	],
//					[	"Google Maps API",				"http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA3hlAML9I4ZiRCMv4N3MUYhROkU6wTmA8jKertKGjxriEg9BWZRT8NPwsGnGD1O-JvJUn00FZgXyy5w&async=2"	],
//					[	"Google Maps API",				"http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA3hlAML9I4ZiRCMv4N3MUYhQHxFqYgeGWvVLiNCyHj1ReJEda1xTntRTVXuw9WcVFo308CAExJWkLcQ&c&async=2"	],
//					[	"Google Maps API",				"http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA3hlAML9I4ZiRCMv4N3MUYhQB6-0AvRsoFkWxexJwg0YLLhho0xQ9rKmtA8gVimy8dEvVIdr-yKUydQ&c&async=2"	],
					[	"Prototype-Graphic/core",		"/javascripts/prototype-graphic/dist/pgf-core.js"			],
// 					[	"Prototype-Graphic/core",		"/javascripts/prototype-graphic/src/prototype-graphic.js"	],
					[	"Prototype-Graphic/svg",			"/javascripts/prototype-graphic/src/renderer/svg.js"		],
// 					[	"GReverseGeoCoder",				"/javascripts/greversegeocoder.js"		],
					[	"GReverseGeoCoder",				"/javascripts/greversegeocoderv108.js"	],
					
					[	"app/gmaps-helpers",			"/javascripts/google-maps-helper2.js"	],
					[	"app/vehicle", 				"/javascripts/vehicle.js"			],
					[	"app/tracker",					"/javascripts/tracker.js"			],
					[	"app/timeline",				"/javascripts/timeline.js"			],
					[	"app/selftrack", 				"/javascripts/selftrack.js"			],
					[	"app/track", 					"/javascripts/track.js"				],
					[	"app/tab_group", 				"/javascripts/tab_group.js"			],
					[	"app/mouseeventcontroller", 		"/javascripts/mouseeventcontroller.js"	],
					[	"app/area", 					"/javascripts/area.js"				],
					[	"app/area_editor", 				"/javascripts/area_editor.js"			],
					[	"app/wrappers", 				"/javascripts/wrappers.js"			],
					[	"app/travels", 				"/javascripts/travels.js"			],
					[	"app/area_control",				"/javascripts/area_control.js"		],
					[	"app/tools",					"/javascripts/tools.js"				],
					[	"app/pg-graph",				"/javascripts/pg-graph.js"			],
					[	"app/poi",					"/javascripts/poi.js"				],
					[	"app/poi_control",				"/javascripts/poi_control.js"			],
					[	"app/active_track",				"/javascripts/active_track.js"		],
					[	"app/active_track4",			"/javascripts/active_track4.js"		],
// 					[	"app/dim-helper",				"/javascripts/dimension-helper.js"		]
				];

//		this.parts=[];
		$('loader_window').style.height=document.viewport.getHeight()+'px';
		this.load_idx=0;
		document.observe("dom:loaded", function() {
// 			setTimeout("dCore.load();",3000);
			dCore.load();
// 			console.log("dom:loaded");
		});

	},
	load:	function()
	{	with(this)
		{
			
// 			log(typeof(Graphic));
// 			log("loading parts...");
		
			if(load_idx < this.parts.length)
			{
				var	i=load_idx++;
// 			for(var i=0;i<parts.length;i++)
				{
					var	st=Date.now();
					log("#"+i+" "+parts[i][0]);
// 					console.log("load:"+Date.now());
					var	src=parts[i][1];
					if(!src.match(/^http/))
						src+='?177';
					var script = new Element("script", { type: "text/javascript", language:"JavaScript", src: src });
					script.idx=i;
					script.observe('load', function () {
						console.log("loaded in: "+(Date.now()-st)+" - "+parts[i][0]);
// 						console.log("end:"+Date.now()+" "+this.readyState+" "+this.idx);
						
						setTimeout("dCore.load()",50);
					});
					
					$$("head")[0].appendChild(script)
	
				}
			}
			else
			{
				
// 				log("google maps api");
// 				load_google_maps();
				
// 				google.load("maps", "2");
// 				log("google maps/search");
// 				google.load("search", "1");
				start();
			}
		
		}
		
	},
	log:		function(msg)
	{	with(this)
		{
			log_target.appendChild(document.createTextNode(msg));
			log_target.appendChild(document.createElement("BR"));
		}
	},
	start:	function()
	{
		$('loader_window').style.display="none";
		$('main_container').style.display="";
 		update_canvas_size();
		initialize_decode();
		
		var	max_id=0;
		setDecode(0,1,2);
		
		[ 'pbar','lbar','info','timeline','main_content'].forEach(function(element){
			$(element).addEventListener('DOMMouseScroll', function(e){
					e.stopPropagation();
					return true;}
						, false);
		});
		timeline.init();
		track.init();
		new Ajax.Updater('fleet','/vehicles/list',{asynchronous:true, evalScripts:true});
//		new Ajax.Updater('fleet','/auth/index',{asynchronous:true, evalScripts:true});
		
		init_color_chooser();
		map_types.init();

		r_tabgroup=new	TabGroup($('pbar_tabs'));
		r_tabgroup.add("Routes",		$('routes_tab'));
		r_tabgroup.add("Areas",		$('areas_tab'));
// 		r_tabgroup.add("Travels",	$('travel_tab'));
		r_tabgroup.add("Travels",	$('travel2_tab'));
		r_tabgroup.add("POI",		$('poi_tab'));
		
// 		$('map_canvas').addEventListener
		
// 		GEvent.addListener(map, "click", xxasd);
		create_icons();
		editor=new	AreaEditor($('map_canvas'));
		
		tool_types.init();
		
		map.mec=new	MouseEventController($('tracker_div'));
		map.mec.addEventListener('click',function(event){
			var	projection=map.getCurrentMapType().getProjection();
			var	bounds=map.getBounds();
			var	top_left=new GLatLng(bounds.getNorthEast().lat(),bounds.getSouthWest().lng());
			top_left=projection.fromLatLngToPixel(top_left,map.getZoom(),true);
			editor.click(
				projection.fromPixelToLatLng(
											new GPoint(	top_left.x+event.clientX,
														top_left.y+event.clientY	),
											map.getZoom()
										),
				event.shiftKey);
		});
		
		tracker=new Tracker(timeline,track,map);
		travels=new Travels();
		areacontrol=new AreaController($('area_target'));
		poicontrol=new POIController($('poi_tab'));
// 		timeline.refresh_cars();
		console.log("init complete");
		
		
	}	
};


