/////////////////////////////////////////////////////////////////////////////////
// TOOLS.JS                                                                    //
// ----------------------------------------------------------------------------//
// Diverse Hilfsscripte, die man immer mal benötigt.                           //
/////////////////////////////////////////////////////////////////////////////////
<!--


/*-----------------------------------------------------------------------------*/
/* BilderVorladen                                                              */
/*-----------------------------------------------------------------------------*/
function BilderVorladen() {
  document.Vorladen = new Array();
  if (document.images) {
    for (var i = 0; i < BilderVorladen.arguments.length; i++) {
      document.Vorladen[i]     = new Image();
      document.Vorladen[i].src = BilderVorladen.arguments[i];
    }
  }
}


function replaceimgdynamicdelayed()
{
 imgdynamic = new Image();
 imgdynamic.src = "../northamerica2002/usa2002.02.13.jpg";

 /*  why is this a pseudo-endless loop? */
 z=0; while (imgdynamic.complete == false) { z++; }

 status = "complete: "+imgdynamic.complete+"\nheight: "+imgdynamic.height+"\nDelayed: "+z;
 document.images.picture.src = imgdynamic.src;
 document.images.picture.height = imgdynamic.height;
 alert(status);
}


/*-----------------------------------------------------------------------------*/
/* PopUp                                                                       */
/*-----------------------------------------------------------------------------*/
var w = 0;
var h = 0;
var img = new Image();

function OpenImage() {
  w = img.width;
  h = img.height;
}

function PopUp(file, width, height) {
	  
  if (!width && !height) {
    img.onload = OpenImage;
    img.src    = file;
	  
    w = w  + 17;
    h = h + 17;
  } else {
    w = width;
    h = height;
  }

  var left = (screen.width)  ? (screen.width-w)/2  : 0;
  var top  = (screen.height) ? (screen.height-h)/2 : 0;
	  
//  param    = "left=400, top=100,width=" + width + ", height=" + height + ", toolbar=0, resizable=0, status=0";
//  param    = "about:blank,left="+left+", top="+top+",width="+w+",height="+h+",toolbar=0,resizable=0,status=0,scrollbars=0,menubar=0,location=0";
  param    = "left="+left+",top="+top+",width="+w+",height="+h+",toolbar=0,status=0,menubar=0,location=0";
  win = window.open(file, 'neues_fenster', param);    // Der 2. Parameter (neues_fenster) darf für den IE keine Leerzeichen beinhalten !!!

/*
  win.document.documentElement.style.margin  = '0px';
  win.document.documentElement.style.padding = '0px';
  win.document.body.style.margin  = '0px';
  win.document.body.style.padding = '0px';
*/

//  win.close();
//  win = window.open(file, 'neues_fenster', param);    // Der 2. Parameter (neues_fenster) darf für den IE keine Leerzeichen beinhalten !!!
  
  win.focus();
  win.resizeTo(w, h);
//  win.moveTo(left, top);
}	



/*-----------------------------------------------------------------------------*/
/* PopUp                                                                       */
/*-----------------------------------------------------------------------------*/
function LetzteAenderung() {
  var DateTime=document.lastModified;
  var Datum, Zeit, Tag, Monat, Jahr, JJ19, JJ20, ZeitPos, MonatPos, MonatStr;

  if ((DateTime.substring(2,3)=="/")&&(DateTime.substring(10,11)!=" ")) {
    // Format MM/TT/JJ HH:MM:SS (IE 4, NS 3.0x, 4.0x)
    JJ19="19", JJ20="20";
    Monat=DateTime.substring(0,2);
    Tag=DateTime.substring(3,5);
    if (parseInt(DateTime.substring(6,8))>=90) {
      Jahr=JJ19+DateTime.substring(6,8);
    } else {
      Jahr=JJ20+DateTime.substring(6,8);
    }
    Zeit=DateTime.substring(9,17);
    Datum=Tag+"."+Monat+"."+Jahr;
  }

  if ((DateTime.substring(2,3)=="/")&&(DateTime.substring(10,11)==" ")) {
    // Format MM/TT/JJJJ HH:MM:SS (IE 5)
    Monat=DateTime.substring(0,2);
    Tag=DateTime.substring(3,5);
    Jahr=DateTime.substring(6,10);
    Zeit=DateTime.substring(11,19);
    Datum=Tag+"."+Monat+"."+Jahr;
  }

  if ((DateTime.substring(2,3)!="/")&&(DateTime.substring(10,11)!=" ")) {
    // Format Wochentag, Monat TT, JJJJ HH:MM:SS (NS 4.6)
    ZeitPos=DateTime.lastIndexOf(" ");
    MonatPos=DateTime.indexOf(" ");
    Zeit=DateTime.substring(ZeitPos+1,ZeitPos+9);
    Jahr=DateTime.substring(ZeitPos-4,ZeitPos);
    Tag=DateTime.substring(ZeitPos-8,ZeitPos-6);
    MonatStr=DateTime.substring(MonatPos+1,ZeitPos-9);
    if (MonatStr=="January")   {Monat="01";}
    if (MonatStr=="February")  {Monat="02";}
    if (MonatStr=="March")     {Monat="03";}
    if (MonatStr=="April")     {Monat="04";}
    if (MonatStr=="May")       {Monat="05";}
    if (MonatStr=="June")      {Monat="06";}
    if (MonatStr=="July")      {Monat="07";}
    if (MonatStr=="August")    {Monat="08";}
    if (MonatStr=="September") {Monat="09";}
    if (MonatStr=="October")   {Monat="10";}
    if (MonatStr=="November")  {Monat="11";}
    if (MonatStr=="December")  {Monat="12";}
    Datum=Tag+"."+Monat+"."+Jahr;
  }

  if ((navigator.appName=='Microsoft Internet Explorer') && (navigator.appVersion.substring(0,1)>=4)) {
    document.writeln("<DIV STYLE='Font-Family: Verdana, Arial, Helvetica; Font-Size: 8pt; Color: White; Text-Align: center'>Stand: ",Datum,  " - " ,Zeit," Uhr</DIV>");
  }

  if ((navigator.appName=='Netscape') && (navigator.appVersion.substring(0,1)>=3)) {
    document.writeln("<DIV ALIGN='center'><FONT FACE='Verdana, Arial, Helvetica' SIZE='-2' COLOR='White'>Stand: ",Datum," - ",Zeit," Uhr</FONT></DIV>");
  }

}





/*-------------------------------------------------------------------------------------------------*/
/* getElementsByClassName                                                                          */
/* Developed by Robert Nyman, http://www.robertnyman.com                                           */
/* Code/licensing: http://code.google.com/p/getelementsbyclassname/                                */
/*                                                                                                 */
/* Parameter: className -> One or several class names, separated by space.                         */
/*                         Multiple class names demands that each match have                       */
/*                         all of the classes specified.                                           */
/*                         [Mandatory]                                                             */
/*            tag       -> Specifies the tag name of the elements to match.                        */
/*                         [Optional]                                                              */
/*            elm       -> Reference to a DOM element to look amongst its                          */
/*                         children for matches. Recommended for better                            */
/*                         performance in larger documents.                                        */
/*                         [Optional]                                                              */
/*                                                                                                 */
/* Call examples                                                                                   */
/* To get all elements in the document with a “info-links” class.                                  */
/*   getElementsByClassName("info-links");                                                         */
/* To get all div elements within the element named “container”, with a “col” class.               */
/*   getElementsByClassName("col", "div", document.getElementById("container"));                   */
/* To get all elements within in the document with a “click-me” and a “sure-thang” class.          */
/*   getElementsByClassName("click-me sure-thang");                                                */
/*-------------------------------------------------------------------------------------------------*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};



function showDivVisibility(pass, className) {
  if (className) var divs = getElementsByClassName(className);
  else var divs = document.getElementsByTagName('div');
//  var divs = getElementsByClassName("languageDiv", "DIV");
    
  for (i=0; i<divs.length; i++) {
    if (divs[i].id.match(pass)) {
      if (document.getElementById) // DOM3 = IE5, NS6
        divs[i].style.visibility="visible";// show/hide
      else
        if (document.layers) // Netscape 4
          document.layers[divs[i]].display = 'visible';
        else // IE 4
          document.all.divs[i].visibility = 'visible';
    } else {
      if (document.getElementById) divs[i].style.visibility="hidden";
      else
        if (document.layers) // Netscape 4
          document.divs[i].visibility = 'hidden';
        else // IE 4
          document.all.divs[i].visibility = 'hidden';
    }
  }
}


function showDiv(pass, className) {
  if (className) var divs = getElementsByClassName(className);
  else var divs = document.getElementsByTagName('div');
//  var divs = getElementsByClassName("languageDiv", "DIV");
    
  for (i=0; i<divs.length; i++) {
    if (divs[i].id.match(pass)) {
      if (document.getElementById) // DOM3 = IE5, NS6
        divs[i].style.display="block";// show/hide
      else
        if (document.layers) // Netscape 4
          document.layers[divs[i]].display = 'block';
        else // IE 4
          document.all.divs[i].display = 'block';
    } else {
      if (document.getElementById) divs[i].style.display="none";
      else
        if (document.layers) // Netscape 4
          document.divs[i].display = 'none';
        else // IE 4
          document.all.divs[i].display = 'none';
    }
  }
}

//-->
