var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 && parseFloat(navigator.appVersion) >= 4) ? true : false;
var isMinIE4 = (document.all) ? true : false;
var isMinIE5=(isMinIE4 && parseFloat(navigator.appVersion)>=5) ? true : false;
var isMinIE6=(isMinIE4 && parseFloat(navigator.appVersion)>=5.5) ? true : false;
var dom = (document.getElementById) ? true : false;
var ie  = (document.all) ? true : false;
var ie4 = ie && !dom;
var ns4 = (document.layers) && !dom;
var ns6 = dom && !isMinIE4;
var ns  = ns4 || ns6;

function setClassName(obj, classname)
{
	if (obj)
		obj.className = classname;
}

function getContainer(node, tagName) 
{
	while (node != null) {
    	if (node.tagName != null && node.tagName == tagName)
			return node;
    	node = node.parentNode;
  	}
	return null;
}

function hideLayer(layer)
{
	if (ns4) layer.visibility="hide"; 
	else if (ie || dom) layer.style.visibility="hidden";
}

function showLayer(layer)
{
	if (ns4) layer.visibility="show"; 
	else if (ie || dom) layer.style.visibility="visible";
}

function inheritLayer(layer)
{
	if (ns4) layer.visibility="inherit"; 
	else if (ie || dom) layer.style.visibility="inherit";
}

function getVisibility(layer)
{
	if (ns4) {
		if (layer.visibility=="show") 
			return "visible";
		else if (layer.visibility=="hide") 
			return "hidden";
		return layer.visibility;
	}
	else if (ie || dom) 
		return layer.style.visibility; 
	return "";
}

function setLayerPos(layer,x,y)
{
	if (ns4) layer.moveTo(x,y);
	else if (ie || dom) {
		layer.style.left=x;
		layer.style.top =y;
	} 
}

function moveLayerTo(layer,x,y)
{
	setLayerPos(layer,x,y);
}

function moveLayerBy(layer,dx,dy)
{
	if (ns4) layer.moveBy(dx,dy);
	else if (ie || dom) {
		layer.style.pixelLeft += dx;
		layer.style.pixelTop  += dy;
	}
}

function setLayerLeft(layer,x)
{
	if (ns4) layer.left=x;        //pas sur ???
	else if (ie || dom) layer.style.left=x; 
}

function setLayerTop(layer,y)
{
	if (ns4) layer.top=y;        //pas sur ???
	else if (ie || dom) layer.style.top=y; 
}

function setLayerWidth(layer,w)
{
	if (ns4) layer.width=w;        // pas sur ???
	else if (ie || dom) layer.style.width=w; 
}

function setLayerHeight(layer,h)
{
	if (ns4) layer.height=h;        // pas sur ???
	else if (ie || dom) layer.style.height=h; 
}

function setLayerSize(layer,w,h)
{
	if (ns4) {
		layer.width=w;        // pas sur ???
		layer.height=h;
	}
	else if (ie || dom) {
		layer.style.width=w;
		layer.style.height=h;
	}
}

function getLayerLeft(layer)
{
	if (ns4) return layer.left;
	else if (ie || dom) return layer.style.pixelLeft; 
	return -1;
}

function getLayerTop(layer)
{
	if (ns4) return layer.top;
	else if (ie || dom) return layer.style.pixelTop; 
	return -1;
}

function getLayerRight(layer)
{
	if (ns4) return layer.left+getLayerWidth(layer);
	else if (ie || dom) return layer.style.pixelLeft+getLayerWidth(layer); 
	return -1;
}

function getLayerBottom(layer)
{
	if (ns4) return layer.top+getLayerHeight(layer);
	else if (ie || dom) return layer.style.pixelTop+getLayerHeight(layer); 
	return -1;
}

function getLayerPageLeft(layer)
{
	var x;
	if (ns4) return layer.pageX;
	else if (ie || dom) {
		x=0;
		while (layer.offsetParent!=null) {
			x += layer.offsetLeft;
			layer=layer.offsetParent;
		}
		x += layer.offsetLeft;
		return x;
	}
	return -1;
}

function getLayerPageTop(layer)
{
	var y;
	if (ns4) return layer.pageY;
	else if (ie || dom) {
		y=0;
		while (layer.offsetParent!=null) {
			y += layer.offsetTop;
			layer=layer.offsetParent;
		}
		y += layer.offsetTop;
		return y;
	}
	return -1;
}

function getLayerWidth(layer)
{
	if (ns4) {
		if (layer.document.width) return layer.document.width;
		else return layer.clip.right-layer.clip.left;
	}
	else if (ie || dom) {
		if (layer.style.pixelWidth) return layer.style.pixelWidth;
		else return layer.clientWidth;
	}
	return -1;
}

function getLayerHeight(layer)
{
	if (ns4) {
		if (layer.document.height) return layer.document.height;
		else return layer.clip.bottom-layer.clip.top;
	}
	else if (ie || dom) {
		if(layer.style.pixelHeight) return layer.style.pixelHeight;
		else return layer.clientHeight;
	}
	return -1;
}

function getzIndex(layer)
{
	if (ns4) return layer.zIndex;
	else if (ie || dom) return layer.style.zIndex;	
	return -1;
}

function setzIndex(layer,z)
{
	if (ns4) layer.zIndex=z;
	else if (ie || dom) layer.style.zIndex=z;
}


function clipLayer(layer,clipleft,cliptop,clipright,clipbottom)
{
	if (ns4) {
		layer.clip.left=clipleft;
		layer.clip.top=cliptop;
		layer.clip.right=clipright;
		layer.clip.bottom=clipbottom;
	}
	else if (ie || dom) 
		layer.style.clip='rect('+cliptop+' '+ clipright+' '+clipbottom+' '+clipleft +')';
}

function getClipLeft(layer)
{
	if (ns4) return layer.clip.left;
	else if (ie || dom) {
		var str= layer.style.clip;
		if(!str) return 0;
		var clip=getIEClipValues(layer.style.clip);
		return(clip[3]);
	}
	return -1;
}

function getClipTop(layer)
{
	if (ns4) return layer.clip.top;
	else if (ie || dom) {
		var str= layer.style.clip;
		if(!str) return 0;
		var clip=getIEClipValues(layer.style.clip);
		return clip[0];
	}
	return -1;
}

function getClipRight(layer)
{
	if (ns4) return layer.clip.right;
	else if (ie || dom) {
		var str= layer.style.clip;
		if (!str) return layer.style.pixelWidth;
		var clip=getIEClipValues(layer.style.clip);
		return clip[1];
	}
	return -1;
}

function getClipBottom(layer)
{
	if (ns4) return layer.clip.bottom;
	else if (ie || dom) {
		var str= layer.style.clip;
		if (!str) return layer.style.pixelHeight;
		var clip=getIEClipValues(layer.style.clip);
		return clip[2];
	}
	return -1;
}

function getClipWidth(layer)
{
	if (ns4) return layer.clip.width;
	else if (ie || dom) {
		var str=layer.style.clip;
		if (!str) return layer.style.pixelWidth;
		var clip=getIEClipValues(layer.style.clip);
		return clip[1]-clip[3];
	}
	return -1;
}

function getClipHeight(layer)
{
	if (ns4) return layer.clip.height;
	else if (ie || dom) {
		var str= layer.style.clip;
		if (!str) return layer.style.pixelHeight;
		var clip=getIEClipValues(layer.style.clip);
		return clip[2]-clip[0];
	}
	return -1;
}

function getIEClipValues(str)
{
	var clip=new Array();
	// Parse out the clipping values for IE layers.
	var i=str.indexOf("(");
	clip[0]=parseInt(str.substring(i+1,str.length),10);
	i=str.indexOf(" ",i+1);
	clip[1]=parseInt(str.substring(i+1,str.length),10);
	i=str.indexOf(" ",i+1);
	clip[2]=parseInt(str.substring(i+1,str.length),10);
	i=str.indexOf(" ",i+1);
	clip[3]=parseInt(str.substring(i+1,str.length),10);
	return clip;
}


function scrollLayerTo(layer,x,y,bound)
{
	var dx=getClipLeft(layer)-x;
	var dy=getClipTop(layer)-y;
	scrollLayerBy(layer,-dx,-dy,bound);
}

function scrollLayerBy(layer,dx,dy,bound)
{
	var cl=getClipLeft(layer);
	var ct=getClipTop(layer);
	var cr=getClipRight(layer);
	var cb=getClipBottom(layer);
	if(bound)
	{
		if(cl+dx < 0) dx=-cl;
		else if(cr+dx > getLayerWidth(layer)) dx=getLayerWidth(layer)-cr;
		if(ct+dy < 0) dy=-ct;
		else if(cb+dy > getLayerHeight(layer)) dy=getLayerHeight(layer)-cb;
	}
	clipLayer(layer,cl+dx,ct+dy,cr+dx,cb+dy);
	moveLayerBy(layer,-dx,-dy);
}


function setLayerBgColor(layer,color)
{
	if (ns4) layer.bgColor=color;
	else if (ie || dom) layer.style.backgroundColor=color;  
}

function setLayerBgImage(layer,src)
{
	if (ns4) layer.background.src=src;
	else if (ie || dom) layer.style.backgroundImage="url("+src+")";  
}

function getLayer(name)
{
	if (ns4) return findLayer(name, document);
	else if (ie || dom) return eval('document.all.'+name); 
	return null;
}

function findLayer(name,doc)
{
	var i,layer;
	for (i=0; i < doc.layers.length; i++)	{
		layer=doc.layers[i];
		if (layer.name==name) return layer;
		if (layer.document.layers.length > 0 && (layer=findLayer(name,layer.document))!=null) return layer;
	}
	return null;
}

function getImage(name)
{
	if (ns4) return findImage(name,document);
	else if (ie || dom) return eval('document.all.'+name);  
	return null;
}

function findImage(name,doc)
{
	var i,img;
	for (i=0; i < doc.images.length; i++) {
		if(doc.images[i].name==name) return doc.images[i];
	}
	for (i=0; i < doc.layers.length; i++) {
		if ((img=findImage(name,doc.layers[i].document))!=null) {
			img.container=doc.layers[i];
			return img;
		}
	}
	return null;
}

function getImagePageLeft(img)
{
	var x,obj;
	if (ns4) {
		if (img.container!=null) return img.container.pageX+img.x;
		else return img.x;
	}
	else if (ie || ns6) {
		x=0;
		obj=img;
		while (obj.offsetParent!=null) {
			x += obj.offsetLeft;
			obj=obj.offsetParent;
		}
		x += obj.offsetLeft;
		return x;
	}
	return -1;
}

function getImagePageTop(img)
{
	var y,obj;
	if (ns4) {
		if (img.container!=null) return img.container.pageY+img.y;
		else return img.y;
	}
	else if (ie || ns6) {
		y=0;
		obj=img;
		while (obj.offsetParent!=null) {
			y += obj.offsetTop;
			obj=obj.offsetParent;
		}
		y += obj.offsetTop;
		return y;
	}
	return -1;
}

function getWindowWidth()
{
	if (ns) return window.innerWidth;
	else if (ie || dom) return document.body.clientWidth;
	return -1;
}

function getWindowHeight()
{
	if (ns) return window.innerHeight;
	else if (ie || dom) return document.body.clientHeight;
	return -1;
}

function getPageWidth()
{
	if (ns) return document.width;
	else if (ie || dom) return document.body.scrollWidth;
	return -1;
}

function getPageHeight()
{
	if (ns) return document.height;
	else if (ie || dom) return document.body.scrollHeight;
	return -1;
}

function getPageScrollX()
{
	if (ns) return window.pageXOffset;
	else if (ie || dom) return document.body.scrollLeft;
	return -1;
}

function getPageScrollY()
{
	if (ns) return window.pageYOffset;
	else if (ie || dom) return document.body.scrollTop;
	return -1;
}
