// ---------------------------------------------------------------------------------------	
// scripte fuer www.huehnlein.de
// author michael schulze, www.jms-design.de, 2010-2011
// ---------------------------------------------------------------------------------------	

	
//---------------------------------------------------------------------------------------	
// CSS-Funktionen
	// Style abrufen
	function getStyle(objName,stil){
		if (eval('document.getElementById("' + objName + '")')) return eval('document.getElementById("' + objName + '").style.' + stil);
	}
	
	// Style setzen
	function setStyle(objName,stil,wert) {
		if (eval('document.getElementById("' + objName + '")')) {eval('document.getElementById("' + objName + '").style.' + stil + '="' + wert + '"');}
	}
	
	// Klasse ändern
	function changeClass(objName,neueKlasse){
		if (document.getElementById(objName)) document.getElementById(objName).className = neueKlasse;
	}
	
	// alle Layer einer Gruppe verbergen
	function hideAll(bereich,anzahl) {
		for(count=1; count <= anzahl; count++){
			eval('setStyle("' + bereich + count + '","display","none");');
		}	
	}
	
	// Text eines Elements austauschen
	function changeText(objName,textneu) { 
		if (eval('document.getElementById("' + objName + '")')) return eval('document.getElementById("' + objName + '").innerHTML="' + textneu + '"');
	}
		
	
//---------------------------------------------------------------------------------------	
// Schutzfunktionen
	// E-Mail-Adresse sichern
	function writeMail(dom,pre,klasse){
		document.write("<a ");
		if (klasse!='') document.write("class='" + klasse + "' ");
		document.write("href='mailto:" + pre + "@" + dom + "'>" + pre + "@" + dom + "</a>");
	}


//---------------------------------------------------------------------------------------	
// Seitennavigation horizontal
	
	// init
	posAlt=new Array(); 
	zielpunkt=new Array();
	slidePos=new Array();
	pageAkt=new Array();
		
	function initSlides(){
		var tmpkap = '';
		
		for (s=0; s<slides.length; s++){
			tmpkap = slides[s];
			posAlt[tmpkap]=0; 
			zielpunkt[tmpkap]=0;
			slidePos[tmpkap]=0;
			pageAkt[tmpkap]=1;
		}
	}
		
	// Seiten-Navigation (Seite vor - zurück)
	function pageSlide(kap,dir){
		
		// A. InfoLayer ausblenden und Hightlight aus
		detailsLock=0;
		hideDetails();
		
		// B.1. Vorwärtsbewegung
		if (dir == 1){ pageAkt[kap]++; if (pageAkt[kap]>pageMax[kap]) pageAkt[kap]=pageMax[kap]; }
		// B.2. Rueckwärtsbewegung
		else 		 { pageAkt[kap]--; if (pageAkt[kap]<1) pageAkt[kap]=1;} 
		
		// Scrolls mit Preview-Leisten
		if ((kap=='prj')||(kap=='team')){
			
			// C.1. Infotext und Thumb auf null
			changeClass('thumb' + activePage,'thumb');
			setStyle('infoFeld' + activeText,'display','none');
		
			// C.2. Highlight und Infotext wieder setzen
			changeClass('thumb' + pageAkt[kap],'thumbSel');
			activePage=pageAkt[kap];
		
			// C.3. preview-Leiste setzen
			prevNr = Math.ceil(pageAkt[kap] / 5);
			pageAkt['preview']=prevNr;
			slideToPage('preview',prevNr,1);
			
			// C.4. Text und Navigation setzen
			activeText=pageSetting[pageAkt[kap]][3];
			changeText(kap + 'HnavKat',pageSetting[pageAkt[kap]][1]);
			if (kap=='team') changeText(kap + 'HnavName',pageSetting[pageAkt[kap]][2]);
			setStyle('infoFeld' + pageSetting[pageAkt[kap]][3],'display','block');
		}
		
		// D. Bewegung ausführen
		slideToPage(kap,pageAkt[kap],1);
	}

	
	// Scrollfunktion  
	function slideToPage(kap,page,init){
		
		// A. Slide-Vorgaben setzen
		if (init==1){				
			if (kap=='preview') zielpunkt[kap] = -525 * (page-1);
			else if (kap=='zitate') zielpunkt[kap] = -325 * (page-1);
			else {
				zielpunkt[kap] = -700 * (page-1);
				// InfoLayer ausblenden (Team, Projekte)
				setStyle('infoLayer' + activePage,'display','none');
			}
			// evtl. Filme anhalten
			if (kap=='prj'){
				for (i=0; i<videos.length; i++){
					if (document.getElementById("movie" + videos[i])){
						var flashMovie= getFlashMovieObject("movie" + videos[i]);
						flashMovie.GotoFrame(4);
					}
				}
			}
		}
		// B. Bewegung ausführen
		if ((Math.ceil(posAlt[kap])!=zielpunkt[kap]) && 
		   ((Math.ceil(posAlt[kap])-1)!=zielpunkt[kap]) && 
		   ((Math.ceil(posAlt[kap])+1)!=zielpunkt[kap])){
			abstand=(zielpunkt[kap]-posAlt[kap])/5;
			slidePos[kap]=posAlt[kap]+abstand;
			setStyle(kap + 'pagecontainer','left',slidePos[kap] + 'px');
			posAlt[kap]=posAlt[kap] + abstand;
			setTimeout("slideToPage('" + kap + "'," + page + ",0)",40);
		}
		// C. Bewegung abschliessen
		else {
			// Seite einrasten falls Rundungsfehler
			setStyle(kap + 'pagecontainer','left',zielpunkt[kap] + 'px');
			// Page-Buttons wieder zeigen falls vorhanden (Standardseite)
			if (page!=pageMax[kap]) setStyle(kap + 'pagenext','display','block');
			else					setStyle(kap + 'pagenext','display','none');
			if (page!=1) 	  		setStyle(kap + 'pageprev','display','block');
			else					setStyle(kap + 'pageprev','display','none');
		}
	}
	
	// direkter Seitenaufruf
	var activePage=0;
	var activeText=0;
	var activeKat=0;
	
	function gotoPage(kat,nr){
	
		// A. Highlight ausgewählte Seite wieder aus und infoLayer ausblenden
		detailsLock=0;
		setStyle('infoLayer' + activeText,'display','none');
		setStyle('infoFeld' + activeText,'display','none');
		changeClass('thumb' + activePage,'thumb');
		
		// B. preview-Leiste setzen
		prevNr = Math.ceil(nr / 5);
		pageAkt['preview']=prevNr;
		slideToPage('preview',prevNr,1);
		
		// C. highlight neues Preview + Infofeld
		changeClass('thumb' + nr,'thumbSel');
		setStyle('infoFeld' + pageSetting[nr][3],'display','block');
		
		// D. Detailbildleiste
		pageAkt[kat]=nr;
		slideToPage(kat,nr,1);
		
		// E. aktive Seite/Kategorie speichern, Text und Navigation setzen
		activePage=nr;
		activeText=pageSetting[nr][3];
		changeText(kat + 'HnavKat',pageSetting[nr][1]);
		
		// F. Ausnahme Team (neben Kategorie auch Namen ersetzen
		if (kat=='team') changeText(kat + 'HnavName',pageSetting[nr][2]);

	}

//---------------------------------------------------------------------------------------
// Flash-Funktionen

// Flash-Objekt-Funktion

	function getFlashMovieObject(movieName){
		if (window.document[movieName]){
			return window.document[movieName]; // Firefox
		}
		if (navigator.appName.indexOf("Microsoft Internet")==-1){
			if (document.embeds && document.embeds[movieName])
			return document.embeds[movieName]; // andere
		}
		else {
			return document.getElementById(movieName); // IE neu
		}
	}
	
	
// Checkflash-Funktion (Flash-Standard-Funktion)

	var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
	var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
	var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
	
	function ControlVersion() {
		var version; var axo; var e;
		try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); version = axo.GetVariable("$version"); } catch (e) { }
		if (!version){ try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); version = "WIN 6,0,21,0"; axo.AllowScriptAccess = "always"; version = axo.GetVariable("$version"); } catch (e) { } }
		if (!version){ try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); version = axo.GetVariable("$version"); } catch (e) { }}
		if (!version){ try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); version = "WIN 3,0,18,0"; } catch (e) { } }
		if (!version){ try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); version = "WIN 2,0,0,11"; } catch (e) { version = -1; } }
		return version;
	}
	
	function GetSwfVer(){
		var flashVer = -1;
		
		if (navigator.plugins != null && navigator.plugins.length > 0) {
			if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
				var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
				var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
				var descArray = flashDescription.split(" ");
				var tempArrayMajor = descArray[2].split(".");			
				var versionMajor = tempArrayMajor[0];
				var versionMinor = tempArrayMajor[1];
				var versionRevision = descArray[3];
				if (versionRevision == "") { versionRevision = descArray[4]; }
				if (versionRevision[0] == "d") { versionRevision = versionRevision.substring(1); } 
				else if (versionRevision[0] == "r") { 
					versionRevision = versionRevision.substring(1);
					if (versionRevision.indexOf("d") > 0) { versionRevision = versionRevision.substring(0, versionRevision.indexOf("d")); }
				}
				var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
			}
		}
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
		else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
		else if ( isIE && isWin && !isOpera ) { flashVer = ControlVersion(); }	
		return flashVer;
	}
	
	function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision){
		versionStr = GetSwfVer();
		if (versionStr == -1 ) { return false; } 
		else if (versionStr != 0) {
			if (isIE && isWin && !isOpera) {
				tempArray = versionStr.split(" ");
				tempString = tempArray[1];			
				versionArray = tempString.split(",");
			} 
			else { versionArray = versionStr.split("."); }
			var versionMajor = versionArray[0];
			var versionMinor = versionArray[1];
			var versionRevision = versionArray[2];
	        
			if (versionMajor > parseFloat(reqMajorVer)) { return true; } 
			else if (versionMajor == parseFloat(reqMajorVer)) {
				if (versionMinor > parseFloat(reqMinorVer)) return true;
				else if (versionMinor == parseFloat(reqMinorVer)) {
					if (versionRevision >= parseFloat(reqRevision)) return true;
				}
			}
			return false;
		}
	}
	
	
//---------------------------------------------------------------------------------------	
// Seitenspezifische Funktionen
	
	
	//-----------------------------------------------	
	// Klappnavigation vertikal
	function showContent(rubrik,nr,maxNum,vers){
		
		// Version 1: alle anderen Kapitel wieder schliessen
		if (vers==0) {
			for (i=1; i<(maxNum+1); i++){
				setStyle (rubrik + i,'display','none');
				changeClass(rubrik + "nav" + i, rubrik + "Head");
			}
		}
		
		// Auswahl zeigen und Nav-Punkt markieren
		if (getStyle(rubrik + nr,'display')=='block'){
			setStyle (rubrik + nr,'display','none');
			changeClass (rubrik + "nav" + nr, rubrik + "Head");
		}
		else { 
			setStyle (rubrik + nr,'display','block');
			changeClass (rubrik + "nav" + nr, rubrik + "HeadSel");
		}
	}
	
	//-----------------------------------------------
	// automatischer Durchlauf bei Horizontal-Slide
	var blockAutoSlide = 0;
	var autoActive;
	
	function autoSlide(kap,start){
		// Auto-Slide beenden, wenn namuell geblättert
		if (blockAutoSlide==0){
			if (start!=1){
				pageSlide(kap,1);
				autoActive = setTimeout("autoSlide('" + kap + "',0)",8000);
			}
			else {
				autoActive = setTimeout("autoSlide('" + kap + "',0)",8000);
			}
		}
	}
	
	function resetAutoSlide(){
		clearTimeout(autoActive);
	}
	
	//-----------------------------------------------
	// Projekte / Team / Designobjekte: InfoBox anzeigen
	
	function showDetails(){
		if (detailsLock==0){
			setStyle('infoLayer' + activeText,'display','block');
			setStyle('infoFeld' + activeText,'display','none');
			setStyle('infoFeld0','display','block');
		}
	}

	function hideDetails(){
		if (detailsLock==0){
			setStyle('infoLayer' + activeText,'display','none');
			setStyle('infoFeld' + activeText,'display','block');
			setStyle('infoFeld0','display','none');
		}
	}	
	
	function lockDetails(){
		if (detailsLock==1){
			detailsLock=0;
			hideDetails();
		}
		else detailsLock=1;
	}

	//-----------------------------------------------
	// Referenzen: Kundentexte anzeigen (mehr)
	
	function showCIntro(nr){
		setStyle('kimoretext' + nr,'display','inline');
		setStyle('kidots' + nr,'display','none');
		setStyle('kilink' + nr,'display','none');
	}
	
	function hideCIntro(nr){
		setStyle('kimoretext' + nr,'display','none');
		setStyle('kidots' + nr,'display','inline');
		setStyle('kilink' + nr,'display','inline');
	}
	
