function openWebService(webServiceId) {
	var loadedStyleSheet;
	if (wsLoadedStyleSheets.length > 0) {
		while (loadedStyleSheet = wsLoadedStyleSheets.pop()) {
			unloadStyleSheet(loadedStyleSheet);
		}
	}

	var ssFilename = '/styles/' + webServiceId + '.css';
	if (!isStyleSheetLoaded(ssFilename)) {
		loadStyleSheet(ssFilename);
		wsLoadedStyleSheets.push(ssFilename);
	}

	var languageId = getLanguageIdFromURL(), params;
	if (languageId) {
		params = 'lang=' + languageId;
	} else {
		params = '';
	}

	displayPopin(webServiceId + '.php', params);
}

function executeWebService(webServiceId) {
	var query = new Array(), form = $('#popin form').get(0);
	for (var i = 0; i < form.elements.length; i++) {
		if (form.elements[i].name != '') {
			query[encodeURIComponent(form.elements[i].name)] = encodeURIComponent(form.elements[i].value);
		}
	}

	$.getJSON(
		'cmd-' + webServiceId + '.php', 
		query, 
		function(reply) {
			if (reply.messages && (reply.messages.length > 0)) {
				window.alert(reply.messages.join('\n'));
			}
			if (Boolean(reply.result)) { hidePopin(); }
		}
	);
}

function getLanguageIdFromURL() {
	var params, matches;
	if (matches = document.location.search.match(/^\?(.+)$/)) {
		params = matches[1].split('&');
		for (var i = 0; i < params.length; i++) {
			matches = new Array();
			if (matches = params[i].match(/^([^=]+)=([^=]+)$/)) {
				if (matches[1].toLowerCase() == 'lang') {
					return matches[2].toLowerCase();
				}
			}
		}
	}
	return false;
}

var wsLoadedStyleSheets = new Array();
