var mainContainer_ID = 'visual-portal-wrapper';
var zoomBox_ID =  'zoombox';
var overlayBox_ID = 'overlaybox';
var zoomBoxParent_className = 'overview_image';
var galleryArray;
var galleryArrayPos;



  function prepare_zoom( ) {
    var obj_mainBox = document.getElementsByTagName('body')[0];
    
    for ( var i = 0, elements = obj_mainBox.getElementsByTagName('ul'), l = elements.length; i < l; i++ ){
      if( elements[i].className == zoomBoxParent_className ){
       for ( var x = 0, elementsChild = elements[i].getElementsByTagName('li'), count = elementsChild.length; x < count; x++ ){
        elementsChild[x].getElementsByTagName('a')[0].onclick = function (){
          create_zoom (this); return false;
        }
       }
      }
    }
  }


  function create_zoom( me ) {
    var div_overlayBox, div_zoomBox;
    var div_overlayBox_ID = overlayBox_ID;
    var div_zoomBox = zoomBox_ID;
    
    var target_src = me.href;
    var target_text = me.getElementsByTagName('img')[0].alt;
    set_galleryArray( me );
    
    obj_mainBox = document.getElementsByTagName('body')[0];
    
    if (!document.createElement) return false;
    if (!document.createTextNode) return false;
    if (!document.getElementById) return false;
    
    if ( !document.getElementById(overlayBox_ID) ){
      div_overlayBox = document.createElement("div");
      div_overlayBox.setAttribute("id",overlayBox_ID);
      obj_mainBox.appendChild(div_overlayBox);
    }
    
    if( document.getElementById(zoomBox_ID) ) obj_mainBox.removeChild( document.getElementById(zoomBox_ID) );

      div_zoomBox = document.createElement("div");
      div_zoomBox.setAttribute("id",zoomBox_ID);
      obj_mainBox.appendChild(div_zoomBox);

    
    var str_zoomBox = new String();
    
    str_zoomBox += '<div id="image_zoombox">';
    str_zoomBox += '<img id="image_zoombox-image" src="'+target_src+'" alt="" />';
    str_zoomBox += '</div>';
    str_zoomBox += '<div id="footer_zoombox">';
    str_zoomBox += '<ul id="desc-zoombox">';
    str_zoomBox += '<li id="desc-zoombox-pagenum">'+(galleryArrayPos + 1)+'/'+gallery_array.length+'<span>|</span> </li>';
    str_zoomBox += '<li id="desc-zoombox-text">'+target_text+'</li>';
    str_zoomBox += '</ul>';
    str_zoomBox += '<ul id="nav-zoombox">';
    str_zoomBox += '<li id="nav-zoombox-previous"><a href="#" onclick="go_image(-1); return false;">zurück</a></li>';
    str_zoomBox += '<li id="nav-zoombox-next"><a href="#" onclick="go_image(1); return false;">weiter</a></li>';
    str_zoomBox += '<li id="nav-zoombox-close"><a href="#" onclick="close_zoom(); return false;">Fenster schließen</a></li>';
    str_zoomBox += '</ul>';
    str_zoomBox += '</div>';
    str_zoomBox += '</div>';
    
    div_zoomBox.innerHTML = str_zoomBox;
  
    document.getElementById(overlayBox_ID).style.display = "block";
    document.getElementById(zoomBox_ID).style.display = "block";
    pos_gallery ();
  }

  function pos_gallery (){
    var win_width, win_height, win_scrollLeft, win_scrollTop;
    var e_Layerbox, e_zoombox
    
    var arrayPageSize = getPageSize();
  	var arrayPageScroll = getPageScroll();
    
    if( document.getElementById(overlayBox_ID)){
      obj_overlayBox = document.getElementById(overlayBox_ID);
      obj_overlayBox.style.height = (arrayPageSize[1] + 'px');
    }
    
  	if( document.getElementById(zoomBox_ID)){
  	
      obj_zoomBox = document.getElementById(zoomBox_ID);
    	var obj_zoomBoxTop = parseInt( arrayPageScroll[1] + ((arrayPageSize[3] - 35 - obj_zoomBox.offsetHeight) / 2) );
    	
    	var obj_zoomBoxLeft = parseInt((arrayPageSize[0] - 20 - obj_zoomBox.offsetWidth ) / 2);
    		
    	obj_zoomBox.style.top = (obj_zoomBoxTop < 0) ? "0px" : obj_zoomBoxTop + "px";
    	obj_zoomBox.style.left = (obj_zoomBoxLeft < 0) ? "0px" : obj_zoomBoxLeft + "px";
    }

  }

  function close_zoom(){
    document.getElementById(overlayBox_ID).style.display = "none";
    document.getElementById(zoomBox_ID).style.display = "none";
  }


  function go_image( param ){
   galleryArrayPos = galleryArrayPos + ( param );
   var count = gallery_array.length -1 ;
   
   if( galleryArrayPos < 0 ) galleryArrayPos = count;
   if( galleryArrayPos > count ) galleryArrayPos = 0;
   create_zoom ( gallery_array[galleryArrayPos] )
  }
  
  
  function set_galleryArray(me){
    gallery_array = new Array();
    var parentList = me.parentNode.parentNode;
    for ( var i = 0, elements = parentList.getElementsByTagName('a'), l = elements.length ; i < l; i++){
      gallery_array.push( elements[i] );
      if( elements[i].href == me.href ) galleryArrayPos = i;
    }
  }






addLoadEvent ( prepare_zoom )
addLoadEvent( pos_gallery );
//window.onresize = pos_gallery;
//window.onscroll = pos_gallery;
