home *** CD-ROM | disk | FTP | other *** search
/ US Department of Defense…ndamentals 1.0 2004 April / US Department of Defense: Firewall & Router Fundamentals 1.0 2004 April.iso / sco / includes / flms_functions.js < prev    next >
Encoding:
Text File  |  2004-03-24  |  16.8 KB  |  592 lines

  1. function flms_check_access(tmp_dir)
  2. {
  3.   if (!flms_check_user())
  4.       flms_run_error("access",tmp_dir);
  5. }
  6.  
  7. function flms_check_user()
  8. {
  9.   var tmp_return = false;
  10.   USERNAME = get_cookie_value("username","");
  11.   if (USERNAME != "")
  12.       tmp_return = true;
  13.     
  14.   KARTA_USER = get_cookie_value("KU_" + PROG_ID + "_" + USERNAME + "_user","");
  15.   FIRST_NAME = get_sub_cookie_value("fn",KARTA_USER,"");
  16.   LAST_NAME = get_sub_cookie_value("ln",KARTA_USER,"");
  17.   
  18.   return tmp_return
  19. }
  20.  
  21. function flms_check_url()
  22. {
  23.   //check URL for username and password
  24.   USERNAME = get_url_value('username');
  25.   PASSWORD = decrypt(get_url_value('password'), generate_key(),122,48);
  26.  
  27.   if ((USERNAME != null) && (PASSWORD != null)) {
  28.       //need to log in user
  29.       if (flms_verify_user())  {
  30.           flms_set_session_cookie();
  31.           location.href="menu.htm";
  32.       }
  33.       else
  34.           flms_run_error("login","");
  35.   }
  36. }
  37.  
  38. function flms_do_login()
  39. {
  40.   USERNAME = document.f.username.value;
  41.   PASSWORD = document.f.password.value;
  42.   //enc_mod_key = document.f.modulekey.value;
  43.   enc_mod_key = "";
  44.   
  45.   PASSED_CHECKS = true;
  46.   
  47.   //verify fields are not blank
  48.   if (USERNAME == '') {
  49.       PASSED_CHECKS = false;
  50.       //flms_run_error("empty","an Username");
  51.   }
  52.   if (PASSWORD == '') {
  53.       PASSED_CHECKS = false;
  54.       //flms_run_error("empty","a Password");
  55.   }
  56.   
  57.   if (flms_verify_user())  {
  58.       flms_set_session_cookie();
  59.       if (enc_mod_key != "")
  60.           flms_dec_module(enc_mod_key);
  61.       location.href="menu.htm";
  62.   }
  63.   else
  64.       flms_run_error("login","");
  65. }
  66.  
  67. function flms_set_session_cookie()
  68. {
  69.   document.cookie = "username=" + USERNAME +"; path=" + COOKIE_PATH + ";"; 
  70. }
  71.  
  72. function flms_verify_user()
  73. {
  74.   //get cookie record for this user
  75.   KARTA_USER = get_cookie_value("KU_" + PROG_ID + "_" + USERNAME + "_user","");
  76.   if (KARTA_USER != "")
  77.   {
  78.       //found user, now need to verify password and parse data
  79.       if (PASSWORD != decrypt(get_sub_cookie_value("pwd",KARTA_USER,""), generate_key(),122,48))
  80.           return false;
  81.       FIRST_NAME = get_sub_cookie_value("fn",KARTA_USER,"");
  82.       LAST_NAME = get_sub_cookie_value("ln",KARTA_USER,"");
  83.       return true;
  84.   }
  85.   return false;
  86. }
  87.  
  88. function flms_do_register()
  89. {
  90.   
  91.   PASSED_CHECKS = true;
  92.   
  93.   //get reg info from form
  94.   if (FLMS_AUTO_REGISTER) {
  95.     FIRST_NAME = tmp_first_name;
  96.     LAST_NAME = tmp_last_name;
  97.   }
  98.   else {
  99.     FIRST_NAME = document.f.first_name.value;
  100.     LAST_NAME = document.f.last_name.value;
  101.   }
  102.   
  103.   //verify fields are not blank
  104.   if (FIRST_NAME == '') {
  105.       PASSED_CHECKS = false;
  106.       flms_run_error("empty","your First Name");
  107.   }
  108.   if (LAST_NAME == '')  {
  109.       PASSED_CHECKS = false;
  110.       flms_run_error("empty","your Last Name");
  111.   }
  112.          
  113.   //save info to cookie if passed checks
  114.   if (FLMS_AUTO_LOGIN)  {
  115.     var tmp_user_id = get_url_value('user_id'); 
  116.     USERNAME = tmp_user_id;
  117.     PASSWORD1 = encrypt(USERNAME, generate_key(),122,48);
  118.     PASSWORD2 = PASSWORD1;
  119.   }
  120.   else  {
  121.     USERNAME = document.f.username.value;
  122.     if (USERNAME == '')
  123.         {
  124.             PASSED_CHECKS = false;
  125.             flms_run_error("empty","an Username");
  126.         }
  127.     PASSWORD1 = document.f.password1.value;
  128.         PASSWORD2 = document.f.password2.value; 
  129.         if ((PASSWORD1 == '') || (PASSWORD2 == ''))
  130.         {
  131.             PASSED_CHECKS = false;
  132.             flms_run_error("empty","a Password");
  133.         }
  134.         
  135.         //verify passwords
  136.         if (PASSWORD1 != PASSWORD2)
  137.         {
  138.             PASSED_CHECKS = false;
  139.             flms_run_error("passwords","");
  140.             document.f.password1.value = "";
  141.             document.f.password2.value = "";
  142.         }
  143.         //encode password
  144.         PASSWORD1 = encrypt(PASSWORD1, generate_key(),122,48);
  145.     var tmp_user_id = USERNAME;
  146.   }
  147.   
  148.   
  149.   //verify username is not in use
  150.   if (flms_dup_username(USERNAME)) {
  151.       PASSED_CHECKS = false;
  152.       flms_run_error("dupUser","");
  153.   }
  154.   if (PASSED_CHECKS && tmp_user_id != null)  {
  155.     //register user
  156.     //set general user cookie
  157.     flms_set_cookie_data(PROG_ID,tmp_user_id,"user","&fn|" + FIRST_NAME + "&ln|" + LAST_NAME + "&pwd|" + PASSWORD1 + "&time|0");
  158.     
  159.     //set bookmark/location cookie
  160.     flms_set_cookie_data(PROG_ID,tmp_user_id,"loc",flms_add_sco_locs(NUMSCOS,NUMSUBSCOS));
  161.         
  162.     //set status cookie
  163.     flms_set_cookie_data(PROG_ID,tmp_user_id,"status",flms_add_sco_status(NUMSCOS,NUMSUBSCOS));
  164.     //if (!FLMS_AUTO_REGISTER)
  165.           //alert("Registration Complete!");
  166.         location.href="relogin.htm?username=" + USERNAME + "&password=" + PASSWORD1;
  167.   }
  168.   else  {
  169.     alert("Registration Failed!");
  170.   }
  171. }
  172.  
  173. function flms_dup_username(tmp_username)
  174. {
  175.   //check to see if this user is in cookie, return true if so.
  176.   if (get_cookie_value("KU_" + PROG_ID + "_" + tmp_username + "_user","") == null)
  177.       return true;
  178.   else
  179.       return false;
  180. }
  181.  
  182. function flms_get_sco_status(tmp_sco,tmp_sub_sco)
  183. {
  184.   //get sco or sub sco status
  185.   tmp_status = "n";
  186.   if (!flms_get_browse())  {
  187.     tmp_status_list = get_cookie_value("KU_" + PROG_ID + "_" + get_cookie_value("username","") + "_status","");
  188.     if (tmp_status_list != "")
  189.     {        
  190.         tmp_status = get_item_in_list(get_item_in_list(tmp_status_list,tmp_sco,"&"),tmp_sub_sco,"|");
  191.     }
  192.   }
  193.   return tmp_status;
  194. }
  195.  
  196. function flms_get_sco_loc(tmp_sco,tmp_sub_sco)
  197. {
  198.   //get sco or sub sco status
  199.   tmp_loc = "0";
  200.   if (!flms_get_browse())  {
  201.     tmp_loc_list = get_cookie_value("KU_" + PROG_ID + "_" + get_cookie_value("username","") + "_loc","");
  202.     if (tmp_loc_list != "")
  203.     {        
  204.         tmp_loc = get_item_in_list(get_item_in_list(tmp_loc_list,tmp_sco,"&"),tmp_sub_sco,"|");
  205.     }
  206.   }
  207.   else
  208.     tmp_loc = MAX_PAGE_NUM;
  209.     
  210.   return tmp_loc;
  211. }
  212.  
  213. function flms_get_mod_complete(tmp_start_sco, tmp_end_sco)
  214. {
  215.   var tmp_return = true;
  216.   if (!flms_get_browse())  {
  217.     for (b = tmp_start_sco; b < tmp_end_sco + 1; b++) {
  218.       var tmp_value = flms_get_sco_status(b,"1");
  219.         if ((tmp_value != "c") && (tmp_value != "p")) {
  220.             tmp_return = false;
  221.       }
  222.     }
  223.   }
  224.   else
  225.     tmp_return = false;
  226.     
  227.   return tmp_return;
  228. }
  229.  
  230. function flms_set_mod_complete(tmp_start_sco, tmp_end_sco)
  231. {
  232.   if (!flms_get_browse())  {
  233.     for (b = tmp_start_sco; b < tmp_end_sco + 1; i++) {
  234.       flms_set_sco_status(b,"1","c");
  235.     }
  236.   }
  237. }
  238.  
  239. function flms_set_sco_status(tmp_sco,tmp_sub_sco,tmp_status)
  240. {
  241.   if (!flms_get_browse())  {
  242.     var tmp_val = "";
  243.     var tmp_usr = "";
  244.     
  245.     //get sco status cookie
  246.     tmp_usr = get_cookie_value("username","");
  247.     tmp_val = flms_get_cookie_data(PROG_ID,tmp_usr,"status");
  248.     if (tmp_val != "")  {
  249.       tmp_val = set_item_in_list(tmp_val,set_item_in_list(get_item_in_list(tmp_val,tmp_sco,"&"),tmp_status,tmp_sub_sco,"|"),tmp_sco,"&");
  250.         flms_set_cookie_data(PROG_ID,tmp_usr,"status",tmp_val);
  251.     }
  252.     else  {
  253.         alert(flms_run_error("lms"));
  254.     }
  255.   }
  256. }
  257.  
  258. function flms_set_sco_loc(tmp_sco,tmp_sub_sco,tmp_loc)
  259. {
  260.   if (!flms_get_browse())  {
  261.     var tmp_val = "";
  262.     var tmp_usr = "";
  263.     //get sco loc cookie
  264.     tmp_usr = get_cookie_value("username","");
  265.     tmp_val = flms_get_cookie_data(PROG_ID,tmp_usr,"loc");
  266.     if (tmp_val != "")  {
  267.       tmp_val = set_item_in_list(tmp_val,set_item_in_list(get_item_in_list(tmp_val,tmp_sco,"&"),tmp_loc,tmp_sub_sco,"|"),tmp_sco,"&");
  268.       flms_set_cookie_data(PROG_ID,tmp_usr,"loc",tmp_val);
  269.     }
  270.     else  {
  271.         alert(flms_run_error("lms"));
  272.     }
  273.   }
  274. }
  275.  
  276. function flms_add_session_time(session_time)
  277. {
  278.   //note all times are in minutes
  279.   
  280.   //replace session time in cookie
  281.   var tmp_key = "KU_" + PROG_ID + "_" + get_cookie_value("username","") + "_user";
  282.   var tmp_val = get_cookie_value(tmp_key,"");
  283.   if (tmp_val != "")  {
  284.     //add previous session time to this session
  285.     var total_session_time = session_time + parseInt(get_sub_cookie_value("time",tmp_val,""));
  286.     tmp_pos = tmp_val.indexOf("time|");
  287.     if (tmp_pos > -1) {
  288.           tmp_front_part = tmp_val.substring(0,(tmp_pos+5));
  289.           tmp_last_part = tmp_val.substring((tmp_pos+5),tmp_val.length);
  290.       
  291.           //clear out old value and add new
  292.           if (tmp_last_part.indexOf('&') > 0)
  293.               tmp_last_part = total_session_time.toString() + tmp_last_part.substring(tmp_last_part.indexOf('&'),tmp_last_part.length);
  294.           else
  295.               tmp_last_part = total_session_time.toString();
  296.           
  297.           //put tmp_value back together
  298.           tmp_val = tmp_front_part + tmp_last_part;
  299.       }
  300.       tmp_cookie = tmp_key + "=" + tmp_val;
  301.       document.cookie = tmp_cookie + "; expires=" + EXPIRE_TIME + "; path=" + COOKIE_PATH;
  302.   }
  303. }
  304.  
  305. function flms_add_sco_locs(tmp_num_scos, tmp_num_sub_scos)
  306. {
  307.   var tmp_value = "";
  308.   for (i = 0; i < tmp_num_scos; i++)  {
  309.     //add master sco location
  310.     tmp_value += "0|";
  311.     //add subsco locations
  312.     for (j = 0; j < tmp_num_sub_scos[i]; j++) {
  313.         tmp_value += "0|";
  314.     }
  315.     //add list delimiter
  316.     tmp_value += "&";
  317.   }
  318.   return tmp_value
  319. }
  320.  
  321. function flms_add_sco_status(tmp_num_scos, tmp_num_sub_scos)
  322. {
  323.   var tmp_value = "";
  324.   for (i = 0; i < tmp_num_scos; i++)  {
  325.     //add master sco status (n = not attempted, i = incomplete, c = complete, p = passed, f = failed)
  326.     tmp_value += "n|";
  327.     //add subsco status
  328.     for (j = 0; j < tmp_num_sub_scos[i]; j++) {
  329.         tmp_value += "n|";
  330.     }
  331.     //add list delimiter
  332.     tmp_value += "&";
  333.   }
  334.   return tmp_value
  335. }
  336.  
  337. function flms_run_sco(tmp_dir,tmp_sco_num)
  338. {
  339.   
  340.   if (check_preq("SCOLINK" + convert_num_to_str(tmp_sco_num)))  {
  341.     location.href = tmp_dir + "/start.htm?filelms=1&sco=" + tmp_sco_num;
  342.   }
  343.   else
  344.     alert("You must complete the modules in the order presented.");
  345. }
  346.  
  347. function flms_enc_module()
  348. {
  349.   mod_key = "";
  350.   num_comp = 0;
  351.   
  352.   for (k=0;k<6;k++) {
  353.       var start_sco = eval("cMod" + k + "End") + 1;
  354.       var end_sco = eval("cMod" + (k+1) + "End");
  355.   
  356.       if (flms_get_mod_complete(start_sco, end_sco)) {
  357.           mod_key += "C";
  358.           num_comp += 1;
  359.       }
  360.       else
  361.           mod_key += "I";
  362.   }
  363.   
  364.   return encrypt(mod_key.substr(0,num_comp) + "Z" + mod_key.substr(num_comp,mod_key.length), LAST_NAME + "KARTAUSER" + PROG_ID,90,65);
  365. }
  366.  
  367. function flms_dec_module(enc_mod_key)
  368. {
  369.   var tmp_error = false;
  370.   var tmp_num_comp = 0;
  371.   
  372.   //decrypt key
  373.   var mod_key = decrypt(enc_mod_key,LAST_NAME + "KARTAUSER" + PROG_ID,90,65);
  374.   
  375.   //get numcomp
  376.   var num_comp = mod_key.indexOf("Z",0);
  377.   
  378.   //get completion w/o validator        
  379.   mod_key = mod_key.substr(0,num_comp) + mod_key.substr(num_comp+1,mod_key.length);
  380.   
  381.   //Validate key
  382.   for (i=0;i<6;i++) {
  383.       tmp_char = mod_key.substr(i,1);
  384.       if (tmp_char == "C")
  385.           tmp_num_comp += 1
  386.       else  {
  387.           if (tmp_char != "I")
  388.               tmp_error=true;
  389.       }
  390.   }
  391.   if (tmp_num_comp != num_comp)
  392.       tmp_error = true;
  393.   
  394.   if (tmp_error)  {
  395.       alert("Error! Invalid Module Key!\nModule info not updated!");
  396.       //parent.location.href = "login.htm";
  397.   }
  398.   else  {
  399.       //update sco status for modules
  400.       var start_sco = 0;
  401.       var end_sco = 0;    
  402.       for (k=0;k<6;k++) {
  403.           tmp_char = mod_key.substr(k,1);
  404.           if (tmp_char == "C")  {
  405.               start_sco = eval("cMod" + k + "End") + 1;
  406.               end_sco = eval("cMod" + (k+1) + "End");
  407.               flms_set_mod_complete(start_sco, end_sco);
  408.           }
  409.       }
  410.   }
  411. }
  412.  
  413. function flms_show_cert()
  414. {
  415.   if (COURSE_COMPLETE)  {
  416.     var tmp_username = get_cookie_value("username","");
  417.     var tmp_pwd = get_sub_cookie_value("pwd",get_cookie_value("KU_"+PROG_ID+"_"+tmp_username + "_user",""),"");
  418.         
  419.     //show cert
  420.  window.open("certificate.htm","CertWin","scrollbars=no,resizeable=no,width=700,height=400,toolbar=no,directories=no,menubar=yes,status=yes,");
  421.             //location.href="relogin.htm?username=" + tmp_username + "&password=" + tmp_pwd;
  422.     }
  423. }
  424.  
  425. function flms_show_code()
  426. {
  427.   var tmp_username = get_cookie_value("username","");
  428.   var tmp_key = tmp_username.toUpperCase() + KEY_VALUE;
  429.   alert("Your completion code is: " + convertDecStrToStr(encrypt(COMPSTR+convert_num_to_char(get_sub_cookie_value("time",get_cookie_value("KU_"+PROG_ID+"_"+tmp_username + "_user",""),"")),tmp_key,VALUE_HI,VALUE_LO)) + "\nWrite this code down, log onto the " + LMS_NAME + ", take the " + COURSE_TITLE + " (CD Version) Course\nand enter the code when prompted. This will complete the course.");
  430. }
  431.  
  432. function flms_auto_login()
  433. {
  434.   //check url for user_id
  435.   if (FLMS_AUTO_LOGIN) {
  436.     var tmp_user_id = get_url_value('user_id');  
  437.     if ((tmp_user_id == null) || (isNaN(tmp_user_id))) {
  438.       //use default user_id
  439.       tmp_user_id = PROG_ID;
  440.     }
  441.     //check to see if this user is registered
  442.     var tmp_key = "KU_" + PROG_ID + "_" + tmp_user_id + "_user";
  443.     if (get_cookie_value(tmp_key,"") == "") {
  444.       location.href = "register.htm?user_id=" + tmp_user_id;
  445.     }
  446.     else  {
  447.       USERNAME = tmp_user_id;
  448.       PASSWORD1 = encrypt(USERNAME, generate_key(),122,48);
  449.       PASSWORD2 = PASSWORD1;
  450.       //do auto login
  451.       location.href = "relogin.htm?username=" + USERNAME + "&password=" + PASSWORD1;
  452.     }
  453.   }
  454. }
  455.  
  456. function flms_run_error(tmp_error, tmp_arg)
  457. {
  458.   if (tmp_error == "login") {
  459.       alert("Login Invalid! Please try again.");
  460.       //document.f.password.value='';
  461.     location.href = tmp_arg + "login.htm";
  462.   }
  463.   if (tmp_error == "access")  {
  464.       alert("You have not logged into the training.  Please do so.");
  465.       if (tmp_arg == "close")
  466.           window.close();
  467.       else
  468.           location.href = tmp_arg + "login.htm";
  469.   }
  470.   if (tmp_error == "empty") {
  471.       alert("You must supply " + tmp_arg + ".");
  472.   }
  473.   if (tmp_error == "passwords") {
  474.       alert("Your passwords do not match, try again.");
  475.   }
  476.   if (tmp_error == "dupUser") {
  477.       alert("There is already an user with this username.  Please select another username.");
  478.       document.f.username.value = '';
  479.   }
  480.   if (tmp_error == "lms") {
  481.       alert("There has been an error with the LMS system.  Student Tracking is not working correctly.");
  482.   }
  483. }
  484.  
  485. function flms_sco_finish(tmp_href)
  486. {
  487.   var END_TIME = new Date();
  488.   var BEGIN_TIME = new Date(get_cookie_value("BEGIN_TIME"));
  489.   var min_date_diff = ((END_TIME - BEGIN_TIME) / 1000) / 60;
  490.   min_date_diff = Math.floor(min_date_diff);
  491.   if (min_date_diff == 0)
  492.     min_date_diff = 1;
  493.   
  494.   var tmp_cur_sco = get_cookie_value("CUR_SCO")
  495.   if (tmp_cur_sco != null)  {
  496.     //add current time to session time
  497.     flms_add_session_time(min_date_diff);
  498.   }
  499.   
  500.   //document.cookie = "CUR_SCO=; path=" + COOKIE_PATH + ";";
  501.   document.cookie = "SCO_STATUS=; path=" + COOKIE_PATH + ";";
  502.   document.cookie = "BEGIN_TIME=; path=" + COOKIE_PATH + ";";
  503.   
  504.   if (RUN_TYPE == "flms")  {
  505.     //get all the FLMS cookie data and save it to suspend_data
  506.     get_flms_cookie_data(PROG_ID,get_user_name());
  507.     //if SCO is complete, set it to "completed"
  508.     if (flms_get_mod_complete(1,NUMSCOS)) {
  509.       var tmp_run_type = RUN_TYPE;
  510.       RUN_TYPE = "";
  511.       set_sco_status("1","c");
  512.       RUN_TYPE = tmp_run_type;
  513.     }
  514.     if (CONTENT_WIN != null)  {
  515.       /*
  516.       if (tmp_cur_sco != null)  {
  517.         var tmp_mod_num = 0;
  518.         for (w=1;w<NUMMODS;w++) {
  519.           if (parseInt(tmp_cur_sco) <= MOD_END[w])  {
  520.             tmp_mod_num = w;
  521.             w = NUMMODS;
  522.           }
  523.         }
  524.         CONTENT_WIN.location.href = "../mod" + tmp_mod_num + "_menu.htm";
  525.       }
  526.       else  {  
  527.       */
  528.         CONTENT_WIN.location.href = tmp_href;
  529.       //}
  530.     }
  531.   }
  532.   else  {
  533.     parent.location.href = tmp_href; 
  534.       //parent.location.href = "../relogin.htm?username=" + TEMP_USER + "&password=" + TEMP_PWD;
  535.   }
  536. }
  537.  
  538. function flms_set_cookie_data(tmp_prog_id,tmp_user_id,cookie_key,tmp_data)
  539. {
  540.   var tmp_key = "KU_" + tmp_prog_id + "_" + tmp_user_id + "_" + cookie_key;
  541.   document.cookie = tmp_key + "=" + tmp_data + "; expires=" + EXPIRE_TIME + "; path=" + COOKIE_PATH + ";";
  542. }
  543.  
  544. function flms_get_cookie_data(tmp_prog_id,tmp_user_id,cookie_key)
  545. {
  546.   var tmp_key = "KU_" + tmp_prog_id + "_" + tmp_user_id + "_" + cookie_key;
  547.   return get_cookie_value(tmp_key,"");
  548. }
  549.  
  550. function flms_get_cur_sco()
  551. {
  552.   return get_cookie_value("CUR_SCO","0");
  553. }
  554.  
  555. function flms_get_browse()
  556. {
  557.   var tmp_boolean = false
  558.   if (get_cookie_value("BROWSE","false") == "true")
  559.     tmp_boolean = true;
  560.   return tmp_boolean;
  561. }
  562.  
  563. function flms_get_flash_params(tmp_prog_id,tmp_user_id,tmp_cur_sco)
  564. {
  565.   var return_value = "";
  566.   
  567.   /* modified for DISA II
  568.   //add page num
  569.   return_value += "page_num=" + PAGE_NUM;
  570.   //add status
  571.   return_value += "&sco_status=" + get_item_in_list(flms_get_cookie_data(tmp_prog_id,tmp_user_id,"status"),tmp_cur_sco,"&");
  572.   //add location
  573.   return_value += "&sco_location=" + get_item_in_list(flms_get_cookie_data(tmp_prog_id,tmp_user_id,"loc"),tmp_cur_sco,"&");
  574.   */
  575.   //done only for DISA II
  576.   var tmp_status = flms_get_sco_status(tmp_cur_sco,"1");
  577.   var tmp_loc = flms_get_sco_loc(tmp_cur_sco,"1");
  578.  
  579.   if (flms_get_browse())  {
  580.     tmp_status = "c";
  581.     tmp_loc = MAX_PAGE_NUM;
  582.   }
  583.   //if (tmp_loc == "0")
  584.     //tmp_loc = "1";
  585.   return_value += "current_sco=" + tmp_cur_sco;
  586.   return_value += "&sco_status=" + tmp_status;
  587.   return_value += "&sco_location=" + tmp_loc;
  588.   return_value += "&max_page=" + MAX_PAGE_NUM;
  589.   return return_value;
  590. }
  591.  
  592.