/* Copyright (c) 2010, Movitica Team. All rights reserved. */ YAHOO.namespace("website.service.ajax"); /** * Returns user's location via GPS. * @param request {Object} Request. * @param param {Object} parameter object. * @param callback {Object} callback object. * @static * @public */ YAHOO.website.service.ajax.execute = function(request, param, callback, arguments) { var ajaxCallback = { success: function(o) { try { var obj = YAHOO.lang.JSON.parse(o.responseText); } catch (e) { alert("Invalid JSON data receved from " + request); if (this.argument) { this.argument.failure(); } return; } switch (request) { case "getUserInfo": YAHOO.website.settings.userInfo = obj; break; } if (this.argument) { var callback = this.argument; if (callback.scope) { callback.success.apply(callback.scope, [obj, this.args]); } else { callback.success([obj, this.args]); } } }, failure: function(o) { if (this.argument) { if (this.argument.failure) this.argument.failure(); } }, cache: false, argument: callback, args: arguments, timeout: 15000 } var sParam = ""; if (param) { for (var key in param) { var sValue; if (YAHOO.lang.isString(param[key]) || YAHOO.lang.isNumber(param[key]) || YAHOO.lang.isBoolean(param[key])) sValue = encodeURIComponent(param[key]); else { sValue = encodeURIComponent(YAHOO.lang.JSON.stringify(param[key])); } sParam += "&" + key + "=" + sValue; } } YAHOO.util.Connect.asyncRequest('GET', YAHOO.website.settings.ajaxServiceUrl + "?methodName=" + request + sParam, ajaxCallback ); }