           var NO_BUSY = true;
           var dropdownTimeout;

           function fadeIn(obj) {
              try {
                obj.filters[0].apply();
                obj.style.visibility='visible';
                obj.filters[0].play();
              }
              catch(e) {
                 obj.style.visibility = 'visible';
              }
           }

           function dropdown_clear() {
              dropdownTimeout = setTimeout('dropdown_out()',125);
           }

           function dropdown_over() {
              clearTimeout(dropdownTimeout);
              document.getElementById('dropdown_list').style.display='block';
           }

           function dropdown_out() {
              document.getElementById('dropdown_list').style.display='none';
           }

           function $submitParameter($retc,$parm,$value,$method) {
               if ($method != '') {
                  document.request.method.value = $method;
               }
               document.request.returncode.value = $retc;
               if ($parm != '') document.request['parm'+$parm].value = $value;
               document.request.submit();
               return false;
            }

            function $getGroupValue($obj) {
               if ($obj.length > 0) {
                  for ($N = 0; $N < $obj.length; $N++) {
                    if ($obj[$N].checked) {
                       return $obj[$N].value;
                    }
                  }
                  return '';
               }
               else {
                  if ($obj.checked) {
                     return $obj.value;
                  }
                  return '';
               }
            }

            function $systemInfo($opdracht) {
               var $systemInfo = document.getElementById('system_info');
               if ($opdracht == 'show') {
                  $systemInfo.style.display = 'block';
               }
               else {
                  $systemInfo.style.display = 'none';
               }
            }

            var $requestPending= false;
            var $timeoutID     = null;
            var $xmlhttp       = null;
            var $helpvraag     = false;
            var $helptext      = null;
            var $helptextBody  = null;
            var $helpTextX     = 0;
            var $helpTextY     = 0;
            var $containerObj  = new Array();
            var $containerID   = new Array();
            var $endproc       = '';
            var $js_exec       = '';
            var $js_src        = '';

            var $errHeader     = 'VisualWebCrafts v1.06 - '+document.title+'\n\nPlease report this message to helpdesk@visualwebcrafts.com\n\n';

            function $displayError($text,$e) {
               if ($xmlhttp.responseText.substr(0,12) == 'NEW SOFTWARE') {
                  alert($xmlhttp.responseText);
               }
               else {
                  alert($errHeader+'Error message: '+$text+' - '+$e.message+'\n'+$xmlhttp.responseText);
               }
            }

            function $loadXHTML($url,$post,$async) {
               if ($xmlhttp != null) {
                  //alert('Er wordt gewacht op een respons van de server!\nEven geduld a.u.b.!');
                  return;
               }

               $async = true;
               if ($xmlhttp == null) {
                   $xmlhttp = null;
                   if (window.XMLHttpRequest) {
                     try {
                        $xmlhttp = new XMLHttpRequest();
                     }
                     catch($e) {
                        $xmlhttp = null;
                     }
                   }
                   else {
                     if (window.ActiveXObject) {
                        try {
                           $xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        catch($e) {
                          $xmlhttp = null;
                        }
                     }
                   }
               }
               if ($xmlhttp != null) {
                     try {
                         $xmlhttp.open("POST",$url,$async);
                         if ($async) {
                            $xmlhttp.onreadystatechange = $state_change;
                         }
                         $xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                         $data = 'sequence='+$sequence+'&'+$post;
                         $xmlhttp.send($data);
                          $requestPending = true;
                          if (!NO_BUSY) window.setTimeout("$displayBusy();",250);
                          $timeoutID = window.setTimeout("$requestTimeout();",15000);
                          if (!$async) {
                            $processResponse();
                         }
                    }
                    catch($e) {
                        $displayError('loadXHTML',$e);
                    }
               }
               else {
                  alert("Browser does not support XMLHTTP!");
               }
            }

            function $requestTimeout() {
               $displayNotBusy();
               $requestPending = false;
               $xmlhttp.abort();
               alert("Server geeft geen respons!\nProbeer opnieuw!");
            }

            function $displayBusy() {
               if (NO_BUSY) return;
               if ($requestPending) {
                   document.getElementById('loading').style.display = 'block';
               }
            }

            function $displayNotBusy() {
               if (NO_BUSY) return;
               window.clearTimeout($timeoutID);
               document.getElementById('loading').style.display = 'none';
            }

            function $state_change() {
               try {
                  switch ($xmlhttp.readyState) {
                     //UNITIALILIZED
                     case 0:
                        break;
                     //LOADING
                     case 1:
                        break;
                     //LOADED
                     case 2:
                        break;
                     //INTERACTIVE
                     case 3:
                        break;
                     //COMPLETE
                     case 4:
                        if ($requestPending) {
                           $requestPending = false;
                           if ($xmlhttp.status == 200) {
                              $processResponse();
                           }
                           else {
                              alert('COMMUNICATIE PROBLEMEN MET SERVER\n'+$RequestErrors($xmlhttp.status));
                              $displayNotBusy();
                           }
                        }
                        $xmlhttp = null;
                        break;
                  }
               }
               catch($e) {
                  alert('COMMUNICATIE PROBLEMEN MET SERVER\n'+$e);
                  $displayNotBusy();
                  $xmlhttp = null;
               }
            }

            function $processResponse() {
               try {

                   window.clearTimeout($timeoutID);
                   var $xml = $xmlhttp.responseXML;
                   var $xhtml_src = '';
                   var $css_src   = '';
                   var $endproc_src = '';
                   var $obj = null;
                   var $css_style = null;
                   var $js_script = null;
                   var $I;
                   var $containers = $xml.getElementsByTagName('container');

                   var $version = $xml.getElementsByTagName('response')[0].getAttribute("version");
                   if (!checkVersion('__BUILD')) {
                       $xmlhttp = null;
                       $displayNotBusy();
                       return;
                   }

                   $endproc       = '';
                   $js_exec       = '';
                   $js_src        = '';
                   if ($containers.length == 0) alert($xmlhttp.responseText);
                   for ($I=0; $I <$containers.length; $I++) {
                       $obj = $containers[$I];
                       $containerID[$I] = $obj.getAttribute("id");
                       $containerObj[$I] = document.getElementById($containerID[$I]);
                       $js_src = '';
                       $js_exec = '';
                       if ($containers[$I].getElementsByTagName('script')[0].childNodes.length > 0) {
                          $js_src  = $containers[$I].getElementsByTagName('script')[0].childNodes[0].data;
                          $js_exec = $containers[$I].getElementsByTagName('script')[0].getAttribute("exec");
                       }
                       $css_src = '';
                       if ($containers[$I].getElementsByTagName('style')[0].childNodes.length > 0)
                          $css_src   = $containers[$I].getElementsByTagName('style')[0].childNodes[0].data;
                       $xhtml_src = '';
                       if ($containers[$I].getElementsByTagName('content')[0].childNodes.length > 0)
                          $xhtml_src = $containers[$I].getElementsByTagName('content')[0].childNodes[0].data;
                       $containerObj[$I].innerHTML = $xhtml_src;
                       var $head = document.getElementsByTagName('head').item(0)
                       var $css_style = document.getElementById($containerID[$I]+'_css');
                       if($css_style) $head.removeChild($css_style);
                       $css_style = document.createElement('style');
                       $css_style.setAttribute("type", "text/css");
                       $css_style.setAttribute("id",$containerID[$I]+'_css');
                       if (document.all) {
                           $css_style.styleSheet.cssText = $css_src;
                       }
                       else {
                          if("text" in $css_style)$css_style.text=$css_src;
                          else if("textContent" in $css_style)$css_style.textContent=$css_src;
                          else if("innerHTML" in $css_style)$css_style.innerHTML=$css_src;
                          else $css_style.appendChild(document.createTextNode($css_src));
                       }
                       $css_style.setAttribute("id",$containerID[$I]+'_css');
                       $head.appendChild($css_style);
                       var $js_script = document.getElementById($containerID[$I]+'_js');
                       if($js_script) $head.removeChild($js_script);
                       $js_script = document.createElement('script');
                       $js_script.setAttribute("type", "text/javascript");
                       $js_script.setAttribute("id",$containerID[$I]+'_js');

                       if("text" in $js_script)$js_script.text=$js_src;
                       else if("textContent" in $js_script)$js_script.textContent=$js_src;
                       else if("innerHTML" in $js_script)$js_script.innerHTML=$js_src;
                       else $js_script.appendChild(document.createTextNode($js_src));

                       //alert($js_script.id+'=>'+$js_script.innerHTML);
                       $js_script.type = 'text/javascript';
                       $js_script.id = $containerID[$I]+'_js';
                       $head.appendChild($js_script);
                       if ($js_exec == '$endProc()') {
                          $endproc_src = $js_src;
                          $endproc = '$endProc()';
                       }
                       else {
                          if ($js_exec != '') {
                             window.setTimeout($js_exec,100);
                          }
                       }
                    }
               }
               catch($e) {
                  $displayError('processResponse', $e);
                  $xmlhttp = null;
                  $displayNotBusy();
                  return;
               }
               $xmlhttp = null;
               window.setTimeout($doEndProcessing,100);
            }

            function $doProcessing() {
               try {
                 eval($js_exec);
               }
               catch($e) {
                 $displayError( $js_src,$e);
               }
            }

            function $doEndProcessing() {
               try {
                 eval($endproc);
               }
               catch($) {
                 $displayError($endproc_src,$e);
               }
               $displayNotBusy();
            }

            function $debugWindow() {
               var $w = window.open("debug/ajax.xml","Debug","toolbar,scrollbars,menubar,resizable,status,width=625,height=400");
            }

            function $getHelp($e) {
              if (!$e) var $e = window.event;
              $e.cancelBubble = true;
              if ($e.stopPropagation) $e.stopPropagation();
              $containerObj = document.getElementById('message');
              document.body.onclick = null;
              if ($helpvraag) {
                 var target = ($e.target) ? $e.target : $e.srcElement;
                 if (target.id.substr(0,6) == 'window'){
                     var $cursorPos = $getPosition($e);
                     $helpTextX = $cursorPos.$x;
                     $helpTextY = $cursorPos.$y;
                     $loadXHTML('trajectmanager.php','method=HELP&returncode=AJAX&parm1='+target.context,true);
                     $showHelp();
                 }
                 else {
                     $setCursor('default');
                     $stopContextHelp($e);
                 }
              }
            }

            function $showHelp() {

              document.body.onclick = $stopContextHelp;
              document.body.onkeypress = $stopContextHelp;
              //$helptext.style.top = $helpTextY+'px';
              //$helptext.style.left = $helpTextX+'px';
              //$containerObj.style.display = 'block';
              $helpvraag = false;
              $setCursor('default');
            }

            function $startContextHelp($e) {
              if (!$e) var $e = window.event;
              $e.cancelBubble = true;
              if ($e.stopPropagation) $e.stopPropagation();
              if (!$helpvraag) {
                  $helpvraag = true;
                  $alltags = document.getElementsByTagName('INPUT');
                  $setCursor('help');
                  document.body.onclick = $getHelp;
              }
            }

            function $setCursor($cursor) {
              var $inputCursor = ($cursor == 'default') ? 'text' : $cursor;
              var $alltags = document.getElementsByTagName('INPUT');
              for ($i=0;$i<$alltags.length;$i++) {
                 $alltags[$i].style.cursor = $inputCursor;
              }
              $alltags = document.getElementsByTagName('SELECT');
              for ($i=0;$i<$alltags.length;$i++) {
                $alltags[$i].style.cursor = $cursor;
              }
              document.body.style.cursor = $cursor;
            }

            function $stopContextHelp($e) {
              if (!$e) var $e = window.event;
              $e.cancelBubble = true;
              if ($e.stopPropagation) $e.stopPropagation();
              document.body.onclick = null;
              document.body.onkeypress = null;
              $helpvraag = false;
              $containerObj.style.display='none';
              $containerObj.innerHTML = '';
              $setCursor('default');
            }

            function $initContextHelp() {
              $element = document.getElementById('context_help_button');
              $element.onclick = $startContextHelp;
              if ($element.captureEvents) $element.captureEvents(Event.CLICK);
            }

            function $getPosition($e) {
                if (!$e) var $e = window.event;
                $e.cancelBubble = true;
                if ($e.stopPropagation) $e.stopPropagation();
                var $cursor = {$x:0, $y:0};
                $cursor.$x = (window.Event) ? $e.pageX : event.clientX;
                $cursor.$y = (window.Event) ? $e.pageY : event.clientY;
                $backGround = document.getElementById('container');
                $pos = $findPos($backGround);
                $cursor.$x = $cursor.$x - $pos.$x;
                $cursor.$y = $cursor.$y - $pos.$y;
                return $cursor;
            }

            function $findPos($obj) {
                var $position = {$x:0, $y:0};
                var $curleft = $curtop = 0;
                if ($obj.offsetParent) {
                    $curleft = $obj.offsetLeft
                    $curtop = $obj.offsetTop
                    while ($obj = $obj.offsetParent) {
                        $curleft += $obj.offsetLeft
                        $curtop += $obj.offsetTop
                    }
                }
                $position.$x=$curleft;
                $position.$y=$curtop;
                return $position;
            }

            function checkVersion(version) {
                if (version != '__BUILD') {
                  alert("Er is een nieuw software versie. Sluit uw browser en log opnieuw in!");
                  return false;
                }
                else {
                  return true;
                }
            }

            var $editID;

            function htmlspecialchars(text) {
            var s = new Array('&','<','>','"',"'");
           var d = new Array('&amp;','&lt;','&gt;','&quot;','&#039;');
           for (i=0;i<s.length;i++) {
           re = new RegExp(s[i],'g');
           text = text.replace(re,d[i]);
           }
           return text;
            }

            function htmlspecialchars_decode(text) {
           var s = new Array('&lt;','&gt;','&amp;','&quot;','&#039;');
           var d = new Array('<','>','&','"',"'");
           for (i=0;i<s.length;i++) {
           re = new RegExp(s[i],'g');
           text = text.replace(re,d[i]);
           }
           return text;
            }

            function editPopup($id,$caption,$mode) {
                $editID = $id;
                if ($mode == 'readwrite') {
                   document.getElementById('edit_popup_body').innerHTML = '<form name="editform"><textarea name="edittext" id="edittext">'+document.getElementById($editID).innerHTML+'</textarea></form>';
                   document.getElementById('editOK').style.display = 'block';
                }
                else {
                   document.getElementById('editOK').style.display = 'none';
                   document.getElementById('edit_popup_body').innerHTML = '<form name="editform"><div id="edittext" class="readonly_textarea">'+document.getElementById($editID).innerHTML+'</div></form>';
                   //document.getElementById('iframe1').getElementByTagName('body').innerHTML = document.getElementById($editID).innerHTML;
                }
                document.getElementById('edit_popup_caption').innerHTML = $caption;
                document.getElementById('main').style.display = 'none';
                document.getElementById('edit_popup').style.display = 'block';
            }

            function saveEdit() {
                document.getElementById($editID).value = document.getElementById('edittext').value;
                hideEdit();
            }

            function hideEdit() {
                document.getElementById('edit_popup').style.display = 'none';
                document.getElementById('main').style.display = 'block';
            }

            function $RequestErrors($errno) {
               switch ($errno) {
                   case 400:   return 'Bad Request';
                   case 401:   return 'Unauthorized';
                   case 402:   return 'Payment Required';
                   case 403:   return 'Forbidden';
                   case 404:   return 'Not Found';
                   case 405:   return 'Method Not Allowed';
                   case 406:   return 'Not Acceptable';
                   case 407:   return 'Proxy Authentication Required';
                   case 408:   return 'Request Timeout';
                   case 409:   return 'Conflict';
                   case 410:   return 'Gone';
                   case 411:   return 'Length Required';
                   case 412:   return 'Precondition Failed';
                   case 413:   return 'Request Entity Too Large';
                   case 414:   return 'Request-URI Too Long';
                   case 415:   return 'Unsupported Media Type';
                   case 416:   return 'Requested Range Not Satisfiable';
                   case 417:   return 'Expectation Failed';
                   case 449:   return 'Retry With A Microsoft extension';
                   case 500:   return 'Internal Server Error';
                   case 501:   return 'Not Implemented';
                   case 502:   return 'Bad Gateway';
                   case 503:   return 'Service Unavailable';
                   case 504:   return 'Gateway Timeout';
                   case 505:   return 'HTTP Version Not Supported';
                   case 509:   return 'Bandwidth Limit Exceeded';
                   case 12001: return 'INTERNET_OUT_OF_HANDLES';
                   case 12002: return 'INTERNET_TIMEOUT';
                   case 12003: return 'INTERNET_EXTENDED_ERROR';
                   case 12004: return 'INTERNET_INTERNAL_ERROR';
                   case 12005: return 'INTERNET_INVALID_URL';
                   case 12006: return 'INTERNET_UNRECOGNIZED_SCHEME';
                   case 12007: return 'INTERNET_NAME_NOT_RESOLVED';
                   case 12008: return 'INTERNET_PROTOCOL_NOT_FOUND';
                   case 12009: return 'INTERNET_INVALID_OPTION';
                   case 12010: return 'INTERNET_BAD_OPTION_LENGTH';
                   case 12011: return 'INTERNET_OPTION_NOT_SETTABLE';
                   case 12012: return 'INTERNET_SHUTDOWN';
                   case 12013: return 'INTERNET_INCORRECT_USER_NAME';
                   case 12014: return 'INTERNET_INCORRECT_PASSWORD';
                   case 12015: return 'INTERNET_LOGIN_FAILURE';
                   case 12016: return 'INTERNET_INVALID_OPERATION';
                   case 12017: return 'INTERNET_OPERATION_CANCELLED';
                   case 12018: return 'INTERNET_INCORRECT_HANDLE_TYPE';
                   case 12019: return 'INTERNET_INCORRECT_HANDLE_STATE';
                   case 12020: return 'INTERNET_NOT_PROXY_REQUEST';
                   case 12021: return 'INTERNET_REGISTRY_VALUE_NOT_FOUND';
                   case 12022: return 'INTERNET_BAD_REGISTRY_PARAMETER';
                   case 12023: return 'INTERNET_NO_DIRECT_ACCESS';
                   case 12024: return 'INTERNET_NO_CONTEXT';
                   case 12025: return 'INTERNET_NO_CALLBACK';
                   case 12026: return 'INTERNET_REQUEST_PENDING';
                   case 12027: return 'INTERNET_INCORRECT_FORMAT';
                   case 12028: return 'INTERNET_ITEM_NOT_FOUND';
                   case 12029: return 'INTERNET_CANNOT_CONNECT';
                   case 12030: return 'INTERNET_CONNECTION_ABORTED';
                   case 12031: return 'INTERNET_CONNECTION_RESET';
                   case 12032: return 'INTERNET_FORCE_RETRY';
                   case 12033: return 'INTERNET_INVALID_PROXY_REQUEST';
                   case 12036: return 'INTERNET_HANDLE_EXISTS';
                   case 12037: return 'INTERNET_SEC_CERT_DATE_INVALID';
                   case 12038: return 'INTERNET_SEC_CERT_CN_INVALID';
                   case 12039: return 'INTERNET_HTTP_TO_HTTPS_ON_REDIR';
                   case 12040: return 'INTERNET_HTTPS_TO_HTTP_ON_REDIR';
                   case 12041: return 'INTERNET_MIXED_SECURITY';
                   case 12042: return 'INTERNET_CHG_POST_IS_NON_SECURE';
                   case 12043: return 'INTERNET_POST_IS_NON_SECURE';
                   case 12110: return 'FTP_TRANSFER_IN_PROGRESS';
                   case 12111: return 'FTP_DROPPED';
                   case 12130: return 'GOPHER_PROTOCOL_ERROR';
                   case 12131: return 'GOPHER_NOT_FILE';
                   case 12132: return 'GOPHER_DATA_ERROR';
                   case 12133: return 'GOPHER_END_OF_DATA';
                   case 12134: return 'GOPHER_INVALID_LOCATOR';
                   case 12135: return 'GOPHER_INCORRECT_LOCATOR_TYPE';
                   case 12136: return 'GOPHER_NOT_GOPHER_PLUS';
                   case 12137: return 'GOPHER_ATTRIBUTE_NOT_FOUND';
                   case 12138: return 'GOPHER_UNKNOWN_LOCATOR';
                   case 12150: return 'HTTP_HEADER_NOT_FOUND';
                   case 12151: return 'HTTP_DOWNLEVEL_SERVER';
                   case 12152: return 'HTTP_INVALID_SERVER_RESPONSE';
                   case 12153: return 'HTTP_INVALID_HEADER';
                   case 12154: return 'HTTP_INVALID_QUERY_REQUEST';
                   case 12155: return 'HTTP_HEADER_ALREADY_EXISTS';
                   case 12156: return 'HTTP_REDIRECT_FAILED';
                   default: return $errno+'_UNKNOWN';
               }
            }
