JAVASCRIPT   32

connections js

Guest on 6th August 2022 01:16:46 AM

  1. //    Licensed Materials - Property of IBM
  2. //
  3. //    IBM Cognos Products: ps
  4. //
  5. //    (C) Copyright IBM Corp. 2005, 2017
  6. //
  7. //    US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  8. // Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  9. // Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  10.  
  11. var DUAL_CNX_STR_SEPARATOR = 'IBM_JD_CNX_STR:';
  12.  
  13. function isDualStackConnectString(connectionString) {
  14.         return (connectionString.indexOf(DUAL_CNX_STR_SEPARATOR) != -1) ? true : false ;
  15. }
  16.  
  17. function buildConnectString(connectType, connectVariant) {
  18.         // reset the connect string
  19.         var f = document.pform;
  20.         f.m_p_connectionString.value = '';
  21.         var connectTypes = connectType.split(",");
  22.         for (var i = 0; i < connectTypes.length; i++) {
  23.                 if (i != 0) {
  24.                         // append special separator
  25.                         f.m_p_connectionString.value += DUAL_CNX_STR_SEPARATOR;
  26.                 }
  27.                 // trim off the whitespace
  28.                 var type = connectTypes[i].replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  29.                 f.m_p_connectionString.value += _buildConnectString(type, connectVariant);
  30.         }
  31. }
  32.  
  33. function parseConnectString(connectType, credentialNamespaces, connectVariant) {
  34.         var connectTypes = connectType.split(",");
  35.         var connectStrings = document.pform.m_p_connectionString.value.split(DUAL_CNX_STR_SEPARATOR);
  36.        
  37.         for (var i = 0; i < connectTypes.length; i++) {
  38.                 if (i < connectStrings.length) {
  39.                         // trim off the whitespace
  40.                         var type = connectTypes[i].replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  41.                         _parseConnectString(type, connectStrings[i], credentialNamespaces, connectVariant);
  42.                 }
  43.         }
  44. }
  45.  
  46. function _buildConnectString(connectType, connectVariant)
  47. {
  48.         var connectString = '';
  49.         var f = document.pform;
  50.  
  51.         if (connectType == 'redbrick' || connectType == 'sybaseIQ' || connectType == 'openEdge')
  52.         {
  53.                 connectString = ';LOCAL';
  54.                 var type = '';
  55.                 if (connectType == 'redbrick')
  56.                 {
  57.                         type = 'RB'
  58.                 }
  59.                 else if (connectType == 'sybaseIQ')
  60.                 {
  61.                         type = 'IQ';
  62.                 }
  63.                 else if (connectType == 'openEdge')
  64.                 {
  65.                         type = 'PG';
  66.                 }
  67.                
  68.                 connectString += ';' + type;
  69.                 connectString += ';DSN=' + f.m_connection_database.value;
  70.  
  71.                 if (f.m_connection_use_userid.checked)
  72.                 {
  73.                         var prefix = '^User ID:';
  74.                         connectString += ';UID=%s';
  75.                         if (f.m_connection_use_pword.checked)
  76.                         {
  77.                                 prefix += '\^\?Password:';
  78.                                 connectString += ';PWD=%s';
  79.                         }
  80.                         connectString = prefix + connectString;
  81.                 }
  82.  
  83.                 connectString += ';' + f.m_connection_string.value;
  84.                 connectString += '@ASYNC=' + ((isCheckboxChecked(f.m_connection_use_async)) ? '1' : '0');
  85.                 connectString += '@' + f.m_connection_connect_time.value;
  86.                 connectString += '/' + f.m_connection_reply_time.value;
  87.                 if (connectType == 'openEdge' || connectType == 'sybaseIQ')
  88.                 {
  89.                         if (f.m_connection_odbc_access_mode.checked)
  90.                                 connectString += '@UNICODE';
  91.                 }
  92.                 connectString += '@COLSEQ=' + f.m_connection_colseq.value;
  93.         }
  94.        
  95.         else if (connectType == 'odbc' || connectType == 'composite' || connectType == 'virtualviewmanager' || connectType == 'sqlodbc' || connectType == 'teradata' || connectType == 'db2'  || connectType == 'netezza')
  96.         {
  97.                 connectString = ';LOCAL';
  98.                 var type = '';
  99.                 if (connectType == 'odbc')
  100.                 {
  101.                         type = 'OD';
  102.                 }
  103.                 else if (connectType == 'sqlodbc')
  104.                 {
  105.                         type = 'SS';
  106.                 }
  107.                 else if (connectType == 'db2')
  108.                 {
  109.                         type = 'D2';
  110.                 }
  111.                 else if (connectType == 'teradata')
  112.                 {
  113.                         type = 'TD';
  114.                 }
  115.                 else if (connectType == 'composite')
  116.                 {
  117.                         type = 'CS'; //Composite connection.
  118.                 }
  119.                 else if (connectType == 'netezza')
  120.                 {
  121.                         type = 'NZ';
  122.                 }              
  123.                 else
  124.                 {
  125.                         type = 'VM'; //Virtual View Manager
  126.                 }              
  127.                 connectString += ';' + type;
  128.                 connectString += ';DSN=' + f.m_connection_database.value;
  129.  
  130.                 if (isRadioButtonSelected(f.authentication, 'namespace') || isRadioButtonSelected(f.authentication, 'signon'))
  131.                 {
  132.                         var prefix = '^User ID:';
  133.                         connectString += ';UID=%s';
  134.                         if (f.m_connection_use_pword.checked || isRadioButtonSelected(f.authentication, 'namespace'))
  135.                         {
  136.                                 prefix += '\^\?Password:';
  137.                                 connectString += ';PWD=%s';
  138.                         }
  139.                         // for third party namespace authentication we need to put Trusted_Connection=yes in the connection string
  140.                         if (isRadioButtonSelected(f.authentication, 'namespace') && connectType != 'teradata' && connectType != 'db2' && connectType != 'odbc' && connectType != 'netezza')
  141.                         {
  142.                                 connectString += ';Trusted_Connection=yes';
  143.                         }
  144.                         connectString = prefix + connectString;
  145.                 }
  146.                 else if ((connectType == 'sqlodbc') && isRadioButtonSelected(f.authentication, 'windows'))
  147.                 {
  148.                         connectString += ';Trusted_Connection=yes';
  149.                 }
  150.  
  151.                 connectString += ';' + f.m_connection_string.value;
  152.                 connectString += '@ASYNC=' + (isCheckboxChecked(f.m_connection_use_async) ? '1' : '0');
  153.                 connectString += '@' + f.m_connection_connect_time.value;
  154.                 connectString += '/' + f.m_connection_reply_time.value;
  155.                 if (connectType == 'odbc' || connectType == 'composite' || connectType == 'virtualviewmanager')
  156.                 {
  157.                         if (f.m_connection_odbc_access_mode.checked)
  158.                                 connectString += '@UNICODE';
  159.                 }
  160.                 if (connectType == 'db2')
  161.                 {
  162.                         if (isCheckboxChecked(f.m_connection_trusted_context))
  163.                         {       connectString += '@TRUSTED_CONTEXT';
  164.                                 if (f.m_connection_identity_propagation && f.m_connection_identity_propagation.value!='')
  165.                                 {
  166.                                         connectString += '@REGISTRY_NAME=' + f.m_connection_identity_propagation.value;
  167.                                 }      
  168.                         }
  169.                 }
  170.  
  171.                 if (isCheckboxChecked(f.m_transformUserIdentification)){
  172.                         connectString += '@TRANSFORMUID';
  173.                 }
  174.                
  175.                 connectString += '@COLSEQ=' + f.m_connection_colseq.value;
  176.  
  177.         }
  178.  
  179.        
  180.         else if (connectType == 'consolidation' || connectType == 'contributor' || connectType == 'contributorSeries7')
  181.         {
  182.                
  183.                 connectString = ';LOCAL';
  184.                 var type = '';
  185.                 var padid = '';
  186.                
  187.                 if (connectType == 'consolidation')
  188.                 {
  189.                         type = 'CL';
  190.                 }
  191.                 else if (connectType == 'contributor')
  192.                 {
  193.                         type = 'CR';
  194.                 }
  195.                 else if (connectType == 'contributorSeries7')
  196.                 {
  197.                         type = 'CR';
  198.                         if (f.m_connection_padid && f.m_connection_padid.value != null)
  199.                         {
  200.                                 padid = f.m_connection_padid.value;
  201.                         }
  202.                 }
  203.                
  204.                 connectString += ';' + type;
  205.                 if (connectType == 'consolidation')
  206.                 {
  207.                         connectString += ';SERVER=' + f.m_connection_servername.value;
  208.                         connectString += ';PORT=' + f.m_connection_port.value;
  209.                 } else if (connectType == 'contributorSeries7') {
  210.                         connectString += ';SERVER=' + f.m_connection_servername.value;
  211.                         connectString += ';PORT=' + f.m_connection_port.value;
  212.                         if ( padid != '' )
  213.                         {
  214.                                 connectString += ';PADID=' + padid + ';UID=%s;PWD=%s';
  215.                         }
  216.                 } else if (connectType == 'contributor')
  217.                 {
  218.                         if (f.m_p_credentialNamespaces && f.m_p_credentialNamespaces.options[f.m_p_credentialNamespaces.selectedIndex].value != '')
  219.                         {
  220.                                 connectString += ';UID=%s;PWD=%s';
  221.                         }
  222.                 }
  223.                 if (connectType == 'consolidation')
  224.                 {
  225.                         connectString += ';UID=%s;PWD=%s';
  226.                 }
  227.         }
  228.         else if (connectType == 'dbtwoolap')
  229.         {
  230.                
  231.                 connectString = ';LOCAL';
  232.                
  233.                 connectString += ';DO';
  234.                 connectString += ';SERVER=' + f.m_connection_servername.value;
  235.                 if (f.authentication[1].checked || f.authentication[2].checked)
  236.                 {
  237.                         var prefix = '^User ID:';
  238.                         connectString += ';UID=%s';
  239.                         if (f.m_connection_use_pword.checked || f.authentication[1].checked)
  240.                         {
  241.                                 prefix += '\^\?Password:';
  242.                                 connectString += ';PWD=%s';
  243.                         }
  244.                         connectString = prefix + connectString;
  245.                 }
  246.         }
  247.        
  248.         else if (connectType == 'tm1')
  249.         {
  250.                
  251.                 connectString = ';LOCAL';
  252.                
  253.                 connectString += ';TM';
  254.                 connectString += ';TM1AdminHost=' + f.m_connection_hostname.value;
  255.                 connectString += ';TM1ServerName=' + f.m_connection_servername.value;
  256.                 if (f.authentication[1].checked || f.authentication[2].checked)
  257.                 {
  258.                         var prefix = '^User ID:';
  259.                         connectString += ';UID=%s';
  260.                         if (f.m_connection_use_pword.checked || f.authentication[1].checked)
  261.                         {
  262.                                 prefix += '\^\?Password:';
  263.                                 connectString += ';PWD=%s';
  264.                         }
  265.                         connectString = prefix + connectString;
  266.                 }
  267.         }
  268.        
  269.         else if (connectType == 'tm1R')
  270.         {
  271.                
  272.                 connectString = ';LOCAL';
  273.                
  274.                 connectString += ';TMR;LCID=en-us';
  275.                 connectString += ';TM1AdminHost=' + f.m_connection_hostname.value;
  276.                 if (f.m_connection_use_ssl.checked){
  277.                         connectString += ';TM1Protocol=https';
  278.                 } else {
  279.                         connectString += ';TM1Protocol=http';
  280.                 }
  281.                 connectString += ';TM1ServerPort=' + f.m_connection_tm1port.value;
  282.                 connectString += ';TM1ServerName=TM1ServerName;CATALOG=CATALOG';
  283.                 if (f.authentication[1].checked || f.authentication[2].checked)
  284.                 {
  285.                         var prefix = '^User ID:';
  286.                         connectString += ';UID=%s';
  287.                         if (f.m_connection_use_pword.checked || f.authentication[1].checked)
  288.                         {
  289.                                 prefix += '\^\?Password:';
  290.                                 connectString += ';PWD=%s';
  291.                         }
  292.                         connectString += ";";
  293.                         connectString = prefix + connectString;
  294.                 }
  295.         }
  296.        
  297.         else if (connectType == 'odata')
  298.         {
  299.                 connectString = ';LOCAL';
  300.                 connectString += ';ODATA';
  301.                 connectString += ';URL=' + f.m_connection_service_root_URI.value;
  302.                 if (f.authentication[1].checked)
  303.                 {
  304.                         var prefix = '^User ID:';
  305.                         connectString += ';UID=%s';
  306.                         if (f.m_connection_use_pword.checked || f.authentication[1].checked)
  307.                         {
  308.                                 prefix += '\^\?Password:';
  309.                                 connectString += ';PWD=%s';
  310.                         }
  311.                         connectString = prefix + connectString;
  312.                 }
  313.         }
  314.        
  315.         else if (connectType == 'json')
  316.         {
  317.                 connectString = ';LOCAL';
  318.                 connectString += ';JSON';
  319.                 connectString += ';URL=' + f.m_connection_url.value;
  320.                 if(f.m_connection_subType) {
  321.                         connectString += ';SUBTYPE=' + f.m_connection_subType;
  322.                 }
  323.                 if(f.m_connection_assembly.checked) {
  324.                         connectString += ';ASSEMBLY=true';
  325.                 }
  326.                 if(!f.m_connection_schema.disabled && f.m_connection_schema.value) {
  327.                         connectString += ';SCHEMA=' + f.m_connection_schema.value;
  328.                 }
  329.                 if(!f.m_connection_http_method.disabled) {
  330.                         connectString += ';METHOD=' + f.m_connection_http_method.value;
  331.                 }
  332.                 if(f.m_connection_http_mime_type && !f.m_connection_http_mime_type.disabled && f.m_connection_http_mime_type.value) {
  333.                         connectString += ';MIME_TYPE=' + f.m_connection_http_mime_type.value;
  334.                 }
  335.                 if(f.m_connection_http_message_body && !f.m_connection_http_message_body.disabled && f.m_connection_http_message_body.value) {
  336.                         connectString += ';DATA=' + f.m_connection_http_message_body.value;
  337.                 }
  338.                 if(!f.m_connection_json_path.disabled && f.m_connection_json_path.value) {
  339.                         connectString += ';PATH=' + f.m_connection_json_path.value;
  340.                 }
  341.                 if(f.m_connection_authentication_type.value == 'OAuth1.0'){
  342.                         connectString += ';TEMPORARY_TOKEN_ENDPOINT=' + f.m_connection_temporary_token_endpoint.value;
  343.                         connectString += ';AUTHORIZATION_ENDPOINT=' + f.m_connection_authorization_endpoint.value;
  344.                         connectString += ';TOKEN_ENDPOINT=' + f.m_connection_token_endpoint.value;
  345.                 }
  346.                 if(f.m_connection_authentication_type.value == 'OAuth2.0'){
  347.                         connectString += ';AUTHORIZATION_ENDPOINT=' + f.m_connection_authorization_endpoint.value;
  348.                         connectString += ';TOKEN_ENDPOINT=' + f.m_connection_token_endpoint.value;
  349.                         if (f.m_connection_scope.value)
  350.                         {
  351.                                 connectString += ';SCOPE=' + f.m_connection_scope.value;
  352.                         }
  353.                 }
  354.                 connectString += ';AUTHENTICATION_TYPE=' + f.m_connection_authentication_type.value;
  355.                 if (f.m_connection_authentication_type.value != 'None')
  356.                 {
  357.                         connectString += ';UID=%s';
  358.                         connectString += ';PWD=%s';
  359.                 }
  360.                
  361.         }
  362.  
  363.         else if (connectType == 'cognosnow')
  364.         {
  365.                
  366.                 connectString = ';LOCAL';
  367.                
  368.                 connectString += ';LA';
  369.                 connectString += ';SERVER=' + f.m_connection_servername.value;
  370.                 if (f.m_connection_port.value != '')
  371.                 {
  372.                         connectString += ':' + f.m_connection_port.value;
  373.                 }
  374.                 connectString += f.m_connection_file.value;
  375.  
  376.         }      
  377.         else if (connectType == 'msas_xmla')
  378.         {
  379.                 connectString = ';LOCAL';
  380.                 connectString += ';X8';
  381.                 connectString += ';SERVER=' + f.m_connection_servername.value;
  382.                
  383.                 if (f.m_connection_locale)
  384.                 {
  385.                         connectString += ';LCID=' + f.m_connection_locale.value;
  386.                 }
  387.                
  388.                 if (f.m_connection_use_userid.checked)
  389.                 {
  390.                         var prefix = '^User ID:';
  391.                         connectString += ';UID=%s';
  392.                         if (f.m_connection_use_pword.checked)
  393.                         {
  394.                                 prefix += '\^\?Password:';
  395.                                 connectString += ';PWD=%s';
  396.                         }
  397.                         connectString = prefix + connectString;
  398.                 }
  399.         }
  400.         else if (connectType == 'msanalysis2005' || connectType == 'msanalysis2008' || connectType == 'msanalysis2012' || connectType == 'msanalysis2014' || connectType == 'msanalysis2016' || connectType == 'msanalysis2017')
  401.         {
  402.                 connectString = ';LOCAL';
  403.                 var type = '';
  404.                
  405.                 if (connectType == 'msanalysis2005')
  406.                 {
  407.                         type = 'YK';
  408.                 }
  409.                 else if (connectType == 'msanalysis2008')
  410.                 {
  411.                         type = 'M8';
  412.                 }
  413.                 else if (connectType == 'msanalysis2012')
  414.                 {
  415.                         type = 'M12';
  416.                 }
  417.                 else if (connectType == 'msanalysis2014')
  418.                 {
  419.                         type = 'M14';
  420.                 }
  421.                 else if (connectType == 'msanalysis2016')
  422.                 {
  423.                         type = 'M16';
  424.                 }
  425.                 else if (connectType == 'msanalysis2017')
  426.                 {
  427.                         type = 'M17';
  428.                 }
  429.                
  430.                 connectString += ';' + type;
  431.                 connectString += ';SERVER=' + f.m_connection_servername.value;
  432.                 if ( trim(f.m_connection_namedinstance.value) != '')
  433.                 {
  434.                         connectString += '\\' + f.m_connection_namedinstance.value;
  435.                 }
  436.                
  437.                 if (f.authentication[1].checked || f.authentication[2].checked)
  438.                 {
  439.                         var prefix = '^User ID:';
  440.                         connectString += ';UID=%s';
  441.                         if (f.m_connection_use_pword.checked || f.authentication[1].checked)
  442.                         {
  443.                                 prefix += '\^\?Password:';
  444.                                 connectString += ';PWD=%s';
  445.                         }
  446.                         connectString = prefix + connectString;
  447.                 }
  448.                 if (f.authentication[0].checked)
  449.                 {
  450.                         connectString += ';Trusted_Connection=yes';
  451.                 }
  452.  
  453.                 if (f.m_connection_locale)
  454.                 {
  455.                         connectString += ';LCID=' + f.m_connection_locale.value;
  456.                 }
  457.         }
  458.        
  459.         else if (connectType == 'powercube')
  460.         {
  461.                
  462.                 connectString = ';LOCAL';
  463.                 connectString += ';PC';
  464.                 connectString += ';WIN_PATH=' + f.m_connection_windows_cube.value;
  465.                 connectString += ';UNIX_PATH=' + f.m_connection_unix_cube.value;
  466.                
  467.                 if (f.m_connection_cache_size && f.m_connection_cache_size.value != '')
  468.                 {
  469.                         connectString += ';readCacheSize=' + f.m_connection_cache_size.value;
  470.                 }
  471.  
  472.                 if (f.cube_password_checkbox && f.cube_password_checkbox.checked)
  473.                 {
  474.                         connectString = '^?Password:' + connectString;
  475.                         connectString += ';cubePassword=%s';
  476.                 }
  477.         }
  478.        
  479.         else if (connectType == 'sql' || connectType == 'sql2005' || connectType == 'sql2008' || connectType == 'sql2012-2014')
  480.         {
  481.                 if (connectType == 'sql')
  482.                 {
  483.                         connectString = ';LOCAL;OL;DBInfo_Type=MS;Provider=SQLOLEDB';
  484.                 }
  485.                
  486.                 else if (connectType == 'sql2005')
  487.                 {
  488.                         connectString = ';LOCAL;OL;DBInfo_Type=MS;Provider=SQLNCLI';           
  489.                 }
  490.                
  491.                 else if (connectType == 'sql2008')
  492.                 {
  493.                         connectString = ';LOCAL;OL;DBInfo_Type=MS;Provider=SQLNCLI10';         
  494.                 }
  495.  
  496.                 else if (connectType == 'sql2012-2014')
  497.                 {
  498.                         connectString = ';LOCAL;OL;DBInfo_Type=MS;Provider=SQLNCLI11'; 
  499.                 }
  500.                 if (f.authentication[2].checked || f.authentication[3].checked)
  501.                 {
  502.                         var prefix = '^User ID:';
  503.                         connectString += ';User ID=%s';
  504.                         if (f.m_connection_use_pword.checked || f.authentication[2].checked)
  505.                         {
  506.                                 prefix += '\^\?Password:';
  507.                                 connectString += ';Password=%s';
  508.                         }
  509.                         connectString = prefix + connectString;
  510.                 }
  511.  
  512.                 connectString += ';Data Source=' + f.m_connection_database.value;
  513.                
  514.                 if (f.authentication[1].checked || f.authentication[2].checked)
  515.                 {
  516.                         connectString += ';Integrated Security=SSPI';
  517.                 }
  518.                
  519.                 var cat = isRadioButtonSelected(f.m_connection_sql_database_choice, 'master') ? 'master' :  f.m_connection_sql_database_name.value;
  520.                 connectString += ';Provider_String=Initial Catalog=' + cat;
  521.                
  522.                 if (f.m_connection_sql_application.value != '')
  523.                 {
  524.                         connectString += ';Application=';
  525.                         connectString += f.m_connection_sql_application.value;
  526.                 }
  527.  
  528.                 if (connectType == 'sql2005' || connectType == 'sql2008' || connectType == 'sql2012-2014')
  529.                 {
  530.                         if (isListItemSelected(f.m_connection_sql_marsconnection, 'YES'))
  531.                         {
  532.                                 connectString += ';MarsConn=YES';
  533.                         }
  534.                 }
  535.  
  536.                 if (f.m_connection_optional_parameters.value && f.m_connection_optional_parameters.value != '')
  537.                 {
  538.                         connectString += ';' + f.m_connection_optional_parameters.value;
  539.                 }
  540.  
  541.                 connectString += ';@COLSEQ=' + f.m_connection_colseq.value;
  542.         }
  543.         else if (connectType == 'oracle')
  544.         {
  545.                 connectString = ';LOCAL;OR;ORACLE@';
  546.                 var prefix = '';
  547.  
  548.                
  549.                 if (f.m_connection_use_userid.checked || isRadioButtonSelected(f.authentication, 'namespace'))
  550.                 {
  551.                         prefix = '^User ID:';
  552.                         connectString += '%s';
  553.                 }
  554.  
  555.                 connectString += '@' + f.m_connection_database.value + '/';
  556.  
  557.                 if ((f.m_connection_use_userid.checked && f.m_connection_use_pword.checked) || isRadioButtonSelected(f.authentication, 'namespace'))
  558.                 {
  559.                         prefix += '^?Password:';
  560.                         connectString += '%s';
  561.                 }
  562.  
  563.                 connectString = prefix + connectString;
  564.                 connectString += '@COLSEQ=' + f.m_connection_colseq.value;
  565.         }
  566.         else if (connectType == 'sybase' || connectType == 'sybase_ct15')
  567.         {
  568.                 connectString = ';LOCAL;';
  569.  
  570.         if (connectType == 'sybase')
  571.                 {
  572.                         connectString += 'CT;';
  573.                 } else
  574.                 {
  575.                         connectString += 'CT15;';
  576.                 }
  577.  
  578.         connectString += f.m_connection_database.value;
  579.                 connectString += '|';
  580.                 var cat;
  581.                 if (f.m_connection_sybase_database_choice[0].checked)
  582.                 {
  583.                         cat = 'master';
  584.                 }
  585.                 else
  586.                 {
  587.                         cat = f.m_connection_sybase_database_name.value;
  588.                 }
  589.                 connectString += cat;
  590.                 connectString += '@';
  591.  
  592.                 if (f.m_connection_use_userid.checked)
  593.                 {
  594.                         var prefix = '^User ID:';
  595.                         connectString += '%s/';
  596.                         if (f.m_connection_use_pword.checked)
  597.                         {
  598.                                 prefix += '^?Password:';
  599.                                 connectString += '%s';
  600.                         }
  601.                         connectString = prefix + connectString;
  602.                 }
  603.                 connectString += '@';
  604.                 connectString += f.m_connection_connect_time.value;
  605.                 connectString += '/';
  606.                 connectString += f.m_connection_reply_time.value;
  607.                 connectString += '@';
  608.                 connectString += f.m_connection_packet.value;
  609.                 connectString += '@ASYNC=';
  610.                 connectString += f.m_connection_sybase_async.options[f.m_connection_sybase_async.selectedIndex].value;
  611.                 connectString += '@POLL=';
  612.                 connectString += f.m_connection_polling.value;
  613.                 connectString += '@APPNAME=';
  614.                 connectString += f.m_connection_sybase_application.value;
  615.                 connectString += '@COLSEQ=';
  616.                 connectString += f.m_connection_colseq.value;
  617.         }
  618.         else if (connectType == 'informix')
  619.         {
  620.                 connectString = ';LOCAL;IF;';
  621.                 connectString += f.m_connection_database.value;
  622.                 connectString += '@';
  623.  
  624.                 connectString += f.m_connection_hostname.value;
  625.                 connectString += ':';
  626.                 connectString += f.m_connection_servername.value;
  627.                 connectString += '|';
  628.  
  629.                 if (f.m_connection_service[0].checked)
  630.                 {
  631.                         connectString += f.m_connection_service[0].value;
  632.                 }
  633.                 else if (f.m_connection_service[1].checked)
  634.                 {
  635.                         connectString += f.m_connection_service[1].value;
  636.                 }
  637.                 else
  638.                 {
  639.                         if (f.m_connection_service_name.value != '')
  640.                         {
  641.                                 connectString += f.m_connection_service_name.value;
  642.                         }
  643.                 }
  644.  
  645.                 if (f.m_connection_use_userid.checked)
  646.                 {
  647.                         var prefix = '^User ID:';
  648.                         connectString += '@%s';
  649.                         if (f.m_connection_use_pword.checked)
  650.                         {
  651.                                 prefix += '^?Password:';
  652.                                 connectString += '/%s';
  653.                         }
  654.                         connectString = prefix + connectString;
  655.                 }
  656.                 connectString += '@COLSEQ=';
  657.                 connectString += f.m_connection_colseq.value;
  658.         }
  659.         else if (connectType == 'sr3')
  660.         {
  661.                 connectString = ';LOCAL;ERP-SAP;URL=sap:';
  662.                
  663.                 var prefix = '^User ID:';
  664.                 if (f.m_connection_use_pword.checked || f.authentication[0].checked)
  665.                 {
  666.                         prefix += '\^\?Password:';
  667.                 }
  668.                 connectString = prefix + connectString;
  669.                
  670.                 if (f.m_connection_use_loadbalancing_hidden.value == "true")
  671.                 {
  672.                         connectString += 'LB:' + f.m_connection_message_server.value + ':' + f.m_connection_system_id.value + ':' +  f.m_connection_logon_group.value + ':';
  673.                        
  674.                 }
  675.                 else
  676.                 {
  677.                         connectString += f.m_connection_application_server.value + ':' + f.m_connection_system_number.value + ':';
  678.                        
  679.                 }
  680.                
  681.                 connectString += 'ROUTER_STRING=' + f.m_connection_router_string.value;
  682.                
  683.                 connectString += ':' + f.m_connection_client.value + ':' + f.m_connection_language.value + ';';
  684.                
  685.                 connectString += 'MAX_CONN=' + f.m_connection_max_conn_in_pool.value + ';';
  686.                
  687.                 connectString += 'ABAP_QUERY_DB_ACCESSES=' + f.m_connection_abap_query_db_access_limit.value + ';';
  688.                
  689.                 connectString += 'TABLE_READ_COUNT=' + f.m_connection_table_row_count.value + ';';
  690.                
  691.                 connectString += 'READ_TABLE_FUNCTION_NAME=' + f.m_connection_table_read_function.value + ';';
  692.                
  693.                 connectString += 'DRIVER_NAME=com.cognos.jdbc.driver.sap.SAPJdbcDriver';
  694.                
  695.         }
  696.         else if (connectType == 'sfdc')
  697.         {
  698.                 connectString = ';LOCAL;ERP-SFDC;URL=sfdc:' + f.m_connection_url.value;
  699.  
  700.                 var prefix = '^User ID:';
  701.                 if (f.m_connection_use_pword.checked || f.authentication[0].checked)
  702.                 {
  703.                         prefix += '\^\?Password:';
  704.                 }
  705.                 connectString = prefix + connectString;
  706.                
  707.                 connectString +=  ';CONCURRENT_CALLS_LIMIT=' + f.m_connection_conc_calls_limit.value + ';USER_CONCURRENT_CALLS_LIMIT=';
  708.                
  709.                 connectString += f.m_connection_user_conc_calls_limit.value + ';CONNECTION_TIMEOUT=';
  710.                
  711.                 connectString += f.m_connection_timeout.value + ';QUERY_BATCH_SIZE=';
  712.                
  713.                 connectString += f.m_connection_query_batch_size.value + ';MAX_RETRIES=';
  714.                
  715.                 connectString += f.m_connection_max_retries.value + ';WAIT_BETWEEN_RETRIES=';
  716.                
  717.                 connectString += f.m_connection_wait_between_retries.value + ';PROXY_ENABLED=';
  718.                
  719.                 if (f.m_connection_proxy_enabled.value == "true")
  720.                 {
  721.                         connectString += f.m_connection_proxy_enabled.value + ';PROXY_HOST=';
  722.                         connectString += f.m_connection_proxy_host.value + ';PROXY_PORT=';
  723.                         connectString += f.m_connection_proxy_port.value;
  724.                 }
  725.                 else
  726.                 {
  727.                         connectString += 'false';
  728.                 }
  729.                 connectString += ';USE_REST_API=';
  730.                
  731.                 connectString += 'FALSE;CLIENT_ID=';
  732.                
  733.                 connectString += ';CLIENT_SECRET=';
  734.                
  735.                 connectString += ';';
  736.                
  737.                 connectString += 'DRIVER_NAME=com.cognos.jdbc.driver.sfdc.SFDCJdbcDriver';
  738.                
  739.         }
  740.         else if (connectType == 'siebel')
  741.         {
  742.                 connectString = ';LOCAL;ERP-SIEBEL;URL=Siebel.';
  743.  
  744.                 var prefix = '^User ID:';
  745.                 if (f.m_connection_use_pword.checked || f.authentication[0].checked)
  746.                 {
  747.                         prefix += '\^\?Password:';
  748.                 }
  749.                 connectString = prefix + connectString;
  750.  
  751.                 connectString += f.m_connection_transport.value + '.';
  752.                
  753.                 connectString += f.m_connection_encryption.value + '.';
  754.                
  755.                 connectString += f.m_connection_compression.value + ':';
  756.                
  757.                 connectString += '//' + f.m_connection_gatewayserver.value + ':';
  758.        
  759.                 connectString += f.m_connection_gatewayport.value + '/' + f.m_connection_enterprise_name.value + '/';
  760.                
  761.                 connectString += f.m_connection_aom.value + '_' + f.m_connection_language.value + ';';
  762.                
  763.                 if (f.m_connection_siebel_repo.value != "")
  764.                 {
  765.                         connectString += 'REPOSITORY_NAME=' + f.m_connection_siebel_repo.value + ';';
  766.                 }              
  767.                
  768.                 if (f.m_connection_login_retries.value != "")
  769.                 {
  770.                  connectString += 'LOGIN_RETRY_COUNT=' + f.m_connection_login_retries.value + ';';
  771.                 }
  772.                
  773.                 if (f.m_connection_login_retry_delay.value != "")
  774.                 {
  775.                         connectString += 'LOGIN_RETRY_DELAY=' + f.m_connection_login_retry_delay.value + ';';
  776.                 }
  777.                
  778.                 if (f.m_connection_local_sort.value != "")
  779.                 {
  780.                         connectString += 'LOCALSORT=' + f.m_connection_local_sort.value + ';';
  781.                 }
  782.                
  783.                 if (f.m_connection_level.value != "")
  784.                 {
  785.                         connectString += 'LEVEL=' + f.m_connection_level.value + ';';
  786.                 }
  787.                
  788.                 if (f.m_connection_charset.value != "")
  789.                 {
  790.                         connectString += 'CHARSET=' + f.m_connection_charset.value + ';';
  791.                 }
  792.                
  793.                 if (f.m_connection_adv_parameters.value != "")
  794.                 {
  795.                         connectString += 'ADVANCED_PARAMETERS=' + f.m_connection_adv_parameters.value + ';';
  796.                 }
  797.                
  798.                 connectString += 'DRIVER_NAME=com.cognos.jdbc.driver.siebel.SiebelJdbcDriver';
  799.                
  800.         }
  801.         else if (connectType == 'sap')
  802.         {
  803.                 var sapType = f.m_connection_sap_type.options[f.m_connection_sap_type.selectedIndex].value;
  804.                 connectString = '^User ID:^?Password:;LOCAL;BW;serverType=';
  805.                 connectString += sapType + ';';
  806.                 connectString += 'server=';
  807.                 connectString += f.m_connection_database.value + ';';
  808.                 if (sapType == 'applicationServer')
  809.                 {
  810.                         connectString += 'sysnr=';
  811.                         connectString += f.m_connection_sys_no.value + ';';
  812.                 }
  813.                 if (sapType == 'messageServer')
  814.                 {
  815.                         connectString += 'sysid=';
  816.                         connectString += f.m_connection_sys_id.value + ';';
  817.                 }
  818.                 connectString += 'client=';
  819.                 connectString += f.m_connection_client_no.value + ';';
  820.                 if (sapType == 'messageServer')
  821.                 {
  822.                                 connectString += 'logonGroup=';
  823.                                 connectString += f.m_connection_logon.value + ';';
  824.                 }
  825.                 if (f.m_connection_sap_codepage.value != '')
  826.                 {
  827.                         connectString += 'codePage=';
  828.                         connectString += f.m_connection_sap_codepage.value + ';';
  829.                 }
  830.                
  831.                 connectString += 'UID=%s;PWD=%s;';
  832.                 if (f.m_connection_router_string && f.m_connection_router_string.value != '')
  833.                 {
  834.                         connectString += 'routerString=';
  835.                         connectString += f.m_connection_router_string.value + ';';
  836.                 }
  837.         }
  838.         else if (connectType == 'sapR3' || connectType == 'sapECC')
  839.         {
  840.                 if (connectType == 'sapR3')
  841.                 {
  842.                         connectString = '^User ID:^?Password:;LOCAL;R3;hostname=';
  843.                 }
  844.                 else if (connectType == 'sapECC')
  845.                 {
  846.                         connectString = '^User ID:^?Password:;LOCAL;EC;hostname=';
  847.                 }
  848.                 connectString += f.m_connection_hostname.value + ';';
  849.                 connectString += 'sysnr=';
  850.                 connectString += f.m_connection_sys_no.value + ';';
  851.                 connectString += 'gateway_host=';
  852.                 connectString += f.m_connection_gateway_host.value + ';';
  853.                 connectString += 'gateway_service=';
  854.                 connectString += f.m_connection_gateway_service.value + ';';
  855.                 connectString += 'destination=';
  856.                 connectString += f.m_connection_destination.value + ';';
  857.                 connectString += 'client=';
  858.                 connectString += f.m_connection_client.value + ';';
  859.                 connectString += 'UID=%s;PWD=%s;';
  860.                 connectString += 'language=';
  861.                 connectString += f.m_connection_sap_language.value + ';';
  862.                 if (f.m_connection_dictionary && f.m_connection_dictionary.value != '')
  863.                 {
  864.                         connectString += 'dictionary=';
  865.                         connectString += f.m_connection_dictionary.value + ';';
  866.                 }
  867.                 connectString += 'background=';
  868.                 if (f.m_connection_background.checked)
  869.                 {
  870.                         connectString += 'ON;';
  871.                 }
  872.                 else
  873.                 {
  874.                         connectString += 'OFF;';
  875.                 }
  876.                 if (connectType == 'sapR3')
  877.                 {
  878.                         if (f.m_connection_cogudaouterjoin.options[f.m_connection_cogudaouterjoin.selectedIndex].value == 'ON')
  879.                         {
  880.                                 //No need to add it when the value is off.
  881.                                 connectString += 'cogudaouterjoin=ON;';
  882.                         }
  883.                 }
  884.                 connectString += '@COLSEQ=';
  885.                 connectString += f.m_connection_colseq.value;
  886.         }
  887.         else if (connectType == 'xml')
  888.         {
  889.                 connectString = ';LOCAL;XML;';
  890.                 connectString += f.m_connection_database.value;
  891.         }
  892.         else if (connectType == 'jdbc-db2')
  893.         {
  894.                 // [^User ID:][^?Password:];LOCAL;JD-D2;URL=<URLSPEC>;DRIVER_NAME=com.ibm.db2.jcc.DB2Driver[;CognosProperty1=value1[;...]]
  895.                 // where
  896.                 // URLSPEC = jdbc:db2://<SERVERNAME>:<PORT>/<DBNAME>[:[jdbcproperty1=jdbcvalue1][;jdbcproperty2=jdbcvalue2]...]
  897.                
  898.                 // Authentication:  [0] None, [1] Namespace, [2] Signon (User ID/[Password])
  899.                
  900.                 if (f.authentication[1].checked || f.authentication[2].checked) {
  901.                         var prefix = '^User ID:';
  902.                         if (f.m_connection_use_pword.checked || f.authentication[1].checked){
  903.                                 prefix += '\^\?Password:';
  904.                         }
  905.                         connectString = prefix + connectString;
  906.                 }
  907.  
  908.                 connectString += ';LOCAL;JD-D2';
  909.                 connectString += ';URL=jdbc:db2://' + f.m_connection_servername.value + ':' + f.m_connection_port.value + '/' + f.m_connection_jdbc_database_name.value;
  910.                
  911.                 if (f.m_connection_jdbc_parameters.value != '') {
  912.                         connectString += ':' + f.m_connection_jdbc_parameters.value;
  913.                 }
  914.                
  915.                 connectString += ';DRIVER_NAME=com.ibm.db2.jcc.DB2Driver';
  916.  
  917.                 if (isCheckboxChecked(f.m_transformUserIdentification)){
  918.                         connectString += '@TRANSFORMUID=TRUE';
  919.                 }
  920.  
  921.                 if (f.m_connection_jdbc_sort_colseq.value != '') {
  922.                         connectString += ';LOCALSORT=' + f.m_connection_jdbc_sort_colseq.value + ';LEVEL=' + f.m_connection_jdbc_sort_level.value;
  923.                 }
  924.         }
  925.         else if (connectType == 'jdbc-oracle')
  926.         {
  927.                 // [^User ID:][^?Password:];LOCAL;JD-OR;URL=<URLSPEC>;DRIVER_NAME=oracle.jdbc.OracleDriver  [;CognosProperty1=value1[;...]]
  928.                 // where
  929.                 // URLSPEC = jdbc:oracle:thin:@//<SERVERNAME>:<PORT>/<SERVICE_D>
  930.                 // URLSPEC = jdbc:oracle:thin:@(DESCRIPTION=...)
  931.                 // URLSPEC = jdbc:oracle:thin:@(DESCRIPTION_LIST=...)
  932.                 // URLSPEC = jdbc:oracle:oci:@<TNS_NAME>
  933.                 // URLSPEC = jdbc:oracle:oci:@(DESCRIPTION=...)
  934.                 // or URLSPEC = jdbc:oracle:oci:@(DESCRIPTION_LIST=...)
  935.                
  936.                 // Authentication:  Signon (User ID/[Password])
  937.                
  938.                 if (f.m_connection_use_userid.checked || isRadioButtonSelected(f.authentication, 'namespace')) {
  939.                         connectString += '^User ID:';
  940.                 }
  941.                 if ((f.m_connection_use_userid.checked && f.m_connection_use_pword.checked) || isRadioButtonSelected(f.authentication, 'namespace')) {
  942.                         connectString += '^?Password:';
  943.                 }
  944.                
  945.                 connectString += ';LOCAL;JD-OR;URL=jdbc:oracle:';
  946.                 if (f.m_connection_jdbc_oracle_style[0].checked) {
  947.                         connectString += "thin:@//" + f.m_connection_servername.value + ":" + f.m_connection_port.value + "/" + f.m_connection_oracle_service_id.value;
  948.                 } else if (f.m_connection_jdbc_oracle_style[1].checked) {
  949.                         connectString += "oci:@" + f.m_connection_oracle_tns_name.value;
  950.                 } else {
  951.                         if (f.m_connection_jdbc_oracle_driver_type[0].checked) {
  952.                                 connectString += "thin:@";
  953.                         } else {
  954.                                 connectString += "oci:@";
  955.                         }
  956.                         connectString += stripSpecialCharsFromOracleNetDesc(f.m_connection_oracle_net_descriptor.value);
  957.                 }
  958.                
  959.                 connectString += ';DRIVER_NAME=oracle.jdbc.OracleDriver';
  960.                
  961.                 var properties = f.m_connection_jdbc_parameters.value;
  962.                 if (properties != '' )
  963.                 {
  964.                         connectString += ';'
  965.                         connectString += properties;
  966.                 }
  967.                
  968.                 if (f.m_connection_jdbc_sort_colseq.value != '') {
  969.                         connectString += ';LOCALSORT=' + f.m_connection_jdbc_sort_colseq.value + ';LEVEL=' + f.m_connection_jdbc_sort_level.value;
  970.                 }      
  971.         }
  972.         else if (connectType == 'jdbc-generic' ||  connectType == 'lob-jdbc')
  973.         {
  974.                 // [^User ID:][^?Password:];LOCAL;JDBC-OR;URL=<URLSPEC>;DRIVER_NAME=<DRIVER_NAME>[;CognosProperty1=value1[;...]]
  975.                 // where
  976.                 // URLSPEC = specific to the driver
  977.                 var connectString = '';
  978.                 if (f.authentication[2].checked) {
  979.                         connectString += '^User ID:';
  980.                         if (f.m_connection_use_pword.checked) {
  981.                                 connectString += '^?Password:';
  982.                         }
  983.                 }
  984.                 connectString += ';LOCAL;JDBC;URL=';
  985.                 var url = f.m_jdbc_connection_url.value;
  986.                 connectString += url;
  987.                 connectString += ';DRIVER_NAME=' + f.m_jdbc_driver_class.value + ';';
  988.  
  989.                 if (isCheckboxChecked(f.m_transformUserIdentification)){
  990.                         connectString += '@TRANSFORMUID=TRUE';
  991.                 }
  992.  
  993.                 var properties = f.m_jdbc_connection_properties.value;
  994.                 connectString += properties;
  995.                 if (properties != '' && properties.charAt(properties.length - 1) != ';')
  996.                 {
  997.                         connectString += ';';
  998.                 }
  999.                 if (f.m_connection_jdbc_sort_colseq.value != '') {
  1000.                         connectString += 'LOCALSORT=' + f.m_connection_jdbc_sort_colseq.value + ';LEVEL=' + f.m_connection_jdbc_sort_level.value;
  1001.                 }
  1002.         }
  1003.         else if (connectType == 'filenet')
  1004.         {
  1005.                 // [^User ID:][^?Password:];LOCAL;RP-CMIS-FILENET;URL=<URLSPEC>;DRIVER_NAME=<DRIVER_NAME>[;CognosProperty1=value1[;...]]
  1006.                 // where
  1007.                 // URLSPEC = specific to the driver
  1008.                
  1009.                 // Authentication:  Signon (User ID/[Password])
  1010.                
  1011.                 var repositoryPluginClass;
  1012.                 var provider;
  1013.                 if (f.m_connection_jdbc_driverclass.value.indexOf('CMIS_') == 0) {
  1014.                         repositoryPluginClass = 'com.ibm.cognos.cm.CMISRepository.CMISRepositoryPlugin';
  1015.                         provider = f.m_connection_jdbc_driverclass.value.substring(5);
  1016.                         if (f.m_connection_use_userid.checked) {
  1017.                                 connectString += '^User ID:';
  1018.                         }
  1019.                         if (f.m_connection_use_userid.checked && f.m_connection_use_pword.checked) {
  1020.                                 connectString += '^?Password:';
  1021.                         }
  1022.                 }
  1023.                 connectString += ';LOCAL;RP-CMIS-FILENET;URL=';
  1024.                 if (f.m_connection_jdbc_driverclass.value == 'FileSystem') {
  1025.                         repositoryPluginClass = 'com.ibm.cognos.cm.fileSystemPlugin.FileSystemArchivePlugin';
  1026.                         connectString += "alias:"
  1027.                 }
  1028.                 connectString += f.m_connection_jdbc_url.value + ";DRIVER_NAME=" + repositoryPluginClass;
  1029.                 if (f.m_connection_file.value != '') {
  1030.                         connectString += ';ROOT=' + f.m_connection_file.value;
  1031.                 }
  1032.                 if (f.m_connection_jdbc_parameters.value != '') {
  1033.                         providerIdx = f.m_connection_jdbc_parameters.value.indexOf('PROVIDER=');
  1034.                         if (providerIdx < 0 && provider != null) {
  1035.                                 connectString += ';PROVIDER=' + provider;
  1036.                         }
  1037.                         connectString += ';' + f.m_connection_jdbc_parameters.value;
  1038.                 } else {
  1039.                         if (provider != null) {
  1040.                                 connectString += ';PROVIDER=' + provider;
  1041.                         }
  1042.                 }
  1043.  
  1044.         }
  1045.         else if (connectType == 'jdbc-sql')
  1046.         {
  1047.                 // [^User ID:][^?Password:];LOCAL;JD-SS;URL=<URLSPEC>;DRIVER_NAME=com.microsoft.sqlserver.jdbc.SQLServerDriver[;CognosProperty1=value1[;...]]
  1048.                 // where
  1049.                 // URLSPEC = jdbc:sqlserver://<SERVERNAME>[:<PORT>][;INSTANCENAME=<INSTNAME>];DATABASE=<DB>[;LOGINTIMEOUT=<TIMEOUT>][;integratedSecurity=true][;[jdbcproperty1=jdbcvalue1][;jdbcproperty2=jdbcvalue2]...]
  1050.                
  1051.                 // Authentication:  [0] None, [1] C8 service creds, [2] Namespace, [3] Signon (User ID/[Password])
  1052.                
  1053.                 if (f.authentication[2].checked || f.authentication[3].checked) {
  1054.                         connectString = '^User ID:';
  1055.                         if (f.m_connection_use_pword.checked || f.authentication[2].checked) {
  1056.                                 connectString += '\^\?Password:';
  1057.                         }
  1058.                 }
  1059.                
  1060.                 connectString += ';LOCAL;JD-SS';
  1061.                 connectString += ';URL=jdbc:sqlserver://' + f.m_connection_servername.value;
  1062.         if (f.m_connection_port.value != '') {
  1063.             connectString += ':' + f.m_connection_port.value;
  1064.         }
  1065.                 connectString += ';DATABASE=' + f.m_connection_jdbc_database_name.value;
  1066.                
  1067.                 if (f.m_connection_sql_instance_name.value != '') {
  1068.                         connectString += ';INSTANCENAME=' + f.m_connection_sql_instance_name.value;
  1069.                 }
  1070.  
  1071.                 if (f.m_connection_jdbc_connect_time.value != '') {
  1072.                         connectString += ';LOGINTIMEOUT=' + f.m_connection_jdbc_connect_time.value;
  1073.                 }
  1074.                
  1075.                 if (f.authentication[1].checked || f.authentication[2].checked) {
  1076.                         connectString += ';integratedSecurity=true';
  1077.                 }
  1078.                
  1079.                 if (f.m_connection_jdbc_parameters.value != '') {
  1080.                         connectString += ';' + f.m_connection_jdbc_parameters.value;
  1081.                 }
  1082.                
  1083.                 connectString += ';DRIVER_NAME=com.microsoft.sqlserver.jdbc.SQLServerDriver';
  1084.                
  1085.                 if (isCheckboxChecked(f.m_transformUserIdentification)){
  1086.                         connectString += '@TRANSFORMUID=TRUE';
  1087.                 }
  1088.  
  1089.                 if (f.m_connection_jdbc_sort_colseq.value != '') {
  1090.                         connectString += ';LOCALSORT=' + f.m_connection_jdbc_sort_colseq.value + ';LEVEL=' + f.m_connection_jdbc_sort_level.value;
  1091.                 }
  1092.                
  1093.         }
  1094.         else if (connectType == 'jdbc-teradata')
  1095.         {
  1096.                 // [^User ID:][^?Password:];LOCAL;JD-TD;URL=<URLSPEC>;DRIVER_NAME=com.teradata.jdbc.TeraDriver[;CognosProperty1=value1[;...]]
  1097.                 // where
  1098.                 // URLSPEC = jdbc:teradata://<SERVERNAME>/DBS_PORT=<PORT>,DATABASE=<DBNAME>[,jdbcproperty1=jdbcvalue1][,jdbcproperty2=jdbcvalue2]...
  1099.                
  1100.                 // Authentication:  [0] None, [1] Namespace, [2] Signon (User ID/[Password])
  1101.  
  1102.                 if (f.authentication[1].checked || f.authentication[2].checked) {
  1103.                         var prefix = '^User ID:';
  1104.                         if (f.m_connection_use_pword.checked || f.authentication[1].checked){
  1105.                                 prefix += '\^\?Password:';
  1106.                         }
  1107.                         connectString = prefix + connectString;
  1108.                 }
  1109.  
  1110.                 connectString += ';LOCAL;JD-TD';
  1111.                 connectString += ';URL=jdbc:teradata://' + f.m_connection_servername.value;
  1112.                 if (f.m_connection_port.value != '') {
  1113.                         connectString += '/DBS_PORT=' + f.m_connection_port.value;
  1114.                 }      
  1115.                 if (f.m_connection_jdbc_database_name.value != '') {
  1116.                         connectString += ',DATABASE=' + f.m_connection_jdbc_database_name.value;
  1117.                 }
  1118.                 if (f.m_connection_jdbc_parameters.value != '') {
  1119.                         connectString += ',' + f.m_connection_jdbc_parameters.value;
  1120.                 }
  1121.  
  1122.                 connectString += ';DRIVER_NAME=com.teradata.jdbc.TeraDriver';
  1123.                
  1124.                 if (isCheckboxChecked(f.m_transformUserIdentification)){
  1125.                         connectString += '@TRANSFORMUID=TRUE';
  1126.                 }
  1127.  
  1128.                 if (f.m_connection_jdbc_sort_colseq.value != '') {
  1129.                         connectString += ';LOCALSORT=' + f.m_connection_jdbc_sort_colseq.value + ';LEVEL=' + f.m_connection_jdbc_sort_level.value;
  1130.                 }
  1131.         }      
  1132.         else if (connectType == 'jdbc-netezza')
  1133.         {
  1134.                 // [^User ID:][^?Password:];LOCAL;JD-NZ;URL=<URLSPEC>;DRIVER_NAME=org.netezza.Driver[;CognosProperty1=value1[;...]]
  1135.                 // where
  1136.                 // URLSPEC = jdbc:netezza://<SERVERNAME>[:<PORT>]/<DBNAME>[[;jdbcproperty1=jdbcvalue1][;jdbcproperty2=jdbcvalue2]...]
  1137.                
  1138.                 var isNamespaceAuthSelected = f.authentication[1].checked;
  1139.                 var isSignonsAuthSelected = f.authentication[2].checked;
  1140.                 if (isNamespaceAuthSelected || isSignonsAuthSelected) {
  1141.                         var prefix = '^User ID:';
  1142.                         if (f.m_connection_use_pword.checked || isNamespaceAuthSelected){
  1143.                                 prefix += '\^\?Password:';
  1144.                         }
  1145.                         connectString = prefix + connectString;
  1146.                 }
  1147.  
  1148.                 connectString += ';LOCAL;JD-NZ';
  1149.                
  1150.                 portString = "";
  1151.                 if (f.m_connection_port.value != ""){
  1152.                    portString = ":" + f.m_connection_port.value;
  1153.                 }
  1154.                
  1155.                 connectString += ';URL=jdbc:netezza://' + f.m_connection_servername.value + portString + '/' + f.m_connection_jdbc_database_name.value;
  1156.                
  1157.                 if (f.m_connection_jdbc_parameters.value != '') {
  1158.                         connectString += ';' + f.m_connection_jdbc_parameters.value;
  1159.                 }
  1160.                
  1161.                 connectString += ';DRIVER_NAME=org.netezza.Driver';
  1162.                
  1163.                 if (isCheckboxChecked(f.m_transformUserIdentification)){
  1164.                         connectString += '@TRANSFORMUID=TRUE';
  1165.                 }
  1166.  
  1167.                 if (f.m_connection_jdbc_sort_colseq.value != '') {
  1168.                         connectString += ';LOCALSORT=' + f.m_connection_jdbc_sort_colseq.value + ';LEVEL=' + f.m_connection_jdbc_sort_level.value;
  1169.                 }
  1170.         }
  1171.         else if (connectType == 'other')
  1172.         {
  1173.                 connectString = f.m_other_connectionString.value;
  1174.         }
  1175.         return connectString;
  1176. }
  1177.  
  1178.  
  1179. function _parseConnectString(connectType, cs, credentialNamespaces, connectVariant)
  1180. {
  1181.         var f = document.pform;
  1182.        
  1183.         if (connectType == 'composite' || connectType == 'virtualviewmanager' || connectType == 'db2' || connectType == 'odbc' || connectType == 'openEdge' || connectType == 'redbrick' || connectType == 'teradata' || connectType == 'sqlodbc' || connectType == 'sybaseIQ' || connectType == 'netezza')
  1184.         {
  1185.                 var TRUSTED_CONNECTION = "Trusted_Connection=yes";
  1186.                 var indexOfTrustedConnection = cs.indexOf(TRUSTED_CONNECTION);
  1187.  
  1188.                 // Determine if a userid and password are required.
  1189.                 var start;
  1190.                 var end;
  1191.                 if (credentialNamespaces == 'true' && (connectType == 'composite' || connectType == 'virtualviewmanager' || connectType == 'sqlodbc' || connectType == 'teradata' || connectType == 'db2' || connectType == 'odbc' || connectType == 'netezza'))
  1192.                 {
  1193.                         selectRadioButton(f.authentication, 'namespace');
  1194.                        
  1195.                         if (indexOfTrustedConnection != -1) {
  1196.                                 cs = cs.substring(0, indexOfTrustedConnection - 1) + cs.substring(indexOfTrustedConnection + TRUSTED_CONNECTION.length);
  1197.                         }
  1198.                        
  1199.                         if (cs.indexOf("^?Password:") != -1)
  1200.                         {
  1201.                                 start = cs.indexOf("PWD=");
  1202.                                 end = cs.indexOf(";", start + 5);
  1203.                                 if (start != -1 && end != -1)
  1204.                                 {
  1205.                                         cs = cs.substring(0, start) + cs.substring(end + 1);
  1206.                                 }
  1207.                         }
  1208.                         start = cs.indexOf("UID=");
  1209.                         end = cs.indexOf(";", start + 5);
  1210.                         if (start != -1 && end != -1)
  1211.                         {
  1212.                                 cs = cs.substring(0, start) + cs.substring(end + 1);
  1213.                         }
  1214.                 }
  1215.                 else if (indexOfTrustedConnection != -1 && connectType == 'sqlodbc')
  1216.                 {
  1217.                         selectRadioButton(f.authentication, 'windows');
  1218.                         cs = cs.substring(0, indexOfTrustedConnection - 1) + cs.substring(indexOfTrustedConnection + TRUSTED_CONNECTION.length);
  1219.                 }
  1220.                 else if (cs.indexOf("^User ID:") != -1)
  1221.                 {
  1222.                         if (connectType == 'sqlodbc' || connectType == 'composite' || connectType == 'virtualviewmanager' || connectType == 'teradata' || connectType == 'db2' || connectType == 'odbc' || connectType == 'netezza')
  1223.                         {
  1224.                                 selectRadioButton(f.authentication, 'signon');
  1225.                         }
  1226.                         else if (connectType == 'oracle') {
  1227.                                 selectRadioButton(f.authentication, 'signon');
  1228.                                 f.m_connection_use_userid.checked = true;
  1229.                         }                              
  1230.                         else
  1231.                         {
  1232.                                 f.m_connection_use_userid.checked = true;
  1233.                         }
  1234.                         f.m_connection_use_pword.disabled = false;
  1235.                         if (cs.indexOf("^?Password:") != -1)
  1236.                         {
  1237.                                 f.m_connection_use_pword.checked = true;
  1238.                                 start = cs.indexOf("PWD=");
  1239.                                 end = cs.indexOf(";", start + 5);
  1240.                                 if (start != -1 && end != -1)
  1241.                                 {
  1242.                                         cs = cs.substring(0, start) + cs.substring(end + 1);
  1243.                                 }
  1244.                         }
  1245.                         start = cs.indexOf("UID=");
  1246.                         end = cs.indexOf(";", start + 5);
  1247.                         if (start != -1 && end != -1)
  1248.                         {
  1249.                                 cs = cs.substring(0, start) + cs.substring(end + 1);
  1250.                         }
  1251.                 }
  1252.                 else if (connectType == 'sqlodbc' || connectType == 'composite' || connectType == 'virtualviewmanager' || connectType == 'teradata' || connectType == 'db2' || connectType == 'odbc' || connectType == 'netezza' || connectType == 'oracle')
  1253.                 {
  1254.                         selectRadioButton(f.authentication, 'none');
  1255.                 }
  1256.  
  1257.                 // Strip everything up to and including the database code.
  1258.                 //              The offset is 10 because 7 for ;LOCAL; and 3 for XX; which is the database code.
  1259.                 cs = cs.substring(cs.indexOf(";LOCAL;") + 10);
  1260.  
  1261.                 // Determine the datasource name.
  1262.                 start = cs.indexOf("DSN=");
  1263.                 if (start != -1)
  1264.                 {
  1265.                         var end = cs.indexOf(";", start + 4);
  1266.                         f.m_connection_database.value = cs.substring(start + 4, end);
  1267.  
  1268.                         // Strip off the datasource name.
  1269.                         cs = cs.substring(end + 1);
  1270.                 }
  1271.                 // Determine the collation sequence.
  1272.                 start = cs.indexOf("@COLSEQ=");
  1273.                 if (start != -1)
  1274.                 {
  1275.                         f.m_connection_colseq.value = cs.substring(start + 8);
  1276.                 }
  1277.  
  1278.                 // Determine the Async option.
  1279.                 start = cs.indexOf("@ASYNC=");
  1280.                 if (start != -1)
  1281.                 {
  1282.                         var useAsync = cs.substring(start + 7, start + 8);
  1283.                         f.m_connection_use_async.checked = (useAsync == "1" ? true : false);
  1284.                 }
  1285.                
  1286.                 // Determine the connect timeout and reply timeout.
  1287.                 start = cs.indexOf("@", start + 1);
  1288.                 mid = cs.indexOf("/", start + 1);
  1289.                 end = cs.indexOf("@", mid + 1);
  1290.  
  1291.                 if (start != -1 && mid != -1 && end != -1)
  1292.                 {
  1293.                         f.m_connection_connect_time.value = cs.substring(start + 1, mid);
  1294.                         f.m_connection_reply_time.value = cs.substring(mid + 1, end);
  1295.                 }
  1296.                 else
  1297.                 {
  1298.                         f.m_connection_connect_time.value = "0";
  1299.                         f.m_connection_reply_time.value = "0";
  1300.                 }
  1301.                 // Determine the datasource Unicode access.
  1302.                 start = cs.indexOf("@UNICODE");
  1303.                 if (start != -1 && f.m_connection_odbc_access_mode)
  1304.                 {
  1305.                         f.m_connection_odbc_access_mode.checked = true;
  1306.                 }
  1307.                
  1308.                 start = cs.indexOf("@ASYNC=");
  1309.                 if (start != -1)
  1310.                 {
  1311.                         f.m_connection_string.value = cs.substring(0, start);
  1312.                 }
  1313.                 else
  1314.                 {
  1315.                         f.m_connection_string.value = cs;
  1316.                 }
  1317.  
  1318.                 // Determine the User Identification Transform value.
  1319.                 start = cs.indexOf("@TRANSFORMUID");
  1320.                 if (start != -1)
  1321.                 {
  1322.                         f.m_transformUserIdentification.checked = true;
  1323.                 }
  1324.  
  1325.                 start = cs.indexOf("@TRUSTED_CONTEXT");
  1326.                 if (start != -1)
  1327.                 {
  1328.                         f.m_connection_trusted_context.checked = true;
  1329.                         start = cs.indexOf("@REGISTRY_NAME");
  1330.                         if (start != -1)
  1331.                         {
  1332.                                 end = cs.indexOf("@", start+14)
  1333.                                 f.m_connection_identity_propagation.value=cs.substring(start+15,end);
  1334.                         }
  1335.                        
  1336.                        
  1337.                 }              
  1338.         }
  1339.         else if (connectType == 'oracle')
  1340.         {
  1341.                 var start;
  1342.                 var end;
  1343.                 var bHasUserID = false;
  1344.                 var bHasPassword = false;
  1345.                 if (credentialNamespaces == 'true')
  1346.                 {
  1347.                         selectRadioButton(f.authentication, 'namespace');
  1348.                         var bHasUserID = true;
  1349.                         var bHasPassword = true;
  1350.  
  1351.                 } else {
  1352.                         if (cs.indexOf("^User ID:") != -1)
  1353.                         {
  1354.                                 bHasUserID = true;
  1355.                                 f.m_connection_use_userid.checked = true;
  1356.                                 f.m_connection_use_pword.disabled = false;
  1357.                                 if (cs.indexOf("^?Password:") != -1)
  1358.                                 {
  1359.                                         bHasPassword = true;
  1360.                                         f.m_connection_use_pword.checked = true;
  1361.                                 }
  1362.                         }
  1363.                 }
  1364.  
  1365.                 // Strip everything up to and including the ORACLE@ token.
  1366.                 cs = cs.substring(cs.indexOf(";ORACLE@") + 8);
  1367.  
  1368.                 if (bHasUserID == true)
  1369.                 {
  1370.                         // Strip off the user id placeholder.
  1371.                         cs = cs.substring(cs.indexOf("@") + 1);
  1372.                 }
  1373.                 // if we're left with an @ at the start then remove it. This should happen with Bering+ Oracle strings but not with Baltic strings
  1374.                 else if (cs.indexOf("@") == 0)
  1375.                 {
  1376.                         cs = cs.substring(1);
  1377.                 }
  1378.        
  1379.                 // Determine the collation sequence.
  1380.                 var start = cs.indexOf("@COLSEQ=");
  1381.                 if (start != -1)
  1382.                 {
  1383.                         f.m_connection_colseq.value = cs.substring(start + 8);
  1384.                         // Strip off the collation sequence.
  1385.                         cs = cs.substring(0, start);
  1386.                 }
  1387.  
  1388.                 // Strip off the password placeholder and everything after it.
  1389.                 start = cs.indexOf("/");
  1390.                 if (start != -1)
  1391.                 {
  1392.                         cs = cs.substring(0, start);
  1393.                 }
  1394.  
  1395.        
  1396.                 // What remains of cs should be the SQL*Net connection string.
  1397.                 f.m_connection_database.value = cs;
  1398.         }
  1399.         else if (connectType == 'sql' || connectType == 'sql2005' || connectType == 'sql2008' || connectType == 'sql2012-2014')
  1400.         {
  1401.                 // Determine if a userid and password are required.
  1402.                 var start;
  1403.                 var end;
  1404.                 if (credentialNamespaces == 'true')
  1405.                 {
  1406.                         f.authentication[2].checked='true';
  1407.                 }
  1408.                 else if (cs.indexOf("^User ID:") != -1)
  1409.                 {                                                                      
  1410.                         f.authentication[3].checked = true;
  1411.                         f.m_connection_use_pword.disabled = false;
  1412.                         if (cs.indexOf("^?Password:") != -1)
  1413.                         {
  1414.                                 f.m_connection_use_pword.checked = true;
  1415.                         }
  1416.                 }
  1417.                 else if (cs.indexOf(";Integrated Security=SSPI") != -1)
  1418.                 {
  1419.                         f.authentication[1].checked = true;
  1420.                 }
  1421.                 else
  1422.                 {
  1423.                         f.authentication[0].checked = true;
  1424.                 }
  1425.  
  1426.                 // Determine the database name.
  1427.                 f.m_connection_database.value = getField(cs, "Data Source=");
  1428.  
  1429.                 // Determine the collation sequence.
  1430.                 f.m_connection_colseq.value = getField(cs, "COLSEQ=");
  1431.  
  1432.                 start = cs.indexOf("Initial Catalog=");
  1433.                 if (-1 != start)
  1434.                 {
  1435.                         end = cs.indexOf(";", start + 16);
  1436.                         var cat = '';
  1437.                         if (end == -1)
  1438.                         {
  1439.                                 cat = cs.substring(start + 16);
  1440.                         }
  1441.                         else
  1442.                         {
  1443.                                 cat = cs.substring(start + 16, end);
  1444.                         }
  1445.                         if (cat == 'master')
  1446.                         {
  1447.                                 f.m_connection_sql_database_choice[0].checked = true;
  1448.                                 f.m_connection_sql_database_choice[1].checked = false;
  1449.                                 f.m_connection_sql_database_name.value = '';
  1450.                         }
  1451.                         else
  1452.                         {
  1453.                                 f.m_connection_sql_database_choice[0].checked = false;
  1454.                                 f.m_connection_sql_database_choice[1].checked = true;
  1455.                                 f.m_connection_sql_database_name.value = cat;
  1456.                         }
  1457.                 }
  1458.  
  1459.                 //Determine the MARS connection
  1460.                 if (connectType == 'sql2005' || connectType == 'sql2008' || connectType == 'sql2012-2014')
  1461.                 {
  1462.                         var marsconn = getField(cs, "MarsConn=");
  1463.                         if (marsconn == 'YES') {
  1464.                                 f.m_connection_sql_marsconnection.value = 'YES' ;
  1465.                         }
  1466.                 }
  1467.                 // Determine the application string.
  1468.                 // Still waiting for the actual format (within the connect string) for this entry.
  1469.                 f.m_connection_sql_application.value = getField(cs, "Application=");
  1470.  
  1471.                 // last valid param can be either "MarsConn=" "Application=" or "Catalog="
  1472.                 startMarsConn = cs.indexOf("MarsConn=");
  1473.                 startApplication = cs.indexOf("Application=");
  1474.                 startCatalog = cs.indexOf("Catalog=");
  1475.  
  1476.                 last_valid_param = Math.max(startMarsConn, startApplication, startCatalog);
  1477.                 end = cs.indexOf("@COLSEQ=");
  1478.                
  1479.                 // Determine optional params (if they exist)
  1480.                 var optional_params ='';
  1481.                 if (last_valid_param != -1)
  1482.                 {
  1483.                         start = cs.indexOf(";", last_valid_param);
  1484.                         if (start != -1)
  1485.                         {
  1486.                                 optional_params = cs.substring (start+1,end);
  1487.                         }
  1488.                 }
  1489.                 f.m_connection_optional_parameters.value = optional_params;
  1490.         }
  1491.         else if (connectType == 'sybase' || connectType == 'sybase_ct15')
  1492.         {
  1493.                 // Treat the prefixes
  1494.                 if (cs.indexOf("^User ID:") != -1)
  1495.                 {
  1496.                         f.m_connection_use_userid.checked = true;
  1497.                         f.m_connection_use_pword.disabled = false;
  1498.                         if (cs.indexOf("^?Password:") != -1)
  1499.                         {
  1500.                                 f.m_connection_use_pword.checked = true;
  1501.                         }
  1502.                 }
  1503.  
  1504.                 if (connectType == 'sybase')
  1505.                 {
  1506.                         cs = cs.substring(cs.indexOf(";LOCAL;CT;") + 10);
  1507.                 } else
  1508.                 {
  1509.                         cs = cs.substring(cs.indexOf(";LOCAL;CT15;") + 12);
  1510.                 }
  1511.  
  1512.                 var tokens = cs.split("@");
  1513.                 var first = tokens[0];
  1514.                 var start = first.indexOf("|");
  1515.                 if (-1 != start)
  1516.                 {
  1517.                         var cat = first.substring(start+1);
  1518.                         f.m_connection_sybase_database_choice[0].checked = (cat == "master");
  1519.                         f.m_connection_sybase_database_choice[1].checked = (cat != "master");
  1520.                         if (cat != "master")
  1521.                         {
  1522.                                 f.m_connection_sybase_database_name.value = cat;
  1523.                         }
  1524.                         first = first.substring(0, start);
  1525.                 }
  1526.                 f.m_connection_database.value = first;
  1527.  
  1528.                 var third = tokens[2];
  1529.                 start = third.indexOf("/");
  1530.                 if (-1 != start)
  1531.                 {
  1532.                         var value = third.substring(0, start);
  1533.                         value = (value == '') ? '0' : value;
  1534.                         f.m_connection_connect_time.value = value;
  1535.                         third = third.substring(start + 1);
  1536.                 }
  1537.                 f.m_connection_reply_time.value = (third == '') ? '0' : third;
  1538.  
  1539.                 var fourth = tokens[3];
  1540.                 f.m_connection_packet.value = (fourth == '') ? '512' : fourth;
  1541.  
  1542.                 var fifth = tokens[4];
  1543.                 start = fifth.indexOf("ASYNC=");
  1544.                 if (-1 != start)
  1545.                 {
  1546.                         var value = fifth.substring(start + 6);
  1547.                         value = (value == '') ? '0' : value;
  1548.                         var number = parseInt(value);
  1549.                         for (var i = 1; i < 4; i++)
  1550.                         {
  1551.                                 f.m_connection_sybase_async.options[i].selected = (number == i) ? true : false;
  1552.                         }
  1553.                 }
  1554.  
  1555.                 var sixth = tokens[5];
  1556.                 start = sixth.indexOf("POLL=");
  1557.                 if (-1 != start)
  1558.                 {
  1559.                         var value = sixth.substring(start + 5);
  1560.                         value = (value == '') ? '100' : value;
  1561.                         f.m_connection_polling.value = value;
  1562.                 }
  1563.  
  1564.                 var seventh = tokens[6];
  1565.                 f.m_connection_sybase_application.value = getField(seventh , "APPNAME=");
  1566.  
  1567.                 var eigth = tokens[7];
  1568.                 f.m_connection_colseq.value = getField(eigth, "COLSEQ=");
  1569.         }
  1570.         else if (connectType == 'informix')
  1571.         {
  1572.                 // Treat the prefixes
  1573.                 if (cs.indexOf("^User ID:") != -1)
  1574.                 {
  1575.                         f.m_connection_use_userid.checked = true;
  1576.                         f.m_connection_use_pword.disabled = false;
  1577.                         if (cs.indexOf("^?Password:") != -1)
  1578.                         {
  1579.                                 f.m_connection_use_pword.checked = true;
  1580.                         }
  1581.                 }
  1582.  
  1583.                 cs = cs.substring(cs.indexOf(";LOCAL;IF;") + 10);
  1584.                 var colStart = cs.indexOf("@COLSEQ=");
  1585.                 if (-1 != colStart)
  1586.                 {
  1587.                         f.m_connection_colseq.value = cs.substring(colStart + 8);
  1588.                         cs = cs.substring(0, colStart);
  1589.                 }
  1590.  
  1591.                 var tokens = cs.split("@");
  1592.                 f.m_connection_database.value = tokens[0];
  1593.                 if (tokens.length > 1)
  1594.                 {
  1595.                         var middle = tokens[1];
  1596.                         var start = middle.indexOf("|");
  1597.                         if (-1 != start)
  1598.                         {
  1599.                                 var service = middle.substring(start + 1);
  1600.                                
  1601.                                 f.m_connection_service[0].checked = (service == "sqlexec");
  1602.                                 f.m_connection_service[1].checked = (service == "sqlturbo");
  1603.                                 f.m_connection_service[2].checked = (service != "sqlexec" && service != "sqlturbo");
  1604.                                 if (f.m_connection_service[2].checked)
  1605.                                 {
  1606.                                         f.m_connection_service_name.value = service;
  1607.                                 }
  1608.  
  1609.                                 middle = middle.substring(0, start);
  1610.                         }
  1611.                        
  1612.                         start = middle.indexOf(":");
  1613.                         if (-1 != start)
  1614.                         {
  1615.                                 f.m_connection_servername.value = middle.substring(start + 1);
  1616.                                 middle = middle.substring(0, start);
  1617.                         }
  1618.  
  1619.                         f.m_connection_hostname.value = middle;
  1620.                 }
  1621.         }
  1622.        
  1623.        
  1624.        
  1625.         else if (connectType == 'consolidation' || connectType == 'contributorSeries7')
  1626.         {
  1627.                 f.m_connection_servername.value = getField(cs, "SERVER=");
  1628.                 f.m_connection_port.value = getField(cs, "PORT=");
  1629.                 if (connectType == 'contributorSeries7')
  1630.                 {
  1631.                         if(f.m_connection_padid)
  1632.                         {
  1633.                                 f.m_connection_padid.value = getField(cs, "PADID=");
  1634.                         }
  1635.                 }
  1636.         }
  1637.        
  1638.         else if (connectType == 'powercube')
  1639.         {
  1640.                 // Determine if a userid and password are required.
  1641.                 var start;
  1642.                 var end;
  1643.                 if (credentialNamespaces == 'true')
  1644.                 {
  1645.                         f.authentication[1].checked = true;
  1646.                 }
  1647.                 else
  1648.                 {
  1649.                         f.authentication[0].checked = true;
  1650.                 }
  1651.  
  1652.                 // Determine the cache size.
  1653.                 if (getField(cs, "readCacheSize=") != '')
  1654.                 {
  1655.                         f.m_connection_cache_size.value = getField(cs, "readCacheSize=");
  1656.                 }
  1657.                
  1658.                 // Determine the Location string.
  1659.                 if (getField(cs, "WIN_PATH=") != '')
  1660.                 {
  1661.                         f.m_connection_windows_cube.value = getField(cs, "WIN_PATH=");
  1662.                 }
  1663.                 else
  1664.                 {
  1665.                         // upgrade old powercube connections to the new UI (WO 1116)
  1666.                         f.m_connection_windows_cube.value = getField(cs, "CUBE=");
  1667.                 }
  1668.  
  1669.                 f.m_connection_unix_cube.value = getField(cs, "UNIX_PATH=");
  1670.  
  1671.                 if (cs.indexOf("^?Password:") != -1 && f.cube_password_checkbox)
  1672.                 {
  1673.                         f.cube_password_checkbox.checked = true;
  1674.                 }
  1675.         }
  1676.        
  1677.         else if (connectType == 'msanalysis2005' || connectType == 'msanalysis2008' || connectType == 'msanalysis2012' || connectType == 'msanalysis2014' || connectType == 'msanalysis2016' || connectType == 'msanalysis2017')
  1678.         {
  1679.                 // Determine if a userid and password are required.
  1680.                 if (credentialNamespaces == 'true')
  1681.                 {
  1682.                         f.authentication[1].checked = true;
  1683.                 }
  1684.                 else if (cs.indexOf("^User ID:") != -1)
  1685.                 {                                                                      
  1686.                         f.authentication[2].checked = true;
  1687.                         f.m_connection_use_pword.disabled = false;
  1688.                         if (cs.indexOf("^?Password:") != -1)
  1689.                         {
  1690.                                 f.m_connection_use_pword.checked = true;
  1691.                         }
  1692.                 }
  1693.                 else if (cs.indexOf("Trusted_Connection=yes") != -1)
  1694.                 {
  1695.                         f.authentication[0].checked = true;
  1696.                 }
  1697.                
  1698.                 // Determine the server name.
  1699.                 var serverField = getField(cs, "SERVER=");
  1700.                 var position = serverField.indexOf("\\");
  1701.                 if ( position != -1)
  1702.                 {
  1703.                         f.m_connection_servername.value = serverField.slice(0, position);
  1704.                         f.m_connection_namedinstance.value = serverField.slice(position+1);
  1705.                 }
  1706.                 else {
  1707.                         f.m_connection_servername.value = serverField;
  1708.                         f.m_connection_namedinstance.value = '';
  1709.                 }
  1710.         }
  1711.                
  1712.         else if (connectType == 'dbtwoolap')
  1713.         {
  1714.                 // Determine if a userid and password are required.
  1715.                 if (credentialNamespaces == 'true')
  1716.                 {
  1717.                         f.authentication[1].checked='true';
  1718.                 }
  1719.                 else if (cs.indexOf("^User ID:") != -1)
  1720.                 {                                                                      
  1721.                         f.authentication[2].checked = true;
  1722.                         f.m_connection_use_pword.disabled = false;
  1723.                         if (cs.indexOf("^?Password:") != -1)
  1724.                         {
  1725.                                 f.m_connection_use_pword.checked = true;
  1726.                         }
  1727.                 }
  1728.                 else
  1729.                 {
  1730.                         f.authentication[0].checked = true;
  1731.                 }
  1732.                 // Determine the server name.
  1733.                 f.m_connection_servername.value = getField(cs, "SERVER=");
  1734.         }
  1735.        
  1736.         else if ((connectType == 'tm1'))
  1737.         {
  1738.                 if (credentialNamespaces == 'true')
  1739.                 {
  1740.                         f.authentication[1].checked='true';
  1741.                 }
  1742.                 else if (cs.indexOf("^User ID:") != -1)
  1743.                 {                      
  1744.                         f.authentication[2].checked = true;
  1745.                         f.m_connection_use_pword.disabled = false;
  1746.                         if (cs.indexOf("^?Password:") != -1)
  1747.                         {
  1748.                                 f.m_connection_use_pword.checked = true;
  1749.                         }
  1750.                 }
  1751.                 else
  1752.                 {
  1753.                         f.authentication[0].checked = true;
  1754.                 }              
  1755.                 //Determine the TM1 hostname
  1756.                 f.m_connection_hostname.value = getField(cs, "TM1AdminHost=");                 
  1757.                 // Determine the TM1 server name.
  1758.                 f.m_connection_servername.value = getField(cs, "TM1ServerName=");
  1759.         }      
  1760.         else if ((connectType == 'tm1R'))
  1761.         {
  1762.                 if (credentialNamespaces == 'true')
  1763.                 {
  1764.                         f.authentication[1].checked='true';
  1765.                 }
  1766.                 else if (cs.indexOf("^User ID:") != -1)
  1767.                 {                      
  1768.                         f.authentication[2].checked = true;
  1769.                         f.m_connection_use_pword.disabled = false;
  1770.                         if (cs.indexOf("^?Password:") != -1)
  1771.                         {
  1772.                                 f.m_connection_use_pword.checked = true;
  1773.                         }
  1774.                 }
  1775.                 else
  1776.                 {
  1777.                         f.authentication[0].checked = true;
  1778.                 }              
  1779.                 //Determine the TM1 hostname
  1780.                 f.m_connection_hostname.value = getField(cs, "TM1AdminHost=");                 
  1781.                 // Determine the TM1 server name.
  1782.                 f.m_connection_tm1port.value = getField(cs, "TM1ServerPort=");
  1783.                 //determine the tm1 protocol
  1784.                 var protocol =  getField(cs, "TM1Protocol=");
  1785.                 if (protocol === 'https') {
  1786.                         f.m_connection_use_ssl.checked = true;
  1787.                 }
  1788.         }
  1789.         else if (connectType == 'odata')
  1790.         {
  1791.  
  1792.                 if (cs.indexOf("^User ID:") != -1)
  1793.                 {                      
  1794.                         f.authentication[1].checked = true;
  1795.                         f.m_connection_use_pword.disabled = false;
  1796.                         if (cs.indexOf("^?Password:") != -1)
  1797.                         {
  1798.                                 f.m_connection_use_pword.checked = true;
  1799.                         }
  1800.                 }
  1801.                 else
  1802.                 {
  1803.                         f.authentication[0].checked = true;
  1804.                 }              
  1805.                 //Determine the OData Service Root URI
  1806.                 f.m_connection_service_root_URI.value = getField(cs, ";URL=");                 
  1807.         }      
  1808.         else if (connectType == 'json')
  1809.         {
  1810.                 f.m_connection_subType = getField(cs, ";SUBTYPE=");
  1811.                 f.m_connection_url.value = getField(cs, ";URL=");
  1812.                 f.m_connection_assembly.checked = (getField(cs, ";ASSEMBLY=") == 'true');
  1813.                 if (f.m_connection_assembly.checked) {
  1814.                         f.m_connection_schema.disabled = true;
  1815.                         f.m_connection_http_method.disabled = true;
  1816.                         if (f.m_connection_http_message_body) {
  1817.                                 f.m_connection_http_message_body.disabled = true;
  1818.                         }
  1819.                         f.m_connection_json_path.disabled = true;
  1820.                 } else {
  1821.                         f.m_connection_schema.value = getField(cs, ";SCHEMA=");
  1822.                         f.m_connection_http_method.value = getField(cs, ";METHOD=");
  1823.                         if(f.m_connection_http_method.value == 'POST'){
  1824.                                 f.m_connection_http_mime_type.value = getField(cs, ";MIME_TYPE=");
  1825.                                 f.m_connection_http_message_body.value = getField(cs, ";DATA=");
  1826.                         }
  1827.                         f.m_connection_json_path.value = getField(cs, ";PATH=");
  1828.                 }
  1829.                 f.m_connection_authentication_type.value = getField(cs,';AUTHENTICATION_TYPE=');
  1830.                 if(f.m_connection_authentication_type.value == 'OAuth1.0'){
  1831.                         f.m_connection_temporary_token_endpoint.value = getField(cs,';TEMPORARY_TOKEN_ENDPOINT=');
  1832.                         f.m_connection_authorization_endpoint.value = getField(cs,';AUTHORIZATION_ENDPOINT=');
  1833.                         f.m_connection_token_endpoint.value = getField(cs,';TOKEN_ENDPOINT=');
  1834.                 }
  1835.                 if(f.m_connection_authentication_type.value == 'OAuth2.0'){
  1836.                         f.m_connection_authorization_endpoint.value = getField(cs,';AUTHORIZATION_ENDPOINT=');
  1837.                         f.m_connection_token_endpoint.value = getField(cs,';TOKEN_ENDPOINT=');
  1838.                         f.m_connection_scope.value = getField(cs,';SCOPE=');
  1839.                 }
  1840.         }      
  1841.         else if (connectType == 'cognosnow')
  1842.         {
  1843.                 // Determine if a userid and password are required.
  1844.                 var start;
  1845.                 var end;
  1846.                 // Determine the CognosNow port.
  1847.                 start = cs.indexOf(":");
  1848.                 end = cs.indexOf("/", start + 1);
  1849.                 if (start != -1 && end != -1)
  1850.                 {
  1851.                         f.m_connection_port.value = cs.substring(start+1, end);
  1852.                 }
  1853.                 //Determine the CognosNow server
  1854.                 var startServer = cs.indexOf("SERVER=");
  1855.                 if (startServer != -1) {
  1856.                         if (start!=-1)
  1857.                         {
  1858.                                 f.m_connection_servername.value = cs.substring(startServer+7, start);
  1859.                         }
  1860.                         else if (end!=-1)
  1861.                         {
  1862.                                 f.m_connection_servername.value = cs.substring(startServer+7, end-1);                  
  1863.                         }
  1864.                 }
  1865.  
  1866.                 //Determine the file name and path.
  1867.                 start = cs.indexOf("/");
  1868.                 if (start != -1)
  1869.                 {
  1870.                         cs = cs.substring(start, cs.length-1);
  1871.                 }
  1872.         }
  1873.         else if (connectType == 'sap')
  1874.         {
  1875.  
  1876.                 // Determine the server name.
  1877.                 f.m_connection_database.value = getField(cs, "server=");
  1878.  
  1879.                 // Determine the system number.
  1880.                 if (f.m_connection_sys_no)
  1881.                 {
  1882.                         f.m_connection_sys_no.value = getField(cs, "sysnr=");
  1883.                 }
  1884.  
  1885.                 // Determine the system id.
  1886.                 if (f.m_connection_sys_id)
  1887.                 {
  1888.                         f.m_connection_sys_id.value = getField(cs, "sysid=");
  1889.                 }
  1890.                
  1891.                 // Determine the logon group.
  1892.                 if (f.m_connection_logon)
  1893.                 {
  1894.                         f.m_connection_logon.value = getField(cs, "logonGroup=");
  1895.                 }
  1896.                
  1897.                 // Determine the client number.
  1898.                 f.m_connection_client_no.value = getField(cs, "client=");
  1899.  
  1900.                 // Determine the system number.
  1901.                 if (f.m_connection_sap_codepage)
  1902.                 {
  1903.                         var value = getField(cs, "codePage=")
  1904.                         if (value == '')
  1905.                         {
  1906.                                 f.m_connection_sap_codepage.value = "4110";
  1907.                         }                      
  1908.                         else
  1909.                         {
  1910.                                 f.m_connection_sap_codepage.value = value;
  1911.                         }
  1912.                 }
  1913.  
  1914.                 // default the signon section
  1915.                 if (f.authentication)
  1916.                 {
  1917.                         if (credentialNamespaces == 'true')
  1918.                         {
  1919.                                 f.authentication[0].checked = true;
  1920.                         }
  1921.                         else
  1922.                         {
  1923.                                 f.authentication[1].checked = true;
  1924.                         }
  1925.                 }
  1926.  
  1927.                 // Determine the router string.
  1928.                 if (f.m_connection_router_string)
  1929.                 {
  1930.                         f.m_connection_router_string.value = getField(cs, "routerString=");
  1931.                 }              
  1932.         }
  1933.         else if (connectType == 'sapR3' || connectType == 'sapECC')
  1934.         {
  1935.  
  1936.                 // Determine the server name.
  1937.                 f.m_connection_hostname.value = getField(cs, "hostname=");
  1938.  
  1939.                 f.m_connection_sys_no.value = getField(cs, "sysnr=");
  1940.  
  1941.                 f.m_connection_gateway_host.value = getField(cs, "gateway_host=");
  1942.  
  1943.                 f.m_connection_gateway_service.value = getField(cs, "gateway_service=");
  1944.  
  1945.                 f.m_connection_client.value = getField(cs, "client=");
  1946.  
  1947.                 f.m_connection_destination.value = getField(cs, "destination=");
  1948.                
  1949.                 f.m_connection_sap_language.value = getField(cs, "language=");
  1950.  
  1951.                 // Determine the background.
  1952.                 var value = getField(cs, "background=")
  1953.                 if (value == 'ON')
  1954.                 {
  1955.                         f.m_connection_background.checked=true;
  1956.                 }
  1957.                 else
  1958.                 {
  1959.                         f.m_connection_background.checked=false;
  1960.                 }
  1961.                 if (connectType == 'sapR3')
  1962.                 {
  1963.                         var cogudajoin = getField(cs, "cogudaouterjoin=");
  1964.                         if (cogudajoin == 'ON')
  1965.                         {
  1966.                                 f.m_connection_cogudaouterjoin.value = cogudajoin;
  1967.                         }
  1968.                 }
  1969.                 // Determine the collation sequence.
  1970.                 f.m_connection_colseq.value = getField(cs, "COLSEQ=");
  1971.         }
  1972.         else if (connectType == 'jdbc-db2')
  1973.         {
  1974.                 // [^User ID:][^?Password:];LOCAL;JD-D2;URL=<URLSPEC>;DRIVER_NAME=com.ibm.db2.jcc.DB2Driver[;CognosProperty1=value1[;...]]
  1975.                 // where
  1976.                 // URLSPEC = jdbc:db2://<SERVERNAME>:<PORT>/<DBNAME>[:[jdbcproperty1=jdbcvalue1][;jdbcproperty2=jdbcvalue2]...]
  1977.                
  1978.                 // Authentication:  [0] None, [1] Namespace, [2] Signon (User ID/[Password])
  1979.                
  1980.                 if (credentialNamespaces == 'true') {
  1981.                         f.authentication[1].checked = true;
  1982.                 } else if (cs.indexOf("^User ID:") != -1) {
  1983.                         f.authentication[2].checked = 'true';
  1984.                         f.m_connection_use_pword.disabled = false;
  1985.                         if (cs.indexOf("^?Password:") != -1) {
  1986.                                 f.m_connection_use_pword.checked = true;
  1987.                         }
  1988.                 } else {
  1989.                         f.authentication[0].checked = 'true';
  1990.                 }
  1991.  
  1992.                 var serverNameEnd;
  1993.                 var urlProtocol = "jdbc:db2://";
  1994.                 var urlStart = cs.indexOf(urlProtocol);
  1995.                 if (urlStart != -1) {
  1996.                         serverNameEnd = cs.indexOf(":", urlStart + urlProtocol.length);
  1997.                         if (serverNameEnd != -1) {
  1998.                                 f.m_connection_servername.value = cs.substring(urlStart + urlProtocol.length, serverNameEnd);
  1999.                         }
  2000.                 }
  2001.                
  2002.                 var portEnd = cs.indexOf("/", serverNameEnd + 1);
  2003.                 if (portEnd != -1) {
  2004.                         f.m_connection_port.value = cs.substring(serverNameEnd + 1, portEnd);
  2005.                 }
  2006.                
  2007.                 var urlEnd;
  2008.                 var dbNameEnd = cs.indexOf(":", portEnd + 1);
  2009.                 if (dbNameEnd != -1) {
  2010.                         // has JDBC properties
  2011.                         f.m_connection_jdbc_database_name.value = cs.substring(portEnd + 1, dbNameEnd);
  2012.                         var urlEnd = cs.indexOf(";DRIVER_NAME", dbNameEnd + 1);
  2013.                         if (urlEnd != -1) {
  2014.                                 f.m_connection_jdbc_parameters.value = cs.substring(dbNameEnd + 1, urlEnd);
  2015.                         }
  2016.                 } else {
  2017.                         var urlEnd = cs.indexOf(";DRIVER_NAME", portEnd + 1);
  2018.                         if (urlEnd != -1) {
  2019.                                 f.m_connection_jdbc_database_name.value = cs.substring(portEnd + 1, urlEnd);
  2020.                         }
  2021.                 }
  2022.  
  2023.                 if (isCheckboxChecked(f.m_transformUserIdentification)){
  2024.                         connectString += '@TRANSFORMUID=TRUE';
  2025.                 }
  2026.  
  2027.                 f.m_connection_jdbc_sort_colseq.value = getFieldStartingAt(cs, urlEnd + 1, "LOCALSORT=", ";");
  2028.                 f.m_connection_jdbc_sort_level.value = getFieldStartingAt(cs, urlEnd + 1, "LEVEL=", ";");
  2029.  
  2030.         }      
  2031.         else if (connectType == 'jdbc-oracle')
  2032.         {
  2033.                 // [^User ID:][^?Password:];LOCAL;JD-OR;URL=<URLSPEC>;DRIVER_NAME=oracle.jdbc.OracleDriver  [;CognosProperty1=value1[;...]]
  2034.                 // where
  2035.                 // URLSPEC = jdbc:oracle:thin:@//<SERVERNAME>:<PORT>/<SERVICE_D>
  2036.                 // URLSPEC = jdbc:oracle:thin:@(DESCRIPTION=...)
  2037.                 // URLSPEC = jdbc:oracle:thin:@(DESCRIPTION_LIST=...)
  2038.                 // URLSPEC = jdbc:oracle:oci:@<TNS_NAME>
  2039.                 // URLSPEC = jdbc:oracle:oci:@(DESCRIPTION=...)
  2040.                 // or URLSPEC = jdbc:oracle:oci:@(DESCRIPTION_LIST=...)
  2041.                
  2042.                 // Authentication:  Signon (User ID/[Password])
  2043.                
  2044.                 if (cs.indexOf("^User ID:") != -1) {
  2045.                         f.m_connection_use_userid.checked = true;
  2046.                         f.m_connection_use_pword.disabled = false;
  2047.                         if (cs.indexOf("^?Password:") != -1) {
  2048.                                 f.m_connection_use_pword.checked = true;
  2049.                         }
  2050.                 }
  2051.  
  2052.                 var urlEnd;
  2053.                 if (cs.indexOf('DESCRIPTION') != -1 || cs.indexOf('DESCRIPTION_LIST') != -1) {
  2054.                         // Oracle Net Descriptor
  2055.                         f.m_connection_jdbc_oracle_style[2].checked = true;
  2056.                        
  2057.                         var thinURLProtocol = "jdbc:oracle:thin:@";
  2058.                         var thinURLStart = cs.indexOf(thinURLProtocol);
  2059.                         if (thinURLStart != -1) {
  2060.                                 // Thin
  2061.                                 f.m_connection_jdbc_oracle_driver_type[0].checked = true;
  2062.                                
  2063.                                 urlEnd = cs.indexOf(";DRIVER_NAME", thinURLStart + thinURLProtocol.length);
  2064.                                 if (urlEnd != -1) {
  2065.                                         f.m_connection_oracle_net_descriptor.value = formatOracleNetDesc(cs.substring(thinURLStart + thinURLProtocol.length, urlEnd));
  2066.                                 }
  2067.                                
  2068.                         } else {
  2069.                                 // OCI
  2070.                                 f.m_connection_jdbc_oracle_driver_type[1].checked = true;
  2071.                                
  2072.                                 var ociProtocol = "jdbc:oracle:oci:@";
  2073.                                 var ociURLStart = cs.indexOf(ociProtocol);
  2074.                                 if (ociURLStart != -1) {
  2075.                                         urlEnd = cs.indexOf(";DRIVER_NAME", ociURLStart + ociProtocol.length);
  2076.                                         if (urlEnd != -1) {
  2077.                                                 f.m_connection_oracle_net_descriptor.value = formatOracleNetDesc(cs.substring(ociURLStart + ociProtocol.length, urlEnd));
  2078.                                         }
  2079.                                 }
  2080.                         }
  2081.                        
  2082.                 } else {
  2083.                         var thinServiceIDProtocol = "jdbc:oracle:thin:@//";
  2084.                         var thinURLStart = cs.indexOf(thinServiceIDProtocol);
  2085.                         if (thinURLStart != -1) {
  2086.                                 // Service ID
  2087.                                 f.m_connection_jdbc_oracle_style[0].checked = true;
  2088.                                
  2089.                                 var serverNameEnd = cs.indexOf(":", thinURLStart + thinServiceIDProtocol.length);
  2090.                                 if (serverNameEnd != -1) {
  2091.                                         f.m_connection_servername.value = cs.substring(thinURLStart + thinServiceIDProtocol.length, serverNameEnd);
  2092.                                 }
  2093.                                
  2094.                                 var portEnd = cs.indexOf("/", serverNameEnd + 1);
  2095.                                 if (portEnd != -1) {
  2096.                                         f.m_connection_port.value = cs.substring(serverNameEnd + 1, portEnd);
  2097.                                 }
  2098.                                
  2099.                                 urlEnd = cs.indexOf(";DRIVER_NAME", portEnd + 1);
  2100.                                 if (urlEnd != -1) {
  2101.                                         f.m_connection_oracle_service_id.value = cs.substring(portEnd + 1, urlEnd);
  2102.                                 }
  2103.                         } else {
  2104.                                 var ociProtocol = "jdbc:oracle:oci:@";
  2105.                                 var ociURLStart = cs.indexOf(ociProtocol);
  2106.                                 if (ociURLStart != -1) {
  2107.                                         // TNS Names Alias
  2108.                                         f.m_connection_jdbc_oracle_style[1].checked = true;
  2109.                                
  2110.                                         urlEnd = cs.indexOf(";DRIVER_NAME", ociURLStart + ociProtocol.length);
  2111.                                         if (urlEnd != -1) {
  2112.                                                 f.m_connection_oracle_tns_name.value = cs.substring(ociURLStart + ociProtocol.length, urlEnd);
  2113.                                         }
  2114.                                 }
  2115.                         }
  2116.                 }
  2117.                
  2118.                 // find out if there are driver specific properties
  2119.                 // urlEnd = cs.indexOf(";DRIVER_NAME");
  2120.                 var driverEnd = cs.indexOf(";", urlEnd + ";DRIVER_NAME".length);
  2121.                 if (driverEnd != -1) {
  2122.                         var localsortstart = cs.indexOf(";LOCALSORT", driverEnd)
  2123.                         if (localsortstart != -1) {
  2124.                                 if (localsortstart != driverEnd ) {
  2125.                                  f.m_connection_jdbc_parameters.value = cs.substring(driverEnd + 1, cs.indexOf(";LOCALSORT", driverEnd));
  2126.                                 }
  2127.                         } else {
  2128.                                 f.m_connection_jdbc_parameters.value = cs.substring(driverEnd + 1);
  2129.                         }
  2130.                         f.m_connection_jdbc_sort_colseq.value = getFieldStartingAt(cs, urlEnd + 1, "LOCALSORT=", ";");
  2131.                         f.m_connection_jdbc_sort_level.value = getFieldStartingAt(cs, urlEnd + 1, "LEVEL=", ";");
  2132.                 }                      
  2133.         }      
  2134.         else if (connectType == 'jdbc-generic' || connectType == 'lob-jdbc')
  2135.         {
  2136.                 // [^User ID:][^?Password:];LOCAL;JDBC;URL=jdbc:<subprotocol>:<URL>;DRIVER_NAME=<DRIVER_NAME>[;CognosProperty1=value1[;...]]
  2137.                 // where
  2138.         // subprotocol is defined in generateDatasourceMetadata.
  2139.                 // URL is user specified.
  2140.  
  2141.                 if (credentialNamespaces == 'true' ) {
  2142.                         selectRadioButton(f.authentication, 'namespace');              
  2143.                 } else if (cs.indexOf("^User ID:") != -1) {                    
  2144.                         selectRadioButton(f.authentication, 'signon');
  2145.                         f.m_connection_use_pword.disabled = false;
  2146.                         if (cs.indexOf("^?Password:") != -1) {
  2147.                                 f.m_connection_use_pword.checked = true;
  2148.                         }
  2149.                 } else {
  2150.                         selectRadioButton(f.authentication, 'none');
  2151.                 }
  2152.                
  2153.                 var urlConstant = "URL=";
  2154.                 var urlStart = cs.indexOf(urlConstant)
  2155.                 if (urlStart != -1) {
  2156.                         var urlEnd;
  2157.                         var driverConstant = ";DRIVER_NAME=";
  2158.                         urlEnd = cs.indexOf(driverConstant, urlStart + urlConstant.length);
  2159.                         if (urlEnd != -1) {
  2160.                                 var jdbcUrl = cs.substring(urlStart + urlConstant.length, urlEnd);
  2161.                 var protocolStart = "jdbc:".length;
  2162.                                 // Sybase and Greenplum have ':' in the protocol name so searching for the first index doesn't work
  2163.                                 // Have to put in a static check for now. If we get too many exceptions we should look at
  2164.                                 // reading the connections metadata file for a list subprotocols.
  2165.                 var protocolEnd = jdbcUrl.indexOf(":", protocolStart);
  2166.                 if (protocolEnd != -1) {
  2167.                                         var subprotocol = jdbcUrl.substring(protocolStart, protocolEnd);
  2168.                                         if (subprotocol.toLowerCase() == "sybase" || subprotocol.toLowerCase() == "pivotal") {
  2169.                                                 protocolEnd = jdbcUrl.indexOf(":", protocolEnd + 1);
  2170.                                                 subprotocol = jdbcUrl.substring(protocolStart, protocolEnd);
  2171.                                         }
  2172.                     f.m_jdbc_connection_code = subprotocol;
  2173.                                         f.m_jdbc_connection_url.value = jdbcUrl;
  2174.                 }
  2175.                                 var driverEnd = cs.indexOf(";", urlEnd + driverConstant.length);
  2176.                                 if (driverEnd != -1) {
  2177.                                         f.m_jdbc_driver_class.value = cs.substring(urlEnd + driverConstant.length, driverEnd);
  2178.                                         var localSort = "LOCALSORT=";
  2179.                                         var propEnd = cs.indexOf(localSort, driverEnd + 1);
  2180.                                         if (propEnd == -1) {
  2181.                                                 f.m_jdbc_connection_properties.value = cs.substring(driverEnd + 1);
  2182.                                         } else if (propEnd == 0) {
  2183.                                                 f.m_jdbc_connection_properties.value = '';
  2184.                                         } else {
  2185.                                                 f.m_jdbc_connection_properties.value = cs.substring(driverEnd + 1, propEnd);
  2186.                                         }
  2187.                                         f.m_connection_jdbc_sort_colseq.value = getFieldStartingAt(cs, driverEnd, "LOCALSORT=", ";");
  2188.                                         f.m_connection_jdbc_sort_level.value = getFieldStartingAt(cs, driverEnd, "LEVEL=", ";");
  2189.                                 } else {
  2190.                                         f.m_jdbc_driver_class.value = cs.substring(urlEnd + driverConstant.length);
  2191.                                 }
  2192.                                
  2193.                                 // Determine the User Identification Transform value.
  2194.                                 start = cs.indexOf("@TRANSFORMUID");
  2195.                                 if (start != -1)
  2196.                                 {
  2197.                                         f.m_transformUserIdentification.checked = true;
  2198.                                 }
  2199.                         }
  2200.                 }
  2201.         }
  2202.         else if (connectType == 'filenet')
  2203.         {
  2204.                 // [^User ID:][^?Password:];LOCAL;RP-CMIS-FILENET;URL=<URLSPEC>;DRIVER_NAME=<DRIVER_NAME>;ROOT=GRAPHIC[;CognosProperty1=value1[;...]]
  2205.                 // where
  2206.                 // URLSPEC = specific to the driver
  2207.                
  2208.                 // Authentication:  Signon (User ID/[Password])
  2209.                
  2210.                 if (cs.indexOf("^User ID:") != -1) {
  2211.                         f.m_connection_use_userid.checked = true;
  2212.                         f.m_connection_use_pword.disabled = false;
  2213.                         if (cs.indexOf("^?Password:") != -1) {
  2214.                                 f.m_connection_use_pword.checked = true;
  2215.                         }
  2216.                 }
  2217.                
  2218.                 connectionData = [
  2219.                         {key: "URL=", field: "m_connection_jdbc_url", end: ";DRIVER_NAME="},
  2220.                         {key: "DRIVER_NAME=", field: "m_connection_jdbc_driverclass", end: ";"},
  2221.                         {key: "ROOT=", field: "m_connection_file", end: ";"},
  2222.                         {key: "PROVIDER=", field: "", end: ";"}
  2223.                 ];
  2224.                 var startAt = cs.indexOf(connectionData[1].key);
  2225.                 var repositoryPluginType = getFieldStartingAt(cs, startAt, connectionData[1].key, connectionData[1].end);
  2226.                 var provider;
  2227.                 var isFilesystem = false;
  2228.                 if(repositoryPluginType == 'com.ibm.cognos.cm.fileSystemPlugin.FileSystemArchivePlugin') {
  2229.                         f[connectionData[1].field].value = "FileSystem";
  2230.                         isFilesystem = true;
  2231.                 } else {
  2232.                         startAt = cs.indexOf(connectionData[3].key);
  2233.                         if (startAt>=0) {
  2234.                                 provider = getFieldStartingAt(cs, startAt, connectionData[3].key, connectionData[3].end);
  2235.                                 if (isSupportedCmisProvider(provider)) {
  2236.                                         f[connectionData[1].field].value = "CMIS_" + provider;
  2237.                                 } else {
  2238.                                         f[connectionData[1].field].value = "CMIS_FileNet";
  2239.                                 }
  2240.                         } else {
  2241.                                 f[connectionData[1].field].value = "CMIS_FileNet";
  2242.                         }
  2243.                 }
  2244.                 repoTypeSelectInd=f[connectionData[1].field].selectedIndex;
  2245.                
  2246.                 startAt = cs.indexOf(connectionData[0].key);
  2247.                 if(isFilesystem) {
  2248.                         f[connectionData[0].field].value = getFieldStartingAt(cs, startAt, connectionData[0].key+'alias:', connectionData[0].end);
  2249.                 } else {
  2250.                         f[connectionData[0].field].value = getFieldStartingAt(cs, startAt, connectionData[0].key, connectionData[0].end);
  2251.                 }
  2252.                 var endAt = 0;
  2253.                 startAt = cs.indexOf(connectionData[2].key);
  2254.                 if (startAt >= 0) {
  2255.                         f[connectionData[2].field].value = getFieldStartingAt(cs, startAt, connectionData[2].key, connectionData[2].end);
  2256.                         if (isSupportedCmisProvider(provider)) {
  2257.                                 endAt = cs.indexOf(connectionData[3].key) + connectionData[3].key.length + provider.length;
  2258.                         } else {
  2259.                                 endAt = cs.indexOf(connectionData[2].key) + connectionData[2].key.length + f[connectionData[2].field].value.length;
  2260.                         }
  2261.                 } else {
  2262.                         if (isSupportedCmisProvider(provider)) {
  2263.                                 endAt = cs.indexOf(connectionData[3].key) + connectionData[3].key.length + provider.length;
  2264.                         } else {
  2265.                                 endAt = cs.indexOf(connectionData[1].key) + connectionData[1].key.length + repositoryPluginType.length;
  2266.                         }
  2267.                 }
  2268.                 f.m_connection_jdbc_parameters.value = cs.substring(endAt + 1);
  2269.         }
  2270.         else if (connectType == 'jdbc-sql')
  2271.         {
  2272.                 // [^User ID:][^?Password:];LOCAL;JD-SS;URL=<URLSPEC>;DRIVER_NAME=com.microsoft.sqlserver.jdbc.SQLServerDriver[;CognosProperty1=value1[;...]]
  2273.                 // where
  2274.                 // URLSPEC = jdbc:sqlserver://<SERVERNAME>:<PORT>[;INSTANCENAME=<INSTNAME>];DATABASE=<DB>[;LOGINTIMEOUT=<TIMEOUT>][;integratedSecurity=true][;[jdbcproperty1=jdbcvalue1][;jdbcproperty2=jdbcvalue2]...]
  2275.                
  2276.                 // Authentication:  [0] None, [1] C8 service creds, [2] Namespace, [3] Signon (User ID/[Password])
  2277.  
  2278.                 if (credentialNamespaces == 'true') {
  2279.                         f.authentication[2].checked = 'true';
  2280.                 } else if (cs.indexOf("^User ID:") != -1) {                                                                    
  2281.                         f.authentication[3].checked = true;
  2282.                         f.m_connection_use_pword.disabled = false;
  2283.                         if (cs.indexOf("^?Password:") != -1) {
  2284.                                 f.m_connection_use_pword.checked = true;
  2285.                         }
  2286.                 } else if (cs.indexOf(";integratedSecurity=true") != -1) {
  2287.                         f.authentication[1].checked = true;
  2288.                 } else {
  2289.                         f.authentication[0].checked = true;
  2290.                 }
  2291.                
  2292.                 var serverNameEnd;
  2293.                 var urlProtocol = "jdbc:sqlserver://";
  2294.                 var urlStart = cs.indexOf(urlProtocol);
  2295.                 var portEnd = -1;
  2296.                 if (urlStart != -1) {
  2297.                         serverNameEnd = cs.indexOf(":", urlStart + urlProtocol.length);
  2298.             portEnd = cs.indexOf(";", urlStart + urlProtocol.length);
  2299.             var hasPort = true;
  2300.             if (serverNameEnd == -1 || serverNameEnd > portEnd) {
  2301.                 serverNameEnd = portEnd;
  2302.                 hasPort = false;
  2303.             }
  2304.                         if (serverNameEnd != -1) {
  2305.                                 f.m_connection_servername.value = cs.substring(urlStart + urlProtocol.length, serverNameEnd);
  2306.                         }
  2307.             if (hasPort) {
  2308.                 f.m_connection_port.value = cs.substring(serverNameEnd + 1, portEnd);
  2309.             }
  2310.                 }
  2311.                
  2312.                 var startingWith = "INSTANCENAME=";
  2313.                 var start = cs.indexOf(startingWith, portEnd + 1);
  2314.                 if (start != -1) {
  2315.                         var end = cs.indexOf(";", start + startingWith.length);
  2316.                         if (end != -1) {
  2317.                                 f.m_connection_sql_instance_name.value = cs.substring(start + startingWith.length, end);
  2318.                         } else {
  2319.                                 f.m_connection_sql_instance_name.value = cs.substring(start + startingWith.length);
  2320.                         }
  2321.                         cs = cs.replace(eval("/;" + startingWith + f.m_connection_sql_instance_name.value + "/"), "");
  2322.                 }
  2323.                
  2324.                 var startingWith = "DATABASE=";
  2325.                 var start = cs.indexOf(startingWith, portEnd + 1);
  2326.                 if (start != -1) {
  2327.                         var end = cs.indexOf(";", start + startingWith.length);
  2328.                         if (end != -1) {
  2329.                                 f.m_connection_jdbc_database_name.value = cs.substring(start + startingWith.length, end);
  2330.                         } else {
  2331.                                 f.m_connection_jdbc_database_name.value = cs.substring(start + startingWith.length);
  2332.                         }
  2333.                         cs = cs.replace(eval("/;" + startingWith + f.m_connection_jdbc_database_name.value + "/"), "");
  2334.                 }
  2335.  
  2336.                 var startingWith = "LOGINTIMEOUT=";
  2337.                 var start = cs.indexOf(startingWith, portEnd + 1);
  2338.                 if (start != -1) {
  2339.                         var end = cs.indexOf(";", start + startingWith.length);
  2340.                         if (end != -1) {
  2341.                                 f.m_connection_jdbc_connect_time.value = cs.substring(start + startingWith.length, end);
  2342.                         } else {
  2343.                                 f.m_connection_jdbc_connect_time.value = cs.substring(start + startingWith.length);
  2344.                         }
  2345.                         cs = cs.replace(eval("/;" + startingWith + f.m_connection_jdbc_connect_time.value + "/"), "");
  2346.                 }
  2347.                
  2348.                 cs = cs.replace(/;integratedSecurity=true/, "");
  2349.                
  2350.                 var startingWith = ";DRIVER_NAME=";
  2351.                 var start = cs.indexOf(startingWith, portEnd);
  2352.                 if (start != portEnd) {
  2353.                         f.m_connection_jdbc_parameters.value = cs.substring(portEnd + 1, start);
  2354.                 }
  2355.                  
  2356.                 f.m_connection_jdbc_sort_colseq.value = getFieldStartingAt(cs, portEnd + 1, "LOCALSORT=", ";");
  2357.                 f.m_connection_jdbc_sort_level.value = getFieldStartingAt(cs, portEnd + 1, "LEVEL=", ";");
  2358.  
  2359.         }      
  2360.         else if (connectType == 'jdbc-teradata')
  2361.         {
  2362.                 // [^User ID:][^?Password:];LOCAL;JD-TD;URL=<URLSPEC>;DRIVER_NAME=com.teradata.jdbc.TeraDriver[;CognosProperty1=value1[;...]]
  2363.                 // where
  2364.                 // URLSPEC = jdbc:teradata://<SERVERNAME>/DBS_PORT=<PORT>,DATABASE=<DBNAME>[,jdbcproperty1=jdbcvalue1][,jdbcproperty2=jdbcvalue2]...
  2365.                
  2366.                 // Authentication:  [0] None, [1] Namespace, [2] Signon (User ID/[Password])
  2367.                
  2368.                 if (credentialNamespaces == 'true') {
  2369.                         f.authentication[1].checked = true;
  2370.                 } else if (cs.indexOf("^User ID:") != -1) {
  2371.                         f.authentication[2].checked = 'true';
  2372.                         f.m_connection_use_pword.disabled = false;
  2373.                         if (cs.indexOf("^?Password:") != -1) {
  2374.                                 f.m_connection_use_pword.checked = true;
  2375.                         }
  2376.                 } else {
  2377.                         f.authentication[0].checked = 'true';
  2378.                 }
  2379.  
  2380.                 var serverNameEnd;
  2381.                 var urlProtocol = "jdbc:teradata://";
  2382.                 var urlStart = cs.indexOf(urlProtocol);
  2383.                 var dbs_port = "DBS_PORT=";
  2384.                 var dbs_port_start = cs.indexOf(dbs_port, serverNameEnd + 1);
  2385.                
  2386.                 if (urlStart != -1) {
  2387.                         if (dbs_port_start != -1) {
  2388.                                 serverNameEnd = cs.indexOf("/", urlStart + urlProtocol.length);
  2389.                         } else {
  2390.                                 serverNameEnd = cs.indexOf(",", urlStart + urlProtocol.length);
  2391.                                 if (serverNameEnd == -1){
  2392.                                         serverNameEnd = cs.indexOf(";", urlStart + urlProtocol.length);
  2393.                                 }      
  2394.                         }
  2395.                        
  2396.                         if (serverNameEnd != -1) {
  2397.                                 f.m_connection_servername.value = cs.substring(urlStart + urlProtocol.length, serverNameEnd);
  2398.                         }
  2399.                 }
  2400.                
  2401.                 var startingWith = "DBS_PORT=";
  2402.                 var start = cs.indexOf(startingWith, serverNameEnd + 1);
  2403.                 if (start != -1) {
  2404.                         var end = cs.indexOf(",", start + startingWith.length);
  2405.                         if (end != -1) {
  2406.                                 f.m_connection_port.value = cs.substring(start + startingWith.length, end);
  2407.                         } else {
  2408.                                 var end = cs.indexOf(";", start + startingWith.length);
  2409.                                 if (end != -1) {
  2410.                                         f.m_connection_port.value = cs.substring(start + startingWith.length, end);
  2411.                                 }
  2412.                         }
  2413.                         var separator = "";
  2414.                         if (cs.charAt(start-1) == ",") {
  2415.                                 separator = ",";
  2416.                         }
  2417.                         cs = cs.replace(eval("/" + separator + startingWith + f.m_connection_port.value + "/"), "");
  2418.                 }
  2419.                
  2420.                 var startingWith = "DATABASE=";
  2421.                 var start = cs.indexOf(startingWith, serverNameEnd);
  2422.                 if (start != -1) {
  2423.                         var end = cs.indexOf(",", start + startingWith.length);
  2424.                         if (end != -1) {
  2425.                                 f.m_connection_jdbc_database_name.value = cs.substring(start + startingWith.length, end);
  2426.                         } else {
  2427.                                 var end = cs.indexOf(";", start + startingWith.length);
  2428.                                 if (end != -1) {
  2429.                                         f.m_connection_jdbc_database_name.value = cs.substring(start + startingWith.length, end);
  2430.                                 }
  2431.                         }
  2432.                         var separator = "";
  2433.                         if (cs.charAt(start-1) == ",") {
  2434.                                 separator = ",";
  2435.                         }
  2436.                         cs = cs.replace(eval("/" + separator + startingWith + f.m_connection_jdbc_database_name.value + "/"), "");
  2437.                 }
  2438.                
  2439.                 var startingWith = ";DRIVER_NAME=";
  2440.                 var start = cs.indexOf(startingWith, serverNameEnd);
  2441.                 if (start != serverNameEnd + 1 && start != serverNameEnd) {
  2442.                         if (cs.charAt(serverNameEnd + 1) == ",") {
  2443.                                 f.m_connection_jdbc_parameters.value = cs.substring(serverNameEnd + 2, start);
  2444.                         } else {
  2445.                                 f.m_connection_jdbc_parameters.value = cs.substring(serverNameEnd + 1, start);
  2446.                         }
  2447.                 }              
  2448.  
  2449.                 f.m_connection_jdbc_sort_colseq.value = getFieldStartingAt(cs, serverNameEnd + 1, "LOCALSORT=", ";");
  2450.                 f.m_connection_jdbc_sort_level.value = getFieldStartingAt(cs, serverNameEnd + 1, "LEVEL=", ";");
  2451.  
  2452.         }      
  2453.         else if (connectType == 'jdbc-netezza')
  2454.         {
  2455.                 // [^User ID:][^?Password:];LOCAL;JD-NZ;URL=<URLSPEC>;DRIVER_NAME=org.netezza.Driver[;CognosProperty1=value1[;...]]
  2456.                 // where
  2457.                 // URLSPEC = jdbc:netezza://<SERVERNAME>[:<PORT>]/<DBNAME>[[;jdbcproperty1=jdbcvalue1][;jdbcproperty2=jdbcvalue2]...]
  2458.                
  2459.                 // Authentication:  [0] None, [1] Namespace, [2] Signon (User ID/[Password])
  2460.                
  2461.                 if (credentialNamespaces == 'true') {
  2462.                         f.authentication[1].checked = true;
  2463.                 } else if (cs.indexOf("^User ID:") != -1) {
  2464.                         f.authentication[2].checked = 'true';
  2465.                         f.m_connection_use_pword.disabled = false;
  2466.                         if (cs.indexOf("^?Password:") != -1) {
  2467.                                 f.m_connection_use_pword.checked = true;
  2468.                         }
  2469.                 } else {
  2470.                         f.authentication[0].checked = 'true';
  2471.                 }
  2472.  
  2473.  
  2474.                 var serverNameEnd;
  2475.                 var urlProtocol = "jdbc:netezza://";
  2476.                 var urlStart = cs.indexOf(urlProtocol);
  2477.                
  2478.                 if (urlStart != -1) {
  2479.                     var serverPortEnd = cs.indexOf("/", urlStart + urlProtocol.length);
  2480.                     if (serverPortEnd != -1) {
  2481.                         var serverAndPort = cs.substring(urlStart + urlProtocol.length, serverPortEnd);
  2482.                         var indexOfPortStart = serverAndPort.indexOf(":");
  2483.                         if (indexOfPortStart == -1){
  2484.                             //in this case there was no port so just set the sername to the whole thing and forget about the port
  2485.                             f.m_connection_servername.value = serverAndPort;
  2486.                         } else {
  2487.                     //in this case we have a server and a port so need to take care of that
  2488.                     f.m_connection_servername.value =  serverAndPort.substring(0, indexOfPortStart);
  2489.                     f.m_connection_port.value =   serverAndPort.substring(indexOfPortStart + 1);  
  2490.                         }
  2491.                     }    
  2492.                 }
  2493.                
  2494.                 var urlEnd;
  2495.                 var dbNameEnd = cs.indexOf(";", serverPortEnd + 1);
  2496.                 if (dbNameEnd != -1) {
  2497.                         f.m_connection_jdbc_database_name.value = cs.substring(serverPortEnd + 1, dbNameEnd);
  2498.                         urlEnd = cs.indexOf(";DRIVER_NAME", dbNameEnd + 1);
  2499.                         if (urlEnd != -1) {
  2500.                                 f.m_connection_jdbc_parameters.value = cs.substring(dbNameEnd + 1, urlEnd);
  2501.                         }
  2502.                 }
  2503.                
  2504.                 f.m_connection_jdbc_sort_colseq.value = getFieldStartingAt(cs, urlEnd + 1, "LOCALSORT=", ";");
  2505.                 f.m_connection_jdbc_sort_level.value = getFieldStartingAt(cs, urlEnd + 1, "LEVEL=", ";");
  2506.  
  2507.         }      
  2508.         else if (connectType == 'xml')
  2509.         {
  2510.                 f.m_connection_database.value = cs.substring(11);      
  2511.         }
  2512.         else if (connectType == "sr3")
  2513.         {
  2514.                 var connectionData = cs.substring(43);
  2515.                 var indexOfLB = connectionData.indexOf("LB:");
  2516.                 var endIndex = 0;
  2517.                 if (indexOfLB == -1)
  2518.                 {
  2519.                         endIndex = connectionData.indexOf(":");
  2520.                         f.m_connection_application_server.value = connectionData.substring(0,endIndex);
  2521.                     connectionData = connectionData.substring(endIndex + 1);
  2522.                     endIndex = connectionData.indexOf(":");
  2523.                     f.m_connection_system_number.value = connectionData.substring(0,endIndex);
  2524.                     connectionData = connectionData.substring(endIndex + 1);
  2525.                 }
  2526.                 else
  2527.                 {
  2528.                         f.m_connection_use_loadbalancing.checked = true;
  2529.                         f.m_connection_use_loadbalancing_hidden.value = "true";
  2530.                         endIndex = connectionData.indexOf(":", indexOfLB + 3);
  2531.                         f.m_connection_message_server.value = getFieldStartingAt(connectionData, 0, "LB:", ":");
  2532.                     connectionData = connectionData.substring(endIndex + 1);
  2533.                     endIndex = connectionData.indexOf(":");
  2534.                     f.m_connection_system_id.value = connectionData.substring(0,endIndex);
  2535.                     connectionData = connectionData.substring(endIndex + 1);
  2536.                     endIndex = connectionData.indexOf(":");
  2537.                     f.m_connection_logon_group.value = connectionData.substring(0,endIndex);
  2538.                     connectionData = connectionData.substring(endIndex + 1);
  2539.                 }
  2540.                 f.m_connection_router_string.value = getFieldStartingAt(connectionData, 0, "ROUTER_STRING=", ":");
  2541.                 endIndex = connectionData.indexOf(":");
  2542.             connectionData = connectionData.substring(endIndex + 1);
  2543.             endIndex = connectionData.indexOf(":");
  2544.                 f.m_connection_client.value = connectionData.substring(0,endIndex);
  2545.                 connectionData = connectionData.substring(endIndex + 1);
  2546.                 endIndex = connectionData.indexOf(";");
  2547.                 f.m_connection_language.value = connectionData.substring(0,endIndex);
  2548.                 connectionData = connectionData.substring(endIndex + 1);
  2549.                 f.m_connection_max_conn_in_pool.value = getFieldStartingAt(connectionData, 0, "MAX_CONN=", ";");
  2550.                 f.m_connection_abap_query_db_access_limit.value = getFieldStartingAt(connectionData, 0, "ABAP_QUERY_DB_ACCESSES=", ";");
  2551.                 f.m_connection_table_row_count.value = getFieldStartingAt(connectionData, 0, "TABLE_READ_COUNT=", ";");
  2552.                 f.m_connection_table_read_function.value = getFieldStartingAt(connectionData, 0, "READ_TABLE_FUNCTION_NAME=", ";");
  2553.         }
  2554.         else if (connectType == "sfdc")
  2555.         {
  2556.                 if (cs.indexOf("^?Password:") != -1)
  2557.                 {
  2558.                         f.m_connection_use_pword.checked = true;
  2559.                 }
  2560.  
  2561.                 var startIndex = cs.indexOf("sfdc:");
  2562.                 var connectionData = cs.substring(startIndex+5);
  2563.                 var endIndex = connectionData.indexOf(";");
  2564.                 f.m_connection_url.value = connectionData.substring(0,endIndex);
  2565.                 f.m_connection_conc_calls_limit.value = getFieldStartingAt(connectionData, 0, "CONCURRENT_CALLS_LIMIT=", ";");
  2566.                 f.m_connection_user_conc_calls_limit.value = getFieldStartingAt(connectionData, 0, "USER_CONCURRENT_CALLS_LIMIT=", ";");
  2567.                 f.m_connection_timeout.value = getFieldStartingAt(connectionData, 0, "CONNECTION_TIMEOUT=", ";");
  2568.                 f.m_connection_query_batch_size.value = getFieldStartingAt(connectionData, 0, "QUERY_BATCH_SIZE=", ";");
  2569.                 f.m_connection_max_retries.value = getFieldStartingAt(connectionData, 0, "MAX_RETRIES=", ";");
  2570.                 f.m_connection_wait_between_retries.value = getFieldStartingAt(connectionData, 0, "WAIT_BETWEEN_RETRIES=", ";");
  2571.  
  2572.                 if (getFieldStartingAt(connectionData, 0, "PROXY_ENABLED=", ";") == "true") {
  2573.                         f.m_connection_proxy_enabled.checked = true;
  2574.                         disableProxyControls(false);
  2575.                 } else {
  2576.                         f.m_connection_proxy_enabled.checked = false;
  2577.                         disableProxyControls(true);
  2578.                 }
  2579.                
  2580.                 setProxyControls();
  2581.                
  2582.                 f.m_connection_proxy_host.value = getFieldStartingAt(connectionData, 0, "PROXY_HOST=", ";");
  2583.                 f.m_connection_proxy_port.value = getFieldStartingAt(connectionData, 0, "PROXY_PORT=", ";");
  2584.         }      
  2585.         else if (connectType == "siebel")
  2586.         {
  2587.                 var connectionData = cs.substring(49);
  2588.             var endIndex = connectionData.indexOf(".");
  2589.             f.m_connection_transport.value = connectionData.substring(0,endIndex);
  2590.             connectionData = connectionData.substring(endIndex + 1);
  2591.             endIndex = connectionData.indexOf(".");
  2592.             f.m_connection_encryption.value = connectionData.substring(0,endIndex);
  2593.             connectionData = connectionData.substring(endIndex + 1);
  2594.             endIndex = connectionData.indexOf(":");
  2595.             f.m_connection_compression.value = connectionData.substring(0,endIndex);
  2596.             connectionData = connectionData.substring(endIndex + 1);
  2597.             endIndex = connectionData.indexOf(":");
  2598.             f.m_connection_gatewayserver.value = connectionData.substring(2,endIndex);
  2599.             connectionData = connectionData.substring(endIndex + 1);
  2600.             endIndex = connectionData.indexOf("/");
  2601.             f.m_connection_gatewayport.value = connectionData.substring(0,endIndex);
  2602.             connectionData = connectionData.substring(endIndex + 1);
  2603.             endIndex = connectionData.indexOf("/");
  2604.             f.m_connection_enterprise_name.value = connectionData.substring(0,endIndex);
  2605.             connectionData = connectionData.substring(endIndex + 1);
  2606.             endIndex = connectionData.indexOf("_");
  2607.             f.m_connection_aom.value = connectionData.substring(0,endIndex);
  2608.             connectionData = connectionData.substring(endIndex + 1);
  2609.             endIndex = connectionData.indexOf(";");
  2610.             f.m_connection_language.value = connectionData.substring(0,endIndex);
  2611.             connectionData = connectionData.substring(endIndex + 1);
  2612.             f.m_connection_siebel_repo.value = getFieldStartingAt(connectionData, 0, "REPOSITORY_NAME=", ";");
  2613.             f.m_connection_login_retries.value = getFieldStartingAt(connectionData, 0, "LOGIN_RETRY_COUNT=", ";");
  2614.             f.m_connection_login_retry_delay.value = getFieldStartingAt(connectionData, 0, "LOGIN_RETRY_DELAY=", ";");
  2615.             f.m_connection_local_sort.value = getFieldStartingAt(connectionData, 0, "LOCALSORT=", ";");
  2616.             f.m_connection_level.value = getFieldStartingAt(connectionData, 0, "LEVEL=", ";");
  2617.             f.m_connection_charset.value = getFieldStartingAt(connectionData, 0, "CHARSET=", ";");
  2618.             f.m_connection_adv_parameters.value = getFieldStartingAt(connectionData, 0, "ADVANCED_PARAMETERS=", ";");
  2619.         }      
  2620.         else if (connectType == 'other')
  2621.         {
  2622.                 f.m_other_connectionString.value = cs;
  2623.         }
  2624.  
  2625. }
  2626.  
  2627. function getFieldStartingAt(string, startingAt, startingWith, endingWith)
  2628. {
  2629.         var start = string.indexOf(startingWith, startingAt);
  2630.         if (start != -1) {
  2631.                 var end = string.indexOf(endingWith, start + startingWith.length);
  2632.                 if (end == -1) {
  2633.                         return(string.substring(start + startingWith.length));
  2634.                 }
  2635.                 return(string.substring(start + startingWith.length, end));
  2636.         }
  2637.         return '';
  2638. }
  2639.  
  2640. // Searches the string for a given param and sets the frmField to the value found
  2641. function getField(string, param)
  2642. {
  2643.         start = string.indexOf(param);
  2644.  
  2645.         if (start != -1)
  2646.         {
  2647.                 end = string.indexOf(";", start + param.length);
  2648.                 if (end == -1)
  2649.                 {
  2650.                         return(string.substring(start + param.length));
  2651.                 }
  2652.                
  2653.                 return(string.substring(start + param.length, end));
  2654.         }
  2655.         return '';
  2656. }
  2657.  
  2658. function togglePasswordCheckbox()
  2659. {
  2660.         var f = document.pform;
  2661.  
  2662.         if (f.m_connection_default_signon && f.m_connection_default_signon.checked)
  2663.         {
  2664.                 disablePasswordFields(!f.m_connection_use_pword.checked);      
  2665.         }
  2666. }
  2667.  
  2668. function toggleCreateSignon()
  2669. {
  2670.         var f = document.pform;
  2671.         var defaultSignonChecked = f.m_connection_default_signon && f.m_connection_default_signon.checked;
  2672.        
  2673.         disableUserIDField(!defaultSignonChecked);
  2674.         if (f.m_connection_use_pword)
  2675.         {
  2676.                 disablePasswordFields(!(defaultSignonChecked && f.m_connection_use_pword.checked));
  2677.         }
  2678.         else
  2679.         {
  2680.                 disablePasswordFields(!defaultSignonChecked);
  2681.         }
  2682. }
  2683.  
  2684. function toggleAssemblyCheckbox()
  2685. {
  2686.         var f = document.pform;
  2687.  
  2688.         disableAssemblyFields(f.m_connection_assembly.checked);
  2689. }
  2690.  
  2691. function updateRepositoryType() {
  2692.         var f = document.pform;
  2693.         if (f.m_connection_jdbc_driverclass.value == "FileSystem") {
  2694.                 if (f.fsAliasRoot_select.length==0) {
  2695.                         window.alert(repo_fs_none_msg);
  2696.                         f.m_connection_jdbc_driverclass.selectedIndex=repoTypeSelectInd;
  2697.                         return;
  2698.                 }
  2699.         }
  2700.        
  2701.         var allowSwitch = true;
  2702.         if (f.m_connection_file.value!='' || f.m_connection_jdbc_parameters.value!='') {
  2703.                 allowSwitch = confirm(repo_wmsg);
  2704.         } else {
  2705.                 if (f.m_connection_jdbc_driverclass.options[repoTypeSelectInd].value == "FileSystem") {
  2706.                         if (f.fsAliasRoot_select.selectedIndex!=0) {
  2707.                                 allowSwitch = confirm(repo_wmsg);
  2708.                         }
  2709.                 } else {
  2710.                         if (f.cmisURL_input.value!='' || !f.m_connection_use_userid.checked || !f.m_connection_use_pword.checked  || (f.m_connection_default_signon!=null && !f.m_connection_default_signon.checked)
  2711.                                 || (f.m_connection_userid!=null && f.m_connection_userid.value!='') || (f.m_connection_password!=null && f.m_connection_password.value!='') || (f.m_connection_confirm_password!=null && f.m_connection_confirm_password.value!='')) {
  2712.                                 allowSwitch = confirm(repo_wmsg);
  2713.                         }
  2714.                 }
  2715.         }
  2716.        
  2717.         if (allowSwitch) {
  2718.                 f.m_connection_file.value='';
  2719.                 f.m_connection_jdbc_parameters.value='';
  2720.                 if (f.m_connection_jdbc_driverclass.options[repoTypeSelectInd].value == "FileSystem") {
  2721.                         f.fsAliasRoot_select.selectedIndex=0;
  2722.                         f.m_connection_jdbc_url.value='';
  2723.                 } else {
  2724.                         f.cmisURL_input.value='';
  2725.                         f.m_connection_jdbc_url.value='';
  2726.                         f.m_connection_use_userid.checked=false;
  2727.                         f.m_connection_use_pword.checked=false;
  2728.                         if (f.m_connection_default_signon) {
  2729.                                 f.m_connection_default_signon.checked=true;
  2730.                                 f.m_connection_userid.value='';
  2731.                                 f.m_connection_password.value='';
  2732.                                 f.m_connection_confirm_password.value='';
  2733.                                 updateSignonSection(false);
  2734.                         }
  2735.                 }
  2736.                 repoTypeSelectInd=f.m_connection_jdbc_driverclass.selectedIndex;
  2737.                 initRepositoryConnectionPage();
  2738.         } else {
  2739.                 f.m_connection_jdbc_driverclass.selectedIndex=repoTypeSelectInd;
  2740.         }
  2741. }
  2742.  
  2743. function isSupportedCmisProvider(provider) {
  2744.         return provider == 'CM8' || provider == 'FileNet';
  2745. }
  2746.  
  2747. function cmisURL_input_changed() {
  2748.         var f = document.pform;
  2749.         f.m_connection_jdbc_url.value=f.cmisURL_input.value;
  2750. }
  2751.  
  2752. function fsAliasRoot_select_changed() {
  2753.         var f = document.pform;
  2754.         f.m_connection_jdbc_url.value=f.fsAliasRoot_select.value;
  2755. }
  2756.  
  2757. function updateTrustedContext()
  2758. {
  2759.         var f = document.pform;
  2760.         f.m_connection_identity_propagation.disabled = !f.m_connection_trusted_context.checked;
  2761. }
  2762.  
  2763. function initRepositoryConnectionPage()
  2764. {
  2765.         var f = document.pform;
  2766.         if (f.m_connection_jdbc_driverclass) {
  2767.                 if (f.m_p_credentialNamespaces) {
  2768.                         f.m_p_credentialNamespaces.value='';
  2769.                 }
  2770.                 var signonDiv = document.getElementById('gen-signon-section');
  2771.                 f.fsAliasRoot_select.selectedIndex=0;
  2772.                 if (f.m_connection_jdbc_driverclass.value == "FileSystem") {
  2773.                         if (f.fsAliasRoot_select.length==0) {
  2774.                                 f.m_connection_jdbc_url.value='';
  2775.                         } else {
  2776.                                 if (f.m_connection_jdbc_url.value == '') {
  2777.                                         f.m_connection_jdbc_url.value=f.fsAliasRoot_select.value;
  2778.                                 }
  2779.                         }
  2780.                         f.fsAliasRoot_select.value=f.m_connection_jdbc_url.value;
  2781.                         showDynamicDiv('fileSystemDiv');
  2782.                         hideDynamicDiv('cmisDiv');
  2783.                         signonDiv.style.display = 'none';
  2784.                 } else {
  2785.                         f.cmisURL_input.value=f.m_connection_jdbc_url.value;
  2786.                         f.m_connection_use_userid.checked=true;
  2787.                         f.m_connection_use_pword.checked=true;
  2788.                         if (f.m_connection_default_signon) {
  2789.                                 f.m_connection_default_signon.checked=true;
  2790.                         }
  2791.                         updateSignonSection(true);
  2792.                         showDynamicDiv('cmisDiv');
  2793.                         hideDynamicDiv('fileSystemDiv');
  2794.                         signonDiv.style.display = 'inline';
  2795.                 }
  2796.         }
  2797. }
  2798.  
  2799. function updateJdbcOracle()
  2800. {
  2801.         var f = document.pform;
  2802.         if (f.m_connection_jdbc_oracle_style) {
  2803.                 if (f.m_connection_jdbc_oracle_style[0] && f.m_connection_jdbc_oracle_style[0].checked == true) {
  2804.                         showDynamicDiv('serviceID');
  2805.                         f.m_connection_servername.disabled = false;
  2806.                         f.m_connection_port.disabled = false;
  2807.                         f.m_connection_oracle_service_id.disabled = false;
  2808.                        
  2809.                         hideDynamicDiv('tnsNamesAlias');
  2810.                         f.m_connection_oracle_tns_name.disabled = true;
  2811.  
  2812.                         hideDynamicDiv('oracleNetDescriptor');
  2813.                         f.m_connection_oracle_net_descriptor.disabled = true;
  2814.  
  2815.                 } else if (f.m_connection_jdbc_oracle_style[1] && f.m_connection_jdbc_oracle_style[1].checked == true) {
  2816.                         hideDynamicDiv('serviceID');
  2817.                         f.m_connection_servername.disabled = true;
  2818.                         f.m_connection_port.disabled = true;
  2819.                         f.m_connection_oracle_service_id.disabled = true;
  2820.                        
  2821.                         showDynamicDiv('tnsNamesAlias');
  2822.                         f.m_connection_oracle_tns_name.disabled = false;
  2823.                        
  2824.                         hideDynamicDiv('oracleNetDescriptor');
  2825.                         f.m_connection_oracle_net_descriptor.disabled = true;
  2826.                        
  2827.                 } else if (f.m_connection_jdbc_oracle_style[2] && f.m_connection_jdbc_oracle_style[2].checked == true) {
  2828.                         hideDynamicDiv('serviceID');
  2829.                         f.m_connection_servername.disabled = true;
  2830.                         f.m_connection_port.disabled = true;
  2831.                         f.m_connection_oracle_service_id.disabled = true;
  2832.                        
  2833.                         hideDynamicDiv('tnsNamesAlias');
  2834.                         f.m_connection_oracle_tns_name.disabled = true;
  2835.                        
  2836.                         showDynamicDiv('oracleNetDescriptor');
  2837.                         f.m_connection_oracle_net_descriptor.disabled = false;
  2838.                 }
  2839.         }
  2840. }
  2841.  
  2842. function updateJdbcSortOptions()
  2843. {
  2844.         var f = document.pform;
  2845.         if (f.m_connection_jdbc_sort_colseq && f.m_connection_jdbc_sort_level) {
  2846.                 if (f.m_connection_jdbc_sort_colseq.value == '') {
  2847.                         f.m_connection_jdbc_sort_level.disabled = true;
  2848.                 } else {
  2849.                         f.m_connection_jdbc_sort_level.disabled = false;
  2850.                 }
  2851.         }
  2852. }
  2853.  
  2854. function updateSignonSection(rootChecked)
  2855. {
  2856.         var f = document.pform;
  2857.         if (f.m_connection_default_signon)
  2858.         {
  2859.                 f.m_connection_default_signon.disabled = !rootChecked;
  2860.         }
  2861.         if (f.m_connection_use_pword)
  2862.         {
  2863.                 f.m_connection_use_pword.disabled = !rootChecked;
  2864.         }
  2865.  
  2866.         // if the signon radio button isn't checked, then then disabled the userid and password fields
  2867.         if (!rootChecked)
  2868.         {
  2869.                 disableUserIDField(true);
  2870.                 disablePasswordFields(true);           
  2871.         }
  2872.         // if the generate default signon isn't checked, then disabled the userid and password fields
  2873.         else if (f.m_connection_default_signon && !f.m_connection_default_signon.checked)
  2874.         {
  2875.                 disableUserIDField(true);
  2876.                 disablePasswordFields(true);                           
  2877.         }
  2878.         else
  2879.         {
  2880.                 disableUserIDField(false);
  2881.                 disablePasswordFields(!((f.m_connection_use_pword && f.m_connection_use_pword.checked) || !f.m_connection_use_pword));
  2882.         }
  2883. }
  2884.  
  2885.  
  2886. // when the user switches between authentication types (no authentication, external namespace, signon, ...)
  2887. function onChangeAuthentication()
  2888. {
  2889.         var f = document.pform;
  2890.  
  2891.         for (var i=0; i < f.authentication.length; i++)
  2892.         {
  2893.                 if (f.authentication[i].value == 'namespace')
  2894.                 {
  2895.                         if (f.m_p_credentialNamespaces)
  2896.                         {
  2897.                                 f.m_p_credentialNamespaces.disabled = !f.authentication[i].checked;
  2898.                                 if (f.m_transformUserIdentification) {
  2899.                                         f.m_transformUserIdentification.disabled = !f.authentication[i].checked;
  2900.                                 }      
  2901.                         }
  2902.                 }
  2903.                 else if (f.authentication[i].value == 'signon')
  2904.                 {
  2905.                         updateSignonSection(f.authentication[i].checked);
  2906.                 }
  2907.         }
  2908. }      
  2909.  
  2910. function disableUserIDField(disabled)
  2911. {
  2912.         if (document.pform.m_connection_userid) {
  2913.                 document.pform.m_connection_userid.disabled = disabled;
  2914.         }
  2915. }
  2916.  
  2917. function disablePasswordFields(disabled)
  2918. {
  2919.         if (document.pform.m_connection_password) {
  2920.                 document.pform.m_connection_password.disabled = disabled;
  2921.         }
  2922.         if (document.pform.m_connection_confirm_password) {
  2923.                 document.pform.m_connection_confirm_password.disabled = disabled;
  2924.         }
  2925. }
  2926.  
  2927. function disableAssemblyFields(disabled)
  2928. {
  2929.         if (document.pform.m_connection_schema) {
  2930.                 document.pform.m_connection_schema.disabled = disabled;
  2931.         }
  2932.         if (document.pform.m_connection_http_method) {
  2933.                 document.pform.m_connection_http_method.disabled = disabled;
  2934.         }
  2935.         if (document.pform.m_connection_http_message_body) {
  2936.                 document.pform.m_connection_http_message_body.disabled = disabled;
  2937.         }
  2938.         if (document.pform.m_connection_json_path) {
  2939.                 document.pform.m_connection_json_path.disabled = disabled;
  2940.         }
  2941. }
  2942.  
  2943. function isValidNameValuePairList(field, separator) {
  2944.         if (field != null && field.value != '') {
  2945.                 var pairs = field.value.split(separator);
  2946.                 if (pairs != null && pairs.length != 0) {
  2947.                         for (var i = 0; i < pairs.length; i++) {
  2948.                                 var regExp = new RegExp("^([^=]+)=([^=]*)$");
  2949.                                 if (regExp.test(pairs[i]) == false){
  2950.                                         return false;
  2951.                                 }
  2952.                         }
  2953.                 }
  2954.         }
  2955.         return true;
  2956. }
  2957.  
  2958. // In a dual-stack world a checkbox may be a checkbox or a hidden field by the time it
  2959. // is used to build the connection string. This method takes care of the difference.
  2960. function isCheckboxChecked(field){
  2961.         return (field && (field.checked || field.type != 'checkbox'))  
  2962. }
  2963.  
  2964. function isListItemSelected(select, item) {
  2965.         if (select && select.value == item) {
  2966.                 return true;
  2967.         }
  2968.         return false;
  2969. }
  2970.  
  2971. // When creating a dual stack connection, fieldOrArrayOfFields may be 1) an array of input fields or 2) one hidden input.
  2972. // It is an array when the form is enabled and a hidden input when on the jdbc connection page.    
  2973. function isRadioButtonSelected(fieldOrArrayOfFields, name) {
  2974.         if (fieldOrArrayOfFields) {
  2975.                 if (fieldOrArrayOfFields.length > 0) {
  2976.                         for (var i = 0; i < fieldOrArrayOfFields.length; i++) {
  2977.                                 var input = fieldOrArrayOfFields[i];
  2978.                                 if (input.value == name) {
  2979.                                         return (input.checked || input.type == 'hidden');
  2980.                                 }
  2981.                         }              
  2982.                 } else {
  2983.                         if (fieldOrArrayOfFields.value == name) {
  2984.                                 return (fieldOrArrayOfFields.checked || fieldOrArrayOfFields.type == 'hidden');
  2985.                         }
  2986.                 }
  2987.         }
  2988.         return false;
  2989. }
  2990.  
  2991. function selectRadioButton(radioButtongGroup, name) {
  2992.         for (var i = 0; i < radioButtongGroup.length; i++) {
  2993.                 var input = radioButtongGroup[i];
  2994.                 if (input.value == name) {
  2995.                         input.checked = 'true';
  2996.                 }
  2997.         }
  2998. }
  2999.  
  3000. function stripSpecialCharsFromOracleNetDesc(value) {
  3001.         return value.replace(new RegExp( "[\\t\\r\\n\\b\\f]", "g" ), "");
  3002. }
  3003.  
  3004. function formatOracleNetDesc(value) {
  3005.         var formattedValue = '';
  3006.         var indentLevel = 0;
  3007.         var lastBracket = null;
  3008.         for (var i = 0 ; i < value.length; i++) {
  3009.                 var currChar = value.charAt(i);
  3010.                 if (currChar == '(') {
  3011.                         if (lastBracket == ')') {
  3012.                                 // )(
  3013.                                 formattedValue += '\n' + generateIndent(indentLevel) + currChar;
  3014.                         } else {
  3015.                                 // ((
  3016.                                 if (lastBracket == null) {
  3017.                                         // for the very first bracket, don't newline or increase indentLevel
  3018.                                         formattedValue += generateIndent(indentLevel) + currChar;
  3019.                                 } else {
  3020.                                         indentLevel++;
  3021.                                         formattedValue += '\n' + generateIndent(indentLevel) + currChar;
  3022.                                 }
  3023.                         }
  3024.                         lastBracket = currChar;
  3025.                 } else if (currChar == ')') {
  3026.                         if (lastBracket == ')') {
  3027.                                 // ))
  3028.                                 indentLevel--;
  3029.                                 formattedValue += '\n' + generateIndent(indentLevel) + currChar;
  3030.                         } else {
  3031.                                 // ()
  3032.                                 formattedValue += currChar;
  3033.                         }
  3034.                         lastBracket = currChar;
  3035.                 } else {
  3036.                         // all other chars
  3037.                         formattedValue += currChar;
  3038.                 }
  3039.         }
  3040.         return formattedValue;
  3041. }
  3042.  
  3043. function setProxyControls()
  3044. {
  3045.         frm = document.pform;
  3046.         if (frm.m_connection_proxy_enabled.checked == true)
  3047.         {
  3048.                 frm.m_connection_proxy_enabled.value = "true";
  3049.                 disableProxyControls(false)
  3050.         }
  3051.         else
  3052.         {
  3053.                 frm.m_connection_proxy_enabled.value = "false";
  3054.                 disableProxyControls(true)
  3055.         }
  3056. }
  3057. function disableProxyControls(disabled)
  3058. {
  3059.         frm = document.pform;
  3060.         frm.m_connection_proxy_host.disabled=disabled;
  3061.         frm.m_connection_proxy_port.disabled=disabled;
  3062.         frm.m_connection_proxy_user.disabled=disabled;
  3063.         frm.m_connection_proxy_password.disabled=disabled;
  3064. }
  3065.  
  3066.  
  3067. function generateIndent(indentLevel) {
  3068.         var indent = '';
  3069.         var j = indentLevel;
  3070.         while (j != 0) {
  3071.                 indent += '\t';
  3072.                 j--;
  3073.         }
  3074.         return indent;
  3075. }

Raw Paste


Login or Register to edit or fork this paste. It's free.