current_index=0;

function imageContainerResize(){
  try{
    fitContainerToWindow(getElement("flash_container"),6,6);
  }catch(e){
    alert("imageContainerResize:"+e.message);
  }
}

nowloading=false;

function loadImage(src){
  try{
    fitContainerToWindow(getElement("flash_container"),6,6);
    setFlashVar("viewer","loadImage",src);
  }catch(e){
    alert("loadImage:"+e.message);
  }
}

function fitContainerToWindow(container,padx,pady){
  try{
    if(container){
      var wrap   =getElement("wrap");
      //var wwidth =wrap.offsetWidth;
      //var wheight=wrap.offsetHeight;
      var wheight	=document.body.clientHeight;
      var wwidth	=document.body.clientWidth;
      var ctop   	=container.offsetTop;
      var cleft  	=container.offsetLeft;
      container.defWidth=(wwidth-cleft-padx);
      container.defHeight=(wheight-ctop-pady);
      container.style.width=container.defWidth+"px";
      container.style.height=container.defHeight+"px";
    }
  }catch(e){
    alert("fitContainerToWindow:"+e.message);
  }
}


/************MENU*******************/
menu_animations=new Array();
function menu_init(){
  try{
    var items=getElementsByClass("menu_item");
    set_trans_anim(items);
    var subitems=getElementsByClass("submenu_item");
    set_trans_anim(subitems);
    insertFlash("flash_container","viewer","/viewer23.swf","100%","100%");
  }catch(e){
    alert("set_trans_anim:"+e.message);
  }
}

function set_trans_anim(items){
  try{
    for(var i=0;i<items.length;i++){
      var mitem=items[i];
      mitem.anim=new Animator().addSubject(new NumericalStyleSubject(mitem, 'opacity', 0.5, 1));
      addEvent(mitem,"mouseover",
        function(event){        
               event   = event || window.event;
           var object  = event.target || event.srcElement;
           if(object.anim){object.anim.play();}
        }
      );
      //
      addEvent(mitem,"mouseout",
        function(event){        
               event   = event || window.event;
           var object  = event.target || event.srcElement;
           if(object.anim){object.anim.reverse();}
        }
      );
    }
  }catch(e){
    alert("set_trans_anim:"+e.message);
  }
}
/// 
function closeAllMenus(child){
  try{
    var list=child.parentNode;    
    for(var i=0;i<list.childNodes.length;i++){
       var object=list.childNodes[i];
       var submenu=getElement(object.id+"-sub");       

       if(submenu){
         if(submenu.offsetHeight>0){
           var res_height=submenu.childNodes.length*22;
           submenu.style.overflow="hidden";
           submenu.style.margin="0";
           submenu.anim=new Animator().addSubject(new NumericalStyleSubject(submenu, 'height', res_height, 0));
           submenu.anim.play();
         }
       }       
    }
  }catch(e){
    alert("closeAllMenus:"+e.message);
  }
}
menu_opened=false;
link_menu_after=false;
function menu_click(object){
  try{
    var sub_menu=getElement(object.id+"-sub" );
    if(sub_menu){
      if(!sub_menu.anim){
        if(sub_menu.className!="cur_subitems"){
          add=30;          
          if(navigator.userAgent.indexOf( 'Gecko')!=-1){
            add=48;
          }
          var res_height=sub_menu.childNodes.length*22+add;
          sub_menu.anim=new Animator().addSubject(new NumericalStyleSubject(sub_menu, 'height', 0, res_height));
        }
      }      
      if(sub_menu.className!="cur_subitems"){
        if(!sub_menu.opened){
          sub_menu.opened=true;
          menu_opened=sub_menu;
          sub_menu.anim.play();
          link_menu_after=object.href;       
          setTimeout("menuCloseAnimationStop();",300);
        }else{          
          sub_menu.opened=false;        
          menu_opened=false;
          sub_menu.anim.reverse();
        }
      }
      return false;
    }else{
      closeAllMenus(object);
      link_menu_after=object.href;
      setTimeout("menuCloseAnimationStop();",300);
      return false;
    }
  }catch(e){
    alert(e.message);
  }
}

function menuCloseAnimationStop(){
  document.location=link_menu_after;
}

/************TN IMAGES*******************/
tnimages=new Array();
tnimage_index=0;

function tnimages_load(){
  try{
    if(tnimages.length>0&&tnimage_index<tnimages.length){
      var img=new Image();
      addEvent(img,"load",tnImageLoaded);
      var container=getElement("tn_image_container");
      tnimages[tnimage_index]["obj"]=img;
      img.index=tnimage_index;
      img.style.visibility="hidden";
      container.appendChild(img);
      img.src=tnimages[tnimage_index]["tnsrc"];
    }else{      
      if(tnimages[current_index]){
        // Если ещё не переключили - грузим первую.
        if(current_index==0){setTimeout("loadImage('"+tnimages[current_index]["src"]+"');",1000);}
      }
    }
    
  }catch(e){
    alert("tnimages_load"+e.message);
  }
}


function getNextImage(){
  try{    
    if(current_index<tnimages.length-1){
      current_index++;
    }else{
      current_index=0;
    }
    setScroller(tnimages[current_index]["obj"]);
    loadImage(tnimages[current_index]["src"]);
  }catch(e){
    alert("getNextImage"+e.message);
  }
}

function tnImageLoaded(){
  try{
    if(tnimage_index<tnimages.length){
      var img=tnimages[tnimage_index]["obj"];
      if(img){
        tnimage_index++;
        img.anim=new Animator({duration: 400}).addSubject(new NumericalStyleSubject(img, 'opacity', 0, 1));
        img.anim.play();
        img.style.visibility="visible";
        addEvent(img,"click",tnImageClicked);
        if(img.index==0)setScroller(img);
        setTimeout("tnimages_load();",100);
      }      
    }
  }catch(e){
    alert(e.message);
  }
}


function tnImageClicked(event){
  try{
        event   = event || window.event;
    var object  = event.target || event.srcElement;
    setScroller(object);
    current_index=object.index;
    loadImage(tnimages[object.index]["src"]);
  }catch(e){
    alert(e.message);
  }
}
/************SCROLLER ANIMATION****************/
function setScroller(tnImage){
  try{
    var moveTo=tnImage.parentNode.offsetLeft+tnImage.offsetLeft
    var straTo=tnImage.offsetWidth;
    var scroller=getElement("tn_image_scroller");
    var moveFrom=scroller.offsetLeft;
    var straFrom=scroller.offsetWidth;
    scroller.anim=new Animator({duration: 200})
      .addSubject(new NumericalStyleSubject(scroller, 'margin-left', moveFrom, moveTo))
      .addSubject(new NumericalStyleSubject(scroller, 'width', straFrom, straTo));
    scroller.anim.play();
  }catch(e){
    alert(e.message);
  }
}

/************INITIALIZATION*******************/
function imageContainerResizeInit(){
  current_index=0;
  addEvent(window,"load",menu_init);
  addEvent(window,"resize",imageContainerResize);
  addEvent(window,"load",tnimages_load);  
}

/*Flash inserter*/
function insertFlash(containerId,id,flash,width,height){
  try{
    var container=getElement(containerId);
    if(container){
      var so = new SWFObject(flash, id, width, height, "9", "#131313");
      so.addVariable("fadeColorInt", "0x131313");
      so.addVariable("backColorInt", "0x131313");
      so.addParam("scale", "noscale");
      so.addParam("wmode", "transparent");
      so.write("flash_container");
    }
  }catch(e){
    alert("insertFlash:"+e.message);
  }
}

function setFlashVar(flashId,name,value){
  try{
    var flash = getElement(flashId);
    flash.style.visibility="visible";
    flash.SetVariable(name,value);
  }catch(e){
    alert("setFlashVar:"+e.message);
  }
}

imageContainerResizeInit();

