/* Funktionen zum Setzen des Seitenlayouts */

var screenSize = screen.width;
var minSize = 1240;

var cnconsultHome = "index.htm";


/* Aktuelle Bildschirmgröße ermitteln */
//function getScreenSize() {
//  return screen.width;
//}

/* Für Bildschirmgröße passendes Stylesheet setzen */
function setStylesheet(size) {
  var styleSheet = document.createElement("link");
  styleSheet.id = "Stylesheet";
  styleSheet.rel = "stylesheet";
  styleSheet.type = "text/css";

  if (size >= minSize) {
    styleSheet.href = "styles/styles1280xYYY.css";
  }
  else {
    styleSheet.href = "styles/styles1024x768.css";
  }

  document.getElementsByTagName("head")[0].appendChild(styleSheet);
}

/*
 * Dynamisches Setzen des Intro-Images
 *
 * Das Intro-Image wird mit JavaScript erzeugt und in die "ImageBox" eingehängt.
 * Je nach Bildschirmgröße wird dem Attribut "src" des Intro-Images ein größeres oder ein kleineres Bild zugewiesen.
 *
 */
function setIntroImage(size, pageTitle, pageTitleAsFileName) {
  var fileName = pageTitleAsFileName.toLowerCase();
  var introImage = document.createElement("img");
  introImage.id = "IntroImage";
  introImage.alt = pageTitle;
  introImage.title = pageTitle;

  if (size >= minSize) {
    introImage.src = "images/1280px/" + fileName + ".jpg";
  }
  else {
    introImage.src = "images/1024px/" + fileName + ".jpg";
  }

  document.getElementById("ImageBox").appendChild(introImage);
}

/*
 * Dynamisches Setzen des Firmenlogos
 *
 * Firmenlogo und Hyperlink werden mit JavaScript erzeugt und in die "LogoBox" eingehängt.
 * Je nach Bildschirmgröße wird dem Attribut "src" der Logo-Grafik ein größeres oder ein kleineres Bild zugewiesen.
 *
 */
function setCompanyLogo(size) {
  var logoLink = document.createElement("a");
  logoLink.href = cnconsultHome;

  var logoImage = document.createElement("img");
  logoImage.id = "CompanyLogo";
  logoImage.alt = "CN-Consult GmbH";
  logoImage.title = "CN-Consult GmbH";

  if (size >= minSize) {
    logoImage.src = "images/1280px/cnconsult_logo.gif";
  }
  else {
    logoImage.src = "images/1024px/cnconsult_logo.gif";
  }

  logoLink.appendChild(logoImage);
  document.getElementById("LogoBox").appendChild(logoLink);
}

/* Aufforderung JavaScript zu aktivieren an- oder ausschalten */
function hideJavaScriptMessage() {
  document.getElementById("JavaScriptMessage").style.visibility = "hidden";
}


/* Seitentitel ermitteln */
function getPageTitle() {
  var titleString;
  var title;
  var i
  titleString = document.getElementsByTagName("title")[0].text;
  i = titleString.lastIndexOf("|") + 2;
  if (i == 1) {
     title = "Willkommen";
  }
  else {
     title = titleString.substring(i, titleString.length);
  }

  return title;
}

/* Seitentitel ohne Umlaute, "ß" und mit Unterstrichen anstatt Leerzeichen zurückgeben */
function getPageTitleAsFileName() {
  var title = getPageTitle();
  title = title.replace(/ä/g, "ae");
  title = title.replace(/ö/g, "oe");
  title = title.replace(/ü/g, "ue");
  title = title.replace(/Ä/g, "Ae");
  title = title.replace(/Ü/g, "Ue");
  title = title.replace(/Ö/g, "Oe");

  title = title.replace(/ß/g, "ss");
  title = title.replace(/\s/g, "_");

  title = title.replace(/\&/g, "und");

  title = title.replace(/[^a-zA-Z0-9_-]/g, "");

  return title;
}

/* Dynamische Navigation in älteren IE-Versionen ermöglichen */
function oldIENavigation() {
  if(window.navigator.systemLanguage && !window.navigator.language) {
    window.onload=hoverIE;
  }
}

function hoverIE() {
  var LI = document.getElementById("Navigation").firstChild;
  do {
    if (searchUL(LI.firstChild)) {
      LI.onmouseover=fadeIn;
      LI.onmouseout=fadeOut;
    }
    LI = LI.nextSibling;
  }
  while(LI);
}

function searchUL(UL) {
  do {
    if(UL) UL = UL.nextSibling;
    if(UL && UL.nodeName == "UL") return UL;
  }
  while(UL);
  return false;
}

function fadeIn() {
  var UL = searchUL(this.firstChild);
  UL.style.display = "block";
  UL.style.position = "absolute";
  UL.style.backgroundImage = "url(images/all_screen_sizes/menu_background.png)";
  UL.style.backgroundRepeat = "repeat";
  UL.style.bottom = "1.15em";
  UL.style.margin = "0";
  UL.style.padding = "0";
}

function fadeOut() {
  searchUL(this.firstChild).style.display = "none";
}


/* Layout an Opera anpassen */
function setOperaLayout(size) {
  var ua = navigator.userAgent;
  if (ua.match(/Opera/gi) || ua.match(/Safari/gi)) {
    //alert(navigator.userAgent);
    document.getElementById("Welcome").style.bottom = "1.15em";
    document.getElementById("Consulting").style.bottom = "1.15em";
    document.getElementById("SAP").style.bottom = "1.15em";
    document.getElementById("Softwaredevelopment").style.bottom = "1.15em";
    document.getElementById("Contact").style.bottom = "1.15em";
  }
  if ((ua.match(/Opera/gi) || ua.match(/Safari/gi)) && size >= minSize) {
    document.getElementById("Navigation").style.marginTop = "184px";
  }
  //else if (ua.match(/Opera/gi) && !(size >= minSize)) {
  //  document.getElementById("Navigation").style.marginTop = "4.8em";
  //}
}


/* Einträge auf der Call-Back-Seite prüfen */
function checkEntries() {
  var errors = 0;

  // Prüfen, ob Vorname angegeben
  if (document.getElementsByName("FirstNameInput")[0].value == "") {
    document.getElementsByName("FirstNameInput")[0].style.borderColor = "red";
    errors++;
  }
  else {
    document.getElementsByName("FirstNameInput")[0].style.borderColor = "#ffce63";
  }

  // Prüfen ob Nachname angegeben
  if (document.getElementsByName("LastNameInput")[0].value == "") {
    document.getElementsByName("LastNameInput")[0].style.borderColor = "red";
    errors++;
  }
  else {
    document.getElementsByName("LastNameInput")[0].style.borderColor = "#ffce63";
  }

  // Prüfen ob Telefonnummer angegeben
  if (document.getElementsByName("PhoneInput")[0].value == "") {
    document.getElementsByName("PhoneInput")[0].style.borderColor = "red";
    errors++;
  }
  else {
    document.getElementsByName("PhoneInput")[0].style.borderColor = "#ffce63";
  }

  // Prüfen ob Emailadresse angegeben
  if (document.getElementsByName("EmailInput")[0].value == "") {
    document.getElementsByName("EmailInput")[0].style.borderColor = "red";
    errors++;
  }
  else {
    document.getElementsByName("EmailInput")[0].style.borderColor = "#ffce63";
  }

  // Fehlermeldung anzeigen, wenn eines der Pflichfelder nicht gefüllt wurde
  if (errors > 0) {
    document.getElementById("ErrorMessage1").style.visibility = "visible";
  }

  // Prüfen ob angegebener Rückruftermin nicht in der Vergangenheit liegt
  if (document.getElementsByName("DateInput")[0].value != "") {
    var callDateString = document.getElementsByName("DateInput")[0].value;
    var callDateParts = callDateString.split(".");
    var callDay = callDateParts[0];
    var callMonth = callDateParts[1] - 1;
    var callYear = Number(callDateParts[2]);

    if (callYear < 2000) {
      callYear = callYear + 2000;
    }

    var callDate = new Date(callYear, callMonth, callDay);
    var currentDate = new Date();

    if (callDate < currentDate) {
      document.getElementsByName("DateInput")[0].style.borderColor = "red";
      document.getElementById("ErrorMessage2").style.visibility = "visible";
      errors++;
    }
    else {
      document.getElementById("ErrorMessage2").style.visibility = "hidden";
      document.getElementsByName("DateInput")[0].style.borderColor = "#ffce63";
    }
  }


  // Keine Fehler gefunden
  if (errors == 0) {
    document.getElementsByName("subject")[0].value = "Anfrage von " + document.getElementsByName("FirstNameInput")[0].value + " " + document.getElementsByName("LastNameInput")[0].value;
    document.getElementsByName("realname")[0].value = document.getElementsByName("FirstNameInput")[0].value + " " + document.getElementsByName("LastNameInput")[0].value;
    document.getElementsByName("email")[0].value = document.getElementsByName("EmailInput")[0].value;
    document.getElementById("ContactForm").submit();
  }
}


/* Eingabefelder auf der Call-Back-Seite vergrößern */
function resizeInputFields(size) {
  if (size >= minSize) {
    document.getElementsByName("CompanyInput")[0].size = "17";
    document.getElementsByName("LastNameInput")[0].size = "17";
    document.getElementsByName("FirstNameInput")[0].size = "17";
    document.getElementsByName("PhoneInput")[0].size = "17";
    document.getElementsByName("EmailInput")[0].size = "17";
  }
}


/* Hilfsfunktion zum Erzeugen einer Fehlermeldung für die Call-Back-Seite */
function createErrorMessage(message) {
  var tableRow = document.createElement("<tr>");
  var tableCell = document.createElement("<td>");
  var errorMessage = document.createTextNode(message);

  tableCell.colspan = "2";
  tableCell.style.paddingTop = "2em";
  tableCell.style.color = "red";
  tableCell.style.fontFamily = "Arial, sans-serif";
  tableCell.style.fontSize = "0.8em";
  tableCell.style.fontWeight = "bold";

  tableCell.appendChild(errorMessage);
  tableRow.appendChild(tableCell);
  document.getElementById("LeftSideTable").appendChild(tableRow);
}
