
/*
 * 
 * SETUP
 * 
 */

//var PROXY_URL = "http://beta.babelomics:8080/babelomics-web/Proxy";
//var PROXY_URL = "http://beta.babelomics.bioinfo.cipf.es/Proxy";
var PROXY_URL = "Proxy";

$.ajaxSetup({'beforeSend': function(xhr){
    if (xhr.overrideMimeType)
        xhr.overrideMimeType("text/plain");
    }
});


/*
 * 
 * AJAX CALLS
 * 
 */

function doGet(url, successCallback, errorCallback, enctype){
	if(!enctype) enctype = "application/x-www-form-urlencoded";
	$.ajax({
		async: false,
		type: "GET",
		url: url,
		dataType: "text",
		cache: false,	
		success: successCallback,
		error: errorCallback,
		contentType: enctype
	});
}

function doProxyGet(url, successCallback, errorCallback){
	$.ajax({
		type: "GET",
		url: PROXY_URL,
		dataType: "text",
		data:{ url : url },	
		cache: false,	
		success: successCallback,
		error: errorCallback
	});
}

function doPost(url, params, successCallback, errorCallback){	
	$.ajax({
		type: "POST",
		url: url,
		dataType: "text",
		data: params,
		cache: false,
		success: successCallback,	
		error: errorCallback
	});
}

function doProxyPost(url, params, successCallback, errorCallback, async){	
	params+="&url=" + url;
	$.ajax({
		async: async,
		type: "POST",
		url: PROXY_URL,
		dataType: "text",
		data: params,
		cache: false,
		success: successCallback,	
		error: errorCallback
	});
}


/*
 * 
 * BIOINFO CALLS
 * 
 */

//function callServer(url, successCallback, errorCallback){
//	var error = function(data){
//		errorCallback("ERROR: ajax error");
//	};
//	var success = function(data){
//		if (!data.match("^ERROR")) successCallback(data);
//		else errorCallback(data);
//	};
//	doProxyGet(url, success, error);
//}
 
function callServer(url, params, successCallback, errorCallback){
	 callSyncServer(url, params, successCallback, errorCallback, true);
}

function callSyncServer(url, params, successCallback, errorCallback, async){	
	var error = function(data){
		if(errorCallback) errorCallback("ERROR: ajax error");
	};
	var success = function(data){		
		if (!data.match("^ERROR")) {		
			if(successCallback) successCallback(data);
		}
		else {
			if(errorCallback) errorCallback(data);
		}
	};	
	doProxyPost(url,params,success,error,async);
}
 
function callGetServer(url, successCallback, errorCallback){
	var error = function(data){
		if(errorCallback) errorCallback("ERROR: ajax error");
	};
	var success = function(data){
		if (!data.match("^ERROR")) {
			if(successCallback) successCallback(data);
		}
		else {
			if(errorCallback) errorCallback(data);
		}
	};
	doGet(url, success, error);
}

