/**
 *  Javascript Basics Bibliothek
*/

$(document).ready(function(){
    
    /* Produktbeschreibung */
    // Öffnen und schliessen des Feldes
    /**
    $('#beschreibung_switch').click(function() {
      if ($('#beschreibung_daten').css('height') == '200px' ) {
        $('#beschreibung_daten').css('height', 'auto');
        $('#beschreibung_opener').css('display', 'none');
      } else {
        $('#beschreibung_daten').css('height', '200px');
        $('#beschreibung_opener').css('display', 'block');
      }
    });
    **/
    
    // NUR öffnen des Feldes
    /**
    $('#beschreibung_opener').click(function() {
      if ($('#beschreibung_daten').css('height') == '200px' ) {
        $('#beschreibung_daten').css('height', 'auto');
        $('#beschreibung_opener').css('display', 'none');
      }
    });
    **/
    
    /* Zubehör Box */
    // Öffnen und schliessen des Feldes
    $('#zubehoer_switch').click(function() {
      if ($('#zubehoer_daten').css('height') == '120px' ) {
        $('#zubehoer_daten').css('height', 'auto');
        $('#zubehoer_opener').css('display', 'none');
      } else {
        $('#zubehoer_daten').css('height', '120px');
        $('#zubehoer_opener').css('display', 'block');
      }
    });
    
    // NUR öffnen des Feldes
    $('#zubehoer_opener').click(function() {
      if ($('#zubehoer_daten').css('height') == '120px' ) {
        $('#zubehoer_daten').css('height', 'auto');
        $('#zubehoer_opener').css('display', 'none');
      }
    });
    
    /* Ersatzteile Box */
    // Öffnen und schliessen des Feldes
    $('#ersatzteile_switch').click(function() {
      if ($('#ersatzteile_daten').css('height') == '120px' ) {
        $('#ersatzteile_daten').css('height', 'auto');
        $('#ersatzteile_opener').css('display', 'none');
      } else {
        $('#ersatzteile_daten').css('height', '120px');
        $('#ersatzteile_opener').css('display', 'block');
      }
    });
    
    // NUR öffnen des Feldes
    $('#ersatzteile_opener').click(function() {
      if ($('#ersatzteile_daten').css('height') == '120px' ) {
        $('#ersatzteile_daten').css('height', 'auto');
        $('#ersatzteile_opener').css('display', 'none');
      }
    });
    
    $('#steuerBttnLinks').mouseover(function() {
      $('#steuerBttnLinks').animate({
        opacity: 0.99
      }, 500);
    });
    
    $('#steuerBttnLinks').mouseout(function() {
      $('#steuerBttnLinks').animate({
        opacity: 0.5
      }, 500);
    });
    
    $('#steuerBttnRechts').mouseover(function() {
      $('#steuerBttnRechts').animate({
        opacity: 0.99
      }, 500);
    });
    
    $('#steuerBttnRechts').mouseout(function() {
      $('#steuerBttnRechts').animate({
        opacity: 0.5
      }, 500);
    });

    $("#main_0").mouseenter(function() {
      $("#sub_0").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_0").fadeOut();
    });
    
    $("#main_1").mouseenter(function() {
      $("#sub_1").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_1").fadeOut();
    });
    
    $("#main_2").mouseenter(function() {
      $("#sub_2").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_2").fadeOut();
    });
    
    $("#main_3").mouseenter(function() {
      $("#sub_3").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_3").fadeOut();
    });
    
    $("#main_4").mouseenter(function() {
      $("#sub_4").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_4").fadeOut();
    });
    
    $("#main_5").mouseenter(function() {
      $("#sub_5").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_5").fadeOut();
    });
    
    $("#main_6").mouseenter(function() {
      $("#sub_6").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_6").fadeOut();
    });
    
    $("#main_7").mouseenter(function() {
      $("#sub_7").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_7").fadeOut();
    });
    
    $("#main_8").mouseenter(function() {
      $("#sub_8").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_8").fadeOut();
    });
    
    $("#main_9").mouseenter(function() {
      $("#sub_9").css('display', 'block');
    }).mouseleave(function() {
      $("#sub_9").fadeOut();
    });
  
});

function NavigatorWindowResize() {
  window.resizeTo( 620, 500 );
  return ;
} // end

/**
 *  Klasse für KAMATEC Galerie mit Überblend-Effekt
*/ 
kamatecGalerie = {
  
  // Elementen-Objekt (DIV) des Werbebanners
  galerie : false,
  
  // Bilderlisting der Werbebanner
  bilder : new Array(),
  
  // Definierte Breite der Vorschaubilder
  bildbreite : 84,
  
  // Definierte Anzeigebreite der Vorschaubox (DIV)
  anzeigebreite : 420,
  
  // Errechneter Gesamtbreite der Bildreihe
  gesamtbreite : 0,
  
  // Errechneter Stopppunkt LINKS
  stoppLinks : 0,
  
  // Errechneter Stopppunkt RECHTS
  stoppRechts : 0,
  
  // Aktueller Scrollindex der Bildergalerie
  scrollPos : 0,
  
  // Am Scrollen?
  isScrolling : false,
  
  // Aktueller Bildindex
  index : 0,
  
  // Initialisierungs-Funktion
  initialisieren : function( Element ) {
    if ( document.getElementById( Element ) )
      this.galerie = document.getElementById( Element );
    if ( this.galerie ) {
      this.galerie.style.backgroundImage = 'url(' + this.bilder[0] + ')';
      document.getElementById( 'mediabox_bild' ).src = this.bilder[0];
      document.getElementById( 'register1' ).style.display = 'block';
    }

    // Preloader starten
    this.preloader();
  },
  
  // Galeriebilder vorausladen
  preloader : function() {
    var pre = new Array();
    for( i=0; i < this.bilder.length; i++ ) {
      pre[i] = new Image();
      pre[i].src = this.bilder[i];
    }
    return ;
  },
  
  // Ladestatus des Bildes prüfen
  ladestatus : function() {
    var check = new Image();
    check.src = this.bilder[this.index];
    // Ladestatus Grafik anzeigen
    if ( check.complete != true )
      this.galerie.style.backgroundImage = 'url(assets/img_galerie_bild_laden.gif)';
  },
  
  // Rubrikbeschreibung ausblenden
  beschreibung_ausblenden : function() {
    if ( this.index == 0 )
      document.getElementById( 'produktdaten_text' ).style.display = 'block';
    else
      document.getElementById( 'produktdaten_text' ).style.display = 'none';
  },
  
  // Weiter zum nächsten Bild ...
  weiter : function( nextId ) {
    if ( typeof nextId == 'number' )
      this.index = nextId;
    else
      this.index++;
    
    if( typeof( this.bilder[this.index] ) == 'string' && this.bilder[this.index].match(/.+/) ) {
      // blend_image( 'mediabox_preload', 'mediabox_bild', this.bilder[this.index], 1200 );
      blend_div( 'mediabox_preload', 'mediabox_bild', this.bilder[this.index], 1000 );
    } else {
      // blend_image( 'mediabox_preload', 'mediabox_bild', this.bilder[0], 1200 );
      blend_div( 'mediabox_preload', 'mediabox_bild', this.bilder[0], 1200 );
      this.index = 0;
    }
  },
  
  // Bildergalerie / Vorschauleiste scrollen
  scrollen : function( leiste, richtung ) {
    this.gesamtbreite = (parseInt(this.bildbreite)+10) * parseInt(this.bilder.length);
    this.stoppLinks = 0;
    this.stoppRechts = 0;
    
    // Scroller zurücksetzen
    if ( this.isScrolling )
      this.stopScrolling();
      
    if ( this.gesamtbreite < parseInt(this.anzeigebreite) )
      return;
    
    // Vorwärts (nach rechts) fahren
    if ( richtung == 'fwd' ) {
      if ( this.scrollPos > (parseInt(this.anzeigebreite) - this.gesamtbreite) ) {
        this.isScrolling = setInterval("kamatecGalerie.scrolleNachRechts('"+leiste+"')", 50);
      } else {
        this.stopScrolling();
      }
    } else if ( richtung == 'back' ) {
      if ( this.scrollPos < 0 ) {
        this.isScrolling = setInterval("kamatecGalerie.scrolleNachLinks('"+leiste+"')", 50);
      } else {
        this.stopScrolling();
      }
    }
    return ;
  },
  
  scrolleNachRechts : function( leiste ) {
    // Prüfe Stopppunkt RECHTS
    if ( this.scrollPos > ((this.gesamtbreite+20) - parseInt(this.anzeigebreite))*-1 ) {
      this.scrollPos = this.scrollPos - 5;
      document.getElementById( leiste ).style.left = this.scrollPos + 'px';
      // document.getElementById('scrollInfo').innerHTML = this.scrollPos;
    }
    return ;
  },
  
  scrolleNachLinks : function( leiste ) {
    // Prüfe Stopppunkt LINKS
    if ( this.scrollPos < 0 ) {
      this.scrollPos = this.scrollPos + 5;
      document.getElementById( leiste ).style.left = this.scrollPos + 'px';
      // document.getElementById('scrollInfo').innerHTML = this.scrollPos;
    } else {
      this.stopScrolling();
    }
    return ;
  },
  
  // Stoppe Scrolling
  stopScrolling : function() {
    if ( this.isScrolling )
      clearInterval( this.isScrolling );
    return ;
  },
  
  // Schalte zwischen Bilder und Videoclips um
  waehleRegister : function( aktiveId ) {
    for ( a=1; a<3; a++ ) {
      var Element = '#register'+a;
      if ( a == aktiveId )
        $(Element).css('display', 'block');
      else
        $(Element).css('display', 'none');
    }
    return ;
  }
  
} // object end


/**
 *  Steuerung der Opacity-Eigenschaft
 *  --------------------------------- 
*/ 

function opacity( id, opacStart, opacEnd, millisec ) {
	// speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	// determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

// change the opacity for different browsers
function changeOpac( opacity, id ) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity( id, millisec ) {
	// if an element is invisible, make it visible, else make it ivisible
	if(document.getElementById(id).style.opacity == 0) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}

/**
 *  Blendet einen DIV Container über einen DIV Container ..
 *  ------------------------------------------------------- 
*/ 
function blend_div( divid, imageid, imagefile, millisec ) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	
	// set the current image as background
	document.getElementById( divid ).style.backgroundImage = document.getElementById( imageid ).style.backgroundImage;
	
	// make image transparent
	changeOpac(0, imageid);
	
	// make new image
	document.getElementById(imageid).style.backgroundImage = "url(" + imagefile + ")";

	// fade in image
	for(i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}

/**
 *  Blendet ein Bild über einen DIV Container ..
 *  -------------------------------------------- 
*/  
function blend_image( divid, imageid, imagefile, millisec ) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	
	if ( document.getElementById( divid ) ) {
  	// set the current image as background
  	document.getElementById( divid ).style.backgroundImage = "url(" + document.getElementById( imageid ).src + ")";
  	document.getElementById( divid ).style.backgroundRepeat = "no-repeat";
  	document.getElementById( divid ).style.backgroundPosition = "center";
  	
  	// make image transparent
  	changeOpac(0, imageid);
  	
  	// make new image
  	document.getElementById( imageid ).src = imagefile;
  
  	// fade in image
  	for(i = 0; i <= 100; i++) {
  		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
  		timer++;
  	}
	}
}

function currentOpac( id, opacEnd, millisec ) {
	// standard opacity is 100
	var currentOpac = 100;
	
	// if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	// call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec);
}

function getElementOffset( element ) {
  var elem=element, tagname="", x=0, y=0;
    
  /* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
   wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
  while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
  {
    y+=elem.offsetTop;     /* Offset des jeweiligen Elements addieren */
    x+=elem.offsetLeft;    /* Offset des jeweiligen Elements addieren */
    tagname=elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

  /* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
  if (tagname=="BODY")
    elem=0;

  /* wenn elem ein Objekt ist und offsetParent enthaelt Offset-Elternelement ermitteln */
  if (typeof(elem)=="object")
    if (typeof(elem.offsetParent)=="object")
      elem = elem.offsetParent;
  }

  /* Objekt mit x und y zurueckgeben */
  position = new Object();
  position.x = x;
  position.y = y;
  return position;
} // end
