yuriablau: navigation mit frames/fehler

Beitrag lesen

Vielen Dank für eure Hilfe. Hier ist das fehlende js Teil 1.

Aber ich werde es wohl wirklich komplett neu aufbauen müssen... *seufz*

var AgntUsr=navigator.userAgent.toLowerCase();
 var DomYes=document.getElementById?1:0;
 var NavYes=AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1?1:0;
 var ExpYes=AgntUsr.indexOf('msie')!=-1?1:0;
 var Opr=AgntUsr.indexOf('opera')!=-1?1:0;
 var DomNav=DomYes&&NavYes?1:0;
  var DomExp=DomYes&&ExpYes?1:0;
 var Nav4=NavYes&&!DomYes&&document.layers?1:0;
 var Exp4=ExpYes&&!DomYes&&document.all?1:0;
 var PosStrt=(NavYes||ExpYes)&&!Opr?1:0;

var FrstLoc,ScLoc,DcLoc;
 var ScWinWdth,ScWinHght,FrstWinWdth,FrstWinHght;
 var ScLdAgainWin;
 var FirstColPos,SecColPos,DocColPos;
 var RcrsLvl=0;
 var FrstCreat=1,Loadd=0,Creatd=0,IniFlg,AcrssFrms=1;
 var FrstCntnr=null,CurrntOvr=null,CloseTmr=null;
 var CntrTxt,TxtClose,ImgStr;
 var Ztop=100;
 var ShwFlg=0;
 var M_StrtTp=StartTop,M_StrtLft=StartLeft;
 var StaticPos=0;
 var LftXtra=DomNav?LeftPaddng:0;
 var TpXtra=DomNav?TopPaddng:0;
 var M_Hide=Nav4?'hide':'hidden';
 var M_Show=Nav4?'show':'visible';
 var Par=parent.frames[0]&&FirstLineFrame!=SecLineFrame?parent:window;
 var Doc=Par.document;
 var Bod=Doc.body;
 var Trigger=NavYes?Par:Bod;

MenuTextCentered=MenuTextCentered==1||MenuTextCentered=='center'?'center':MenuTextCentered==0||MenuTextCentered!='right'?'left':'right';
 WbMstrAlrts=["Item not defined: ","Item needs height: ","Item needs width: "];

if(Trigger.onload)Dummy=Trigger.onload;
 if(DomNav&&!Opr)Trigger.addEventListener('load',Go,false);
 else Trigger.onload=Go;

function Dummy(){return}

function CnclSlct(){return false}

function RePos(){
 FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
 FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
 ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
 ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
 if(MenuCentered=='justify'&&FirstLineHorizontal){
  FrstCntnr.style.width=FrstWinWdth;
  ClcJus();
  var P=FrstCntnr.FrstMbr,W=Menu1[5],i;
  for(i=0;i<NoOffFirstLineMenus;i++){P.style.width=W;P=P.PrvMbr}}
 StaticPos=-1;
 if(TargetLoc)ClcTrgt();
 if(MenuCentered)ClcLft();
 if(MenuVerticalCentered)ClcTp();
 PosMenu(FrstCntnr,StartTop,StartLeft)}

function UnLoaded(){
 if(CloseTmr)clearTimeout(CloseTmr);
 Loadd=0; Creatd=0;
 if(HideTop){
  var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
  FCStyle.visibility=M_Hide}}

function ReDoWhole(){
 if(ScWinWdth!=ScLoc.innerWidth||ScWinHght!=ScLoc.innerHeight||FrstWinWdth!=FrstLoc.innerWidth||FrstWinHght!=FrstLoc.innerHeight)Doc.location.reload()}

function Check(WMnu,NoOf){
 var i,array,ArrayLoc;
 ArrayLoc=parent.frames[0]?parent.frames[FirstLineFrame]:self;
 for(i=0;i<NoOf;i++){
  array=WMnu+eval(i+1);
  if(!ArrayLoc[array]){WbMstrAlrt(0,array); return false}
  if(i==0){ if(!ArrayLoc[array][4]){WbMstrAlrt(1,array); return false}
   if(!ArrayLoc[array][5]){WbMstrAlrt(2,array); return false}}
  if(ArrayLoc[array][3])if(!Check(array+'_',ArrayLoc[array][3])) return false}
 return true}

function WbMstrAlrt(No,Xtra){
 return confirm(WbMstrAlrts[No]+Xtra+'   ')}

function Go(){
 Dummy();
 if(Loadd||!PosStrt)return;
 BeforeStart();
 Creatd=0; Loadd=1;
 status='Building menu';
 if(FrstCreat){
  if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
   FirstLineFrame=SecLineFrame;
   if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
    FirstLineFrame=SecLineFrame=DocTargetFrame;
    if(FirstLineFrame =="" || !parent.frames[FirstLineFrame])FirstLineFrame=SecLineFrame=DocTargetFrame=''}}
  if(SecLineFrame =="" || !parent.frames[SecLineFrame]){
   SecLineFrame=DocTargetFrame;
   if(SecLineFrame =="" || !parent.frames[SecLineFrame])SecLineFrame=DocTargetFrame=FirstLineFrame}
  if(DocTargetFrame =="" || !parent.frames[DocTargetFrame])DocTargetFrame=SecLineFrame;
  if(WebMasterCheck){ if(!Check('Menu',NoOffFirstLineMenus)){status='build aborted';return}}
  FrstLoc=FirstLineFrame!=""?parent.frames[FirstLineFrame]:window;
  ScLoc=SecLineFrame!=""?parent.frames[SecLineFrame]:window;
  DcLoc=DocTargetFrame!=""?parent.frames[DocTargetFrame]:window;
  if (FrstLoc==ScLoc) AcrssFrms=0;
  if (AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:1;
  FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
  FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
  ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
  ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
  if(Nav4){ CntrTxt=MenuTextCentered!='left'?"<div align='"+MenuTextCentered+"'>":"";
   TxtClose="</font>"+MenuTextCentered!='left'?"</div>":""}}
 FirstColPos=Nav4?FrstLoc.document:FrstLoc.document.body;
 SecColPos=Nav4?ScLoc.document:ScLoc.document.body;
 DocColPos=Nav4?DcLoc.document:ScLoc.document.body;
 if (TakeOverBgColor)FirstColPos.bgColor=AcrssFrms?SecColPos.bgColor:DocColPos.bgColor;
 if(MenuCentered=='justify'&&FirstLineHorizontal)ClcJus();
 if(FrstCreat){
  FrstCntnr=CreateMenuStructure('Menu',NoOffFirstLineMenus);
  FrstCreat=AcrssFrms?0:1}
 else CreateMenuStructureAgain('Menu',NoOffFirstLineMenus);
 if(TargetLoc)ClcTrgt();
 if(MenuCentered)ClcLft();
 if(MenuVerticalCentered)ClcTp();
 PosMenu(FrstCntnr,StartTop,StartLeft);
 IniFlg=1;
 Initiate();
 Creatd=1;
 ScLdAgainWin=ExpYes?ScLoc.document.body:ScLoc;
 ScLdAgainWin.onunload=UnLoaded;
 Trigger.onresize=Nav4?ReDoWhole:RePos;
 AfterBuild();
 if(MenuVerticalCentered=='static'&&!AcrssFrms)setInterval('KeepPos()',250);
 status='Menu ready for use'}

function KeepPos(){
 var TS=ExpYes?FrstLoc.document.body.scrollTop:FrstLoc.pageYOffset;
 if(TS!=StaticPos){
  var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
  FCStyle.top=FrstCntnr.OrgTop=StartTop+TS;StaticPos=TS}}

function ClcJus(){
 var a=BorderBtwnElmnts?1:2,b=BorderBtwnElmnts?BorderWidth:0;
 var Size=Math.round(((FrstWinWdth-a*BorderWidth)/NoOffFirstLineMenus)-b),i,j;
 for(i=1;i<NoOffFirstLineMenus+1;i++){j=eval('Menu'+i);j[5]=Size}
 StartLeft=0}

function ClcTrgt(){
 var TLoc=Nav4?FrstLoc.document.layers[TargetLoc]:DomYes?FrstLoc.document.getElementById(TargetLoc):FrstLoc.document.all[TargetLoc];
 StartTop=M_StrtTp;
 StartLeft=M_StrtLft;
 if(DomYes){
  while(TLoc){StartTop+=TLoc.offsetTop;StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent}}
 else{ StartTop+=Nav4?TLoc.pageY:TLoc.offsetTop;StartLeft+=Nav4?TLoc.pageX:TLoc.offsetLeft}}

function ClcLft(){
 if(MenuCentered!='left'&&MenuCentered!='justify'){
  var Size=FrstWinWdth-(!Nav4?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width);
  StartLeft=M_StrtLft;
  StartLeft+=MenuCentered=='right'?Size:Size/2}}

function ClcTp(){
 if(MenuVerticalCentered!='top'&&MenuVerticalCentered!='static'){
  var Size=FrstWinHght-(!Nav4?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height);
  StartTop=M_StrtTp;
  StartTop+=MenuVerticalCentered=='bottom'?Size:Size/2}}

function PosMenu(CntnrPntr,Tp,Lt){
 var Topi,Lefti,Hori;
 var Cntnr=CntnrPntr;
 var Mmbr=Cntnr.FrstMbr;
 var CntnrStyle=!Nav4?Cntnr.style:Cntnr;
 var MmbrStyle=!Nav4?Mmbr.style:Mmbr;
 var PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
 var PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
 var MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
 var MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
 var CntnrWt=!Nav4?parseInt(CntnrStyle.width):CntnrStyle.clip.width;
 var CntnrHt=!Nav4?parseInt(CntnrStyle.height):CntnrStyle.clip.height;
 var SubTp,SubLt;
 RcrsLvl++;
 if (RcrsLvl==1 && AcrssFrms)!MenuFramesVertical?Tp=FrstWinHght-CntnrHt+(Nav4?4:0):Lt=RightToLeft?0:FrstWinWdth-CntnrWt+(Nav4?4:0);
 if (RcrsLvl==2 && AcrssFrms)!MenuFramesVertical?Tp=0:Lt=RightToLeft?ScWinWdth-CntnrWt:0;
 if (RcrsLvl==2 && AcrssFrms){Tp+=VerCorrect;Lt+=HorCorrect}
 CntnrStyle.top=RcrsLvl==1?Tp:0;
 Cntnr.OrgTop=Tp;
 CntnrStyle.left=RcrsLvl==1?Lt:0;
 Cntnr.OrgLeft=Lt;
 if (RcrsLvl==1 && FirstLineHorizontal){
  Hori=1;Lefti=CntnrWt-MmbrWt-2*BorderWidth;Topi=0}
 else{ Hori=Lefti=0;Topi=CntnrHt-MmbrHt-2*BorderWidth}
 while(Mmbr!=null){
  MmbrStyle.left=Lefti+BorderWidth;
  MmbrStyle.top=Topi+BorderWidth;
  if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth);
  if(Mmbr.ChildCntnr){
   if(RightToLeft)ChldCntnrWdth=Nav4?Mmbr.ChildCntnr.clip.width:parseInt(Mmbr.ChildCntnr.style.width);
   if(Hori){ SubTp=Topi+MmbrHt+2*BorderWidth;
    SubLt=RightToLeft?Lefti+MmbrWt-ChldCntnrWdth:Lefti}
   else{ SubLt=RightToLeft?Lefti-ChldCntnrWdth+ChildOverlap*MmbrWt+BorderWidth:Lefti+(1-ChildOverlap)*MmbrWt+BorderWidth;
    SubTp=RcrsLvl==1&&AcrssFrms?Topi:Topi+ChildVerticalOverlap*MmbrHt}
   PosMenu(Mmbr.ChildCntnr,SubTp,SubLt)}
  Mmbr=Mmbr.PrvMbr;
  if(Mmbr){ MmbrStyle=!Nav4?Mmbr.style:Mmbr;
   PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
   PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
   MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
   MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
   Hori?Lefti-=BorderBtwnElmnts?(MmbrWt+BorderWidth):(MmbrWt):Topi-=BorderBtwnElmnts?(MmbrHt+BorderWidth):(MmbrHt)}}
 RcrsLvl--}

function Initiate(){
 if(IniFlg){ Init(FrstCntnr);IniFlg=0;
  if(ShwFlg)AfterCloseAll();ShwFlg=0}}

function Init(CntnrPntr){
 var Mmbr=CntnrPntr.FrstMbr;
 var MCStyle=Nav4?CntnrPntr:CntnrPntr.style;
 RcrsLvl++;
 MCStyle.visibility=RcrsLvl==1?M_Show:M_Hide;
 while(Mmbr!=null){
  if(Mmbr.Hilite){Mmbr.Hilite=0;if(KeepHilite)LowItem(Mmbr)}
  if(Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr);
  Mmbr=Mmbr.PrvMbr}
 RcrsLvl--}