/*

version			: 0.2

functions.js	: contains general functions, which are needed project indepentent (for all dhtml projets). 
				: @since	06/2001
				: @author	alexanderhoth.com
				: @lastedit	
				
*/

// BrowserCheck Object
// provides most commonly needed browser checking variables
// 19990326

// Copyright (C) 1999 Dan Steinman
// Distributed under the terms of the GNU Library General Public License
// Available at http://www.dansteinman.com/dynapi/

function BrowserCheck() {
	var b = navigator.appName
	if (b=="Netscape") this.b = "ns"
	else if (b=="Microsoft Internet Explorer") this.b = "ie"
	else this.b = b
	this.v = parseInt(navigator.appVersion)
	this.ns = (this.b=="ns" && this.v>=4)
	this.ns4 = (this.b=="ns" && this.v==4)
	this.ns6 = (this.b=="ns" && this.v==5)
	this.ie = (this.b=="ie" && this.v>=4)
	this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0)
	this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0)
	this.ie6 = (navigator.userAgent.indexOf('MSIE 6')>0)
	if (this.ie5) this.v = 5
	this.min = (this.ns||this.ie)
}

// LOCAL PROPERTIES

// automatically create the "is" object
is = new BrowserCheck();
///////////////////////////////////////////////////////////////////////////////////////////////////////
function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////
// GLOBAL FUNCTIONS
// Image Preloading
function preload(imgObj,imgSrc) {
	if (document.images){
	 	eval(imgObj + ' = new Image()');
	  	eval(imgObj + '.src = "' + imgSrc + '"');
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Image Swapping
function changeImage(imgName, imgObj) {
		document.images[imgName].src = eval(imgObj+".src");
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function showLayer (strLayer) {
	if (is.ie) {
		document.all[strLayer].style.visibility = "visible";
		
	} else if (is.ns4){
		document.layers[strLayer].visibility = "show";
	} else if (is.ns6){
		document.getElementById(strLayer).style.visibility = "visible";
	}

}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function hideLayer (strLayer) {
	if (is.ie) {
		document.all[strLayer].style.visibility = "hidden";
		
	} else if (is.ns4){
		document.layers[strLayer].visibility = "hide";
	} else if (is.ns6){
		document.getElementById(strLayer).style.visibility = "hidden";
	}

}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function toggleLayer (strLayer) {
	if (!strLayer) return false;
	
	if (is.ie) {
		var mode = document.all[strLayer].style.visibility
		if (mode == "visible") hideLayer(strLayer);
		else showLayer(strLayer);
	}
	else if (is.ns4) {
		var mode = document.layers[strLayer].visibility
		if (mode == "show") hideLayer(strLayer);
		else showLayer(strLayer);		
	}
	else if (is.ns6) {
		var mode = document.getElementById(strLayer).style.visibility;
		if (mode == "visible") hideLayer(strLayer);
		else showLayer(strLayer);
	}
	
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function ScreenCenter(){
	var ScreenWidth = 0;
	switch (is.b) {
		case "ie" : 
				ScreenWidth = document.body.clientWidth;
  				break;
		case "ns" : 
				ScreenWidth = window.innerWidth;
				break;
		default : 
				ScreenWidth = "Falscher Browser";
				break;
	}
	return ScreenWidth / 2;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function writeToLayer(lay,data) {
  txt=data.replace(/\n/g,'<br>');
  if (is.ie) {
    document.all[lay].innerHTML = txt;
	
  } else if (is.ns4) {//
	//ret='<table width="420" height="25" cellspacing="2" cellpadding="2" border="0"><tr><td>'+txt+'</td></tr></table>';
	document.layers[lay].document.open();
	document.layers[lay].document.writeln(txt);
    document.layers[lay].document.close();
	
  } else if (is.ns6) {
    over = document.getElementById([lay]);
    range = document.createRange();
    range.setStartBefore(over);
    domfrag = range.createContextualFragment(txt);
    while (over.hasChildNodes()) {
      over.removeChild(over.lastChild);
    }
    over.appendChild(domfrag);
  }
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function setLayer(LayerId,LayerLeft,LayerTop){
	if(is.ie){document.all[LayerId].style.left=LayerLeft;
			  document.all[LayerId].style.top=LayerTop;
			 }
	if(is.ns4){document.layers[LayerId].left=LayerLeft;
			   document.layers[LayerId].top=LayerTop;
			  }
	if(is.ns6){document.getElementById(LayerId).style.left=LayerLeft;
			   document.getElementById(LayerId).style.top=LayerTop;
			  }
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
function getDivInfo(dId){
	divId=dId;
						//(top,left,width,height)
	var divData=new Array(false,false,false,false)
	if(is.ie){
		var el = document.all[divId];
		var x = y = 0;
		do {
		 x += el.offsetLeft;
		 y += el.offsetTop;
		}
		while ((el = el.offsetParent));
		divData[0]=y;
		divData[1]=x;
		divData[2]=document.all[divId].offsetWidth;
		divData[3]=document.all[divId].offsetHeight;
	}
	if(is.ns4){
		eval("divData[0]=document.layers['"+divId+"'].pageY");
		eval("divData[1]=document.layers['"+divId+"'].pageX");
		eval("divData[2]=document.layers['"+divId+"'].clip.width");
		eval("divData[3]=document.layers['"+divId+"'].clip.height");
	}
	if(is.ns6){
		divData[0]=document.getElementById(divId).offsetTop;
		divData[1]=document.getElementById(divId).offsetLeft;
		divData[2]=document.getElementById(divId).offsetWidth;
		divData[3]=document.getElementById(divId).offsetHeight;
	}
	return divData;
}