 $(document).ready(function(){             // Start mit jQuery, ist schneller als mit onload
findSlicebutton();
prepareForms();
layoutcookie(); 
 });
 

 


	
// Inhalt auf Bildschirmgrösse bringen
function machBreit() {
	if (!document.getElementById) return false;
	var maincontent = document.getElementById("maincontent");
	var breitknopf_text = "Kaputt!";
	
	var ablauf = new Date();   // Zeit für Cookie-Haltbarkeit
	var ineinemjahr = ablauf.getTime() + (365 * 24 * 60 * 60 * 1000);
	ablauf.setTime(ineinemjahr);
		
	if (maincontent.className == "breit") {
		var klasse="schmal"
		var breitknopf_text = "Mach mich breit!";
		ablauf.setTime(1);  // Datum in der Vergangenheit löscht Cookie
		document.cookie = "max-width=false; path=/; domain=zappsblog.de; expires=" + ablauf.toGMTString();
		}
	if (!maincontent.className || maincontent.className == "schmal") {
		var klasse ="breit";
		var breitknopf_text = "Mach mich schmal!";
		// Cookie:
		document.cookie = "max-width=false; path=/; domain=zappsblog.de; expires=" + ablauf.toGMTString();
		}
	
	if (document.getElementById("breitknopf")) {
		document.getElementById("breitknopf").setAttribute("value", breitknopf_text);
		}
	if (breitknopf_text != "Kaputt!"){
		maincontent.className = klasse;
		}
	}

// Testen, ob Breit-Cookie gesetzt ist
function layoutcookie(){
	if(document.cookie){
		var cookietext = document.cookie;
		if (cookietext.search(/max-width=false/) != -1) {
		machBreit();
		}
	}
}

// Dem Slice-Button im IE8 die richtige Bookmark-Funktion geben
 
function findSlicebutton(){
	var slicelinks = getAllElementsByClass('wsadv', document.getElementById("navi"));
	for (var i=0; i< slicelinks.length; i++) {
		slicelinks[i].onclick = function() {addSlice(); return false;}
		}
}

function addSlice(){
	window.external.addToFavoritesBar('http://zappsblog.de/#aktuellebeitraege', 'Zapps Blog: Aktuell', 'slice'); // nur IE 8
	}


// Eingaben in Formularen überprüfen. Sollte auch das Zurück-Problem des IE bei den Matheaufgaben mindern.

function validateForm(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
    if (element.className.indexOf("required") != -1) {
      if (!isFilled(element)) {
	  
		var bezeichnung = element.getAttribute("id");
		var labels = document.getElementsByTagName("label");
		for (var j=0; j<labels.length; j++) {
			if (!labels[j].getAttribute("for")) continue;
			if (labels[j].getAttribute("for") != bezeichnung ) continue;
			var beschriftung = labels[j].lastChild.nodeValue;
			}
		if(!beschriftung) {  	 												//für IE 6
			alert("Es fehlt eine benötigte Angabe im Formular.");
			return false;
			}
		if(beschriftung.search(/notwendig/) != -1) {
			var loeschpos = beschriftung.search(/notwendig/);
			loeschpos = loeschpos - 2;  										// Leerzeichen + Klammer
			beschriftung = beschriftung.slice(0,loeschpos);
			}
		var letzteszeichen = beschriftung.charAt(beschriftung.length-1);
		if (letzteszeichen == ":") {
			beschriftung = beschriftung.slice(0,beschriftung.length-1);
			}
        alert("Bitte das Feld \""+beschriftung+"\" ausfüllen.");
        return false;
      }
    }
    if (element.className.indexOf("email") != -1) {
      if (!isEmail(element)) {
        alert("Bitte eine gültige E-Mail-Adresse angeben.");
        return false;
      }
    }
	if (element.className.indexOf("mcs") != -1) {
      var mcstest = isMcs(element)
	  if (!mcstest) {
        alert("Bitte zum Spamschutz das Ergebnis der Rechenaufgabe eintragen.");
        return false;
      }
	  if (mcstest != element.value) {
		alert("Bitte noch mal nachrechnen, das Ergebnis der Addition ist falsch.");
        return false;
	  }	
    }
	if (element.className.indexOf("suche") != -1) {
      if (!isFilled(element)) {
        alert("Du hast keinen Suchbegriff eingegeben.");
        return false;
      }
    }
  }
  return true;
}


function isFilled(field) {
  if (field.value.length < 1) {
    return false;
  } else {
    return true;
  }
}


function isMcs(field) {
	if (field.value.length < 1) return false;
	var mcs_textnode = field.parentNode.getElementsByTagName("label")[0].lastChild.nodeValue;
	var mcs_textnode_array = mcs_textnode.split("+");
	var mcs_textnode_vorne = mcs_textnode_array[0];
	var mcs_textnode_hinten = mcs_textnode_array[1];
	var nummerpos_1 = mcs_textnode_vorne.length-1;
	var nummer_1 = mcs_textnode_vorne.slice(nummerpos_1);  // da zweiter Wert fehlt gehts bis zum Ende der Zeichenkette, 10 im Plugin abgeschaltet
	var nummer_2 = parseInt(mcs_textnode_hinten);
    var summe = parseInt(nummer_1) + parseInt(nummer_2)
	return summe //summe
  }

function isEmail(field) {
  if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1) {
    return false;
  } else {
    return true;
  }
}

function prepareForms() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
    thisform.onsubmit = function() {
      return validateForm(this);
    }
  }
} 


	
	
//  Allgemeine Funktionen
function getAllElementsByClass(suchklasse, node) {   
		if (!document.getElementById || !document.getElementsByTagName) return false;
		if (!document.getElementsByClassName) {   			// selektiert auf FF3 und moderne Browser, ist schneller als Dustins Funktion
			var klassenElemente = dustinGetElementsByClass(node, suchklasse);
			return klassenElemente;
		} else {	
			if (!node) {									// http://developer.mozilla.org/En/DOM:document.getElementsByClassName
			var klassenElemente = document.getElementsByClassName(suchklasse);
			return klassenElemente;
			} else {
			var klassenElemente = node.getElementsByClassName(suchklasse);
			return klassenElemente;
			}
			
		}

}

function dustinGetElementsByClass(node,searchClass) {
//	if ( node == null )	{node = document;}
	var classElements = new Array();
	var els = node.getElementsByTagName("*"); // use "*" for all elements
	var elsLen = els.length;
	var pattern = new RegExp("\\b"+searchClass+"\\b");
	for (i = 0, j = 0; i < elsLen; i++) {             // var eingefügt!
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


		
function addClass(element,value) {
	if (!element.className) {
	element.className = value;
	} else {
	newClassName = element.className;
	newClassName += " ";
	newClassName += value;
	element.className = newClassName;
	}
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}


	
