{"dojo.hostenv_dashboard":{"meta":{"functions":{"dojo.hostenv.println":{"meta":{"summary":"Prints a message to the OS X console","parameters":{"message":{"type":"String"}},"src":" return alert(message); \/\/ null","returns":"null"}},"dojo.hostenv.getXmlhttpObject":{"meta":{"summary":"Returns the appropriate transfer object for the call type","parameters":{"kwArgs":{"type":"Object"}},"src":" if(widget.system && kwArgs){\n\t\tif((kwArgs.contentType && kwArgs.contentType.indexOf(\"text\/\") != 0) || (kwArgs.headers && kwArgs.headers[\"content-type\"] && kwArgs.headers[\"content-type\"].indexOf(\"text\/\") != 0)){\n\t\t\tvar curl = new dojo.hostenv.CurlRequest;\n\t\t\tcurl._save = true;\n\t\t\treturn curl;\n\t\t}else if(kwArgs.method && kwArgs.method.toUpperCase() == \"HEAD\"){\n\t\t\treturn new dojo.hostenv.CurlRequest;\n\t\t}else if(kwArgs.headers && kwArgs.header.referer){\n\t\t\treturn new dojo.hostenv.CurlRequest; \n\t\t}\n\t}\n\treturn new XMLHttpRequest; \/\/ XMLHttpRequest","returns":"XMLHttpRequest"}},"dojo.hostenv.CurlRequest":{"meta":{"summary":"Emulates the XMLHttpRequest Object","src":" this.onreadystatechange = null;\n\tthis.readyState = 0;\n\tthis.responseText = \"\";\n\tthis.responseXML = null;\n\tthis.status = 0;\n\tthis.statusText = \"\";\n\tthis._method = \"\";\n\tthis._url = \"\";\n\tthis._async = true;\n\tthis._referrer = \"\";\n\tthis._headers = [];\n\tthis._save = false;\n\tthis._responseHeader = \"\";\n\tthis._responseHeaders = {};\n\tthis._fileName = \"\";\n\tthis._username = \"\";\n\tthis._password = \"\";","instance_variables":["onreadystatechange","readyState","responseText","responseXML","status","statusText","_method","_url","_async","_referrer","_headers","_save","_responseHeader","_responseHeaders","_fileName","_username","_password"]}},"dojo.hostenv.CurlRequest.open":{"meta":{"summary":"","parameters":{"method":{"type":"String"},"url":{"type":"URL"},"async":{"type":"Boolean?"},"username":{"type":"String?"},"password":{"type":"String?"}},"src":" this._method = method;\n\tthis._url = url;\n\tif(async){\n\t\tthis._async = async;\n\t}\n\tif(username){\n\t\tthis._username = username;\n\t}\n\tif(password){\n\t\tthis._password = password;\n\t}","prototype":"dojo.hostenv.CurlRequest"}},"dojo.hostenv.CurlRequest.setRequestHeader":{"meta":{"summary":"","parameters":{"label":{"type":"String"},"value":{"type":"String"}},"src":" switch(label){\n\t\tcase \"Referer\":\n\t\t\tthis._referrer = value;\n\t\t\tbreak;\n\t\tcase \"content-type\":\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthis._headers.push(label + \"=\" + value);\n\t\t\tbreak;\n\t}","prototype":"dojo.hostenv.CurlRequest"}},"dojo.hostenv.CurlRequest.getAllResponseHeaders":{"meta":{"summary":"","src":" return this._responseHeader; \/\/ String","returns":"String","prototype":"dojo.hostenv.CurlRequest"}},"dojo.hostenv.CurlRequest.getResponseHeader":{"meta":{"summary":"","parameters":{"headerLabel":{"type":"String"}},"src":" return this._responseHeaders[headerLabel]; \/\/ String","returns":"String","prototype":"dojo.hostenv.CurlRequest"}},"dojo.hostenv.CurlRequest.send":{"meta":{"summary":"","parameters":{"content":{"type":"String"}},"src":" this.readyState = 1;\n\tif(this.onreadystatechange){\n\t\tthis.onreadystatechange.call(this);\n\t}\n\tvar query = {sS: \"\"};\n\tif(this._referrer){\n\t\tquery.e = this._referrer;\n\t}\n\tif(this._headers.length){\n\t\tquery.H = this._headers.join(\"&\");\n\t}\n\tif(this._username){\n\t\tif(this._password){\n\t\t\tquery.u = this._username + \":\" + this._password;\n\t\t}else{\n\t\t\tquery.u = this._username;\n\t\t}\n\t}\n\tif(content){\n\t\tquery.d = this.content;\n\t\tif(this._method != \"POST\"){\n\t\t\tquery.G = \"\";\n\t\t}\n\t}\n\tif(this._method == \"HEAD\"){\n\t\tquery.I = \"\";\n\t}else{\n\t\tif(this._save){\n\t\t\tquery.I = \"\"; \/\/ Get the headers in the initial query\n\t\t}else{\n\t\t\tquery.i = \"\";\n\t\t}\n\t}\n\tvar system = widget.system(dojo.hostenv.CurlRequest._formatCall(query, this._url), null);\n\tthis.readyState = 2;\n\tif(this.onreadystatechange){\n\t\tthis.onreadystatechange.call(this);\n\t}\n\tif(system.errorString){\n\t\tthis.responseText = system.errorString;\n\t\tthis.status = 0;\n\t}else{\n\t\tif(this._save){\n\t\t\tthis._responseHeader = system.outputString;\n\t\t}else{\n\t\t\tvar split = system.outputString.replace(\/\\r\/g, \"\").split(\"\\n\\n\", 2);\n\t\t\tthis._responseHeader = split[0];\n\t\t\tthis.responseText = split[1];\n\t\t}\n\t\tsplit = this._responseHeader.split(\"\\n\");\n\t\tthis.statusText = split.shift();\n\t\tthis.status = this.statusText.split(\" \")[1];\n\t\tfor(var i = 0, header; header = split[i]; i++){\n\t\t\tvar header_split = header.split(\": \", 2);\n\t\t\tthis._responseHeaders[header_split[0]] = header_split[1];\n\t\t}\n\t\tif(this._save){\n\t\t\twidget.system(\"\/bin\/mkdir cache\", null);\n\t\t\t\/\/ First, make a file name\n\t\t\tthis._fileName = this._url.split(\"\/\").pop().replace(\/\\W\/g, \"\");\n\t\t\t\/\/ Then, get its extension\n\t\t\tthis._fileName += \".\" + this._responseHeaders[\"Content-Type\"].replace(\/[\\r\\n]\/g, \"\").split(\"\/\").pop()\n\t\t\tdelete query.I;\n\t\t\tquery.o = \"cache\/\" + this._fileName; \/\/ Tell it where to be saved.\n\t\t\tsystem = widget.system(dojo.hostenv.CurlRequest._formatCall(query, this._url), null);\n\t\t\tif(!system.errorString){\n\t\t\t\tthis.responseText = \"cache\/\" + this._fileName;\n\t\t\t}\n\t\t}else if(this._method == \"HEAD\"){\n\t\t\tthis.responseText = this._responseHeader;\n\t\t}\n\t}\n\tthis.readyState = 4;\n\tif(this.onreadystatechange){\n\t\tthis.onreadystatechange.call(this);\n\t}","call_chain":["this.onreadystatechange"],"prototype":"dojo.hostenv.CurlRequest"}},"dojo.hostenv.CurlRequest._formatCall":{"meta":{"summary":"","parameters":{"query":{"type":""},"url":{"type":""}},"src":" var call = [\"\/usr\/bin\/curl\"];\n\tfor(var key in query){\n\t\tif(query[key] != \"\"){\n\t\t\tcall.push(\"-\" + key + \" '\" + query[key].replace(\/'\/g, \"\\'\") + \"'\");\n\t\t}else{\n\t\t\tcall.push(\"-\" + key);\n\t\t}\n\t}\n\tcall.push(\"'\" + url.replace(\/'\/g, \"\\'\") + \"'\");\n\treturn call.join(\" \");"}},"dojo.hostenv.exit":{"meta":{"summary":"","src":" if(widget.system){\n\t\twidget.system(\"\/bin\/rm -rf cache\/*\", null);\n\t}"}}}}}}