home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 April / PCWorld_2002-04_cd.bin / Software / Komercni / abra / coolFramemenus3.js < prev    next >
Text File  |  2001-08-14  |  3KB  |  61 lines

  1. /************
  2. Find frame
  3. *************/
  4. function findFrame(frameName){
  5.     obj=top; var frameObj=0;
  6.     for(i=0;i<obj.frames.length;i++){
  7.         if(obj.frames[i].name==frameName){frameObj=obj.frames[i]; break;}; ln=obj.frames[i].frames.length
  8.         for(j=0;j<ln;j++){
  9.             if(obj.frames[i].frames[j].name==frameName){frameObj=obj.frames[i].frames[j];  break}; ln2=obj.frames[i].frames[j].frames.length
  10.             for(a=0;a<ln2;a++){
  11.                 if(obj.frames[i].frames[j].frames[a].name==frameName){frameObj=obj.frames[i].frames[j].frames[a]; break}
  12.             }
  13.         }
  14.     }return frameObj
  15. }
  16. /************
  17. Checking for frame
  18. *************/
  19. function cm_checkFrame(num){
  20.     var fr; if(num==10){debug('Frame: '+this.frame+' doesn\'t exist - Value: '+fr + " - Could not build menus."); return}
  21.     if(!top.frames[this.frame]) fr=findFrame(this.frame); else fr=top.frames[this.frame]
  22.     if(!fr){num++; setTimeout(this.name+".checkFrame("+num+")",500)
  23.     }else{ this.win=fr
  24.         if(bw.ns4){
  25.             top.frames.captureEvents(Event.UNLOAD); top.frames.captureEvents(Event.LOAD); top.frames.onunload=cm_unloaded;
  26.             top.frames.onload = cm_checkLoaded;    setTimeout("cm_checkLoaded(0,1)",1000)
  27.         }else if((bw.ie||bw.ns6)) setTimeout("cm_checkLoaded()",200)
  28.     }
  29. }    
  30.  
  31.  
  32. /************
  33. Checkloaded for the frames version
  34. *************/
  35. function cm_checkLoaded(ev,ns){
  36.     coolFName=eval(coolFName)
  37.     var ok=0
  38.     if(document.layers){ 
  39.         if(ns){coolFName.refresh(); coolFName.nsload=1; ok=1; coolFrameError=0
  40.         }else if(ev.target.name==coolFName.frame&&!coolFName.nsload){coolFName.refresh(); ok=1; coolFrameError=0; routeEvent(ev)}
  41.     }else if(bw.ie){
  42.         if (coolFName.win.document.readyState == "complete"){
  43.             coolFName.win.document.body.insertAdjacentHTML("beforeEnd",coolFName.frstr)
  44.             coolFName.win.document.body.onunload=cm_unloaded; coolFName.refresh(); ok=1; coolFrameError=0
  45.         }else setTimeout("cm_checkLoaded()",200)
  46.     }else if(bw.ns6){ 
  47.         if(coolFName.win.document){
  48.             if(coolFName.win.document.body){coolFName.win.addEventListener("unload", cm_unloaded, true); coolFName.refresh(); ok=1; coolFrameError=0}
  49.             else setTimeout("cm_checkLoaded()",200)
  50.         }else setTimeout("cm_checkLoaded()",200)
  51.     }
  52. }
  53. function cm_unloaded(ev){coolFName=eval(coolFName); if(!coolFName) return; if(document.layers && ev.target.name!=coolFName.frame) return; else coolFName.nsload=0; coolFName.loaded=0; if(!document.layers) setTimeout("cm_checkLoaded()",200)}
  54.  
  55. coolFrameError=0//Trapping external pages in frame error!
  56. function cm_check_error(e){e=e.toLowerCase(); if(e.indexOf("access")>-1||e.indexOf("permission")>-1){coolFrameError=1; return true;}else return false}
  57.  
  58.  
  59. //Functions
  60. makeCoolMenu.prototype.checkFrame=cm_checkFrame;
  61.