function sendRMIRequest(params){
		var url = location.href;
		var index = url.indexOf('://') + 3;
		index = url.indexOf('/',index) + 1;
		index = url.indexOf('/',index)+1;
		url = url.substring(0,index) + 'actions/rmiMethod';
		var xmlHttp;
		if (window.XMLHttpRequest){
			xmlHttp=new XMLHttpRequest();
		}
		else{
			xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
		}
		xmlHttp.open('POST',url,false);
		xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		xmlHttp.send(params);
		var text = xmlHttp.responseText;
		var result = null;
		eval("result=" + text + ";");
		if(result.exception)
			throw result.exception;
		return result;
	}

	function buildParameter(paramName,paramValue){
		if(typeof paramValue != 'nothing'){
			if(paramValue instanceof Array){
				var paramValues = '';
				for(var i=0;i<paramValue.length;i++){
					if(i>0)
						paramValues += '&';
					paramValues += paramName + '=' + encodeValue(paramValue[i]);
				}
				return paramValues;
			}
			else{
				return paramName + '=' + encodeValue(paramValue);
			}
		}else{
			if(paramValue.length == 0)
				return paramName + '=' + encodeValue(paramValue);
		}
		return paramName + '=null';
	}

	function replaceAll(value,src,rplc){
		var result = '';
		while(value.length>0){
			var index = value.indexOf(src);
			if(index>=0){
				result += value.substring(0,index) + rplc;
				value = value.substring(index+src.length);
			}else{
				result += value;
				value = '';
			}
		}
		return result;
	}

	function encodeValue(paramValue){
		paramValue = '' + paramValue;
		var result = replaceAll(replaceAll(replaceAll(replaceAll(replaceAll(replaceAll(paramValue,'%','%25'),'&','%26'),'+','%2B'),',','%2C'),'?','%3F'),'=','%3D');
		return result;
	}

	function getInteger(param0){
		var params = 'method=getInteger&paramsCount=1' + '&' + buildParameter('param0',param0);
		var result = sendRMIRequest(params);
		return result;
	}

	function getCourses(param0,param1,param2,param3){
		var params = 'method=getCourses&paramsCount=4' + '&' + buildParameter('param0',param0) + '&' + buildParameter('param1',param1) + '&' + buildParameter('param2',param2) + '&' + buildParameter('param3',param3);
		var result = sendRMIRequest(params);
		return result;
	}

	function getFloat(param0){
		var params = 'method=getFloat&paramsCount=1' + '&' + buildParameter('param0',param0);
		var result = sendRMIRequest(params);
		return result;
	}

	function getColleges(){
		var params = 'method=getColleges&paramsCount=0';
		var result = sendRMIRequest(params);
		return result;
	}

	function getCoursesPagesCount(param0,param1,param2){
		var params = 'method=getCoursesPagesCount&paramsCount=3' + '&' + buildParameter('param0',param0) + '&' + buildParameter('param1',param1) + '&' + buildParameter('param2',param2);
		var result = sendRMIRequest(params);
		return result;
	}

	function getDepartments(param0){
		var params = 'method=getDepartments&paramsCount=1' + '&' + buildParameter('param0',param0);
		var result = sendRMIRequest(params);
		return result;
	}

	function getDegrees(){
		var params = 'method=getDegrees&paramsCount=0';
		var result = sendRMIRequest(params);
		return result;
	}