[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/phpgwapi/js/dynapi/ext/ -> functions.image.js (source)

   1  /*
   2      DynAPI Distribution
   3      dynapi.functions.Image extension    
   4  */
   5  
   6  var f = dynapi.functions;
   7  f.Image = {}; // used by dynapi.library
   8  
   9  // Image Functions ---------------------------
  10  
  11  f._imgTTL = 30000; // Image Time To Load (ms)
  12  f.getImage = function(src,w,h,params) {
  13      var img,name,p=params;
  14      if(!p) name=src;
  15      else name=(!p.alias)? src:p.alias;
  16      img = dynapi.ximages[name];
  17      if(!img || (img && img.params!=params)){ // if user enters a new set of params then create a new image object
  18          img=dynapi.ximages[name] = (w!=null&&h!=null)? new Image(w,h) : new Image();
  19          img.w=w||null;
  20          img.h=h||null;
  21          img.src=src;img.params=p;
  22          img.getHTML=dynapi._imageGetHTML;
  23          img.reload=dynapi._imageReload;
  24          img.dtStart=new Date();
  25          if(p) {
  26              var f=dynapi.functions;
  27              if(p.oversrc) f.getImage(p.oversrc);
  28              if(p.downsrc) f.getImage(p.downsrc);
  29          }
  30          if(!this._imgTmr && this._imgProgFn) this._imageProgress();
  31      }
  32      return img;
  33  };
  34  f.getFailedImages = function(){
  35      var ar=[];
  36      for(i in dynapi.ximages){
  37          img=dynapi.ximages[i];
  38          if(img && img.failed) ar[ar.length]=img;
  39      }
  40      return ar;
  41  };
  42  f.captureImageProgress=function(fn){ //fn = fn(completed,failed,total);
  43      this._imgProgFn=fn;
  44      this._imageProgress();
  45  };
  46  f._imageProgress = function(){
  47      var i,c=0,f=0,t=0;
  48      var img,dtEnd = new Date;
  49      var fn=this._imgProgFn;
  50      for(i in dynapi.ximages){
  51          img=dynapi.ximages[i];
  52          if(img && img.complete!=null){
  53              t++;
  54              img.failed=(!img.complete && (dtEnd-img.dtStart)>this._imgTTL)? true:false;
  55              if (img.complete) c++;
  56              else if(img.failed) f++;
  57          }
  58      }
  59      if(fn) fn(c,f,t);
  60      if(c+f<t) this._imgTmr=window.setTimeout('dynapi.functions._imageProgress()',100);
  61      else this._imgTmr=0;
  62  };
  63  f.setImageTTL = function(ms){ 
  64      this._imgTTL=ms;
  65  };
  66  
  67  
  68  dynapi._imageReload = function(){
  69      var t=this.src;
  70      this.src='';
  71      this.src=t;    
  72      this.dtStart=new Date();
  73      this.failed=false;
  74      dynapi.functions._imageProgress();
  75  };
  76  dynapi._imageHookArray={};
  77  dynapi._imageHook=function(anc,id,img,act,iSrc){
  78      var rt,f,tf,p=dynapi._imageHookArray[id];
  79       if(img && iSrc) img.src = iSrc;
  80       if(p) {         
  81          f=p['on'+((act!='click')?'mouse':'')+act];tf=typeof(f);
  82          if(f) rt=((tf=='string')? eval(f):f(act,anc,img,iSrc));
  83          if(anc && !dynapi.ua.ns4) anc.blur();
  84      }
  85      return (!rt)? false:rt;
  86  };
  87  dynapi._imageGetHTML=function(params){
  88      var c,i,t,text,dir,xtags='';
  89      var p=(params)? params:{};
  90      var lparams=(this.params)? this.params:{}; // opera can't do a for(i in object) on a null variable?
  91      var forbid =',width,height,alias,src,tooltip,link,text,textdir,'
  92      +'oversrc,downsrc,onclick,onmouseover,onmouseout,onmouseup,onmousedown,';
  93      for(i in lparams) {if(p[i]==null) p[i]=lparams[i]};
  94      if(!p.name) p.name='XImage'+dynapi.ximages['__xCnTer__']++;
  95      if(p.border==null) p.border=0;
  96      // setup width & height
  97      if(this.width && this.w==null) this.w=this.width;
  98      if(this.height && this.h==null) this.h=this.height;
  99      text=p['text'];    dir=p['textdir'];
 100      t= '<img src="'+this.src+'"'
 101      +((this.w)? ' width="'+this.w+'"':'')
 102      +((this.h)? ' height="'+this.h+'"':'')
 103      +((p['tooltip'])?' alt="'+p['tooltip']+'"':'');
 104      c='return dynapi._imageHook(this,\''+p.name+'\','+((dynapi.ua.ns4)? '((this._dynobj)? this._dynobj.doc:document)':'document')+'.images[\'';
 105      if(p.onclick) xtags=' onclick="'+c+p.name+'\'],\'click\');"';
 106      if(p.onmouseover||p.oversrc) xtags+=' onmouseover="'+c+p.name+'\'],\'over\',\''+((p.oversrc)?p.oversrc:'')+'\');"';
 107      if(p.onmouseout||p.oversrc) xtags+=' onmouseout="'+c+p.name+'\'],\'out\',\''+((p.oversrc)?this.src:'')+'\');"';
 108      if(p.onmousedown||p.downsrc) xtags+=' onmousedown="'+c+p.name+'\'],\'down\',\''+((p.downsrc)?p.downsrc:'')+'\');"';
 109      if(p.onmouseup||p.downsrc) xtags+=' onmouseup="'+c+p.name+'\'],\'up\',\''+((p.downsrc)?((p.oversrc)?p.oversrc:this.src):'')+'\');"';
 110      if(!p.link && (p.onclick||p.oversrc||p.downsrc)) p.link='javascript:;';
 111      if(!xtags && p.name.indexOf('XImage')==0) p.name=null; // remove name if not needed
 112      for(i in p){if(forbid.indexOf(','+i+',')<0 && p[i]!=null) t+=' '+i+'="'+p[i]+'"';}    
 113      t+='>';
 114      if (text){
 115          dir=(dir)?(dir+'').toUpperCase():'E';
 116          if (dir=='N') t=text+'<br>'+t;
 117          else if (dir=='S') t=t+'<br>'+text;
 118          else if (dir=='E') t=t+text;
 119          else if (dir=='W') t=text+t;
 120      }
 121      if(p.link) t='<a title="'+((p.tooltip)? p.tooltip:'')+'" href="'+p['link']+'"'+xtags+'>'+t+'</a>';
 122      if(xtags && p.name) dynapi._imageHookArray[p.name]=p;
 123      return t;
 124  };


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7