/*  .-=====================================================-.  */
/*  |-|  DHTML Library v1.1 for support contact gmccartn  |-|  */
/*  |-|  Created: [11/05/04]   Last Modified: [08/03/05]  |-|  */
/*  |-|  v1.0 to v1.1 ==================================  |-|  */
/*  |-|  Added: minList & maxList functions               |-|  */
/*  |-|  Changed: getMaxLayerHeight now accepts arrays    |-|  */
/*  '-=====================================================-'  */

var undef;
var dom=(document.getElementById)?true:false;
var ie=(document.all)?true:false;
var nn=(document.layers)?true:false;
var visible=(!nn)?'visible':'show';
var hidden=(!nn)?'hidden':'hide';
var alerts='';

function blurIt(theObj)
{
        if(ie)
        {
                theObj.blur();
        }
}

function isNaA(a)
{
        return !((typeof(a)=='object')&&(!isNaN(a.length)));
}

var top='[ Latest at top ]\n'
function addalert(theAlert)
{
        /* only use window.status in dev */
        //window.status=theAlert;
        alerts=top+theAlert+'\n'+alerts.substr((top.length));
}

function clearalerts()
{
        alerts=top;
}

function colourLayer(theLayer,theColour)
{
        if(layerCheck(theLayer))
        {
                if(dom)
                {
                        document.getElementById(theLayer).style.backgroundColor=theColour;
                }
                else if(ie)
                {
                        document.all[theLayer].style.backgroundColor=theColour;
                }
                else if(nn)
                {
                        document.layers[theLayer].bgColor=theColour;
                }
        }
}

function swapImg(theImg,theSrc)
{
        if(document.images[theImg]&&theSrc!='')
        {
                document.images[theImg].src=theSrc;
        }
}

function layerCheck(theLayer)
{
        if(dom)
        {
                return (document.getElementById(theLayer))?true:false;
        }
        else if(ie)
        {
                return (document.all[theLayer])?true:false;
        }
        else if(nn)
        {
                return (document.layers[theLayer])?true:false;
        }
}

function setLayerStyle(theLayer,theAttrib,theValue)
{
        if(layerCheck(theLayer))
        {
                if(dom)
                {
                        document.getElementById(theLayer).style[theAttrib]=theValue;
                }
                else if(ie)
                {
                        document.all[theLayer].style[theAttrib]=theValue;
                }
                else if(nn)
                {
                        document.layers[theLayer][theAttrib]=theValue
                }
        }
}

function getLayerStyle(theLayer,theAttrib,theType)
{
        if(layerCheck(theLayer))
        {
                var ret;
                if(dom)
                {
                        ret=document.getElementById(theLayer).style[theAttrib];
                }
                else if(ie)
                {
                        ret=document.all[theLayer].style[theAttrib];
                }
                else if(nn)
                {
                        ret=document.layers[theLayer][theAttrib];
                }
                if(ret!=undef&&theType=='#') ret=parseInt(ret);
                return ret;
        }
}

function showLayer(theLayer)
{
        setLayerStyle(theLayer,'visibility',visible);
}

function hideLayer(theLayer)
{
        setLayerStyle(theLayer,'visibility',hidden);
}

function moveLayerTo(theLayer,xPos,yPos)
{
        var x=xPos;
        var y=yPos;
        if(!isNaA(xPos))
        {
                x=xPos[0];
                y=xPos[1];
        }
        addalert('info: moveLayerTo('+theLayer+','+x+','+y+')');
        if(!isNaN(x)) setLayerStyle(theLayer,'left',x);
        if(!isNaN(y)) setLayerStyle(theLayer,'top',y);
}

function getLayerHeight(theLayer)
{
        //addalert('info: getLayerHeight('+theLayer+')');
        if(layerCheck(theLayer))
        {
                var ret;
                if(dom)
                {
                        ret=document.getElementById(theLayer).offsetHeight;
                }
                else if(ie)
                {
                        ret=document.all[theLayer].clientHeight;
                }
                else if(nn)
                {
                        ret=document.layers[theLayer].document.height;
                }
                if(ret!=undef) ret=parseInt(ret);
                return ret;
        }
}

function getLayerWidth(theLayer)
{
        if(layerCheck(theLayer))
        {
                var ret;
                if(dom)
                {
                        ret=document.getElementById(theLayer).offsetWidth;
                }
                else if(ie)
                {
                        ret=document.all[theLayer].clientWidth;
                }
                else if(nn)
                {
                        ret=document.layers[theLayer].document.width;
                }
                if(ret!=undef) ret=parseInt(ret);
                return ret;
        }
}

function getLayerSize(theLayer,theType)
{
        var w=getLayerWidth(theLayer);
        var h=getLayerHeight(theLayer);
        return [w,h];
}

function getLayerOffset(theLayer)
{
        if(layerCheck(theLayer))
        {
                if(dom)
                {
                        var x=document.getElementById(theLayer).offsetLeft;
                        var y=document.getElementById(theLayer).offsetTop;
                }
                else if(ie)
                {
                        var x=document.all[theLayer].offsetLeft;
                        var y=document.all[theLayer].offsetTop;
                }
                else if(nn)
                {
                        var x=document.layers[theLayer].pageX;
                        var y=document.layers[theLayer].pageY;
                }
                return [x,y];
        }
}

function setLayerClip(theLayer,Ctop,Cright,Cbottom,Cleft)
{
        if(!nn)
        {
                setLayerStyle(theLayer,'clip','rect('+Ctop+' '+Cright+' '+Cbottom+' '+Cleft+')');
        }
        else
        {
                with(document.layers[theLayer].clip)
                {
                        right=Cright;
                        top=Ctop;
                        bottom=Cbottom;
                        left=Cleft;
                }
        }
}

function getMaxLayerHeight()
{
        var sizes=new Array();
        var theArgs=getMaxLayerHeight.arguments;
        for(var i=0;i<theArgs.length;i++)
        {
                if(isNaA(theArgs[i]))
                {
                        if(layerCheck(theArgs[i]))
                        {
                                sizes[sizes.length]=getLayerHeight(theArgs[i]);
                        }
                        else if(!isNaN(theArgs[i]))
                        {
                                sizes[sizes.length]=theArgs[i];
                        }
                }
                else
                {
                        for(var j=0;j<theArgs[i].length;j++)
                        {
                                if(layerCheck(theArgs[i][j]))
                                {
                                        sizes[sizes.length]=getLayerHeight(theArgs[i][j]);
                                }
                                else if(!isNaN(theArgs[i][j]))
                                {
                                        sizes[sizes.length]=theArgs[i][j];
                                }
                        }
                }
        }
        return maxList(sizes);
}

function minList(theArray)
{
        if(!isNaA(theArray))
        {
                var wee=theArray[0];
                for(var i=0;i<theArray.length;i++)
                {
                        wee=Math.min(wee,theArray[i]);
                }
                return wee;
        }
        else
        {
                return theArray;
        }
}

function maxList(theArray)
{
        if(!isNaA(theArray))
        {
                var huoge=theArray[0];
                for(var i=0;i<theArray.length;i++)
                {
                        huoge=Math.max(huoge,theArray[i]);
                }
                return huoge;
        }
        else
        {
                return theArray;
        }
}
