
// Copyright: Robert Grampp, http://ai-ti.net


debug = false;


function detectBrowser() {
  /*
  ie = (    (document.all) 
         && (window.offscreenBuffering) ) ? true : false;
  nn = (    (document.captureEvents) 
         && (!document.getElementById)  ) ? true : false;
  mz = (    (document.getElementById) 
         && (!document.all) 
         && (document.documentElement)  ) ? true : false;
  op = (    (document.getElementById) 
         && (navigator.userAgent.indexOf('Opera') != -1) ) ? true : false;
  */

  brId = navigator.userAgent;

  brType = navigator.appCodeName; // = "unknown";
  if (brId.indexOf("Mozilla/4") != -1) { brType = "nn"; }
  if (brId.indexOf("MSIE")      != -1) { brType = "ie"; }
  if (brId.indexOf("Gecko")     != -1) { brType = "mz"; }
  if (brId.indexOf("Opera")     != -1) { brType = "op"; }
  // Opera zuletzt!, denn er kann sich (vorne) als anderer Browser ausgeben

  // for shortcut checks
  nn = (brType == "nn");
  ie = (brType == "ie");
  mz = (brType == "mz");
  op = (brType == "op");

  brName     = navigator.appName;
  brPlatform = navigator.platform;
  brLanguage = navigator.language;
  brCookieEnabled = navigator.cookieEnabled;

  brVersion = navigator.appVersion;
  // Test wg. Float-Ergebnissen in Beta-Versionen:
  // brVersion = "4.03b1 (compatible; MSIE 4.02b2; Windows 95)";
  var brVersArr = brVersion.split(" ");
  brVersText = brVersArr[0]; // ggf. mit Beta-Zusatz!
  if (brType == "ie") { 
    brVersText = brVersArr[3];
  }
  brVers = parseFloat(brVersText); // Beta-Zusatz wird abgeschnitten
  var brVersNrArr = brVersText.split(".");
  brVersMajor = parseInt(brVersNrArr[0]);
  brVersMinor = parseInt(brVersNrArr[1]);
}


function browserInfo() {
  return "" +
  "userAgent: "     + brId +
  "\nappName: "     + brName +
  "\nappCodeName: " + navigator.appCodeName +
  "\nappVersion: "  + brVersion +
  "\nplatform: "    + brPlatform +
  "\nlanguage: "    + brLanguage +
  "\ncookieEnabled: " + navigator.cookieEnabled +
  //"\nbrVersArr: "   + brVersArr + 
  "\nbrType: "      + brType + 
  "\nbrVersText: "  + brVersText + 
  "\nbrVers: "      + brVers + 
  "\nbrVersMajor: " + brVersMajor + 
  "\nbrVersMinor: " + brVersMinor;
}

function writeBrowserInfo() {
  document.write(browserInfo().replace(/\n/g, "<br>") + "<br>");
}


function getInnerWidth() {
  if (window.innerWidth) return window.innerWidth;
  else if (document.body && document.body.clientWidth) return document.body.clientWidth;
  else return 0;
}

function getInnerHeight() {
  if (window.innerHeight) return window.innerHeight;
  else if (document.body && document.body.clientHeight) return document.body.clientHeight;
  else return 0;
}


DEFAULT_WIN_PARAMS = "resizable=yes,dependent=no,scrollbars=yes,location=no,status=no,menubar=no,toolbar=no,directories=no";

function openWinPar(URL, Name, x, y, w, h, viewParams) {  
  var params = DEFAULT_WIN_PARAMS;
  if (viewParams != "") params = viewParams;
  params = params + ",screenX="+x+",left="+x+",screenY="+y+",top="+y+",width="+w+",height="+h;
  var win = window.open(URL, Name, params);
  win.focus();
  return win;
}

function openWin(URL, Name, x, y, w, h) {  
  return openWinPar(URL, Name, x, y, w, h, "");
}

function openWinCentered(URL, Name, w, h, viewParams) {  
  var y = (screen.height - h)/2 - 25;
  if (y < 0) y = 0;
  return openWinPar(URL, Name, (screen.width - w)/2, y, w, h, viewParams);
}


function infoWinContent(titel, data, x,y,w,h) {  
    param = DEFAULT_WIN_PARAMS + ",screenX="+x+",left="+x+",screenY="+y+",top="+y+",width="+w+",height="+h;
    _infoWin = window.open("about:blank", "Info", param);
    with (_infoWin.document) {
      open();
      write(
        "<html><head><title>" + titel + "</title>\n"+
        "<link rel=\"stylesheet\" type=\"text/css\" href=\"/common/global.css\">\n" +
        "<link rel=\"stylesheet\" type=\"text/css\" href=\"/site/site.css\">\n" +
        "</head>\n" +
        "<body scroll=\"auto\">\n" +
        data +"\n" +
        "<br>\n" +
        "<p align=\"center\"><a href=\"javascript:close();\">schlie&szlig;en</a></p>\n" +
        "</body></html>"
      );
      close();
    }
    _infoWin.focus();
}


function infoWin(titel, url, x,y,w,h) {  
    // TO DO: FRAMESET erzeugen mit titel im parent und close-Button im unteren Frame
    param = DEFAULT_WIN_PARAMS + ",screenX="+x+",left="+x+",screenY="+y+",top="+y+",width="+w+",height="+h;
    // Problem: Position und Größe wird nicht gesetzt wenn Window schon offen war
    // und resizeTo setzt die Außenmaße statt die Innenmaße
    _infoWin = window.open("", "Info"); // handle holen
    _infoWin.close()
    _infoWin = window.open(url, "Info", param);
    //_infoWin.moveTo(x, y);
    //_infoWin.resizeTo(w, h);
    _infoWin.focus();
}


function checkEMail(field, message) {
  //pattern = /^[a-zA-Z0-9\-\._]+@\w+[\w-]*\.[\w-\.]*\w+$/;
  pattern = /^[a-zA-Z0-9\-\._]+@[\w-\.]*[a-zA-Z0-9]+[a-zA-Z0-9]\.[\w-\.]+\w+$/;
  if (!pattern.test(field.value)) {
    alert(message);
    field.focus();
    return false;
  }
  else {
    return true;
  }
}


function changeSelection(obj) {
  var i, objClassName;
  objClassName = obj.className;
  i = objClassName.indexOf("-highlight");
  if (i>0) {
    objClassName = objClassName.substring(0,i);
  }
  if (objClassName) {
    i = objClassName.lastIndexOf("-selected");
    if (i>0) {
      obj.className = objClassName.substring(0,i);
    } else {
      obj.className = objClassName+"-selected";
    }
  }
}


function changeHighlight(obj, where) {
  var i, objClassName;
  objClassName = obj.className;
  if (where == "over") {
    obj.className += "-highlight";
  } else {
    i = objClassName.lastIndexOf("-highlight");
    if (i>0) {
      obj.className = objClassName.substring(0,i);
    }
  }
}


function write_cookie(cookie_name, cookie_wert, gueltigkeit_msec) {
  if (gueltigkeit_msec) {
    var ablauf_datum  = new Date()
    ablauf_datum.setTime(ablauf_datum.getTime() + gueltigkeit_msec)
    document.cookie = cookie_name + "=" + escape(cookie_wert)
      + "; " + "expires=" + ablauf_datum.toGMTString()
  }
  else
    document.cookie = cookie_name + "=" + escape(cookie_wert)
}

function read_cookie(cookie_name) {
  if (document.cookie) {
    var cookie_string = document.cookie;
    var cookies = cookie_string.split(";");
    var cookie_teile;
    var i;
    for(i = 0; i < cookies.length; i++) {
      cookie_teile = cookies[i].split("=")
      if(cookie_teile[0].substring(0, 1) == " ")
        cookie_teile[0] = cookie_teile[0].substring(1, cookie_teile[0].length)
      if(cookie_teile[0] == cookie_name)
        return unescape(cookie_teile[1])
    }
  }
  return ""
}


function addBookmark() {
  if (document.all) {
    window.external.AddFavorite(location.href, document.title);
  } else {
    alert("Bitte bei Netscape/Mozilla Strg + D drücken"); 
  }
} 


function getDate() {
  var dat = new Date();
  var day = dat.getDate();
  if (day < 10) day = "0" + day;
  var mon = dat.getMonth() + 1;
  if (mon < 10) mon = "0" + mon;
  var year = dat.getFullYear() - 2000;
  if (year < 10) year = "0" + year;
  return day+"."+mon+"."+year;
}


function getTime() {
  var dat = new Date();
  var hour = dat.getHours();
  if (hour < 10) hour = "0" + hour;
  var min = dat.getMinutes();
  if (min < 10) min = "0" + min;
  var sek = dat.getSeconds();
  if (sek < 10) sek = "0" + sek;
  return hour+":"+min+":"+sek;
}


function getWeekday() {
  var weekDays = "SoMoDiMiDoFrSa";
  var dat = new Date();
  return weekDays.substr(dat.getDay()*2, 2);
}


function getFullTime() {
  return  getWeekday() + ", " + getDate() + "  " + getTime();
}


function timeTitle(title) {
  document.title = title + "        [ " + getFullTime() + " ]";
  // Strings (Abstand) am Ende stellen IE und Opera diesen String/Abstand nicht dar
  setTimeout("timeTitle('" + title + "')", 900);
}


function deb(string) {
  if (debug) {
    document.writeln(string + "<br>");
  }
}



detectBrowser();
window.defaultStatus=''; // 'Grampp IT Services & Consulting';
