
        function Browser() {

          var ua, s, i;

          this.isIE    = false;
          this.isNS    = false;
          this.version = null;

          ua = navigator.userAgent;

          s = "MSIE";
          if ((i = ua.indexOf(s)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
          }

          s = "Netscape6/";
          if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(ua.substr(i + s.length));
            return;
          }

          // Treat any other "Gecko" browser as NS 6.1.

          s = "Gecko";
          if ((i = ua.indexOf(s)) >= 0) {
            this.isNS = true;
            this.version = 6.1;
            return;
          }
        }

        var browser = new Browser();

        // Global object to hold drag information.

        var dragObj = new Object();
        dragObj.zIndex = 0;

        function dragStart(event, id) {

          var el;
          var x, y;

          // If an element id was given, find it. Otherwise use the element being
          // clicked on.

          if (id)
            dragObj.elNode = document.getElementById(id);
          else {
            if (browser.isIE)
              dragObj.elNode = window.event.srcElement;
            if (browser.isNS)
              dragObj.elNode = event.target;

            // If this is a text node, use its parent element.

            if (dragObj.elNode.nodeType == 3)
              dragObj.elNode = dragObj.elNode.parentNode;
          }
          
          dragObj.elNode.style.cursor = 'move';
          // Get cursor position with respect to the page.

          if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft
              + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop
              + document.body.scrollTop;
          }
          if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
          }

          // Save starting positions of cursor and element.

          dragObj.cursorStartX = x;
          dragObj.cursorStartY = y;
          dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
          dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

          if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
          if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

          // Update element's z-index.

          //dragObj.elNode.style.zIndex = ++dragObj.zIndex;

          // Capture mousemove and mouseup events on the page.

          if (browser.isIE) {
            document.attachEvent("onmousemove", dragGo);
            document.attachEvent("onmouseup",   dragStop);
            window.event.cancelBubble = true;
            window.event.returnValue = false;
          }
          if (browser.isNS) {
            document.addEventListener("mousemove", dragGo,   true);
            document.addEventListener("mouseup",   dragStop, true);
            event.preventDefault();
          }
        }

        function dragGo(event) {

          var x, y;

          // Get cursor position with respect to the page.

          if (browser.isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft
              + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop
              + document.body.scrollTop;
          }
          if (browser.isNS) {
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
          }

          // Move drag element by the same amount the cursor has moved.

          dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
          dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

          if (browser.isIE) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
          }
          if (browser.isNS)
            event.preventDefault();
        }

        function dragStop(event) {

          // Stop capturing mousemove and mouseup events.

          if (browser.isIE) {
            document.detachEvent("onmousemove", dragGo);
            document.detachEvent("onmouseup",   dragStop);
          }
          if (browser.isNS) {
            document.removeEventListener("mousemove", dragGo,   true);
            document.removeEventListener("mouseup",   dragStop, true);
          }
          dragObj.elNode.style.cursor = 'auto';
        }
        
        function nikoLink(pValue){
            document.getElementById('color_link_1').style.textDecoration = (pValue=='over') ? 'underline':'none';
            document.getElementById('color_link_2').style.textDecoration = (pValue=='over') ? 'underline':'none';
        }

		function openWindow(url, w, h, args)	{
            xc = Math.round((document.body.clientWidth/2)-(w/2));
            yc = Math.round((document.body.clientHeight/2)-(h/2));
            if (args == "") args == "scrollbars=yes";
			window.open(url,'NewWindow'+Math.floor(Math.random()*11),args + ',width='+w+',height='+h+',left='+xc+',top='+yc)
		}

        function highlightRow(elem)
        {
          if (elem.className == "listevenrow") {
            elem.className = "listoddrow";
          } else {
            elem.className = "listevenrow";
          }
        }
        
        function toggleDisplay(id) {
            if (document.getElementById){
                var layer = document.getElementById(id);
                layer.style.display = (layer.style.display == 'none') ? 'inline' : 'none';
            }
        }

        function darkenPage() {
            if (document.getElementById){
                var layer = document.getElementById('blockUI');
                layer.style.display = 'inline';
            }
        }

        function lightenPage() {
            if (document.getElementById){
                var layer = document.getElementById('blockUI');
                layer.style.display = 'none';
            }
        }
        
        function showPanel(id, s, w,h){
            var panel = document.getElementById(id);
            var panelframe = document.getElementById(id+'_iframe');
            xc = Math.round((document.body.clientWidth/2)-(w/2));
            yc = Math.round((document.body.clientHeight/2)-(h/2))+20;
            panel.style.left = xc + "px";
            panel.style.top = yc + "px";
            panelframe.src = s;
            darkenPage();            
            panel.style.display = 'block';
        }
        
        function hidePanel(id){
            var panel = document.getElementById(id);
            panel.style.display = 'none';
            lightenPage();            
        }
