// File name: dhtml.js
// Original code by: Mike Hall (www.brainjar.com)
// Edited/modified by: Brian Gosselin (scriptasylum.com)

var isMinNS4 = (navigator.appName.indexOf("Netscape")>=0 && parseFloat(navigator.appVersion) >= 4)? true : false;
var isMinIE4 = (document.all)? true : false;
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.") >= 0)? true : false;
var isNS=isMinNS4 && !isMinIE4;

function hidelayer(layer){
if(isMinNS4)layer.visibility = "hide";
if(isMinIE4)layer.style.visibility = "hidden";
}

function showlayer(layer){
if(isMinNS4)layer.visibility = "show";
if(isMinIE4)layer.style.visibility = "visible";
}

function inheritayer(layer){
if(isMinNS4)layer.visibility = "inherit";
if(isMinIE4)layer.style.visibility = "inherit";
}

function getvisibility(layer){
if(isMinNS4){
if(layer.visibility=="show")return "visible";
if(layer.visibility=="hide")return "hidden";
return layer.visibility;
}
if(isMinIE4)return layer.style.visibility;
return "";
}

function movelayerto(layer,x,y){
if(isMinNS4)layer.moveTo(x,y);
if(isMinIE4){
layer.style.left=x;
layer.style.top=y;
}}

function movelayerby(layer,dx,dy){
if(isMinNS4)layer.moveBy(dx, dy);
if(isMinIE4){
layer.style.pixelLeft+=dx;
layer.style.pixelTop+=dy;
}}

function getlayerleft(layer){
if(isMinNS4)return layer.left;
if(isMinIE4)return layer.style.pixelLeft;
return -1;
}

function getlayertop(layer){
if(isMinNS4)return layer.top;
if(isMinIE4)return layer.style.pixelTop;
return -1;
}

function getlayerright(layer){
if(isMinNS4)return layer.left+getwidth(layer);
if(isMinIE4)return layer.style.pixelLeft+getwidth(layer);
return -1;
}

function getlayerbottom(layer){
if(isMinNS4)return layer.top+getlayerheight(layer);
if(isMinIE4)return layer.style.pixelTop+getlayerheight(layer);
return -1;
}

function getpageleft(layer){
var x;
if(isMinNS4)return layer.pageX;
if(isMinIE4){
x = 0;
while(layer.offsetParent!=null){
x+=layer.offsetLeft;
layer=layer.offsetParent;
}
x+=layer.offsetLeft;
return x;
}
return -1;
}

function getpagetop(layer){
var y;
if(isMinNS4)return layer.pageY;
if(isMinIE4){
y=0;
while(layer.offsetParent!=null){
y+=layer.offsetTop;
layer=layer.offsetParent;
}
y+=layer.offsetTop;
return y;
}
return -1;
}

function getlayerwidth(layer){
if(isMinNS4){
if(layer.document.width)
return layer.document.width;
else
return layer.clip.right-layer.clip.left;
}
if(isMinIE4){
if(layer.style.pixelWidth)
return layer.style.pixelWidth;
else
return layer.clientWidth;
}
return -1;
}

function getlayerheight(layer){
if(isMinNS4){
if(layer.document.height)return layer.document.height;
else
return layer.clip.bottom-layer.clip.top;
}
if(isMinIE4){
if(layer.style.pixelHeight)
return layer.style.pixelHeight;
else
return layer.clientHeight;
}
return -1;
}

function getzindex(layer){
if(isMinNS4)return layer.zIndex;
if(isMinIE4)return layer.style.zIndex;
return -1;
}

function setzindex(layer,z){
if(isMinNS4)layer.zIndex=z;
if(isMinIE4)layer.style.zIndex=z;
}

function cliplayer(layer, cliptop, clipright, clipbottom, clipleft){
if(isMinNS4){
layer.clip.left= clipleft;
layer.clip.top=cliptop;
layer.clip.right=clipright;
layer.clip.bottom=clipbottom;
}
if(isMinIE4)layer.style.clip='rect('+cliptop+' '+clipright+' '+clipbottom+' '+clipleft+')';
}

function getclipleft(layer){
if(isMinNS4)return layer.clip.left;
if(isMinIE4){
var str=layer.style.clip;
if(!str)return 0;
var clip=getIEclipvalues(layer.style.clip);
return(clip[3]);
}
return -1;
}

function getcliptop(layer){
if(isMinNS4)return layer.clip.top;
if(isMinIE4){
var str=layer.style.clip;
if(!str)return 0;
var clip=getIEclipvalues(layer.style.clip);
return clip[0];
}
return -1;
}

function getclipright(layer){
if(isMinNS4)return layer.clip.right;
if(isMinIE4){
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(isMinNS4)return layer.clip.bottom;
if(isMinIE4){
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(isMinNS4)return layer.clip.width;
if(isMinIE4){
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(isMinNS4)return layer.clip.height;
if(isMinIE4){
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();
var i;
// Parse out the clipping values for IE layers.
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>getwidth(layer))
dx=getwidth(layer)-cr;
if(ct+dy<0)
dy = -ct;
else
if(cb+dy>getheight(layer))
dy=getheight(layer)-cb;
}
cliplayer(layer,cl+dx,ct+dy,cr+dx,cb+dy);
movelayerby(layer,-dx,-dy);
}

function setbgcolor(layer,color){
if(isMinNS4)layer.bgColor=color;
if(isMinIE4)layer.style.backgroundColor=color;
}

function setbgimage(layer,src){
if(isMinNS4)layer.background.src=src;
if(isMinIE4)layer.style.backgroundImage="url("+src+")";
}

function getlayer(name){
if(isMinNS4)return findlayer(name,document);
if(isMinIE4)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)
if((layer=findlayer(name,layer.document))!=null)
return layer;
}
return null;
}

function getimage(name){
if(isMinNS4)return findimage(name,document);
if(isMinIE4)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(isMinNS4){
if(img.container!=null)
return img.container.pageX+img.x;
else
return img.x;
}
if(isMinIE4){
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(isMinNS4){
if(img.container!=null)
return img.container.pageY+img.y;
else
return img.y;
}
if(isMinIE4){
y=0;
obj=img;
while(obj.offsetParent!=null){
y+=obj.offsetTop;
obj=obj.offsetParent;
}
y+=obj.offsetTop;
return y;
}
return -1;
}

function getwindowwidth(){
if(isMinNS4)return window.innerWidth;
if(isMinIE4)return document.body.clientWidth;
return -1;
}

function getwindowheight(){
if(isMinNS4)return window.innerHeight;
if(isMinIE4)return document.body.clientHeight;
return -1;
}

function getpagewidth(){
if(isMinNS4)return document.width;
if(isMinIE4)return document.body.scrollWidth;
return -1;
}

function getpageheight(){
if(isMinNS4)return document.height;
if(isMinIE4)return document.body.scrollHeight;
return -1;
}

function getpagescrollx(){
if(isMinNS4)return window.pageXOffset;
if(isMinIE4)return document.body.scrollLeft;
return -1;
}

function getpagescrolly(){
if(isMinNS4)return window.pageYOffset;
if(isMinIE4)return document.body.scrollTop;
return -1;
}

function writelayer(layer,text){
if(isMinNS4){
layer.document.open();
layer.document.write('<div style="position:absolute; left:0px; top:0px;">'+text+'</div>');
layer.document.close();
}
if(isMinIE4)layer.innerHTML=text;
}
