src/cm/media/js/lib/yui/yui3.0.0/build/io/io-xdr-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('io-xdr', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    * Extends the IO base class to provide an alternate, Flash transport, for making
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
    * cross-domain requests.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
	* @module io
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
	* @submodule io-xdr
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
	* @event io:xdrReady
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
	* @description This event is fired by YUI.io when the specified transport is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
	* ready for use.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
	* @type Event Custom
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
	var E_XDR_READY = 'io:xdrReady',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
	* @description Object that stores callback handlers for cross-domain requests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
	* when using Flash as the transport.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
	* @property _fn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
	* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
	* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
	* @type object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
	_fn = {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
	* @description Map of transaction state used when XDomainRequest is the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
	* XDR transport.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
	* @property _rS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
	* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
	* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
	* @type object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
	_rS = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
	* @description Method that creates the Flash transport swf.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
	* @method _swf
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
	* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
	* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
	* @param {string} uri - location of io.swf.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
	* @param {string} yid - YUI instance id.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
	* @return void
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
	function _swf(uri, yid) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
		var o = '<object id="yuiIoSwf" type="application/x-shockwave-flash" data="' +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
		        uri + '" width="0" height="0">' +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
		     	'<param name="movie" value="' + uri + '">' +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
		     	'<param name="FlashVars" value="yid=' + yid + '">' +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
                '<param name="allowScriptAccess" value="always">' +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
		    	'</object>',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
		    c = document.createElement('div');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
		document.body.appendChild(c);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
		c.innerHTML = o;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
	* @description Sets event handlers for XDomainRequest transactions.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
	* @method _xdr
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
	* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
	* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
    * @param {object} o - Transaction object generated by _create() in io-base.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
	* @param {object} c - configuration object for the transaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
	* @return void
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
	function _xdr(o, c) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
		o.c.onprogress = function() { _rS[o.id] = 3; }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
		o.c.onload = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
			_rS[o.id] = 4;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
			Y.io.xdrResponse(o, c, 'success');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
		};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
		o.c.onerror = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
			_rS[o.id] = 4;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
			Y.io.xdrResponse(o, c, 'failure');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
		};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
		if (c.timeout) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
			o.c.ontimeout = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
				_rS[o.id] = 4;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
				Y.io.xdrResponse(o, c, 'timeout');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
			};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
			o.c.timeout = c.timeout;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
	* @description Creates a response object for XDR transactions, for success
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
	* and failure cases.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
	* @method _data
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
	* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
	* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
    * @param {object} o - Transaction object generated by _create() in io-base.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
	* @param {boolean} isFlash - True if Flash was used as the transport.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
	* @param {boolean} isXML - True if the response data are XML.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
	* @return object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
	function _data(o, isFlash, isXML) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
		var text, xml;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
		if (!o.status) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
			text = isFlash ? decodeURI(o.c.responseText) : o.c.responseText;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
			xml = isXML ? Y.DataType.XML.parse(text) : null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
			return { id: o.id, c: { responseText: text, responseXML: xml } };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
		else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
			return { id: o.id, status: o.status };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
	* @description Method for intiating an XDR transaction abort.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
	* @method _abort
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
	* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
	* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
	* @param {object} o - Transaction object generated by _create() in io-base.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
	* @param {object} c - configuration object for the transaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
	function _abort(o, c) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
		return c.xdr.use === 'flash' ? o.c.abort(o.id, c) : o.c.abort();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
	* @description Method for determining if an XDR transaction has completed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
	* and all data are received.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
	* @method _isInProgress.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
	* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
	* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
	* @param {object} o - Transaction object generated by _create() in io-base.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
	* @param {object} c - configuration object for the transaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
	*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
	function _isInProgress(o, t) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
		return (t === 'flash' && o.c) ? o.c.isInProgress(o.id) : _rS[o.id] !== 4;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
    Y.mix(Y.io, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
	   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
		* @description Map of io transports.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
		*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
		* @property _transport
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
		* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
		* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
		* @type object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
		*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
		_transport: {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
	   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
	   	* @description Method for accessing the transport's interface for making a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
	   	* cross-domain transaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
	   	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
		* @method _xdr
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
		* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
		* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
		* @param {string} uri - qualified path to transaction resource.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
    	* @param {object} o - Transaction object generated by _create() in io-base.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
		* @param {object} c - configuration object for the transaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
		*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
		xdr: function(uri, o, c) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
			if (c.on && c.xdr.use === 'flash') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
				_fn[o.id] = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
					on: c.on,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
					context: c.context,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
					arguments: c.arguments
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
				};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
				// These nodes do not need to be serialized across Flash's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
				// ExternalInterface.  Doing so will result in exceptions.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
				c.context = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
				c.form = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
				o.c.send(uri, c, o.id);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
			else if (window.XDomainRequest) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
				_xdr(o, c);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
				o.c.open(c.method || 'GET', uri);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
				o.c.send(c.data);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
			return {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
				id: o.id,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
				abort: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
					return o.c ? _abort(o, c) : false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
				},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
				isInProgress: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
					return o.c ? _isInProgress(o, c.xdr.use) : false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
	   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
	   	* @description Response controller for cross-domain requests when using the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
	   	* Flash transport or IE8's XDomainRequest object.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
	   	*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
		* @method xdrResponse
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
		* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
		* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
    	* @param {object} o - Transaction object generated by _create() in io-base.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
		* @param {object} c - configuration object for the transaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
		* @param {string} e - Event name
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
		* @return object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
		*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
		xdrResponse: function(o, c, e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
   			var m, fn,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
   				isFlash = c.xdr.use === 'flash' ? true : false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
   				isXML = c.xdr.dataType === 'xml' ? true : false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
   				c.on = c.on || {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
   			if (isFlash) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
   				m = _fn || {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
   				fn = m[o.id] ? m[o.id] : null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
   				if (fn) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
	   				c.on = fn.on;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
	   				c.context = fn.context;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
	   				c.arguments = fn.arguments;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
				}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
			if (e === ('abort' || 'timeout')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
				o.status = e;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
			switch (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
				case 'start':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
					Y.io.start(o.id, c);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
					break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
				case 'success':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
					Y.io.success(_data(o, isFlash, isXML), c);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
					isFlash ? delete m[o.id] : delete _rS[o.id];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
					break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
				case 'timeout':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
				case 'abort':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
				case 'failure':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
					Y.io.failure(_data(o, isFlash, isXML), c);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
					isFlash ? delete m[o.id] : delete _rS[o.id];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
					break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
			}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
	   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
		* @description Fires event "io:xdrReady"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
		*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
		* @method xdrReady
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
		* @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
		* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
		* @param {number} id - transaction id
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
		* @param {object} c - configuration object for the transaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
		*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
		* @return void
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
		*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
		xdrReady: function(id) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
			Y.fire(E_XDR_READY, id);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
		},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
	   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
		* @description Method to initialize the desired transport.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
		*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
		* @method transport
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
		* @public
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
		* @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
		* @param {object} o - object of transport configurations.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
		* @return void
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
		*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
		transport: function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
			var id = o.yid ? o.yid : Y.id;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
			_swf(o.src, id);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
			this._transport.flash = Y.config.doc.getElementById('yuiIoSwf');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
	});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
}, '3.0.0' ,{requires:['io-base','datatype-xml']});