﻿/* Neues Fenster in der mitte des Bildschirms öffnen */
function newWin(page, name, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable=no'
	win = window.open(page, name, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}


var SlideWidth = new Array();
var ActPosition = new Array();
var CntPositions = new Array();
var NextPage = new Array();
var PrevPage = new Array();
var SlideHeight = new Array();


/* Funktionen für die nächste / vorige Panel No. des Subnav Sliders */
function GetNextPosition(i)
         {
         if (ActPosition[i] == CntPositions[i]-1)
            { 
            if (!NextPage[i])
               {
            	ActPosition[i] = 0;
            	SetHeight(i);
            	return(SlideWidth[i]*ActPosition[i]);
               }
            else
               {
               window.location.href='?page_id='+NextPage[i];
               }
            }
         else 
            {
            ActPosition[i]++;
            SetHeight(i);
            return(SlideWidth[i]*ActPosition[i]);
            }
         }
         
         
        
function GetPrevPosition(i)
         {
         if (ActPosition[i] == 0)
            { 
            if (!PrevPage[i])
               {
               ActPosition[i] = CntPositions[i]-1;
               SetHeight(i);
               return(SlideWidth[i]*ActPosition[i]);
               }
            else
               {
               window.location.href='?page_id='+PrevPage[i];
               }
            }
         else 
            {
            ActPosition[i]--;
            SetHeight(i);
            return(SlideWidth[i]*ActPosition[i]);
            }
         }


/* beliebige position zurückgeben */
function GetCustomPosition(i,pos)
         {
         if (pos >= CntPositions[i])
            {
            ActPosition[i]=CntPositions[i]-1;
            // return(SlideWidth[i]*CntPositions[i]);
            }
         if (pos < 0)
            {
            // return(SlideWidth[i]);
            ActPosition[i]=0;
            }
         
         ActPosition[i]=pos-1;
         SetHeight(i);
         return(SlideWidth[i]*ActPosition[i]);
         }

/* test offsetHeight */
function GimmeHeight(paneldivid)
         {
         var cssquery = 'div#subnav_container'+paneldivid+' div.subnav_panel';
         // var panels = $$('div#subnav_container0 div.subnav_panel');
         var panels = $$(cssquery);
         var heights = new Array();
         
         SlideHeight[paneldivid] = new Array();
         panels.each( function(mypanel) {SlideHeight[paneldivid].push(mypanel.offsetHeight);}
                    );
         
         // alert(SlideHeight[paneldivid].inspect());
         
         $('subnav_container'+paneldivid).style.height=SlideHeight[paneldivid][0]+"px";
         }
         
         
/* setheight */
function SetHeight(paneldivid)
         {
        
         // mit scripty
         
         // auskommentiert, da mit IE 3.5 troubles. Wenn Panel-Inhalte nicht zu unterschiedlich hoch sind, nicht unbedingt erforderlich
         // new Effect.ChangeHeight('subnav_container'+paneldivid,SlideHeight[paneldivid][ActPosition[paneldivid]]);
         
         // alert(SlideHeight[paneldivid][ActPosition[paneldivid]]);

         }

/* Scriptaculous Effekt für Verändern des left-margins des inneren Sliders */		
		
  Effect.LeftMargin = Class.create();
  Object.extend(Object.extend(Effect.LeftMargin.prototype, Effect.Base.prototype), {
    initialize: function(element, leftMargin) {
      var options = arguments[2] || {};
      this.element = $(element);
      /* this.startleftMargin = 0; */
      this.startleftMargin = parseFloat(Element.getStyle(element, 'marginLeft').replace(/px/g, ''));
      this.finishleftMargin = leftMargin;
      this.delta = (this.finishleftMargin-this.startleftMargin);
      this.start(options);
    },
    update: function(position) {
      var value = (this.startleftMargin + (this.delta*position)).toString();
      Element.setStyle(this.element, {marginLeft: value+'px'});
       }
  });
  
  
  /* Scriptaculous Effekt für Ändern der Höhe des umgebenden SliderDivs */		
		
  Effect.ChangeHeight = Class.create();
  Object.extend(Object.extend(Effect.ChangeHeight.prototype, Effect.Base.prototype), {
    initialize: function(element, targetHeight) {
      var options = arguments[2] || {};
      this.element = $(element);
      /* this.startleftMargin = 0; */
      this.starttargetHeight = parseFloat(Element.getStyle(element, 'height').replace(/px/g, ''));
      this.finishtargetHeight = targetHeight;
      this.delta = (this.finishtargetHeight-this.starttargetHeight);
      this.start(options);
    },
    update: function(position) {
      var value = (this.starttargetHeight + (this.delta*position)).toString();
      Element.setStyle(this.element, {height: value+'px'});
       }
  });
