var dataforma = dataforma || {}; jQuery(function(){ function Authentication(){ var that = {}; var jsonpCallback = "?jsonpCallback"; var lookUpUrls = [ "https://auth.dataforma.com/login.directory" ]; var lookUpUrlIdx = 0; that.lookupServiceCode = function(serviceCode, callback, format){ if(lookUpUrlIdx >= lookUpUrls.length){ alert('Error connecting to the Dataforma login service. Please contact if the problem persists'); return; } var url = lookUpUrls[lookUpUrlIdx]; if(!format) format = "json"; if(!callback) callback = function(result){ console.log("No callback defined... Result dump: " + JSON.stringify(result)); } if(format == "jsonp") { url += jsonpCallback + "=?"; } var options = { url: url, data: { format: format, servicecode: serviceCode }, timeout: 3000, /* handle 404 and 500 errors */ dataType: "json", success: callback, error: function(){ lookUpUrlIdx++; that.lookupServiceCode(serviceCode, callback, format); } }; if(format == "jsonp") { options.jsonp = jsonpCallback; } jQuery.ajax(options); } return that; } dataforma.authentication = dataforma.authentication || Authentication(); });