
				Type.registerNamespace('OnderwegLib');
				OnderwegLib._Constants = function() {
					// load consts
				};
				OnderwegLib._Constants.prototype = {
					SpinnerUrl: 'http://onderweg.locatienet.com/images/spinner.gif',
					URL : 'http://onderweg.locatienet.com/',
					ADDRESS_PAGE: 'address.htm',
					MAP_PAGE: 'map.htm',
					ROUTE_PAGE: 'route.htm'
				};
				OnderwegLib.Constants = new OnderwegLib._Constants();
			

// OnderwegLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
//
Type.registerNamespace("OnderwegLib.Net");

OnderwegLib.Net.WebpartSettings = function() {
	OnderwegLib.Net.WebpartSettings.initializeBase(this);
	this._webpart = '';
	this._query = '';
	this._SucceededCallback = null;
};

OnderwegLib.Net.WebpartSettings.prototype = {
	get_webpart: function() {
		return this._webpart;
	},
	set_webpart: function(value) {
		this._webpart = value;
	},
	get_query: function() {
		return this._query;
	},
	set_query: function(value) {
		if (value) {
			this._query = value.replace(/\?/, ""); ;
		}
	},

	add_SucceededCallback: function(handler) {
		this.get_events().addHandler("succeeded", handler);
	},
	remove_SucceededCallback: function(handler) {
		this.get_events().removeHandler("succeeded", handler);
	},

	/* */
	RaiseSucceededEvent: function() {
		handler = this.get_events().getHandler("succeeded");
		if (handler) {
			handler(this, Sys.EventArgs.Empty);
		}
	}

};

OnderwegLib.Net.WebpartSettings.registerClass("OnderwegLib.Net.WebpartSettings", Sys.Component);


OnderwegLib.Net.WebpartRequest = function(onCompletedCallback) {
	OnderwegLib.Net.WebpartRequest.initializeBase(this);
	this._settings = null;
	this._requestid = 0;
	this._onCompletedCallback = onCompletedCallback;
	this._responseData = null;
	this._sender = null;
};


OnderwegLib.Net.WebpartRequest.prototype = {
	initialize: function() {
		OnderwegLib.Net.WebpartRequest.callBaseMethod(this, "initialize");
	},

	CreateWebpart: function(settings) {
		if (!settings) {
			throw new Sys.ArgumentException("settings");
		}
		this._settings = settings;

		TripzoomLib.Net.RequestManager.Add(this);

		var url = OnderwegLib.Constants.URL + "OnderwegHandler.ashx?function=CreateWebpart" +
						"&userid=" + TripzoomLib.Constants.USERID +
						"&requestid=" + this.get_requestid() +
						"&webpart=" + this._settings.get_webpart() +
						((this._settings.get_query()) ? "&" + this._settings.get_query() : '');
		var req = new JSONScriptRequest(); // call to JSONScriptRequest
		req.open('GET', url, true);
		req.onreadystatechange = function() {
			switch (req.readyState) {
				case 4:
					alert(req.readyState + "\n" + req.responseJSON);
					break;
			}
		};
		req.send(null);

	},

	dispose: function() {
		OnderwegLib.Net.WebpartRequest.callBaseMethod(this, "dispose");
	},

	get_sender: function() { return this._sender; },
	set_sender: function(value) { this._sender = value; },

	get_settings: function() { return this._settings; },

	get_requestid: function() { return this._requestid; },
	set_requestid: function(value) { this._requestid = value; },

	get_responseData: function() {
		return this._responseData;
	},


	_onCompleted: function() {
		if (this._onCompletedCallback)
			this._onCompletedCallback(this._sender, Sys.EventArgs.Empty);

	}

};
OnderwegLib.Net.WebpartRequest.registerClass("OnderwegLib.Net.WebpartRequest", Sys.Component);

// OnderwegLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
//


// OnderwegLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
//
Type.registerNamespace("OnderwegLib");

OnderwegLib._Dashboard = function() {
	this._webpartRequest = new OnderwegLib.Net.WebpartRequest(this._onWebpartLoad);
	this._webpartRequest.set_sender(this);
	this._webpartRequest.initialize(); 
	date = new Date();
	this._includeCSS(OnderwegLib.Constants.URL + "css/Onderweg.css?d=" + date.toUTCString());
};

OnderwegLib._Dashboard.prototype = {
	createWebpart: function(webpart, query, SucceededCallback) {
		var elem = $get(webpart);
		if (elem)
			this._setInnerHTMLAndExecScript(elem, '<img src="' + OnderwegLib.Constants.SpinnerUrl + '" alt=""/>');

		var settings = $create(OnderwegLib.Net.WebpartSettings, { "webpart": webpart, "query": query });
		if (SucceededCallback) {
			settings.add_SucceededCallback(SucceededCallback);
		}
		this._webpartRequest.CreateWebpart(settings);


	},

	_setInnerHTMLAndExecScript: function(element, html) {
		var newElement = element.cloneNode(false);
		newElement.innerHTML = html;
		element.parentNode.replaceChild(newElement, element);
	},



	_onWebpartLoad: function(userContext, evt) {
		userContext._webpartRequest.get_settings().RaiseSucceededEvent();
		var data = userContext._webpartRequest.get_responseData();
		if (data) {
			var elem = $get(data.webpart);
			if (elem)
				userContext._setInnerHTMLAndExecScript(elem, data.html)
		}
	},

	/* This script and many more are available free online at
	The JavaScript Source!! http://javascript.internet.com
	Created by: Benoit Asselin | http://www.ab-d.fr/ */
	_includeCSS: function(p_file) {
		var v_css = document.createElement('link');
		v_css.rel = 'stylesheet';
		v_css.type = 'text/css';
		v_css.href = p_file;
		document.getElementsByTagName('head')[0].appendChild(v_css);
	}

};
OnderwegLib._Dashboard.registerClass("OnderwegLib._Dashboard");


OnderwegLib.Dashboard = new OnderwegLib._Dashboard();
