if (typeof(Kumu) == 'undefined') { Kumu = {}; } if (typeof(Kumu.MockAjax) == 'undefined') { Kumu.MockAjax = {}; }; Kumu.MockAjax = { AJAX_COMPONENT_NAME : "AjaxComponent", HTTP_STATUS_OK : 200, HTTP_STATUS_NOT_FOUND : 404, XML_HTTP_REQUEST_STATUS_UNINITIALIZED : 0, XML_HTTP_REQUEST_STATUS_LOADING : 1, XML_HTTP_REQUEST_STATUS_LOADED : 2, XML_HTTP_REQUEST_STATUS_INTERACTIVE : 3, XML_HTTP_REQUEST_STATUS_COMPLETE : 4, AJAX_RESPONSE_TYPE_XML : 1, DEBUG : true, MOCK_RESPONSE_XML : '\n\nmock\n', MOCK_RESPONSE_JSON : '{"mock":"mockvalue"}', getS2AjaxComponent : function() { return new this.AjaxComponent(); }, AjaxComponent : function () { var self = Kumu.MockAjax; this.name = self.AJAX_COMPONENT_NAME; this.responseType = null; this.url = "teeda.ajax"; this.params = null; this.doAction = function(ajaxResponse){} }, _createXmlHttp : function(){ var xmlHttp = true; return xmlHttp }, debugPrint : function(message, errorFlg) { if (errorFlg) { try { var div = document.createElement("div"); document.body.appendChild(div); div.setAttribute("id", "ajax_msg"); message = "" + message + ""; document.getElementById("ajax_msg").innerHTML = "
" + message; } catch (e) { } } else { try { var br = document.createElement("br"); var span = document.createElement("span"); document.body.appendChild(br); document.body.appendChild(span.appendChild(document.createTextNode(message))); } catch (e) { } } }, _checkComponent : function(component) { return true; }, executeAjax : function(ajaxComponent) { var self = Kumu.MockAjax; if (!self._checkComponent(ajaxComponent)) { self.debugPrint("IllegalArgument. argument object is not AjaxComponent. implements url or doAction!", true); return; } var xmlHttp = self._createXmlHttp(); var url = ajaxComponent.url; var sysdate = new String(new Date()); var parameters = ""; var params = ajaxComponent.params; var method = 'GET'; if(params.method){ method = params.method.toUpperCase(); if(method != 'GET' && method != 'POST'){ method = 'GET'; } delete params.method; } if(method == 'GET'){ url += "?time=" + self.encodeURL(sysdate); if(null != params){ for(var key in params){ parameters += "&" + key + "=" + self.encodeURL(params[key]); } } url += parameters; if(xmlHttp){ self.debugPrint("url["+url+"]"); self._registAjaxListener(xmlHttp, ajaxComponent); } }else{ params['time'] = self.encodeURL(sysdate); if(params){ var array = new Array(); for(var v in params) { array.push(v + "=" + encodeURIComponent(params[v])); } parameters = array.join("&"); } if(xmlHttp){ self.debugPrint("parameter["+parameters+"]"); self._registAjaxListener(xmlHttp, ajaxComponent); } } }, _registAjaxListener : function(req, ajaxComponent) { var self = Kumu.MockAjax; if (ajaxComponent.responseType) { ajaxComponent.doAction(self.MOCK_RESPONSE_XML); } else { ajaxComponent.doAction(self.MOCK_RESPONSE_JSON); } }, encodeURL : function encodeURL(val) { if (encodeURI) { return encodeURI(val); } if (encodeURIComponent) { return encodeURIComponent(val); } if (escape) { return escape(val); } }, _getComponentName : function(func){ var str = func.toString(); var ret = str.match(/[0-9A-Za-z_]+\(/).toString(); ret = ret.substring(0,ret.length-1); var arr = ret.split('_'); return arr; }, executeTeedaAjax : function(callback, param, responseType){ var self = Kumu.MockAjax; var ajax = self.getS2AjaxComponent(); var components = self._getComponentName(callback); if(!param){ param = {}; } ajax.params = param; if(param instanceof Array){ for(var i = 0; i < param.length; i++){ ajax.params["AjaxParam" + new String(i)] = param[i]; } } if(!("component" in param) && !("action" in param) && (components.length == 2) ){ //callback name bind ajax.params["component"] = components[0]; ajax.params["action"] = components[1]; } self.debugPrint("call Component[" + ajax.params["component"] + "]"); self.debugPrint("call Component action[" + ajax.params["action"] + "]"); ajax.doAction = callback; if(responseType != 'undefined'){ ajax.responseType = responseType; } self.executeAjax(ajax); } };