

function makeHttpRequestForOptions(url, callback_function, opt, selectedValue)
{
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Unfortunatelly you browser doesn\'t support this feature.');
		return false;
	}
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				eval(callback_function + '(http_request.responseText, opt, selectedValue)');
			} else {
				alert('There was a problem with the request.(Code: ' + http_request.status + ')');
			}
		}
	}
	http_request.open('GET', url, true);
	http_request.send(null);
}

function loadOptions(xml, loadedOptions, selectedValue)
{				
	loadedOptions.length = 0;	
   	var items = xml.split('splitItem');
   	for (var i=0; i<items.length-1; i++) {
   		var opt = items[i].split('splitKey');
   		loadedOptions[loadedOptions.length] = new Option(opt[1], opt[0], (selectedValue == opt[0]), (selectedValue == opt[0])); 		
   	}
   	// notify about options is loaded
   	if (typeof(onOptionsLoaded) == 'function'){
		onOptionsLoaded(loadedOptions);
	}
}

function getOptionsAjax(context, criteria, opt, sel)
{		
	var port = '';
	if (location.port != '80' && location.port != ''){
		port = ':' + location.port;
	}
	var url = 'http://'+location.host + port + location.pathname;
	
	url += "?view=" + context + "Options&" + "criteria=" + criteria;
	//alert(url);
	makeHttpRequestForOptions(url, 'loadOptions', opt, sel);
}
