function addLoadEvent(func){
  var oldonload=window.onload;
  if (typeof window.onload != 'function'){
     window.onload = func;
  }else{
   window.onload=function(){
     oldonload();
     func();
     }
   }
}


function mymain(){
  // 初期値について
  var strNav  ='nav';        //#navigation部分のdiv タグのid 
  var strInit ='init';       //Mouth Oout時 の#navigation部分の  A,Li,Pのclass.
  var strOnmouse ='changed'; //Mouth On時 の#navigation部分の  A,Li,Pのclass.

  //エラーチェック
  if(!document.getElementById) return false;
  if(!document.getElementsByTagName) return false;
  if(!document.getElementById(strNav)) return false;

  //#navigation 部分に入っているpとliについてジャンプする．
  mymainexec("p",strNav,strInit,strOnmouse);
  mymainexec("li",strNav,strInit,strOnmouse);
}



function mymainexec(myTagname,strNav,strInit,strOnmouse){

  // myTagname には，pかliが入ってくる．
  // navigation 部分のonmouseover, onmouseoutについて
  // A,Li,Pのclass属性を変更することによって，
  // styleを変更する．

  var nav=document.getElementById(strNav);
  var allTag= nav.getElementsByTagName(myTagname);  //nav部にある全てのmyTagnameに一致するもの．

  for(var i=0;i<allTag.length;i++){
     if(!allTag[i].className){
       continue;
     }
     if(allTag[i].className!=strInit){
       continue;
     }

     allTag[i].BaseName=allTag[i].className;   // BaseNameを持たせる．初期値はclassName
     makeBaseNameofChildA(allTag[i]);        // allTag[i]の下のAに全部BaseNameを持たせる．初期値はclassName

     allTag[i].onmouseover=function(){
        this.className=strOnmouse;            //allTag[i]のクラスをstrOnmouseにする．
        changeClassNameofChildA(this,strOnmouse);  //allTag[i]のクラスをstrOnmouseにする．
     }
     allTag[i].onmouseout=function(){
        this.className=this.BaseName;  //allTag[i]のクラスをもとに戻す．
        backClassNameofChildA(this);   //allTag[i]の下のAのクラスをもとに戻す．
     }
     allTag[i].onclick=function(){
        myJump(this);
     }
  }
}


function myJump(myTag){
  // Li かP内の　最初のAのhrefを取得する．
  // location.hrefに代入して，ジャンプする．

  var allA= myTag.getElementsByTagName("a");
  location.href= allA[0].href;
}

function backClassNameofChildA(mytag){
   var allA=mytag.getElementsByTagName("a");
   for(var i=0;i<allA.length;i++){
      allA[i].className=allA[i].BaseName;
   }
}

function changeClassNameofChildA(mytag,strclass){
   var allA=mytag.getElementsByTagName("a");
   for(var i=0;i<allA.length;i++){
      allA[i].className=strclass;
   }
}

function makeBaseNameofChildA(mytag){
    var allA=mytag.getElementsByTagName("a");

    for(var i=0;i<allA.length;i++){
       if (!allA[i].className){
          continue;
       }
       allA[i].BaseName= allA[i].className;
    }
}


addLoadEvent(mymain);

