public function addJsFileRef($js_file, $use_local_js_lib = true)
 {
     if ($use_local_js_lib == true) {
         $local_js_lib = __ApplicationContext::getInstance()->getPropertyContent('JS_LIB_DIR');
         $js_file = __UrlHelper::resolveUrl(__UrlHelper::glueUrlParts($local_js_lib, $js_file));
     } else {
         $js_file = __UrlHelper::resolveUrl($js_file);
     }
     $this->_js_files[] = '"' . $js_file . '"';
 }
 public function startRender()
 {
     if (__FrontController::getInstance()->getRequestType() != REQUEST_TYPE_XMLHTTP) {
         if (__ApplicationContext::getInstance()->hasProperty('INCLUDE_LION_JS')) {
             $include_lion_js = __ApplicationContext::getInstance()->getPropertyContent('INCLUDE_LION_JS');
         } else {
             $include_lion_js = true;
         }
         if ($include_lion_js) {
             $local_js_lib = __ApplicationContext::getInstance()->getPropertyContent('JS_LIB_DIR');
             $lion_js_file = __UrlHelper::resolveUrl(__UrlHelper::glueUrlParts($local_js_lib, 'lion.js'));
             __FrontController::getInstance()->getResponse()->prependContent('<script language="javascript" type="text/javascript" src="' . $lion_js_file . '"></script>' . "\n", 'lion-js');
         }
     }
     $response_writer_manager = __ResponseWriterManager::getInstance();
     if ($response_writer_manager->hasResponseWriter('javascript')) {
         $javascript_response_writer = $response_writer_manager->getResponseWriter('javascript');
     } else {
         $javascript_response_writer = new __JavascriptOnDemandResponseWriter('javascript');
         $response_writer_manager->addResponseWriter($javascript_response_writer);
     }
     if (!$javascript_response_writer->hasResponseWriter('setup-client-event-handler')) {
         $setup_client_event_handler_rw = new __JavascriptOnDemandResponseWriter('setup-client-event-handler');
         $js_code = "\n" . '(__ClientEventHandler.getInstance()).setCode("' . __CurrentContext::getInstance()->getId() . '");' . "\n";
         if (__Lion::getInstance()->getRuntimeDirectives()->getDirective('DEBUG_MODE')) {
             $js_code .= "(__ClientEventHandler.getInstance()).setDebug(true);\n";
             if (__ApplicationContext::getInstance()->getPropertyContent('DEBUG_AJAX_CALLS') == true) {
                 if (strtoupper(__ApplicationContext::getInstance()->getPropertyContent('DEBUGGER')) == 'ZEND') {
                     $client_ip = $_SERVER['REMOTE_ADDR'];
                     $debug_port = __ApplicationContext::getInstance()->getPropertyContent('ZEND_DEBUG_PORT');
                     $debug_url = 'index.ajax?' . 'start_debug=1&debug_port=' . $debug_port . '&debug_fastfile=1&debug_host=' . $client_ip . '&send_sess_end=1&debug_stop=1&debug_url=1&debug_new_session=1&no_remote=1';
                     $js_code .= "(__ClientEventHandler.getInstance()).setUrl('" . $debug_url . "');\n";
                 }
             }
         }
         if (!__FrontController::getInstance() instanceof __ComponentLazyLoaderFrontController && __FrontController::getInstance()->getRequestType() == REQUEST_TYPE_HTTP) {
             $url = __FrontController::getInstance()->getRequest()->getUrl();
             $encoded_url = base64_encode(serialize($url));
             $js_code .= "(__ClientEventHandler.getInstance()).setViewCode('" . $encoded_url . "');\n";
             $flow_scope = __ApplicationContext::getInstance()->getFlowScope();
             if ($flow_scope != null) {
                 $js_code .= "(__ClientEventHandler.getInstance()).setFlowExecutionKey('" . $flow_scope->getId() . "');\n";
             }
         }
         $setup_client_event_handler_rw->addJsCode($js_code);
         $javascript_response_writer->addResponseWriter($setup_client_event_handler_rw);
     }
     parent::startRender();
 }