///////////////////////////////////////////////////////////////////////////////
//  functies om allerlei ongein uit te halen met layers                      //
//                                                                           //
//  let op: voor geneste layers in NS4 zal je de functies moeten aanpassen   //
//  door bijvoorbeeld een extra parameter mee te geven met daarin de         //
//  verwijzing naar de bovenliggende layers                                  //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

// browser detectie object
function browserDetect() {
	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.ns5 = (this.b == "ns" && this.v == 5);
	this.ns6 = this.ns5;
	this.ie = (this.b == "ie" && this.v >= 4);
	this.ie4 = (navigator.userAgent.indexOf("MSIE 4") > 0);
	this.ie5 = (navigator.userAgent.indexOf("MSIE 5") > 0);
	if (this.ie5) this.v = 5;
}
var is = new browserDetect();

// layer zichtbaar maken
function showLayer(oDiv) {
	if (is.ie || is.ns5) oDiv.style.visibility = "visible";
	else if (is.ns4) oDiv.visibility = "show";
}

// layer verbergen
function hideLayer(oDiv) {
	if (is.ie || is.ns5) oDiv.style.visibility = "hidden";
	else if (is.ns4) oDiv.visibility = "hide";
}

// switchen tussen zichtbaarheid van een layer
function toggleLayer(oDiv) {
	if (isVisible(oDiv)) hideLayer(oDiv);
	else showLayer(oDiv);
}

// zichtbaarbaarheid van de layer teruggeven
function isVisible(oDiv) {
	if (is.ie || is.ns5)
		return (oDiv.style.visibility == "visible");
	else if (is.ns4)
		return (oDiv.visibility == "show");
}

// schrijven in een layer
function writeLayer(oDiv, sText) {
	if (is.ie || is.ns5) {
		oDiv.innerHTML = sText;
	}
	else if (is.ns4) {
		var oDoc = oDiv.document;
		oDoc.open();
		oDoc.write(sText);
		oDoc.close();
	}
}

// verplaatsen van layer naar x,y
function moveLayerTo(oDiv, x, y) {
	if (is.ie) {
		oDiv.style.pixelTop = y;
		oDiv.style.pixelLeft = x;
	} else if (is.ns4) {
		oDiv.top = y;
		oDiv.left = x;
	} else if (is.ns5) {
		oDiv.style.top = y + "px";
		oDiv.style.left = x + "px";
	}
}

// verplaatsen van layer met offsetX, offsetY
function moveLayerBy(oDiv, offsetX, offsetY) {
	if (is.ie) {
		oDiv.style.pixelTop = oDiv.style.pixelTop + offsetY;
		oDiv.style.pixelLeft = oDiv.style.pixelLeft + offsetX;
	} else if (is.ns4) {
		oDiv.top = oDiv.top + offsetY;
		oDiv.left = oDiv.left + offsetX;
	} else if (is.ns5) {
		oDiv.style.top = (getLayerY(oDiv) + offsetY) + "px";
		oDiv.style.left = (getLayerX(oDiv) + offsetX) + "px";
	}
}

function getLayerX(oDiv) {
	if (is.ie) return (parseInt(oDiv.style.pixelLeft));
	else if (is.ns4) return (parseInt(oDiv.left));
	else if (is.ns5) return (parseInt(oDiv.style.left));
}

function getLayerY(oDiv) {
	if (is.ie) return (parseInt(oDiv.style.pixelTop));
	else if (is.ns4) return (parseInt(oDiv.top));
	else if (is.ns5) return (parseInt(oDiv.style.top));
}

// z-index wijzigen
function changeZIndex(oDiv, z) {
	if (is.ie || is.ns5) oDiv.style.zIndex = z;
	else if (is.ns4) oDiv.zIndex = z;
}

// clip layer
function clipLayer(oDiv, top, right, bottom, left) {
	if (is.ie || is.ns5) {
		oDiv.style.clip = "rect(" + top + "px " + right + "px " + bottom + "px " + left + "px)";
	} else if (is.ns4) {
		oDiv.clip.top = top;
		oDiv.clip.right = right;
		oDiv.clip.bottom = bottom;
		oDiv.clip.left = left;
	}
}

// backgroundcolor layer wijzigen
function changeLayerBgColor(oDiv, sColor) {
	if (is.ie || is.ns5) oDiv.style.backgroundColor = sColor;
	else if (is.ns4) oDiv.bgColor = sColor;
}

// grootte van layer wijzigen
function changeLayerSize(oDiv, w, h) {
	if (is.ie) {
		oDiv.style.pixelWidth = w;
		oDiv.style.pixelHeight = h;
	} else if (is.ns4) {
		oDiv.clip.width = w;
		oDiv.clip.height = h;
	} else if (is.ns5) {
		oDiv.style.width = w + "px";
		oDiv.style.height = h + "px";
	}
}

function getObj(n, d) {
	var p,i,x;
	if (!d)
		d = document;
	if ((p=n.indexOf("?"))>0 && parent.frames.length) {
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring(0,p);
	}
	x = d[n];
	if (is.ie && !x)
		x = d.all[n];
	for(i=0; !x && i<d.forms.length; i++)
		x = d.forms[i][n];
	if(is.ns5 && !x)
		x=d.getElementById(n);
	for (i=0; !x && i<d.forms.length; i++)
		x = d.forms[i][n];
	for (i=0; !x && is.ns4 && i<d.layers.length; i++)
		x=getObj(n,d.layers[i].document);
	return (x);
}

///////////////////////////////////////////////////////////////////////////////


