﻿/* //SEIBERT/MEDIA/DESIGN Relaunch 2009 */

// Container, in dem der Contentbereich liegt; hier werden andere Inhalte ueber die Navi nachgeladen
var container = document.getElementById("container");

// Hover-Effekt der Hauptnavigation
// Jeder Navipunkt hat als Hintergrundbild das aktive (gruene) Bild
// und darueber das nicht-aktive Bild (kein Hintergrundbild)
$("#mainnavi a").hover(
	function () {
		// Mehrfachausfuehrung ausschliessen
		if($("#" + this.id + " img:animated").length != 0 || $("#" + this.id).hasClass("current")) {
			return;
		} else {
			$("#" + this.id + " img").fadeOut(300);
		}
	},
	function () {
		if(!$("#" + this.id).hasClass("current")) {
			$("#" + this.id + " img").fadeIn(300);
		}
	}
);

// onclick-Methode fuer das Austauschen von Mainnavi und
// Einblenden der Subnavi und des Contents
$("#mainnavi a.intern").click(
	function () {
		// ID freistellen
		id = this.id.replace(/^mainnavi_/, "");

		// Doppelklick abfangen
		if (id != currentID) {
			// Anker setzen
			location.href = "#" + id;
			// mainnavi-Punkte markieren/demarkieren
			handleMainnavi(id);
			// Subnavi der alten mainnavi ausblenden und der neuen mainnavi anzeigen
			handleSubnavi(id);
			
			// Erzeugen und Ausstrahlen eines neuen Divs
			showPage(id, this.href, id);
		}
		return false;
	}
);

// Funktion blendet aktive/inaktive Mainnavi ein/aus
function handleMainnavi(id) {
	if (id != currentSubID) {
		// Class bei aktueller mainnavi entfernen und inaktives/weisses Bild wieder einfaden
		$("#mainnavi_" + currentSubID).removeClass("current");
		$("#mainnavi_" + currentSubID + " img").fadeIn(300);
		// Class der neuen ID auf current setzen, da dieses jetzt aktiv ist
		$("#mainnavi_" + id).addClass("current");
	}
}

// Funktion versteckt letzte Subnavi und zeigt erwuenschte Subnavi an
// demarkiert auch aktiven Punkt in der Subnavi, falls dort einer aktiv war
function handleSubnavi(id) {
	// Subnavi vorhanden? (Startseite hat z.B. keine)
	if (document.getElementById("subnavi_" + currentSubID)) {
		// Class beim aktuellen subnavi-Punkt entfernen
		$("#subnavi_" + currentID).removeClass("current");
		// falls die angeklickte mainnavi, nicht die aktive ist, dann folgende Schritte durchfuehren
		// aktuelle subnavi ausblenden, CSS-Klasse entfernen, neue subnavi anzeigen
		if (currentSubID != id) {
			$("#subnavi_" + currentSubID).fadeOut("slow", function () {
				// Class beim Container der subnavi entfernen
				$("#subnavi_" + currentSubID).removeClass("subnavi_current");
				show_subnavi(id);
			});
		}
	} else {
		// falls die aktuelle Seite keine Subnavi hat, dann nur die neue Subnavi anzeigen
		show_subnavi(id);
	}
}

function show_subnavi(id) {
	$("#subnavi_" + id).fadeIn("slow", function () {
		$("#subnavi_" + id).addClass("subnavi_current");
	});
}

// onclick-Methode fuer das Austauschen des Contents (subnavi)
$("div.subnavi a").click(
	function () {
		// ID freistellen
		id = this.id.replace(/^subnavi_/, "");

		// Doppelklick abfangen
		if (id != currentID) {
			// Anker setzen
			location.href = "#" + id;
			
			// ID der eigenen Subnavi (Container)
			var mySubNaviID = $(this).parent().parent().get(0).id.replace(/^subnavi_/, "");
			// erwuenschte mainnavi markieren
			handleMainnavi(mySubNaviID);
			// Subnavi der alten mainnavi ausblenden und der neuen mainnavi anzeigen
			handleSubnavi(mySubNaviID);
			
			// Class auf current setzen, da dieses jetzt das aktive ist
			$("#subnavi_" + id).addClass("current");
			// Erzeugen und ausstrahlen eines neuen Divs
			showPage(id, this.href, currentSubID);
		}
		return false;
	}
);

function showPage(id, href, subID) {
	// Abfangen von Doppelklick auf den gleichen Navipunkt
	content_id = "content_" + id;
	// pruefen ob die Seite schon als DIV erstellt wurde
	if (!document.getElementById(content_id)) {
		// Erstellen eines neues DIVs fuer die angeforderte Seite
		createDIV(content_id, href);
	}
	showDIV(id, subID);

	// neue Seite als aktuelles DIV setzen
	currentID = id;
	currentSubID = subID;
}

function createDIV(id, href) {
	// DIV-Tag mit id und class erstellen
	var myDIV = document.createElement("div");
	// ID mit dem Zusatz "_div" erstellen und einfuegen
	var myDIVid = document.createAttribute("id");
	myDIVid.nodeValue = id;
	myDIV.setAttributeNode(myDIVid);
	// Class erstellen und einfuegen
	var myDIVclass = document.createAttribute("class");
	myDIVclass.nodeValue = "ajax hidden_div";
	myDIV.setAttributeNode(myDIVclass);

	// neues DIV dem Container fuer den Content hinzufuegen
	container.appendChild(myDIV);

	// URL fuer google merken
	var original_url = href;
	// Seite per AJAX holen und einsetzen
	// URL auf ein besonderes Template umstellen, dass nur den Contentbereich enthaelt
	href = href.replace(/\.shtml$/, "_lcontent_view.shtml");
	// Sonderfall Referenzen (Navi: Beispiele)
	if (href.search(/referenz\.cgi/) != -1) {
		href = href + "?ajax=1";
	}
	// Sonderfall Kontaktformular (Navi: Kennenlernen)
	if (href.search(/form\.cgi/) != -1) {
		href = href + "&ajax=1";
	}
	
	jQuery.get( href, function (result) {
		$("#" + id).css({ zIndex: "1" });
		$("#" + id).html(result);
		
		// alle Pfade zu Bildern/PDFs von relativ auf absolut umschreiben
		$("#" + id + " img").each(function() {
			// URL von Bildern entnehmen
			var source = $(this).attr("src");
			// URL von arketect-Bildern korrigieren
			if (source.search(/filestore/) != -1) {
				// alles vor dem Ordnernamen "filestore" abschneiden
				source = "/" + $(this).attr("src").replace(/.+?(filestore.+)/, '$1');
			}
			$(this).attr({
				src: source
			});
			// Google-Analytics aufrufen
			pageTracker._trackPageview(original_url);
		});
	});
}

function showDIV(id, subID) {
	// anforderte Seite anzeigen (liegt derzeit noch im Hintergrund)
	$("#content_" + id).show();
	$("#content_" + id).css({ zIndex: "1" });
	$("#content_" + currentID).css({ zIndex: "2" });
	// aktuelle Seite ausblenden und anschliessend z-index von alter und neuer Seite tauschen
	$("#content_" + currentID).fadeOut("slow", function () {
		// z-index fuer das alte und das neue Bild tauschen
//		$("#content_" + id).css({ zIndex: "2" });
//		$("#content_" + currentID).css({ zIndex: "1" });
	});
}

// Suche: Standardtext entfernen/einfuegen
var search_sentence = "Was suchen Sie?";
$("#words").focus(
	function () {
		hide_text($(this), search_sentence);
	}
);
$("#words").blur(
	function () {
		show_text($(this), search_sentence);
	}
);

function hide_text(obj, value) {
	if (obj.val() == value) {
		obj.val("");
	}
}
function show_text(obj, value) {
	if (obj.val() == "") {
		obj.val(value);
	}
}

// Such-Submit: hover
$("#search_submit").hover(
  function() {
    $(this).css("background-position", "0px -15px");
  },
  function() {
    $(this).css("background-position", "0px 4px");
  }
);

// Formulareeingaben pruefen
function checkForm(formname, fieldnames, values) {
	var fields = new Array();
	var check = 0;
	var regex=/^[\w,_,\-,.]*$/;
	
	for (var i=0; i<fieldnames.length; i++) {
		fields[i] = document[formname][fieldnames[i]].value;
	}
	
	for (var i=0; i<fields.length; i++) {
		if (fields[i] == "" || fields[i] == values[i]) {
			alert('Bitte füllen Sie alle Felder aus.');
			return false;
		} else {
			check++;
		}
	}
	if (check == fieldnames.length) {
		return true;
	} else {
		return false;
	}
}

function load_content() {
	var url = location.href.split("#");
	var id = url[1];
	if (id != currentID) {
		if (document.getElementById("mainnavi_" + id)) {
			id = "mainnavi_" + id;
		} else if (document.getElementById("subnavi_" + id)) {
			id = "subnavi_" + id;
		} else {
			// fehlerhafte ID uebergeben
			return false;
		}
		$("#" + id).trigger('click');
	}
}
setInterval("load_content()", 500);

// Twitter-Box mit Inhalt fuellen
if ( $("#content_20750").length ) {
  $.getJSON('http://twitter.com/statuses/user_timeline/77430017.json?callback=?', function(data) {
    // Formatierung des Datum
    var date_array = data[0].created_at.split(" ");
    var date = date_array[3] + " Uhr, " + date_array[2] + ". " + date_array[1] + " " + date_array[5];
    
    // Twitter-Text nach URLs durchsuchen und ersetzen
    var text = data[0].text.replace(/\s(https?:\/\/[^\s]+)(?:\s|$)/g, " <a href=\"$1\">$1</a> ")
    
    $("#twitter_box").html('<div class="twitter_text">' + text + '</div><div class="twitter_date">' + date + '</div>');
  });
}