// javascript daniel gilgen
// 2008-05-28

 // blank-links erstellen
$(function(){							
	// links, die die klasse "extern" haben, bekommen als target ein "_blank" verpasst
	 $("a.extern").attr({ 
          target: "_blank"
       });
});
  
$(function(){
	//alle uls innerhalb der lis werden unsichtbar geschaltet
	$('ul#bueromoebelauswahl li ul').hide();
	
	// ausser die, die innerhalb von li.current_page_parent liegen
	//$('ul#bueromoebelauswahl li.current_page_parent ul').slideDown('slow'); // oeffnet animiert
	$('ul#bueromoebelauswahl li.current_page_parent ul').show();
	
	// ACHTUNG! bei "bueromoebelauswahl.php" muessen auch die einstellungen fuer das menue manuell gemacht werden!
	
	// alle cookies des dokumentes;
	var cookieText = document.cookie
	
	/*
	die hier genannten cookies werden gesetzt, wenn der user auf einen der 
	hauptmenuepunkte bei "ul#bueromoebelauswahl" klickt (z.b. "basic")
	die if-schleifen fragen ab, ob im "cookieText" der jeweilige suchbegriff enthalten ist
	falls ja bekommt das jeweilige <li> eine zusaetzliche klasse "schonBesucht"
	das bewirkt, dass dies <li>-element mit pfeil nach unten dargestellt wird
	und die jeweiligen submenue-punkte sofort sichtbar sind...
	*/
	if (cookieText.indexOf("basic=offen")!=-1){
		$('ul#bueromoebelauswahl li#basic').addClass('schonBesucht');
	} 
	if (cookieText.indexOf("profi=offen")!=-1){
		$('ul#bueromoebelauswahl li#profi').addClass('schonBesucht');
	} 
	if (cookieText.indexOf("standard=offen")!=-1){
		$('ul#bueromoebelauswahl li#standard').addClass('schonBesucht');
	}
	if (cookieText.indexOf("objekt=offen")!=-1){
		$('ul#bueromoebelauswahl li#objekt').addClass('schonBesucht');
	}
	if (cookieText.indexOf("exclusive=offen")!=-1){
		$('ul#bueromoebelauswahl li#exclusive').addClass('schonBesucht');
	}
	if (cookieText.indexOf("meeting=offen")!=-1){
		$('ul#bueromoebelauswahl li#meeting').addClass('schonBesucht');
	}
	if (cookieText.indexOf("ordnung=offen")!=-1){
		$('ul#bueromoebelauswahl li#ordnung').addClass('schonBesucht');
	}
	if (cookieText.indexOf("stuhle=offen")!=-1){
		$('ul#bueromoebelauswahl li#stuhle').addClass('schonBesucht');
	}
	// "stuhle" wird umbenannt in "stŸhle"
	var stuhlX = 'st&uuml;hle';
	$('ul#bueromoebelauswahl li#stuhle a:first').html(stuhlX);
	
	if (cookieText.indexOf("preislisten=offen")!=-1){
		$('ul#bueromoebelauswahl li#preislisten').addClass('schonBesucht');
	}
	
	// die jeweiligen submenue-punkte werden sofort sichtbar
	//$('ul#bueromoebelauswahl li.schonBesucht ul').slideDown('slow');	 //animation
	$('ul#bueromoebelauswahl li.schonBesucht ul').show();	 
});

// beim clicken im menue links auf die hauptmenuepunkte ("basic, standard, profi...")
$(function(){
	$('ul#bueromoebelauswahl>li>a').click(function(){ 		//durch ">" sind nicht die untermenue-punkte betroffen
		
		// die jeweilige moebelgruppe wird herausgefunden
		var mGruppe = $(this).parent().attr('id');
		createCookie(mGruppe,'offen',0); // erzeugt das entsprechende cookie z.b. "Basic;offen;0"
		
		// welche klasse hat das elternelement "<li>" - gesucht wird nach "current_page_parent"
		var liClass = $(this).parent().attr('class');
		
		if (liClass.indexOf("cookieGeloescht")!=-1){
			//alert ("cookieGeloescht gefunden!");
			createCookie(mGruppe,'offen',0); // erzeugt das entsprechende cookie z.b. "basic;offen;0"
			$(this).parent().removeClass('cookieGeloescht');
			$('ul#bueromoebelauswahl li.current_page_parent ul').slideDown('slow');
			return false;
		}	else if (liClass.indexOf("current_page_parent")!=-1){ //diese class ist vorhanden
			// wenn <li> die class "current_page_parent" hat, soll das cookie geloescht werden
			eraseCookie(mGruppe);
			$('ul#bueromoebelauswahl li.current_page_parent ul').slideUp('slow');
			$(this).parent().addClass('cookieGeloescht'); 
			return false;
		}
	});
});

// beim clicken auf der startseite auf eine moebelgruppe auf der weissen flaeche muss auch ein cookie setzen
$(function(){
	$('body.startseite ul.moebel a').click(function(){
		var zielURL = $(this).attr('href'); 			// die url z.b. "/buromobel/basic/"
		var zielArray = zielURL.split('/');				// zerlegt am "/" in ein array
		var ziel = zielArray[2];							// z.b."basic"
		createCookie(ziel,'offen',0); // erzeugt das entsprechende cookie z.b. "basic;offen;0"
	});
});

// angabe zur letzten aenderung via cookie
// angabe im backend direkt auf der startseite "<p class="unsichtbar" id="aktualisiert">15.2.2008</p>"
$(function(){
	var bodyClasse = $('body').attr('class');
	if (bodyClasse == 'startseite'){
		var datum = $('p#aktualisiert').text();
		createCookie('letzteAenderung',datum,100);
	}
	
	var cookieDatum = readCookie('letzteAenderung');
	var neuText = 'Zuletzt aktualisiert: ' + cookieDatum; //"Zuletzt aktualisiert" hinzugefuegt
	$('p#lastUpdate').html(neuText);
});

/////////////////////////////// cookie-scripts

// http://www.quirksmode.org/js/cookies.html#script
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

// austausch von bilder auf den stuhl_Einzelseiten
$(function(){
	
	// austauschBild wird via jQuery hier erzeugt
	$('<img id="austauschBild" />').insertAfter('body.stuhl_Einzelseite ul#auswahlListe');
	
	// erster Link aus der auswahlListe wird hier gesucht
	var firstLink = $('body.stuhl_Einzelseite ul#auswahlListe a:first').attr('href');
	
	// das erzeugte "austauschBild" bekommt als "src" diesen Link
	$('body.stuhl_Einzelseite img#austauschBild').attr({src: firstLink});
	
	//fuegt dem ersten link der auswahlListe die klasse "aktiv" hinzu
	$('body.stuhl_Einzelseite ul#auswahlListe a:first').addClass('aktiv');
	
	// entsprechend wird dann das bild innerhalb des aktiven links durch das mit dem roten rahmen ausgetauscht
	if ($('body').attr('class')){
		var bodyKlasse = $('body').attr('class');
		if (bodyKlasse.indexOf('stuhl_Einzelseite')!=-1){
			KleinBild('_a.jpg');
		}
	}

	$('body.stuhl_Einzelseite ul#auswahlListe a').click(function(){
		// beim Klicken wird ebenfalls die "src" des "austauschBild" geaendert
		var meinLink = $(this).attr('href');
		$('img#austauschBild').hide().attr({src: meinLink}).slideDown('slow');
		
		// aktives bild gegen inaktives austauschen
		KleinBild('_l.jpg');
		// klasse "aktiv" entfernen
		$('body.stuhl_Einzelseite ul#auswahlListe a.aktiv').removeClass('aktiv');
		// beim angeklickten link hinzufuegen
		$(this).addClass('aktiv');
		// inaktives bild gegen aktives austauschen
		KleinBild('_a.jpg');
						
		return false;
	});
});

function KleinBild(endung){
	// das bisherige bild
	var jetztBild = $('body.stuhl_Einzelseite ul#auswahlListe a.aktiv').find('img').attr('src');
	// jetzt ohne endung z.b. "_l.jpg"
	var jetztBildOhneEndung = jetztBild.slice(0,-6);
	// der neue name
	var neuBild = jetztBildOhneEndung + endung;
	// und ausgetauscht
	$('body.stuhl_Einzelseite ul#auswahlListe a.aktiv').find('img').attr({src: neuBild})
}

//preloading der bilder auf der stuhl_Einzelseite
$(function(){
	// bereich, wo die bilder vorgeladen werden (unsichtbar!)
	$('<div id="preLoadArea" style="display:none;" />').insertAfter('body.stuhl_Einzelseite img#austauschBild');
	// vorladen aller bilder die als link in der auswahlListe aufgefuehrt sind
	$('body.stuhl_Einzelseite ul#auswahlListe a').each(function(index){
		// alle hrefs in einem array
		var h = $(this).attr('href');
		// test, ob es sich wirklich um ein bild handelt
		if (h.indexOf('.jpg')!=-1 || h.indexOf('.gif')!=-1 || h.indexOf('.png')!=-1){
			var bild = '<img src="' + h +'" />';
		}
		// das jeweilige bild wird in das div#preLoadArea geladen
		$('div#preLoadArea').html(bild);
   	});
});

// preisliste und weitere seiten clonen
$(function(){
	$('body.stuhl_Einzelseite ul#weiteres li').clone().appendTo('ul#weitereSeiten');
	//das echte menue unsichtbar stellen
	$('body.stuhl_Einzelseite ul#weiteres').hide();
	
	$('body.moebel_Einzelseite ul#weiteres li').clone().appendTo('ul#weitereSeiten');
	//das echte menue unsichtbar stellen
	$('body.moebel_Einzelseite ul#weiteres').hide();
});

// austausch auf moebelSeiten (stuehle sind sonderfall!)
// hier wird ueber liste (1/2 usw.) am oberen rand - bei preisliste ausgetauscht!
$(function(){
	// versteckt alle divs, die die id="part" haben, aber nicht die erste davon
	$('body.moebel_Einzelseite div[id^="part"]:not("#part1")').hide();
	
	$('body.moebel_Einzelseite ul#weitereSeiten a:not(#preise)').click(function(){
		$('ul#weitereSeiten li.aktiv').removeClass();
		
		// erst mal alle divs unsichtbar
		$('body.moebel_Einzelseite div[id^="part"]').hide('slow');
		
		//auf welchen link hat man gerade geclickt
		var akt = $(this).attr('id');
		// alles was hinter dem "s" steht
		var aktNummer = String(akt.slice(1));
		// das zu zeigende div wird zusammengebaut
		var neuDiv = 'body.moebel_Einzelseite div#part' + aktNummer;
		
		$(neuDiv).slideDown('slow');
		
		$(this).parent().addClass('aktiv')
		
		return false;
	});
});

////////////////////////////// OHNE jquery

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

// dom scripting, p. 285f
addLoadEvent(prepareForms);
function prepareForms(){
	for (var i=0; i<document.forms.length; i++) {
		var thisform = document.forms[i];
		resetFields(thisform);
		thisform.onsubmit = function() {
			return validateFields(this);
		}
	}
}

/*
	fragt in jeder form die default-werte der input-felder ab, 
	macht bei onfocus das input-feld leer und 
	bei onblur wieder den alten text rein...
*/
function resetFields(whichform){
	for (var i=0; i<whichform.elements.length; i++) {
		var element = whichform.elements[i];
		if (element.type == "submit") continue;
		if (!element.defaultValue) continue;
		
		element.onfocus = function(){
			if (this.value == this.defaultValue) {
				this.value = "";
			}
		}
		
		element.onblur = function() {
			if (this.value == "") {
				this.value = this.defaultValue;
			}
		}
	}
}