]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/javascript/yui3/build/io/io-xdr.js
Release 6.2.2
[Github/sugarcrm.git] / include / javascript / yui3 / build / io / io-xdr.js
1 /*
2  Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3  Code licensed under the BSD License:
4  http://developer.yahoo.com/yui/license.html
5  version: 3.3.0
6  build: 3167
7  */
8 YUI.add('io-xdr',function(Y){var E_XDR_READY=Y.publish('io:xdrReady',{fireOnce:true}),_cB={},_rS={},d=Y.config.doc,w=Y.config.win,ie=w&&w.XDomainRequest;function _swf(uri,yid){var o='<object id="yuiIoSwf" type="application/x-shockwave-flash" data="'+
9 uri+'" width="0" height="0">'+'<param name="movie" value="'+uri+'">'+'<param name="FlashVars" value="yid='+yid+'">'+'<param name="allowScriptAccess" value="always">'+'</object>',c=d.createElement('div');d.body.appendChild(c);c.innerHTML=o;}
10 function _evt(o,c){o.c.onprogress=function(){_rS[o.id]=3;};o.c.onload=function(){_rS[o.id]=4;Y.io.xdrResponse(o,c,'success');};o.c.onerror=function(){_rS[o.id]=4;Y.io.xdrResponse(o,c,'failure');};if(c.timeout){o.c.ontimeout=function(){_rS[o.id]=4;Y.io.xdrResponse(o,c,'timeout');};o.c.timeout=c.timeout;}}
11 function _data(o,f,t){var s,x;if(!o.e){s=f?decodeURI(o.c.responseText):o.c.responseText;x=t==='xml'?Y.DataType.XML.parse(s):null;return{id:o.id,c:{responseText:s,responseXML:x}};}
12 else{return{id:o.id,e:o.e};}}
13 function _abort(o,c){return o.c.abort(o.id,c);}
14 function _isInProgress(o){return ie?_rS[o.id]!==4:o.c.isInProgress(o.id);}
15 Y.mix(Y.io,{_transport:{},xdr:function(uri,o,c){if(c.xdr.use==='flash'){_cB[o.id]={on:c.on,context:c.context,arguments:c.arguments};c.context=null;c.form=null;w.setTimeout(function(){if(o.c&&o.c.send){o.c.send(uri,c,o.id);}
16 else{Y.io.xdrResponse(o,c,'transport error');}},Y.io.xdr.delay);}
17 else if(ie){_evt(o,c);o.c.open(c.method||'GET',uri);o.c.send(c.data);}
18 else{o.c.send(uri,o,c);}
19 return{id:o.id,abort:function(){return o.c?_abort(o,c):false;},isInProgress:function(){return o.c?_isInProgress(o.id):false;}};},xdrResponse:function(o,c,e){var cb,m=ie?_rS:_cB,f=c.xdr.use==='flash'?true:false,t=c.xdr.dataType;c.on=c.on||{};if(f){cb=_cB[o.id]?_cB[o.id]:null;if(cb){c.on=cb.on;c.context=cb.context;c.arguments=cb.arguments;}}
20 switch(e){case'start':Y.io.start(o.id,c);break;case'complete':Y.io.complete(o,c);break;case'success':Y.io.success(t||f?_data(o,f,t):o,c);delete m[o.id];break;case'timeout':case'abort':case'transport error':o.e=e;case'failure':Y.io.failure(t||f?_data(o,f,t):o,c);delete m[o.id];break;}},xdrReady:function(id){Y.io.xdr.delay=0;Y.fire(E_XDR_READY,id);},transport:function(o){var yid=o.yid||Y.id,oid=o.id||'flash',src=Y.UA.ie?o.src+'?d='+new Date().valueOf().toString():o.src;if(oid==='native'||oid==='flash'){_swf(src,yid);this._transport.flash=d.getElementById('yuiIoSwf');}
21 else if(oid){this._transport[o.id]=o.src;}}});Y.io.xdr.delay=50;},'3.3.0',{requires:['io-base','datatype-xml']});