/* Javascript für kaduro
 * config variables
 */
var domain = "kaduro";
var client_id = 1;

function allLoad(){
 frameBuster();
 userData();
 show();
 onResize();
 setZoomIndex(factor);
 controllHrefTarget();
}

function allUnload() {
 allHide();
}/* Javascript für kaduro
 * Erstellt und zusammengestellt
 * von Dominique Steppeler
 */


/* Nutzerdaten abfragen
 * bs = BildSchirm
 * br = Browser
 */
var explorer = 0;
var netscape = 0;
var opera = 0;
var bs_breite = screen.width;
var bs_hoehe = screen.height;
var bs_maxBreite = screen.availWidth;
var bs_maxHoehe = screen.availHeight;
var bs_farbtiefe = screen.colorDepth;
var bs_pixeltiefe = screen.pixelDepth;
var br_spitzname = navigator.appCodeName;
var br_name = navigator.appName;
var br_version = navigator.appVersion;
var br_cookies = navigator.cookieEnabled;
var br_platform = navigator.platform;
var br_identifikation = navigator.userAgent.toLowerCase();
var br_sprache;
var br_anzeigeHoehe;
var br_anzeigeBreite;
var br_fensterHoehe;
var br_fensterBreite;

/* Browser- und Sprachspezifische Daten ermitteln  */

function getLocationHref() // gibt die komplette URL zurück
{
 return window.location.href;
}

function getSiteName() // gibt den Seitennamen zurück
{
 return getLocationHref().substring((getLocationHref().lastIndexOf("/") + 1),(getLocationHref().indexOf(".html")+ 5));
}

function getLanguage() // gibt die Sprache des Browsers zurück
{
 if (navigator.language) {
  br_sprache = navigator.language.toLowerCase();
  netscape++;
 }
 else {
  br_sprache = navigator.userLanguage.toLowerCase();
  explorer++;
 }
 return br_sprache;
}

function getMonthName() // gibt die Monatsnamen der jeweiligen Sprache zurück
{
 var monatsname;
 if (getLanguage().indexOf("de") != -1)
 {
  monatsname = new Array("Januar","Februar","März","April",
  			"Mai","Juni","Juli","August","September",
                         "Oktober","November","Dezember");
 }
 else if (getLanguage().indexOf("fr") != -1)
 {
  monatsname = new Array("Janvier","F&eacute;vrier","Mars",
  			"Avril","Mai","Juin","Juillet",
                         "Ao&ucirc;t","Septembre","Oktobre",
                         "Novembre","Dezembre");
 }
 else
 {
  monatsname = new Array("January","February","March","April","May",
  			"June","July","August","September","October",
                         "November","December");
 }
 return monatsname;
}

function getDayName()  // gibt die Namen der Wochentage der jew. Sprache zurück
{
 var wochentag;
 if (getLanguage().indexOf("de") != -1)
 {
  wochentag = new Array("Sonntag","Montag","Dienstag","Mittwoch",
  		       "Donnerstag","Freitag","Samstag");
 }
 else if (getLanguage().indexOf("fr") != -1)
 {
  wochentag = new Array("Dimanche","Lundi","Mardi","Mercredi",
  		       "Jeudi","Vendredi","Samedi");
 }
 else
 {
  wochentag = new Array("Sunday","Monday","Tuesday","Wednesday",
  		       "Thursday","Friday","Saturday");
 }
 return wochentag;
}

function userData()
{
 var isGecko = ((br_identifikation.indexOf("gecko")!=-1) && (br_identifikation.indexOf("spoofer")==-1)
                && (br_identifikation.indexOf("khtml") == -1) && (br_identifikation.indexOf("netscape/7.0")==-1));
 var isSafari = ((br_identifikation.indexOf("applewebkit")!=-1) && (br_identifikation.indexOf("spoofer")==-1));
 var isKhtml = (navigator.vendor == "KDE" || ( document.childNodes && !document.all && !navigator.taintEnabled ));

 if (window.innerHeight)
 {
  br_anzeigeHoehe = window.innerHeight;
  br_anzeigeBreite = window.innerWidth;
  br_fensterHoehe = window.outerHeight;
  br_fensterBreite = window.outerWidth;
  netscape++;
 }
 else
 {
  br_anzeigeHoehe = document.getElementsByTagName("html")[0].offsetHeight;
  br_anzeigeBreite = document.getElementsByTagName("html")[0].offsetWidth;
  br_fensterHoehe = bs_maxHoehe - (bs_maxHoehe * (10/100));
  br_fensterBreite = bs_maxBreite - (bs_maxBreite * (2/100));
  explorer++;
 }
 if(br_identifikation.indexOf("opera") != -1)
 {
  opera++;
 }
}

function styleSheet(ordner)
{
 var fileName;
 if (!ordner)
  var ordner = "";

 if (br_identifikation.indexOf("opera") != -1)
 {
  var version = getOperaVersion();
  if (version < 7)
  {
    fileName = "opera6";
  }
  else if (version < 8) 
  {
   fileName = "opera7"   
  }
  else
  {
   fileName = "opera8" 
  }
  document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + ordner+ "css/" + fileName + ".css\">");
  opera++;
 }
}

function getOperaVersion()
{
    return parseInt(br_identifikation.substring(br_identifikation.indexOf("opera") + 6, br_identifikation.indexOf("opera") + 7),10);
}


function isOnline() // kontrolliert ob Online oder Offline gearbeitet wird
{
 if (getLocationHref().indexOf("http://") != -1)
  return true;
 else
  return false;
}

function frameBuster()  // Frameset sprengen!
{
 if( window.top != window )
  window.top.location = window.location;
}

function w3cLink()
{
 if (isOnline() == true)
  document.getElementById("W3C").style.display = "block";
 else
  document.getElementById("W3C").style.display = "none";
}

/* Die Seite erneut laden */
function reload()
{
 if (opera < 0)
  window.history.go(0);
 else
  window.location.href = window.location.href;
}

/* Hier wird überprüft ob die Größe des Fensters verändert wurde. */
function onResize()
{
 if (explorer < netscape)
 {
  if (br_anzeigeHoehe != window.innerHeight || br_anzeigeBreite != window.innerWidth)
   reload();
 }
 else
 {
  if ((br_anzeigeHoehe != document.getElementsByTagName("html")[0].offsetHeight)
      || (br_anzeigeBreite != document.getElementsByTagName("html")[0].offsetWidth))
   reload();
 }
 userData();
 setTimeout("onResize()", 125);
}


/* Grundfunktionalitäten */
function schliessen()
{
 window.close();
}

function histBack()
{
 window.history.go(-1);
}

function histNext()
{
 window.history.go(+1);
}

function seiteDrucken() 
{
 window.print();
}


/* Email-Link aufrufen
 * Diese Funktion hat den Zweck die Email-Adresse vor sogenannten Robots,
 * welche Internetseiten nach Mail-Adressen durchsuchen, zu verstecken,
 * indem man auf der Seite Selbst keinen auslesbaren Textlink, sondern eine
 * Javascript-Funktion bereitstellt, die den Link client-seitig generiert.
 */
function outputMailToLink(account,text,klasse,id)
{
 var mailto = "mailto:";
 var eDomain = domain + ".de";
 var at = "&#0064;";
 
 if (!account)
  account = "info";

 document.write("<a href=\"" + mailto + account + at + eDomain + "\"");
 if(klasse)
  document.write(" class=\"" + klasse + "\"");
 if(id)
  document.write(" id=\"" + id + "\"");
 document.write(" title=\"Email an: " + account + at + eDomain + "\">");
 if (!text)
  document.write(account + at + eDomain);
 else
  document.write(text);
 document.write("</a>");
}

function mail(account,text,klasse,id)
{
    //deprecated DON`T USE THIS FUNCTION
    outputMailToLink(account,text,klasse,id)
}

function outputKaduroMailToLink(account,text,klasse,id) 
{
	thisdomain = domain;
	domain = "kaduro";
	outputMailToLink(account,text,klasse,id);
	domain = thisdomain;
}

/* Datum der Seiten automatisch beziehen */
function datum()
{
 var datum = new Date(document.lastModified);
 var tagname = datum.getDay();
 var tagzahl = datum.getDate();
 var monat = datum.getMonth();
 var jahr = datum.getFullYear();


 if (getLanguage().indexOf("de") != -1)
 {
  var aenderung = getDayName()[tagname] + ", den " + tagzahl + ". " + getMonthName()[monat] + " " + jahr;
  var ausgabe = "Zuletzt ge&auml;ndert am " + aenderung;
 }
 else if (getLanguage().indexOf("fr") != -1)
 {
  var aenderung = getDayName()[tagname] + ", le " + tagzahl + ". " + getMonthName()[monat] + " " + jahr;
  var ausgabe = "Dernier changement: " + aenderung;
 }
 else
 {
  var zusatz;

  if(tagzahl == 1 || tagzahl == 21 || tagzahl == 31)
   zusatz = "st";
  else if (tagzahl == 2 || tagzahl == 22)
   zusatz = "nd";
  else
   zusatz ="th";

  var aenderung = getDayName()[tagname] + ", " + tagzahl + zusatz + " of " + getMonthName()[monat] + " " + jahr;
  var ausgabe = "Last Modified on " + aenderung;
 }
 document.write(ausgabe);
}

function checkHTMLValidity()
{
 checkURI = "http://validator.w3.org/check?verbose=1&uri=" + getLocationHref();
 openNewWindow(checkURI,"extern");
}

/* Hier werden alle Hyperlinks auf Ihr Ziel hin untersucht.
 * Gegebenenfalls wird das href-Attribut ersetzt durch eine JS-Funktion
 * um externe Links in einem neuen Fenster zu öffnen.
 * boolean cssModul speichert ob der StylePilot zum Einsatz kommt. 
 */
 
function controllHrefTarget(cssModul) // public
{
 if (!cssModul)
  var cssModul = false;
 var hyperLink = document.getElementsByTagName("a");
 var linkHref;
 var actualHref = window.location.href;
 for (var i = 0;  i < hyperLink.length; i++)
 {
  linkHref = hyperLink[i].getAttribute("href");
  if (isOnline() && startsWithHTTP(linkHref) && !haveSameDomain(actualHref,linkHref))
  {
   hyperLink[i].setAttribute("href","javascript: openNewWindow(\"" + linkHref + "\",\"extern\")");
   hyperLink[i].setAttribute("title","Dieser Link verweist auf eine externe Seite und wird in einem neuen Fenster geöffnet");
  }
  else if (!isOnline() && startsWithHTTP(linkHref))
  {
   hyperLink[i].setAttribute("href","javascript: openNewWindow(\"" + linkHref + "\",\"extern\")");
   hyperLink[i].setAttribute("title","Dieser Link verweist auf eine externe Seite und wird in einem neuen Fenster geöffnet");
  }
  else if (cssModul && (linkHref.indexOf("mailto:") == -1
  	  && linkHref.indexOf("javascript:") == -1
	  && getActualCSS() != "default"))
  {
   hyperLink[i].setAttribute("href",linkHref + "?" + getActualCSS());
  }
 }
}

function targetController()   // public, DEPRECATED!
{
 controllHrefTarget();
}

function startsWithHTTP(linkHref) {
 return (linkHref.indexOf("http://") != -1);
}

function openNewWindow(location,windowName,windowParameters)
{
 if(!windowName)
  windowName = "neu";
 if(!windowParameters)
  windowParameters = "";
 zFenster = window.open(location,windowName,windowParameters);
 zFenster.opener = self;
 zFenster.focus();
}

function haveSameDomain(href1,href2)
{ 
 return (getDomain(href1) == getDomain(href2));  
}


function getDomain(href)
{
 var teilstueck = href.split("/"); 
 return teilstueck[2]; 
 /* Bsp. http://www.kaduro.de/imah/index.html
  * 0 = http:
  * 1 = [nichts]
  * 2 = www.kaduro.de
  * 3 = imah
  * 4 = index.html  
  */ 
}



/* Element ausblenden:
 * Der Inhalt der Containers "inhalt" (Text)
 * wird zu Beginn ausgeblendet */
var tag = new Array("p","td","ul","ol","img","h1","h2","h3","h4","h5");
function allHide() {
 var aktTag;
 for (var i = 0; i < tag.length; i++) {
  aktTag = tag[i];
  for(j = 0; j < document.getElementsByTagName(aktTag).length; j++) {
   if (aktTag == "h1" && j == 0) {
    j = 1;
   }
   else if (aktTag == "h2" && j == 0) {
    j = 1;
   }
   else if (aktTag == "img") {
    if (document.getElementsByTagName(aktTag).length == 6)
     break;
    else if (j == 0)
     j = 1;
    else if (j > (document.getElementsByTagName(aktTag).length - 6))
     break;
   }
   if (document.getElementsByTagName(aktTag)[j])
    document.getElementsByTagName(aktTag)[j].style.visibility = "hidden";
   else
    break;
  }
 }
}

/* Element einblenden:
 * Der Inhalt der Containers "inhalt" (Text)
 * wird nach einer halben Sekunde eingeblendet */
function show() {
 var datum = document.getElementById("datum");
 var hinweis = document.getElementById("hinweis");

 if (datum) {
  datum.style.visibility = "visible";
  hinweis.style.visibility = "visible";
  datum.style.display = "block";
  hinweis.style.display = "block";
 }
}
function hinweis(alert) {
 var n = 0;
 var k = 0;
 var y = 0;
 var keyboard = "Alt + ";

 var key = new Array();
 key[k++] = "s";
 key[k++] = "1";
 key[k++] = "2";
 key[k++] = "3";
 key[k++] = "m";
 key[k++] = "b";
 key[k++] = "f";
 key[k++] = "u";
 key[k++] = "a";
 key[k++] = "l";
 key[k++] = "d";
 key[k++] = "r";
 key[k++] = "k";
 key[k++] = "h";

 var hintxt = new Array();
 hintxt[n++] = "";
 hintxt[n++] = "Zurück zur Startseite [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Diese Seite auf Deutsch [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Diese Seite auf Französisch [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Diese Seite auf Englisch [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Schreiben Sie uns eine Email [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Lesen Sie unsere AGBs [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Häufige Fragen und Antworten [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Behalten Sie den Überblick [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Aktuelles bei kaduro [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Beachten Sie unser Leistungen [" + keyboard + key[y++] + " ]";
 hintxt[n++] = "Holen Sie sich die kostenlosen Downloads [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Durchforsten Sie unsere Refrenzen [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Kontaktieren Sie uns [" + keyboard + key[y++] + "]";
 hintxt[n++] = "Besuchen Sie diese Links [" + keyboard + key[y++] + "]";

 if (document.getElementById("hinweistext")) {
  var element = document.getElementById("hinweistext").firstChild;
  element.data = hintxt[alert];
 }
 window.defaultStatus = hintxt[alert];
 window.status = hintxt[alert];
}
//
// phpOpenTracker - The Website Traffic and Visitor Analysis Solution
//
// Copyright 2000 - 2004 Sebastian Bergmann. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// $Id: standard.js,v 1.5 2005/02/17 10:12:17 u36883369 Exp $
//

// Taken from http://www.jan-winkler.de/hw/artikel/art_j02.htm

function base64_encode(decStr)
{
  var base64s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  var bits;
  var dual;
  var i = 0;
  var encOut = '';

  while(decStr.length >= i + 3)
  {
    bits = (decStr.charCodeAt(i++) & 0xff) <<16 |
           (decStr.charCodeAt(i++) & 0xff) <<8 |
            decStr.charCodeAt(i++) & 0xff;

    encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
              base64s.charAt((bits & 0x0003f000) >>12) +
              base64s.charAt((bits & 0x00000fc0) >> 6) +
              base64s.charAt((bits & 0x0000003f));
  }

  if(decStr.length -i > 0 && decStr.length -i < 3)
  {
    dual = Boolean(decStr.length -i -1);

    bits = ((decStr.charCodeAt(i++) & 0xff) <<16) |
           (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);

    encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
              base64s.charAt((bits & 0x0003f000) >>12) +
              (dual ? base64s.charAt((bits & 0x00000fc0) >>6) : '=') +
              '=';
  }

  return(encOut);
}

function webbug(clientID)
{
 var resolution = window.screen.width + 'x' +
                 window.screen.height + 'x' +
                 window.screen.colorDepth + 'bit';
 
 if (!clientID) 
  clientID = client_id;
 if (isOnline())
 {
  document.write(
   '<img src="http://www.kaduro.de/image.php?' +
   'client_id='              + clientID + '&' +
   'document_url='           + base64_encode(document.URL) + '&' +
   'referer='                + base64_encode(document.referrer) + '&' +
   'add_data[]=resolution::' + resolution +
   '" alt="" width="1" height="1" />'
  );
 }
}var fontSize;
var normalFontSize = -1;
var actualFontSize;
var tagName = "div";
var factor = 100;
var minZoom = 50;
var maxZoom = 1000;
var zoomSteps = 10;

function sizeBigger() {
 if(factor < maxZoom) {
  factor = factor + zoomSteps;
  zoom(factor);
 }
}

function sizeSmaler() {
 if(factor > minZoom) {
  factor = factor - zoomSteps;
  zoom(factor);
 }
}

function zoom(factor) {
 getNormalFontSize();
 actualFontSize = normalFontSize * (factor/100);
 setFontSize(factor);
}

function sizeNormal() {
 factor = 100;
 zoom(factor);
}

function getNormalFontSize() {
 if (document.getElementById && normalFontSize == -1) {
  normalFontSize = 16;
  actualFontSize = normalFontSize;
 }
}

function setFontSize(zFactor) {
 var zuschlag = document.getElementsByTagName(tagName).length - 20;
 for(var i = 2; i < document.getElementsByTagName(tagName).length; i++) {
  if ((i!= 1) && (i != (14 + zuschlag)) && (i != (17 + zuschlag)) && (i != (19 + zuschlag)))
   document.getElementsByTagName(tagName)[i].style.fontSize = actualFontSize + "px";
 }  
 setZoomIndex(zFactor);
 setZoomText(zFactor);
}

function setZoomIndex(zFactor) {
 var index = (((zFactor-minZoom) + 10)/10) - 1;
 document.getElementById("tZoom").options[index].selected=true;
}

function setZoomText(zFactor) {
 //var zoomText = "Anzahl der <" + tagName + ">-Elemente: " + document.getElementsByTagName(tagName).length;
 var zoomText = "Die Bilder werden mitskaliert. Daher nimmt ihre optische Qualität beim zoomen ab.";
 if (zFactor != 100)
  document.getElementById("zoomText").firstChild.data = zoomText;
 else
  document.getElementById("zoomText").firstChild.data = "";
}

function textZoom() {
 document.writeln("<span>Zoom</span> ");
 document.writeln("<select id=\"tZoom\" onChange=\"zoom(this.options[this.selectedIndex].value);\">");
  for(var i = minZoom; i <= maxZoom; i = i + zoomSteps) {
   if (i == factor)
    document.writeln("<option value=\"" + i + "\" selected>");
   else
    document.writeln("<option value=\"" + i + "\">");

    document.writeln(i);
   document.writeln("</option>");
  }
 document.writeln("</select>");
 /*document.write("<a class=\"button\" href=\"javascript: sizeSmaler()\" title=\"verkleinern\">&minus;</a>");
 document.write("<a class=\"button\" href=\"javascript: sizeNormal()\" title=\"normale Größe\">100%</a>");
 document.write("<a class=\"button\" href=\"javascript: sizeBigger()\" title=\"vergrößern\">+</a>");*/
}

