
var ns4;
var op5;
var op6;
var agt;
var mac;
var ie; 
var mac_ie;

function sniffBrowsers() {
    ns4 = document.layers;
    op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) ||(navigator.userAgent.indexOf("Opera/5")!=-1);
    op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) ||(navigator.userAgent.indexOf("Opera/6")!=-1);
    agt=navigator.userAgent.toLowerCase();
    mac = (agt.indexOf("mac")!=-1);
    ie = (agt.indexOf("msie") != -1); 
    mac_ie = mac && ie;
}


function getStyleObject(objectId, doc) {
    if(document.getElementById && document.getElementById(objectId)) {
    return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
    return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
        return getObjNN4(document,objectId);
    } else {
    return false;
    }
} 

function changeObjectVisibility(objectId, newVisibility) {
    var styleObject = getStyleObject(objectId, document);
    if(styleObject) {
    styleObject.visibility = newVisibility;
    return true;
    } else {
    return false;
    }
} 

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 getImage(name) {
    if (document.layers) {
        return findImage(name, document);
    }
    return null;
}

function getObjNN4(obj,name)
{
    var x = obj.layers;
    var foundLayer;
    for (var i=0;i<x.length;i++)
    {
        if (x[i].id == name)
             foundLayer = x[i];
        else if (x[i].layers.length)
            var tmp = getObjNN4(x[i],name);
        if (tmp) foundLayer = tmp;
    }
    return foundLayer;
}

function getElementHeight(Elem) {
    if (ns4) {
        var elem = getObjNN4(document, Elem);
        return elem.clip.height;
    } else {
        var elem;
        if(document.getElementById) {
            var elem = document.getElementById(Elem);
        } else if (document.all){
            var elem = document.all[Elem];
        }
        if (op5) {
            xPos = elem.style.pixelHeight;
        } else {
            xPos = elem.offsetHeight;
        }
        return xPos;
    } 
}

function getElementWidth(Elem) {
    if (ns4) {
        var elem = getObjNN4(document, Elem);
        return elem.clip.width;
    } else {
        var elem;
        if(document.getElementById) {
            var elem = document.getElementById(Elem);
        } else if (document.all){
            var elem = document.all[Elem];
        }
        if (op5) {
            xPos = elem.style.pixelWidth;
        } else {
            xPos = elem.offsetWidth;
        }
        return xPos;
    }
}

function getElementLeft(Elem) {
    if (ns4) {
        var elem = getObjNN4(document, Elem);
        return elem.pageX;
    } else {
        var elem;
        if(document.getElementById) {
            var elem = document.getElementById(Elem);
        } else if (document.all){
            var elem = document.all[Elem];
        }
        xPos = elem.offsetLeft;
        tempEl = elem.offsetParent;
          while (tempEl != null) {
              xPos += tempEl.offsetLeft;
              tempEl = tempEl.offsetParent;
          }
        return xPos;
    }
}


function getElementTop(Elem) {
    if (ns4) {
        var elem = getObjNN4(document, Elem);
        return elem.pageY;
    } else {
        if(document.getElementById) {    
            var elem = document.getElementById(Elem);
        } else if (document.all) {
            var elem = document.all[Elem];
        }
        yPos = elem.offsetTop;
        tempEl = elem.offsetParent;
        while (tempEl != null) {
              yPos += tempEl.offsetTop;
              tempEl = tempEl.offsetParent;
          }
        return yPos;
    }
}


function getImageLeft(myImage) {
    var x, obj;
    if (document.layers) {
        var img = getImage(myImage);
        if (img.container != null)
            return img.container.pageX + img.x;
        else
            return img.x;
      } else {
        return getElementLeft(myImage);
    }
    return -1;
}

function getImageTop(myImage) {
    var y, obj;
    if (document.layers) {
        var img = getImage(myImage);
        if (img.container != null)
            return img.container.pageY + img.y;
        else
            return img.y;
    } else {
        return getElementTop(myImage);
    }
    return -1;
}

function getImageWidth(myImage) {
    var x, obj;
    if (document.layers) {
        var img = getImage(myImage);
        return img.width;
    } else {
        return getElementWidth(myImage);
    }
    return -1;
}



function getImageHeight(myImage) {
    var y, obj;
    if (document.layers) {
        var img = getImage(myImage);
        return img.height;
    } else {
        return getElementHeight(myImage);
    }
    return -1;
}

function moveXY(myObject, x, y) {
    obj = getStyleObject(myObject)
    if (ns4) {
        obj.top = y;
         obj.left = x;
    } else {
        if (op5) {
            obj.pixelTop = y;
             obj.pixelLeft = x;
        } else {
            obj.top = y + 'px';
             obj.left = x + 'px';
        }    
    }
}

function changeClass(Elem, myClass) {
    var elem;
    if(document.getElementById) {
        var elem = document.getElementById(Elem);
    } else if (document.all){
        var elem = document.all[Elem];
    }
    if (op5 || op6) elem.style.className = myClass;
    else elem.className = myClass;
}

function changeBGColour(myObject, colour) {
    if (ns4) {
        var obj = getObjNN4(document, myObject);
        obj.bgColor=colour;
    } else {
        var obj = getStyleObject(myObject);
        if (op5) {
            obj.background = colour;    
        } else {
            obj.backgroundColor = colour;
        }    
    }
}

function changeImage(target, source) {
    var imageObj;
    
    if (ns4) {
        imageObj = getImage(target);
        if (imageObj) imageObj.src = eval(source).src; 
    } else {
        imageObj = eval('document.images.' + target);
        if (imageObj) imageObj.src = eval(source).src; 
    }
}



