<!--
    // browser info
    var ns4 = document.layers;
    var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) ||(navigator.userAgent.indexOf("Opera/5")!=-1);
    var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) ||(navigator.userAgent.indexOf("Opera/6")!=-1);
    var agt=navigator.userAgent.toLowerCase();
    var mac = (agt.indexOf("mac")!=-1);
    var ie = (agt.indexOf("msie") != -1);
    var mac_ie = mac && ie;
    var gecko = (agt.indexOf("gecko") != -1);
    var safari = (agt.indexOf("safari") != -1);
    var konqueror = (agt.indexOf("konqueror") != -1);

    // hide or show a HTML element
    function changeObjectVisibility(objectId, newVisibility)
    {
        var styleObject = getStyleObject(objectId, document);
        if (styleObject)
        {
            styleObject.visibility = newVisibility;
            return true;
        }
        else return false;
    }

    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;
    }

    // retrieve handle to object of a HTML element
    function getObject(objectId)
    {
        if(document.getElementById && document.getElementById(objectId))
            return document.getElementById(objectId);
        else if (document.all && document.all(objectId))
            return document.all(objectId);
        else if (document.layers && document.layers[objectId])
            return getObjNN4(document,objectId);
        else
            return false;
    }

    // retrieve handle to style object of a HTML element
    function getStyleObject(objectId)
    {
        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;
    }

    // move a HTML element to a certain position
    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';
            }
        }
    }

    // retrieve HTML element left pos
    function getElementLeft(Elem)
    {
        if (ns4)
        {
            var elem = getObjNN4(document, Elem);
            if (!elem) return -1;
            return elem.pageX;
        }
        else
        {
            var elem;
            if(document.getElementById)
                var elem = document.getElementById(Elem);
            else if (document.all)
                var elem = document.all[Elem];

            if (!elem) return -1;

            xPos = elem.offsetLeft;
            tempEl = elem.offsetParent;
            while (tempEl != null)
            {
                xPos += tempEl.offsetLeft;
                tempEl = tempEl.offsetParent;
            }
            return xPos;
        }
    }

    // retrieve HTML element top pos
    function getElementTop(Elem)
    {
        if (ns4)
        {
            var elem = getObjNN4(document, Elem);
            if (!elem) return -1;
            return elem.pageY;
        }
        else
        {
            if(document.getElementById)
                var elem = document.getElementById(Elem);
            else if (document.all)
                var elem = document.all[Elem];

            if (!elem) return -1;

            yPos = elem.offsetTop;
            tempEl = elem.offsetParent;
            while (tempEl != null)
            {
                yPos += tempEl.offsetTop;
                tempEl = tempEl.offsetParent;
            }
            return yPos;
        }
    }

    // retrieve HTML element height
    function getElementHeight(Elem)
    {
        if (ns4)
        {
            var elem = getObjNN4(document, Elem);
            if (!elem) return -1;
            return elem.clip.height;
        }
        else
        {
            if(document.getElementById)
                var elem = document.getElementById(Elem);
            else if (document.all)
                var elem = document.all[Elem];

            if (!elem) return -1;

            if (op5)
                xPos = elem.style.pixelHeight;
            else
                xPos = elem.offsetHeight;

            return xPos;
        }
    }

    // retrieve HTML element width
    function getElementWidth(Elem)
    {
        if (ns4)
        {
            var elem = getObjNN4(document, Elem);
            if (!elem) return -1;
            return elem.clip.width;
        }
        else
        {
            if(document.getElementById)
                var elem = document.getElementById(Elem);
            else if (document.all)
                var elem = document.all[Elem];

            if (!elem) return -1;

            if (op5)
                xPos = elem.style.pixelWidth;
            else
                xPos = elem.offsetWidth;

            return xPos;
        }
    }

    function myStrReplace(haystack, needle, val)
    {
        if (haystack.indexOf(needle)==-1) return haystack;
        else
        {
            haystack = haystack.replace(needle, val);
            return myStrReplace(haystack, needle, val);
        }
    }
    
    // convert '10px' to '10'
	function toInt(val)
	{
		return parseInt(val, 10);
	};

    // slide a div to a different position
    function slideDiv(elem, iteration, stepsize, total, direction, timeout, showElem)
    {
        // until we are done
        if (iteration * stepsize < total)
        {
            // get element top, left
            var curLeft = toInt(getElementLeft(elem));
            var curTop = toInt(getElementTop(elem));
            
            //alert(elem + '- ' + getElementLeft(elem));
            //alert(curLeft + '-' + curTop);

            // determine direction to move
            switch (direction)
            {
                case 'left_right' : { moveXY(elem, stepsize * iteration, 0); break; }
                case 'right_left' : { moveXY(elem, -stepsize * iteration, 0); break; }
                case 'top_bottom' : { moveXY(elem, 0, stepsize * iteration); break; }
                case 'bottom_top' : { moveXY(elem, 0, -stepsize * iteration); break; }
            }
            
            // next step    
            setTimeout('slideDiv(\'' + elem + '\',' + (iteration+1) + ',' + stepsize + ',' + total + ', \'' + direction + '\',' + timeout + ',\'' + showElem + '\')', timeout);
        }
        else
        {
            changeObjectVisibility(showElem, 'visible');
        }
    }

    function number_format (number, decimals, dec_point, thousands_sep)
    {
        var exponent = "";
        var numberstr = number.toString ();
        var eindex = numberstr.indexOf ("e");
        
        if (eindex > -1)
        {
            exponent = numberstr.substring (eindex);
            number = parseFloat (numberstr.substring (0, eindex));
        }
        
        if (decimals != null)
        {
            var temp = Math.pow (10, decimals);
            number = Math.round (number * temp) / temp;
        }

        var sign = number < 0 ? "-" : "";
        var integer = (number > 0 ? Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
        
        var fractional = number.toString ().substring (integer.length + sign.length);
        dec_point = dec_point != null ? dec_point : ".";
        fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring (1)) : "";
        if (decimals != null && decimals > 0)
        {
            for (i = fractional.length - 1, z = decimals; i < z; ++i)
              fractional += "0";
        }
        
        thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? thousands_sep : null;
        if (thousands_sep != null && thousands_sep != "")
        {
            for (i = integer.length - 3; i > 0; i -= 3)
              integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
        }
        
        return sign + integer + fractional + exponent;
    }
-->