Adds crawl group/presentation ability to edit crawl mixes, add documentation to queue_server, a=chris

Chris Pollett [2011-04-22 07:Apr:nd]
Adds crawl group/presentation ability to edit crawl mixes, add documentation to queue_server, a=chris
Filename
bin/queue_server.php
configs/createdb.php
controllers/admin_controller.php
controllers/search_controller.php
lib/index_archive_bundle.php
lib/index_dictionary.php
lib/index_shard.php
locale/ar/configure.ini
locale/de/configure.ini
locale/en-US/configure.ini
locale/es/configure.ini
locale/fr-FR/configure.ini
locale/he/configure.ini
locale/in-ID/configure.ini
locale/it/configure.ini
locale/ja/configure.ini
locale/ja/statistics.txt
locale/ko/configure.ini
locale/ko/statistics.txt
locale/pl/configure.ini
locale/pt/configure.ini
locale/ru/configure.ini
locale/th/configure.ini
locale/vi-VN/configure.ini
locale/vi-VN/statistics.txt
locale/zh-CN/configure.ini
locale/zh-CN/statistics.txt
models/crawl_model.php
models/phrase_model.php
scripts/basic.js
scripts/mix.js
views/elements/editmix_element.php
views/elements/mixcrawls_element.php
views/layouts/web_layout.php
diff --git a/bin/queue_server.php b/bin/queue_server.php
index 400ce668f..a7f53db38 100755
--- a/bin/queue_server.php
+++ b/bin/queue_server.php
@@ -309,7 +309,8 @@ class QueueServer implements CrawlConstants
     }

     /**
-     *
+     * Used to write info about the current recrawl to file as well as to
+     * process any recrawl data files received
      */
     function writeArchiveCrawlInfo()
     {
@@ -343,7 +344,7 @@ class QueueServer implements CrawlConstants
     }

     /**
-     * Even during a recrawl teh fetcher may send robot data to the
+     * Even during a recrawl the fetcher may send robot data to the
      * queue_server. This function delete the passed robot file.
      *
      * @param string $file robot file to delete
@@ -356,7 +357,13 @@ class QueueServer implements CrawlConstants
     }

     /**
-     *
+     * Used to get a data archive file (either during a normal crawl or a
+     * recrawl). After uncompressing this file (which comes via the web server
+     * through fetch_controller, from the fetcher), it sets which fetcher
+     * sent it and also returns the sites contained in it.
+     *
+     * @param string $file name of archive data file
+     * @return array sites contained in the file from the fetcher
      */
     function &getDataArchiveFileData($file)
     {
@@ -381,7 +388,9 @@ class QueueServer implements CrawlConstants
     }

     /**
-     *
+     * Processes fetcher data file information during a recrawl
+     *
+     * @param String $file a file which contains the info to process
      */
     function processRecrawlDataArchive($file)
     {
@@ -1014,7 +1023,10 @@ class QueueServer implements CrawlConstants
     }

     /**
+     * Writes status information about the current crawl so that the webserver
+     * app can use it for its display.
      *
+     * @param array $sites contains the most recently crawled sites
      */
     function writeCrawlStatus(&$sites)
     {
@@ -1065,7 +1077,11 @@ class QueueServer implements CrawlConstants
     }

     /**
+     * Used to create an encode a string representing with meta info for
+     * a fetcher schedule.
      *
+     * @param int $schedule_time timestamp of the schedule
+     * @return string base64 encoded meta info
      */
     function calculateScheduleMetaInfo($schedule_time)
     {
diff --git a/configs/createdb.php b/configs/createdb.php
index 326f0f5f5..4490d5314 100755
--- a/configs/createdb.php
+++ b/configs/createdb.php
@@ -199,8 +199,12 @@ $db->execute("CREATE TABLE CURRENT_WEB_INDEX (CRAWL_TIME INT(11) )");
 $db->execute("CREATE TABLE CRAWL_MIXES (
     MIX_TIMESTAMP INT(11) PRIMARY KEY, MIX_NAME VARCHAR(16) UNIQUE)");

+$db->execute("CREATE TABLE MIX_GROUPS (
+    MIX_TIMESTAMP INT(11), GROUP_ID INT(4), RESULT_BOUND INT(4))");
+
 $db->execute("CREATE TABLE MIX_COMPONENTS (
-    MIX_TIMESTAMP INT(11), WEIGHT REAL, CRAWL_TIMESTAMP INT(11))");
+    MIX_TIMESTAMP INT(11), GROUP_ID INT(4), CRAWL_TIMESTAMP INT(11),
+    WEIGHT REAL, KEYWORDS VARCHAR(256))");


 $db->disconnect();
diff --git a/controllers/admin_controller.php b/controllers/admin_controller.php
index 94bbdf9d7..699f81c20 100755
--- a/controllers/admin_controller.php
+++ b/controllers/admin_controller.php
@@ -1000,29 +1000,19 @@ class AdminController extends Controller implements CrawlConstants
         $possible_arguments = array(
             "createmix", "deletemix", "editmix", "index");

-        $data['SCRIPT'] = "weights = [";
-        $data['allowed_weights'] = array();
-        $comma = "";
-        for($j = .1; $j<= 1; $j *=10) {
-            for($i = 1; $i < 10; $i++) {
-                $val = $i*$j;
-                $data['allowed_weights']["$val"] =$val;
-                $data['SCRIPT'] .= $comma .$val;
-                $comma = ",";
-            }
-        }
-        $data['allowed_weights']["10"] = 10;
-        $data['SCRIPT'] .= ",10];";
-
-
         $data["ELEMENT"] = "mixcrawlsElement";

         $data['mix_default'] = 0;
         $crawls = $this->crawlModel->getCrawlList();
         $data['available_crawls'][0] = tl('admin_controller_select_crawl');
+        $data['SCRIPT'] = "c = [];c[0]='".
+            tl('admin_controller_select_crawl')."';";
         foreach($crawls as $crawl) {
+
             $data['available_crawls'][$crawl['CRAWL_TIME']] =
                 $crawl['DESCRIPTION'];
+            $data['SCRIPT'] .= 'c['.$crawl['CRAWL_TIME'].']="'.
+                $crawl['DESCRIPTION'].'";';
         }
         $mixes = $this->crawlModel->getMixList(true);
         if(count($mixes) > 0 ) {
@@ -1033,6 +1023,7 @@ class AdminController extends Controller implements CrawlConstants
             }
         }

+        $mix = array();
         if(isset($_REQUEST['arg']) &&
             in_array($_REQUEST['arg'], $possible_arguments)) {
             switch($_REQUEST['arg'])
@@ -1045,87 +1036,14 @@ class AdminController extends Controller implements CrawlConstants
                     } else {
                         $mix['MIX_NAME'] = tl('admin_controller_unnamed');
                     }
-                    $mix['COMPONENTS'] = array();
+                    $mix['GROUPS'] = array();
                     $this->crawlModel->setCrawlMix($mix);
                     $data['SCRIPT'] .= "doMessage('<h1 class=\"red\" >".
                         tl('admin_controller_mix_created')."</h1>');";
+
                 case "editmix":
-                    $data["leftorright"] =
-                        (getLocaleDirection() == 'ltr') ? "right": "left";
-                    $data["ELEMENT"] = "editmixElement";
-                    if(!isset($mix['MIX_TIMESTAMP']) &&
-                        (!isset($_REQUEST['timestamp']) ||
-                        !in_array($_REQUEST['timestamp'], $mix_ids))) {
-                        $data['SCRIPT'] .= "doMessage('<h1 class=\"red\" >".
-                            tl('admin_controller_mix_doesnt_exists').
-                            "</h1>')";
-                        return $data;
-                    }
-                    if(isset($_REQUEST['timestamp'])) {
-                        $mix = $this->crawlModel->getCrawlMix(
-                            $_REQUEST['timestamp']);
-                    }
-                    $data['MIX'] = $mix;
-                    $data['SCRIPT'] .= 'elt("add-crawls").onchange = '.
-                        'function () { var  ac = elt("add-crawls"); ' .
-                        '   var sel = ac.selectedIndex; ' .
-                        '   var name = ac.options[sel].text; '.
-                        '   var ts = ac.options[sel].value; ' .
-                        '   ac.options[sel] = null;'."\n".
-                        '   var tr =document.createElement("tr");'.
-                        '   tr.id = ts;'.
-                        '   elt("mix-table").appendChild(tr);'.
-                        '   tr.innerHTML += '.
-                        '   "<td>"+drawSelect(ts)+"</td>'.
-                        '   <td>"+name+"</td><td><a href=\"'.
-                        '   javascript:removeCrawl(\'"+ts+"\',\'"+name+"\')\">'.
-                        tl('editcrawl_view_delete').'</a></td>"}'."\n";
-                    $data['SCRIPT'] .= 'function removeCrawl(ts, name) {'.
-                        '   ac = elt("add-crawls"); ac.length++;'.
-                        '   row = elt(ts); row.parentNode.removeChild(row);'.
-                        '   ac.options[ac.length -1].value = ts;'.
-                        '   ac.options[ac.length -1].text = name;}'."\n";
-                    $data['SCRIPT'] .= 'function drawSelect(ts) {'.
-                        '   select = "<select name=\'mix[COMPONENTS]["+ts+"]\''.
-                        '   >";'.
-                        '   for ( wt in weights) {' .
-                        '   if(wt == Math.floor(weights.length/2)) { '.
-                        '      val = weights[wt] + "\' selected=\'selected";}'.
-                        '   else {val = weights[wt];} '.
-                        '   select += "<option value=\'"+val+"\'>"'.
-                        '   + weights[wt]+"</option>";}' .
-                        '   select += "</select>";' .
-                        '   return select;}';
-                    if(isset($_REQUEST['update']) && $_REQUEST['update'] ==
-                        "update") {
-                        $mix = $_REQUEST['mix'];
-                        $mix['MIX_TIMESTAMP'] =
-                            $this->clean($mix['MIX_TIMESTAMP'], "int");
-                        $mix['MIX_NAME'] =$this->clean($mix['MIX_NAME'],
-                            "string");
-                        $comp = array();
-                        if(isset($mix['COMPONENTS'])) {
-                            if($mix['COMPONENTS'] != NULL) {
-                                foreach($mix['COMPONENTS'] as $cs => $wt) {
-                                    $row = array();
-                                    $row['WEIGHT'] = $this->clean($wt, "float");
-                                    $row['CRAWL_TIMESTAMP'] =
-                                        $this->clean($cs, "float");
-                                    $comp[] =$row;
-                                }
-                                $mix['COMPONENTS'] = $comp;
-                            } else {
-                                $mix['COMPONENTS'] = array();
-                            }
-
-                        } else {
-                            $mix['COMPONENTS'] = $data['MIX']['COMPONENTS'];
-                        }
-                        $data['MIX'] = $mix;
-                        $this->crawlModel->setCrawlMix($mix);
-                        $data['SCRIPT'] .= "doMessage('<h1 class=\"red\" >".
-                            tl('admin_controller_mix_saved')."</h1>');";
-                    }
+                    //$data passed by reference
+                    $this->editMix($data, $mix_ids, $mix);
                 break;

                 case "index":
@@ -1163,6 +1081,116 @@ class AdminController extends Controller implements CrawlConstants
         return $data;
     }

+    /**
+     *
+     */
+    function editMix(&$data, &$mix_ids, $mix)
+    {
+        $data["leftorright"] =
+            (getLocaleDirection() == 'ltr') ? "right": "left";
+        $data["ELEMENT"] = "editmixElement";
+
+        if(isset($_REQUEST['timestamp'])) {
+            $mix = $this->crawlModel->getCrawlMix(
+                $_REQUEST['timestamp']);
+        }
+        $data['MIX'] = $mix;
+        $data['INCLUDE_SCRIPTS'] = array("mix");
+
+        //set up an array of translation for javascript-land
+        $data['SCRIPT'] .= "tl = {".
+            'editmix_element_add_crawls:"'.tl('editmix_element_add_crawls').'",'.
+            'editmix_element_num_results:"'.
+                tl('editmix_element_num_results').'",'.
+            'editmix_element_del_grp:"'.tl('editmix_element_del_grp').'",'.
+            'editmix_element_weight:"'.tl('editmix_element_weight').'",'.
+            'editmix_element_name:"'.tl('editmix_element_name').'",'.
+            'editmix_add_keywords:"'.tl('editmix_add_keywords').'",'.
+            'editmix_element_actions:"'.tl('editmix_element_actions').'",'.
+            'editmix_add_query:"'.tl('editmix_add_query').'",'.
+            'editmix_element_delete:"'.tl('editmix_element_delete').'"'.
+            '};';
+        //clean and save the crawl mix sent from the browser
+        if(isset($_REQUEST['update']) && $_REQUEST['update'] ==
+            "update") {
+            $mix = $_REQUEST['mix'];
+            $mix['MIX_TIMESTAMP'] =
+                $this->clean($mix['MIX_TIMESTAMP'], "int");
+            $mix['MIX_NAME'] =$this->clean($mix['MIX_NAME'],
+                "string");
+            $comp = array();
+            if(isset($mix['GROUPS'])) {
+
+                if($mix['GROUPS'] != NULL) {
+                    foreach($mix['GROUPS'] as $group_id => $group_data) {
+                        if(isset($group_data['RESULT_BOUND'])) {
+                            $mix['GROUPS'][$group_id]['RESULT_BOUND'] =
+                                $this->clean($group_data['RESULT_BOUND'],
+                                    "int");
+                        } else {
+                            $mix['GROUPS']['RESULT_BOUND'] = 0;
+                        }
+                        if(isset($group_data['COMPONENTS'])) {
+                            $comp = array();
+                            foreach($group_data['COMPONENTS'] as $component) {
+                                $row = array();
+                                $row['CRAWL_TIMESTAMP'] =
+                                    $this->clean($component['CRAWL_TIMESTAMP'],
+                                    "int");
+                                $row['WEIGHT'] = $this->clean(
+                                    $component['WEIGHT'], "float");
+                                $row['KEYWORDS'] = $this->clean(
+                                    $component['KEYWORDS'],
+                                    "string");
+                                $comp[] =$row;
+                            }
+                            $mix['GROUPS'][$group_id]['COMPONENTS'] = $comp;
+                        } else {
+                            $mix['GROUPS'][$group_id]['COMPONENTS'] = array();
+                        }
+                    }
+                } else {
+                    $mix['COMPONENTS'] = array();
+                }
+
+            } else {
+                $mix['GROUPS'] = $data['MIX']['GROUPS'];
+            }
+
+            $data['MIX'] = $mix;
+            $this->crawlModel->setCrawlMix($mix);
+            $data['SCRIPT'] .= "doMessage('<h1 class=\"red\" >".
+                tl('admin_controller_mix_saved')."</h1>');";
+        }
+
+        $data['SCRIPT'] .= 'groups = [';
+        $not_first = "";
+        foreach($mix['GROUPS'] as $group_id => $group_data) {
+            $data['SCRIPT'] .= $not_first.'{';
+            $not_first= ",";
+            if(isset($group_data['RESULT_BOUND'])) {
+                $data['SCRIPT'] .= "num_results:".$group_data['RESULT_BOUND'];
+            } else {
+                $data['SCRIPT'] .= "num_results:1 ";
+            }
+            $data['SCRIPT'] .= ", components:[";
+            if(isset($group_data['COMPONENTS'])) {
+                $comma = "";
+                foreach($group_data['COMPONENTS'] as $component) {
+                    $crawl_ts = $component['CRAWL_TIMESTAMP'];
+                    $crawl_name = $data['available_crawls'][$crawl_ts];
+                    $data['SCRIPT'] .= $comma." [$crawl_ts, '$crawl_name', ".
+                        $component['WEIGHT'].", ";
+                    $comma = ",";
+                    $keywords = (isset($component['KEYWORDS'])) ?
+                        $component['KEYWORDS'] : "";
+                    $data['SCRIPT'] .= "'$keywords'] ";
+                }
+            }
+            $data['SCRIPT'] .= "] }";
+        }
+        $data['SCRIPT'] .= ']; drawGroups();';
+    }


     /**
diff --git a/controllers/search_controller.php b/controllers/search_controller.php
index a5821d7b9..0a87ae331 100755
--- a/controllers/search_controller.php
+++ b/controllers/search_controller.php
@@ -135,7 +135,8 @@ class SearchController extends Controller implements CrawlConstants
             $its = (isset($_REQUEST['its'])) ? $_REQUEST['its'] :
                 $_SESSION['its'];
             $index_time_stamp = $this->clean($its, "int");
-            if(!$this->phraseModel->indexExists($index_time_stamp)) {
+            if(!$this->phraseModel->indexExists($index_time_stamp)
+              && !$this->crawlModel->isCrawlMix($index_time_stamp)) {
                 $index_time_stamp = 0; //use the default crawl index
             }
         } else {
@@ -211,7 +212,8 @@ class SearchController extends Controller implements CrawlConstants
     {
         if($index_name == 0) {
             $index_name = $this->crawlModel->getCurrentIndexDatabaseName();
-            if(!$this->phraseModel->indexExists($index_name)) {
+            if(!$this->phraseModel->indexExists($index_name)
+                && !$this->crawlModel->isCrawlMix($index_name)) {
                 $data['SCRIPT'] =
                         "doMessage('<h1 class=\"red\" >".
                         tl('search_controller_no_index_set').
diff --git a/lib/index_archive_bundle.php b/lib/index_archive_bundle.php
index 01ca8f7b9..35f14a7c8 100644
--- a/lib/index_archive_bundle.php
+++ b/lib/index_archive_bundle.php
@@ -252,6 +252,10 @@ class IndexArchiveBundle implements CrawlConstants
         return $this->generation_info['ACTIVE'];
     }

+    /**
+     * Saves the active index shard to disk, then adds the words from this
+     * shard to the dictionary
+     */
     function saveAndAddCurrentShardDictionary()
     {
         // Save current shard dictionary to main dictionary
diff --git a/lib/index_dictionary.php b/lib/index_dictionary.php
index 200ae5cb1..6ab4acce6 100644
--- a/lib/index_dictionary.php
+++ b/lib/index_dictionary.php
@@ -470,8 +470,9 @@ class IndexDictionary implements CrawlConstants
         }

         $word_item_len = IndexShard::WORD_ITEM_LEN;
-        $word_data_len = IndexShard::WORD_ITEM_LEN- IndexShard::WORD_KEY_LEN;
+        $word_data_len = IndexShard::WORD_ITEM_LEN - IndexShard::WORD_KEY_LEN;
         $file_num = ord($word_id[0]);
+
         $prefix = ord($word_id[1]);
         $prefix_info = $this->getDictSubstring($file_num,
             self::PREFIX_ITEM_SIZE*$prefix, self::PREFIX_ITEM_SIZE);
@@ -480,7 +481,6 @@ class IndexDictionary implements CrawlConstants
         }

         $offset = unpackInt(substr($prefix_info, 0, 4));
-
         $high = unpackInt(substr($prefix_info, 4, 4)) - 1;

         $start = self::PREFIX_HEADER_SIZE  + $offset;
diff --git a/lib/index_shard.php b/lib/index_shard.php
index 3ac39301d..6a6ff06bb 100644
--- a/lib/index_shard.php
+++ b/lib/index_shard.php
@@ -471,6 +471,9 @@ class IndexShard extends PersistentStructure implements CrawlConstants
         return $results;
     }

+    /**
+     *
+     */
     static function numDocsOrLinks($start_offset, $last_offset)
     {
         return floor(($last_offset - $start_offset) / self::POSTING_LEN);
@@ -520,7 +523,7 @@ class IndexShard extends PersistentStructure implements CrawlConstants
         $is_doc = (($doc_len & self::LINK_FLAG) == 0) ? true : false;
         if(!$is_doc) {
             $doc_len -= self::LINK_FLAG;
-            $item[self::DOC_RANK] *= 0.015;
+            $item[self::DOC_RANK] *= .03;
                 //scale doc rank of links by 1/(avg num of links/page)
         }
         $item[self::IS_DOC] = $is_doc;
@@ -923,7 +926,8 @@ class IndexShard extends PersistentStructure implements CrawlConstants
                 $this->word_docs_len += $len;
                 $this->words[$word_id] = $out;
             } else {
-                $out = substr($postings, self::POSTING_LEN);
+                $out = substr($postings,
+                    self::POSTING_LEN, self::WORD_ITEM_LEN);
                 $out[0] = chr((0x80 | ord($out[0])));
                 $this->words[$word_id] = $out;
             }
diff --git a/locale/ar/configure.ini b/locale/ar/configure.ini
index 474be4425..d1b8afd25 100755
--- a/locale/ar/configure.ini
+++ b/locale/ar/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/de/configure.ini b/locale/de/configure.ini
index 2b0ae517c..db08eb76b 100755
--- a/locale/de/configure.ini
+++ b/locale/de/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/en-US/configure.ini b/locale/en-US/configure.ini
index d5b0c62fe..666ead06e 100755
--- a/locale/en-US/configure.ini
+++ b/locale/en-US/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = "Page Importance"
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = "Updating Seed Site Info!"
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = "Select Crawl"
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = "Select Crawl"
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = "Unnamed Crawl"
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = "Crawl Mix Created!"
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = "Setting Crawl To Use as Index"
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = "Mix to Delete Does not Exist!"
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = "Delete"
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = "Crawl Mix Deleted!"
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = "Crawl Mix Changes Saved!"
+; admin_controller.php line: 1115
+editmix_element_add_crawls = "Add Crawls:"
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = "Setting Crawl To Use as Index"
+; admin_controller.php line: 1117
+editmix_element_num_results = "Number of Results:"
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = "Mix to Delete Does not Exist!"
+; admin_controller.php line: 1118
+editmix_element_del_grp = "Delete group"
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = "Crawl Mix Deleted!"
+; admin_controller.php line: 1119
+editmix_element_weight = "Weight"
+;
+; admin_controller.php line: 1120
+editmix_element_name = "Name"
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = "Keywords"
+;
+; admin_controller.php line: 1122
+editmix_element_actions = "Actions"
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = "Delete"
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = "Crawl Mix Changes Saved!"
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = "Select Locale"
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = "Locale Added!"
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = "Locale Does Not Exist!"
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = "Locale Deleted"
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = "Locale Strings Updated!"
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = "configs/config.php not web server writable."
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = "Work directory needs to be writable by web server. "
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = "php.ini directive post_max_size needs to be at least 16M"
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = "The following required items were missing: %s"
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = "The following optional items were missing: %s"
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = "Check Passed."
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = "Using configs/local_config.php so changing work directory above may not work."
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = "Work Directory Set! You may need to re-login!"
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = "Please Name Your robot"
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = "Working Directory and Profile Created!"
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = "Unable to Update config.php File!"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = "Unable to Create Profile!"
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = "Work Directory is Invalid! Cannot Create Profile!"
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = "Work Directory is Invalid! Cannot Create Profile!"
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = "Problem Updating Database!"
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = "Profile Updated!"
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = "There was a Problem Updating Profile!"
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = "Please Describe Your Robot"
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = "Logout Successful!!"
 ; search_controller.php line: 216
 search_controller_no_index_set = "No Search Index Set For Use!"
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = "This cached version of %s was obtained by the Yioop crawler on %s."
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = "Crawl Robot Set-up"
 ; configure_element.php line: 231
 configure_element_robot_name = "Crawl Robot Name:"
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = "Robot Instance:"
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = "Robot Description"
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = "Submit"
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = "Back"
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = "Edit Crawl Mix"
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = "Mix Name:"
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = "Mix Components"
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = "Weight"
-;
-; editmix_element.php line: 81
-editcrawl_view_name = "Name"
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = "Actions"
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = "Delete"
+mixcrawls_element_add_group = "Add Mix Group"
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = "Add a crawl:"
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = "Save"
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = "Definition"
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = "Actions"
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = "Mix has no components yet"
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = "Edit"
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = "Set as Index"
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = "Search Index"
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = "Delete"
 ;
 ; signin_element.php line: 61
diff --git a/locale/es/configure.ini b/locale/es/configure.ini
index c0388dbbb..225bc1923 100755
--- a/locale/es/configure.ini
+++ b/locale/es/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/fr-FR/configure.ini b/locale/fr-FR/configure.ini
index a7bf22556..1d52b80f1 100755
--- a/locale/fr-FR/configure.ini
+++ b/locale/fr-FR/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/he/configure.ini b/locale/he/configure.ini
index 9016b50ba..fb8e49661 100755
--- a/locale/he/configure.ini
+++ b/locale/he/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/in-ID/configure.ini b/locale/in-ID/configure.ini
index 8dec4efdc..d5d28d728 100755
--- a/locale/in-ID/configure.ini
+++ b/locale/in-ID/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = "Pilih name locale"
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = "Locale telah ditambah"
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = "Locale tidak ditemukan"
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = "Locale telah dihapus"
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = "Logout berhasil"
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/it/configure.ini b/locale/it/configure.ini
index 480b7f309..a871d42fa 100755
--- a/locale/it/configure.ini
+++ b/locale/it/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/ja/configure.ini b/locale/ja/configure.ini
index 4d2cf37e8..ae7a6bb80 100755
--- a/locale/ja/configure.ini
+++ b/locale/ja/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = "ページの重要性"
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = "シッド情報の更新"
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = "指数のための検索設定する。"
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = "指数のための検索設定する。"
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = "選択ローケル"
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = "ローケルが追加しました"
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = "ローケルは存在しません"
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = "ローケルを削除しました"
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = "ローケルストリングを編集しました"
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = "作業ディレクトリの設定しました。もう一度ログインしてください。"
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = "ボット名を入力してください。"
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = "作業ディレクトリとプロフィールの作成しました。"
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = "config.phpファイルのできない。更新"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = "プロフィールを作成できない。"
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = "無効な作業ディレクト。プロフィールを作成できない。"
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = "無効な作業ディレクト。プロフィールを作成できない。"
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = "ディータベースの更新ない"
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = "プロフィールの変更できました。"
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = "プロフィールの変更できない。"
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = "ロボットの説明してください。"
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = "ログアウト成功"
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = "%sのこのキャッシュされたバージョンは%sのウィオップから入手しました。"
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = "検索ロボット設定"
 ; configure_element.php line: 231
 configure_element_robot_name = "ロボット名"
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = "ロボット説明"
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = "サブミット"
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/ja/statistics.txt b/locale/ja/statistics.txt
index d1d9ed5ab..ea61b99c9 100755
--- a/locale/ja/statistics.txt
+++ b/locale/ja/statistics.txt
@@ -1 +1 @@
-d:72;
\ No newline at end of file
+d:70;
\ No newline at end of file
diff --git a/locale/ko/configure.ini b/locale/ko/configure.ini
index 2bd1dda8d..6e43943b1 100755
--- a/locale/ko/configure.ini
+++ b/locale/ko/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = "페이지 중요성"
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = "씨드 사이트 업데이트"
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = "크롤을 인덱스로써 사용하기 지정"
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = "크롤을 인덱스로써 사용하기 지정"
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = "로케일을 선택하여 주십시요."
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = "로케일 추가!!"
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = "로케일이 존재하지 않습니다."
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = "로케일을 삭제 하였습니다."
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = "로케일 지정 문자열을 업데이트 하였습니다."
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = "작업 디렉토리가 지정 됐습니다. 다시 로그인이 필요할수 있습니다."
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = "로봇 이름을 정해 주십시요."
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = "작업 디렉토리와 프로필이 생성됐습니다."
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = "config.php 파일을  업데이트 실패했습니다."
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = "프로필을 생성할수 없습니다."
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = "작업 디렉토리가 올바르지 않습니다. 프로필을 생성할수 없습니다."
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = "작업 디렉토리가 올바르지 않습니다. 프로필을 생성할수 없습니다."
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = "데이터베이스를 업데이트하는데 문제가 발생했습니다."
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = "프로필을 업데이트 했습니다."
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = "프로필을 업데이트하는데 문제가 발생했습니다."
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = "당신의 로봇을 기술해 주십시요."
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = "로그 아웃 성공!!"
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = "현재 캐시 버젼 %s 은 Yioop 크롤 %s 에 의하여 얻어 졌습니다. "
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = "크롤 로봇 설정"
 ; configure_element.php line: 231
 configure_element_robot_name = "로봇 기술 "
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = "크롤 로봇 이름:"
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = "제출 "
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/ko/statistics.txt b/locale/ko/statistics.txt
index 2c43a0adb..d1d9ed5ab 100755
--- a/locale/ko/statistics.txt
+++ b/locale/ko/statistics.txt
@@ -1 +1 @@
-d:73;
\ No newline at end of file
+d:72;
\ No newline at end of file
diff --git a/locale/pl/configure.ini b/locale/pl/configure.ini
index 323d5974e..cf58d4457 100755
--- a/locale/pl/configure.ini
+++ b/locale/pl/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/pt/configure.ini b/locale/pt/configure.ini
index 589f0f9e6..6205bf57f 100755
--- a/locale/pt/configure.ini
+++ b/locale/pt/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/ru/configure.ini b/locale/ru/configure.ini
index f7e90b62f..313ad4bc8 100755
--- a/locale/ru/configure.ini
+++ b/locale/ru/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/th/configure.ini b/locale/th/configure.ini
index 1a0943d74..6b74a0ea5 100755
--- a/locale/th/configure.ini
+++ b/locale/th/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = ""
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/vi-VN/configure.ini b/locale/vi-VN/configure.ini
index 3b0d96f22..45dc50a66 100755
--- a/locale/vi-VN/configure.ini
+++ b/locale/vi-VN/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = "Trang quan trọng"
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = "Cập nhật th&ocirc;ng tin trang web hạt giống"
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = "Thiết lập thu thập dữ liệu để sử dụng l&agrave;m chỉ mục"
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = "Thiết lập thu thập dữ liệu để sử dụng l&agrave;m chỉ mục"
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = "Chọn miền địa phương"
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = "Miền địa phương th&ecirc;m v&agrave;o"
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = "Miền địa phương kh&ocirc;ng tồn tại"
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = "X&oacute;a miền địa phương"
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = "Chuỗi Địa phương được cập nhật"
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = "C&ocirc;ng việc thiết lập thư mục bị đ&ocirc;ng cứng (Bạn c&oacute; thể cần phải đăng nhập)"
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = "Đặt t&ecirc;n cho r&ocirc; b&ocirc; của bạn"
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = "Thư mục l&agrave;m việc v&agrave; hồ sơ được tạo ra"
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = "Kh&ocirc;ng thể cập nhật hồ sơ config.php"
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = "Kh&ocirc;ng thể tạo hồ sơ"
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = "C&ocirc;ng t&aacute;c thư mục kh&ocirc;ng hợp lệ"
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = "C&ocirc;ng t&aacute;c thư mục kh&ocirc;ng hợp lệ"
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = "Vấn đề cập nhật cơ sở dữ liệu"
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = "Hồ sơ được cập nhật"
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = "C&oacute; sự trở ngaị về việc cập nhật hồ sơ "
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = "Diễn tả r&ocirc; b&ocirc; của bạn"
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = "Tho&aacute;t th&agrave;nh c&ocirc;ng"
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = "Trang gốc n&agrave;y: %s đ&atilde; t&igrave;m được bởi c&ocirc;ng cụ t&igrave;m kiẽm Yioop v&agrave;o ng&agrave;y %s."
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = "M&ocirc; tả r&ocirc;-bốt"
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/vi-VN/statistics.txt b/locale/vi-VN/statistics.txt
index c4f2a22ab..055203437 100755
--- a/locale/vi-VN/statistics.txt
+++ b/locale/vi-VN/statistics.txt
@@ -1 +1 @@
-d:52;
\ No newline at end of file
+d:51;
\ No newline at end of file
diff --git a/locale/zh-CN/configure.ini b/locale/zh-CN/configure.ini
index 485a5d07f..dd49a455b 100755
--- a/locale/zh-CN/configure.ini
+++ b/locale/zh-CN/configure.ini
@@ -163,100 +163,124 @@ admin_controller_page_importance = "網頁重要性"
 ; admin_controller.php line: 932
 admin_controller_update_seed_info = ""
 ;
-; admin_controller.php line: 1021
+; admin_controller.php line: 1006
 admin_controller_select_crawl = ""
 ;
-; admin_controller.php line: 1045
+; admin_controller.php line: 1008
+admin_controller_select_crawl = ""
+;
+; admin_controller.php line: 1036
 admin_controller_unnamed = ""
 ;
-; admin_controller.php line: 1050
+; admin_controller.php line: 1041
 admin_controller_mix_created = ""
 ;
-; admin_controller.php line: 1059
+; admin_controller.php line: 1050
+admin_controller_set_index = ""
+;
+; admin_controller.php line: 1060
 admin_controller_mix_doesnt_exists = ""
 ;
-; admin_controller.php line: 1081
-editcrawl_view_delete = ""
+; admin_controller.php line: 1068
+admin_controller_mix_deleted = ""
 ;
-; admin_controller.php line: 1126
-admin_controller_mix_saved = ""
+; admin_controller.php line: 1115
+editmix_element_add_crawls = ""
 ;
-; admin_controller.php line: 1132
-admin_controller_set_index = ""
+; admin_controller.php line: 1117
+editmix_element_num_results = ""
 ;
-; admin_controller.php line: 1142
-admin_controller_mix_doesnt_exists = ""
+; admin_controller.php line: 1118
+editmix_element_del_grp = ""
 ;
-; admin_controller.php line: 1150
-admin_controller_mix_deleted = ""
+; admin_controller.php line: 1119
+editmix_element_weight = ""
+;
+; admin_controller.php line: 1120
+editmix_element_name = ""
+;
+; admin_controller.php line: 1121
+editmix_add_keywords = ""
+;
+; admin_controller.php line: 1122
+editmix_element_actions = ""
+;
+; admin_controller.php line: 1123
+editmix_add_query = ""
 ;
-; admin_controller.php line: 1186
+; admin_controller.php line: 1124
+editmix_element_delete = ""
+;
+; admin_controller.php line: 1176
+admin_controller_mix_saved = ""
+;
+; admin_controller.php line: 1218
 admin_controller_select_localename = ""
 ;
-; admin_controller.php line: 1229
+; admin_controller.php line: 1261
 admin_controller_locale_added = ""
 ;
-; admin_controller.php line: 1236
+; admin_controller.php line: 1268
 admin_controller_localename_doesnt_exists = ""
 ;
-; admin_controller.php line: 1245
+; admin_controller.php line: 1277
 admin_controller_localename_deleted = ""
 ;
-; admin_controller.php line: 1265
+; admin_controller.php line: 1297
 admin_controller_localestrings_updated = ""
 ;
-; admin_controller.php line: 1319
+; admin_controller.php line: 1351
 admin_controller_no_write_config_php = ""
 ;
-; admin_controller.php line: 1324
+; admin_controller.php line: 1356
 admin_controller_no_write_work_dir = ""
 ;
-; admin_controller.php line: 1329
+; admin_controller.php line: 1361
 admin_controller_post_size_small = ""
 ;
-; admin_controller.php line: 1335
+; admin_controller.php line: 1367
 admin_controller_missing_required = ""
 ;
-; admin_controller.php line: 1351
+; admin_controller.php line: 1383
 admin_controller_missing_optional = ""
 ;
-; admin_controller.php line: 1356
+; admin_controller.php line: 1388
 admin_controller_check_passed = ""
 ;
-; admin_controller.php line: 1361
+; admin_controller.php line: 1393
 admin_controller_using_local_config = ""
 ;
-; admin_controller.php line: 1431
+; admin_controller.php line: 1463
 admin_controller_configure_work_dir_set = ""
 ;
-; admin_controller.php line: 1443
+; admin_controller.php line: 1475
 admin_controller_name_your_bot = ""
 ;
-; admin_controller.php line: 1452
+; admin_controller.php line: 1484
 admin_controller_configure_work_profile_made = ""
 ;
-; admin_controller.php line: 1460
+; admin_controller.php line: 1492
 admin_controller_configure_no_set_config = ""
 ;
-; admin_controller.php line: 1471
+; admin_controller.php line: 1503
 admin_controller_configure_no_create_profile = ""
 ;
-; admin_controller.php line: 1480
+; admin_controller.php line: 1512
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1491
+; admin_controller.php line: 1523
 admin_controller_configure_work_dir_invalid = ""
 ;
-; admin_controller.php line: 1567
+; admin_controller.php line: 1599
 admin_controller_configure_no_change_db = ""
 ;
-; admin_controller.php line: 1581
+; admin_controller.php line: 1613
 admin_controller_configure_profile_change = ""
 ;
-; admin_controller.php line: 1595
+; admin_controller.php line: 1627
 admin_controller_configure_no_change_profile = ""
 ;
-; admin_controller.php line: 1631
+; admin_controller.php line: 1663
 admin_controller_describe_robot = ""
 ;
 ; search_controller.php line: 119
@@ -265,7 +289,7 @@ search_controller_logout_successful = ""
 ; search_controller.php line: 216
 search_controller_no_index_set = ""
 ;
-; search_controller.php line: 414
+; search_controller.php line: 424
 search_controller_cached_version = ""
 ;
 ; settings_controller.php line: 122
@@ -455,13 +479,13 @@ configure_element_crawl_robot = ""
 ; configure_element.php line: 231
 configure_element_robot_name = ""
 ;
-; configure_element.php line: 238
+; configure_element.php line: 239
 configure_element_robot_instance = ""
 ;
-; configure_element.php line: 245
+; configure_element.php line: 246
 configure_element_robot_description = ""
 ;
-; configure_element.php line: 254
+; configure_element.php line: 255
 configure_element_submit = ""
 ;
 ; crawloptions_element.php line: 62
@@ -530,28 +554,16 @@ editmix_element_back_to_mix = ""
 ; editmix_element.php line: 60
 mixcrawls_element_edit_mix = ""
 ;
-; editmix_element.php line: 72
+; editmix_element.php line: 71
 mixcrawls_element_mix_name = ""
 ;
-; editmix_element.php line: 78
+; editmix_element.php line: 77
 mixcrawls_element_mix_components = ""
 ;
 ; editmix_element.php line: 80
-editcrawl_view_weight = ""
-;
-; editmix_element.php line: 81
-editcrawl_view_name = ""
-;
-; editmix_element.php line: 82
-editcrawl_view_actions = ""
-;
-; editmix_element.php line: 96
-editcrawl_view_delete = ""
+mixcrawls_element_add_group = ""
 ;
-; editmix_element.php line: 102
-crawloptions_element_add_crawls = ""
-;
-; editmix_element.php line: 108
+; editmix_element.php line: 84
 mixcrawls_element_save_button = ""
 ;
 ; manageaccount_element.php line: 56
@@ -713,19 +725,19 @@ mixcrawls_view_definition = ""
 ; mixcrawls_element.php line: 82
 mixcrawls_view_actions = ""
 ;
-; mixcrawls_element.php line: 99
+; mixcrawls_element.php line: 108
 mixcrawls_view_no_components = ""
 ;
-; mixcrawls_element.php line: 104
+; mixcrawls_element.php line: 113
 mixcrawls_view_edit = ""
 ;
-; mixcrawls_element.php line: 110
+; mixcrawls_element.php line: 119
 mixcrawls_set_index = ""
 ;
-; mixcrawls_element.php line: 113
+; mixcrawls_element.php line: 122
 mixcrawl_search_index = ""
 ;
-; mixcrawls_element.php line: 120
+; mixcrawls_element.php line: 129
 mixcrawls_view_delete = ""
 ;
 ; signin_element.php line: 61
diff --git a/locale/zh-CN/statistics.txt b/locale/zh-CN/statistics.txt
index b752bdd23..8698e9b2d 100755
--- a/locale/zh-CN/statistics.txt
+++ b/locale/zh-CN/statistics.txt
@@ -1 +1 @@
-d:28;
\ No newline at end of file
+d:27;
\ No newline at end of file
diff --git a/models/crawl_model.php b/models/crawl_model.php
index 059be96e9..e673eae8c 100755
--- a/models/crawl_model.php
+++ b/models/crawl_model.php
@@ -280,7 +280,7 @@ class CrawlModel extends Model implements CrawlConstants
         while($row = $this->db->fetchArray($result)) {
             if($components) {
                 $mix = $this->getCrawlMix($row['MIX_TIMESTAMP'], true);
-                $row['COMPONENTS'] = $mix['COMPONENTS'];
+                $row['GROUPS'] = $mix['GROUPS'];
             }
             $rows[] = $row;
         }
@@ -308,13 +308,27 @@ class CrawlModel extends Model implements CrawlConstants
         } else {
             $mix = array();
         }
-        $sql = "SELECT WEIGHT, CRAWL_TIMESTAMP FROM MIX_COMPONENTS WHERE ".
+        $sql = "SELECT GROUP_ID, RESULT_BOUND".
+            " FROM MIX_GROUPS WHERE ".
             " MIX_TIMESTAMP='$timestamp'";
         $result = $this->db->execute($sql);
+        $mix['GROUPS'] = array();
+        while($row = $this->db->fetchArray($result)) {
+            $mix['GROUPS'][$row['GROUP_ID']]['RESULT_BOUND'] =
+                $row['RESULT_BOUND'];
+        }
+        foreach($mix['GROUPS'] as $group_id => $data) {
+            $sql = "SELECT CRAWL_TIMESTAMP, WEIGHT, KEYWORDS ".
+                " FROM MIX_COMPONENTS WHERE ".
+                " MIX_TIMESTAMP='$timestamp' AND GROUP_ID='$group_id'";
+            $result = $this->db->execute($sql);

-        $mix['COMPONENTS'] = array();
-        while($row =  $this->db->fetchArray($result)) {
-            $mix['COMPONENTS'][] = $row;
+            $mix['COMPONENTS'] = array();
+            $count = 0;
+            while($row =  $this->db->fetchArray($result)) {
+                $mix['GROUPS'][$group_id]['COMPONENTS'][$count] =$row;
+                $count++;
+            }
         }
         return $mix;
     }
@@ -356,14 +370,22 @@ class CrawlModel extends Model implements CrawlConstants
         //next we store the new data
         $sql = "INSERT INTO CRAWL_MIXES VALUES ('$timestamp', '".
             $mix['MIX_NAME']."')";
-
         $this->db->execute($sql);

-        foreach($mix['COMPONENTS'] as $component) {
-            $sql = "INSERT INTO MIX_COMPONENTS VALUES ('$timestamp', '".
-                $component['WEIGHT']."', '" .
-                $component['CRAWL_TIMESTAMP']."')";
+        $gid = 0;
+        foreach($mix['GROUPS'] as $group_id => $group_data) {
+
+            $sql = "INSERT INTO MIX_GROUPS VALUES ('$timestamp', '$gid', ".
+                "'".$group_data['RESULT_BOUND']."')";
             $this->db->execute($sql);
+            foreach($group_data['COMPONENTS'] as $component) {
+                $sql = "INSERT INTO MIX_COMPONENTS VALUES ('$timestamp', '".
+                    $gid."', '".$component['CRAWL_TIMESTAMP']."', '".
+                    $component['WEIGHT']."', '" .
+                    $component['KEYWORDS']."')";
+                $this->db->execute($sql);
+            }
+            $gid++;
         }
     }

@@ -377,6 +399,8 @@ class CrawlModel extends Model implements CrawlConstants
         $this->db->selectDB(DB_NAME);
         $sql = "DELETE FROM CRAWL_MIXES WHERE MIX_TIMESTAMP='$timestamp'";
         $this->db->execute($sql);
+        $sql = "DELETE FROM MIX_GROUPS WHERE MIX_TIMESTAMP='$timestamp'";
+        $this->db->execute($sql);
         $sql = "DELETE FROM MIX_COMPONENTS WHERE MIX_TIMESTAMP='$timestamp'";
         $this->db->execute($sql);

diff --git a/models/phrase_model.php b/models/phrase_model.php
index d4aa55e99..b43048789 100755
--- a/models/phrase_model.php
+++ b/models/phrase_model.php
@@ -107,47 +107,60 @@ class PhraseModel extends Model
     {
         $disjunct_phrases = explode("|", $query);
         $rewrite = "";
-        $pipe = "";
-        foreach($disjunct_phrases as $disjunct) {
-            $rewrite .= $pipe;
-            $pipe = ' | ';
-            $disjunct_string = $disjunct;
-            $base_weight = 1;
-            $pattern = "/(\s)(index:(\S)+)/";
-            preg_match_all($pattern, $query, $matches);
-            if(isset($matches[2][0])) {
-                $rewrite .= $disjunct;
-                continue;
-            }
-            $pattern = "/(\s)(i:(\S)+)/";
-            preg_match_all($pattern, $query, $matches);
-            if(isset($matches[2][0])) {
-                $rewrite .= $disjunct;
-                continue;
-            }
-            $pattern = "/(\s)(weight:(\S)+)/";
-            preg_match_all($pattern, $query, $matches);
-            if(isset($matches[2][0])) {
-                $base_weight = substr($matches[2][0],strlen("weight:"));
-                $disjunct_string = preg_replace($pattern,"", $disjunct_string);
-            }
-            $pattern = "/(\s)(w:(\S)+)/";
-            preg_match_all($pattern, $query, $matches);
-            if(isset($matches[2][0])) {
-                $base_weight = substr($matches[2][0],strlen("w:"));
-                $disjunct_string = preg_replace($pattern,"", $disjunct_string);
-            }
-            if(isset($mix['COMPONENTS'])) {
-                $pipe2 = "";
-                foreach($mix['COMPONENTS'] as $component) {
-                    $rewrite .= $pipe2.$disjunct_string." w:".
-                        ($component['WEIGHT']*$base_weight)." i:".
-                        $component['CRAWL_TIMESTAMP'];
-                    $pipe2 = ' | ';
+        if(isset($mix['GROUPS'])) {
+            foreach($mix['GROUPS'] as $group) {
+                $pipe = "";
+                foreach($disjunct_phrases as $disjunct) {
+                    $rewrite .= $pipe;
+                    $pipe = ' | ';
+                    $disjunct_string = $disjunct;
+                    $base_weight = 1;
+                    $pattern = "/(\s)(index:(\S)+)/";
+                    preg_match_all($pattern, $query, $matches);
+                    if(isset($matches[2][0])) {
+                        $rewrite .= $disjunct;
+                        continue;
+                    }
+                    $pattern = "/(\s)(i:(\S)+)/";
+                    preg_match_all($pattern, $query, $matches);
+                    if(isset($matches[2][0])) {
+                        $rewrite .= $disjunct;
+                        continue;
+                    }
+                    $pattern = "/(\s)(weight:(\S)+)/";
+                    preg_match_all($pattern, $query, $matches);
+                    if(isset($matches[2][0])) {
+                        $base_weight = substr($matches[2][0],strlen("weight:"));
+                        $disjunct_string =
+                            preg_replace($pattern,"", $disjunct_string);
+                    }
+                    $pattern = "/(\s)(w:(\S)+)/";
+                    preg_match_all($pattern, $query, $matches);
+                    if(isset($matches[2][0])) {
+                        $base_weight = substr($matches[2][0],strlen("w:"));
+                        $disjunct_string =
+                            preg_replace($pattern,"", $disjunct_string);
+                    }
+                    $pipe2 = "";
+                    if(isset($group['COMPONENTS'])) {
+                        foreach($group['COMPONENTS'] as $component) {
+                            if(isset($component['KEYWORDS'])) {
+                                $disjunct_string .= " ".$component['KEYWORDS'];
+                            }
+                            $rewrite .= $pipe2.$disjunct_string." w:".
+                                ($component['WEIGHT']*$base_weight)." i:".
+                                $component['CRAWL_TIMESTAMP'];
+                            $pipe2 = ' | ';
+                        }
+                    }
+
                 }
+                $num_results = (isset($group['RESULT_BOUND']) &&
+                    $group['RESULT_BOUND'] > 1) ?
+                    $group['RESULT_BOUND'] : 1;
+                $rewrite .= " #$num_results# ";
             }
         }
-
         return $rewrite;
     }

@@ -163,34 +176,119 @@ class PhraseModel extends Model
      * @return array an array of summary data
      */
     function getPhrasePageResults(
-        $phrase, $low = 0, $results_per_page = NUM_RESULTS_PER_PAGE,
+        $input_phrase, $low = 0, $results_per_page = NUM_RESULTS_PER_PAGE,
         $format = true)
     {
-
         $results = NULL;
         $word_structs = array();
         /*
             this is a quick and dirty parsing and will usually work,
-            exceptions would be | in quotes or if someone tried
-            to escape |.
+            exceptions would be # or | in quotes or if someone tried
+            to escape |.
+
+            First we split into presentation elements then we split by
+            disjuncts
         */
-        $disjunct_phrases = explode("|", $phrase);
-        foreach($disjunct_phrases as $disjunct) {
-            list($word_struct, $format_words) =
-                $this->parseWordStructConjunctiveQuery($disjunct);
-            if($word_struct != NULL) {
-                $word_structs[] = $word_struct;
+        $presentation_parts = preg_split('/#(\d)+#/',
+            $input_phrase, -1, PREG_SPLIT_DELIM_CAPTURE);
+        $count = 0;
+        $presentation_parts = array_chunk($presentation_parts, 2);
+
+        $num_parts = count($presentation_parts);
+
+        $query_parts = array();
+        $last_part = NULL;
+        for($i = 0;  $i < $num_parts ; $i++) {
+           if(isset($presentation_parts[$i][0])  &&
+                ($trimmed = trim($presentation_parts[$i][0])) != "" ) {
+                $to_return = (isset($presentation_parts[$i][1])) ?
+                    $presentation_parts[$i][1]: 1;
+                $query_parts[$trimmed][] =
+                    array($count, $to_return);
+                $last_part = $trimmed;
+                if(isset($presentation_parts[$i][1])) {
+                    $count += $presentation_parts[$i][1];
+                } else {
+                    $count ++;
+                }
+           }
+        }
+
+        $results_high = $low + $results_per_page;
+        $num_phrases = count($query_parts);
+
+        foreach($query_parts as $phrase => $pre_result_bounds) {
+            $phrase_high = $pre_result_bounds[0][1];
+            $result_bounds = array();
+            $start_flag = false;
+            $num_bounds = 0;
+
+            foreach($pre_result_bounds as $bound) {
+                if($bound[0] > $results_high) break;
+                //rest of presentation after what we'll return so break
+                $phrase_high =  $bound[0] + $bound[1];
+                if($phrase_high < $low) continue;
+                // this part of presentation is before what we'll return so skip
+                $result_bounds[] = $bound;
+                $num_bounds++;
+            }
+            if($num_bounds == 0) continue;
+            if($phrase == $last_part &&
+                $result_bounds[$num_bounds - 1][0] +
+                $result_bounds[$num_bounds - 1][1] < $results_high) {
+                $result_bounds[$num_bounds - 1][1] = $results_high -
+                    $result_bounds[$num_bounds - 1][0];
+            }
+
+            $phrase_num = max(min($phrase_high, $results_high), $results_high) -
+                $low;
+            $disjunct_phrases = explode("|", $phrase);
+            $word_structs = array();
+            foreach($disjunct_phrases as $disjunct) {
+                list($word_struct, $format_words) =
+                    $this->parseWordStructConjunctiveQuery($disjunct);
+                if($word_struct != NULL) {
+                    $word_structs[] = $word_struct;
+                }
+            }
+            $out_results = $this->getSummariesByHash($word_structs,
+                $low, $phrase_num);
+
+            if(isset($out_results['PAGES']) &&
+                count($out_results['PAGES']) != 0) {
+                $out_count = 0;
+                foreach($result_bounds as $bound) {
+                    for($i = $bound[0];
+                        $i < min($bound[0] + $bound[1], $results_high);
+                        $i++) {
+                         if(isset($out_results['PAGES'][$out_count])) {
+                            $results['PAGES'][$i] =
+                                $out_results['PAGES'][$out_count];
+                            $out_count++;
+                         }
+                    }
+                }
+                if($phrase == $last_part && isset($out_results['TOTAL_ROWS'])){
+                    $total_rows = $out_results['TOTAL_ROWS'];
+                }
             }
         }
-        $results = $this->getSummariesByHash($word_structs,
-            $low, $results_per_page);
+
+        if(isset($results['PAGES'])){
+            ksort($results['PAGES']);
+        }
         if(count($results) == 0) {
             $results = NULL;
         }
         if($results == NULL) {
             $results['TOTAL_ROWS'] = 0;
         }
-
+        if(isset($total_rows)) {
+            $results['TOTAL_ROWS'] = $total_rows;
+        } else {
+            $results['TOTAL_ROWS'] = count($results['PAGES']);
+        }
+
         if($format) {
             if(count($format_words) == 0 ){
                 $format_words = NULL;
@@ -199,7 +297,6 @@ class PhraseModel extends Model
             $format_words = NULL;
         }

-
         $output = $this->formatPageResults($results, $format_words);

         return $output;
@@ -509,8 +606,8 @@ class PhraseModel extends Model
         }
         $results['PAGES'] = & $pages;
         $results['PAGES'] = array_slice($results['PAGES'], $start_slice);
-        $results['PAGES'] = array_slice($results['PAGES'], $limit-$start_slice,
-            $num);
+        $results['PAGES'] = array_slice($results['PAGES'], $limit -
+            $start_slice, $num);


         return $results;
diff --git a/scripts/basic.js b/scripts/basic.js
index fd0a7318c..a4c5cf3e6 100755
--- a/scripts/basic.js
+++ b/scripts/basic.js
@@ -31,9 +31,9 @@
  */

 /*
-    Display a two second message in the message div at the top of the web page
-
-    String msg  string to display
+ *  Display a two second message in the message div at the top of the web page
+ *
+ *  @param String msg  string to display
  */
 function doMessage(msg)
 {
@@ -43,8 +43,8 @@ function doMessage(msg)
 }

 /*
-    Undisplays the message display in the message div and clears associated
-    message display timer
+ *  Undisplays the message display in the message div and clears associated
+ *  message display timer
  */
 function undoMessage()
 {
@@ -54,10 +54,10 @@ function undoMessage()
 }

 /*
-    Function to set up a request object even in  older IE's
-
-    return Object the request object
-*/
+ *  Function to set up a request object even in  older IE's
+ *
+ *  @return Object the request object
+ */
 function makeRequest()
 {
     try {
@@ -87,11 +87,11 @@ function makeRequest()
 }

 /*
-    Make an AJAX request for a url and put the results as inner HTML of a tag
-
-    Object tag  a DOM element to put the results of the AJAX request
-    String url  web page to fetch using AJAX
-*/
+ *  Make an AJAX request for a url and put the results as inner HTML of a tag
+ *
+ *  @param Object tag  a DOM element to put the results of the AJAX request
+ *  @param String url  web page to fetch using AJAX
+ */
 function getPage(tag, url)
 {
     var request = makeRequest();
@@ -112,21 +112,21 @@ function getPage(tag, url)
 }

 /*
-    Shorthand for document.getElementById()
-
-    String id  the id of the DOM element one wants
-*/
+ *  Shorthand for document.getElementById()
+ *
+ *  @param String id  the id of the DOM element one wants
+ */
 function elt(id)
 {
     return document.getElementById(id);
 }

 /*
-    Sets whether an elt is styled as display:none or block
-
-    String id  the id of the DOM element one wants
-    Boolean value  true means display block; false display none
-*/
+ *  Sets whether an elt is styled as display:none or block
+ *
+ *  @param String id  the id of the DOM element one wants
+ *  @param Boolean value  true means display block; false display none
+ */
 function setDisplay(id, value)
 {
     obj = elt(id);
diff --git a/scripts/mix.js b/scripts/mix.js
new file mode 100644
index 000000000..6d3fd9f68
--- /dev/null
+++ b/scripts/mix.js
@@ -0,0 +1,295 @@
+ /**
+ *  SeekQuarry/Yioop --
+ *  Open Source Pure PHP Search Engine, Crawler, and Indexer
+ *
+ *  Copyright (C) 2009, 2010, 2011  Chris Pollett chris@pollett.org
+ *
+ *  LICENSE:
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  END LICENSE
+ *
+ * @author Chris Pollett chris@pollett.org
+ * @package seek_quarry
+ * @subpackage javascript
+ * @license http://www.gnu.org/licenses/ GPL3
+ * @link http://www.seekquarry.com/
+ * @copyright 2009, 2010, 2011
+ * @filesource
+ */
+/
+/**
+ * Contains javascripts used to edit Crawl Mixes
+ * A crawl mix consists of a sequence of groups. Each group
+ * represents a number of search results to be presented. The
+ * sources of these search results is the contents of the group.
+ * These sources are a weighted sum of individual crawls and the
+ * edit crawl mix page allows you to create both groups and select
+ * which individuals crawls they contain.
+ */
+/*
+ * Used to draw all of the list of groups of crawl results for the
+ * current crawl mix
+ */
+function drawGroups()
+{
+    var gcnt = 0;
+    for(key in groups) {
+        var group = groups[key];
+        drawGroup(gcnt, group['num_results']);
+        var rcnt = 0;
+        for(var ckey in group['components']) {
+            var comp = group['components'][ckey];
+            drawCrawl(gcnt, rcnt, comp[0], comp[1], comp[2], comp[3]);
+            rcnt++;
+        }
+        gcnt++;
+    }
+}
+
+/*
+ * Used to erase the current rendering of crawl grouls and then draw it again
+ */
+function redrawGroups()
+{
+    var mts = elt("mix-tables");
+    mts.innerHTML = "";
+    drawGroups();
+}
+/*
+ * Adds a crawl group to the end of the list of crawl groups.
+ *
+ * @param int num_results the number of results the crawl group should be used
+ *      for
+ */
+function addGroup(num_results)
+{
+
+    num_groups = groups.length;
+    groups[num_groups] ={};
+    groups[num_groups]['num_results'] = num_results;
+    groups[num_groups]['components'] = [];
+    drawGroup(num_groups, num_results)
+}
+
+/*
+ * Draws a single crawl group within the crawl mix
+ *
+ * @param int group_num the index of group to draw
+ * @param int num_results the number of results to this crawl group
+ */
+function drawGroup(group_num, num_results)
+{
+    var mts = elt("mix-tables");
+    var tbl = document.createElement("table");
+    tbl.id = "mix-table-"+group_num;
+    tbl.className = "mixestable topmargin";
+    makeBlankMixTable(tbl, group_num, num_results);
+    mts.appendChild(tbl);
+    addCrawlHandler(group_num);
+}
+
+/*
+ * Draw a blank crawl mix group, without the Javascript functions attached to it
+ *
+ * @param Object tbl the table object to store blank mix table in
+ * @param int num_groups which group this table will be
+ * @param int num_results number of results this crawl group will be used for
+ */
+function makeBlankMixTable(tbl, num_groups, num_results)
+{
+    var tdata = "<tr><td colspan=\"2\"><label for=\"add-crawls-"+num_groups+
+        "\">"+tl['editmix_element_add_crawls']+"</label>"+
+        drawCrawlSelect(num_groups)+"</td><td><label for=\"num-results-"+
+        num_groups+"\">"+tl['editmix_element_num_results']+"</label>"+
+        drawNumResultSelect(num_groups, num_results)+
+            "<td><a href=\"javascript:removeGroup("+num_groups+")\">"+
+            tl['editmix_element_del_grp']+'</a></td></tr>'+
+            "<tr><th>"+tl['editmix_element_weight']+'</th>'+
+            "<th>"+tl['editmix_element_name']+'</th>'+
+            "<th>"+tl['editmix_add_keywords']+'</th>'+
+            "<th>"+tl['editmix_element_actions']+"</th></tr>";
+    tbl.innerHTML = tdata;
+}
+
+/*
+ * Removes the ith group from the current crawl mix and redraws the screen
+ *
+ * @param int i index of group to delete
+ */
+function removeGroup(i)
+{
+    num_groups = groups.length;
+    for(j = i+1; j < num_groups; j++) {
+        groups[j - 1] = groups[j];
+    }
+    delete groups[num_groups - 1];
+    groups.length--;
+    redrawGroups();
+}
+
+
+/*
+ * Adds the javascript needed to handle adding a crawl when the crawl
+ * selection done
+ *
+ * @param int i the group to add the Javascript handler for
+ */
+function addCrawlHandler(i)
+{
+    elt("add-crawls-"+i).onchange =
+        function () {
+            var  ac = elt("add-crawls-"+i);
+            var sel = ac.selectedIndex;
+            var name = ac.options[sel].text;
+            var ts = ac.options[sel].value;
+            ac.selectedIndex = 0;
+            addCrawl(i, ts, name, 1, "");
+        }
+}
+
+/*
+ * Adds a crawl to the given crawl group with the listed parameters
+ *
+ * @param int i crawl group to add to
+ * @param int ts timestamp of crawl that is being added
+ * @param String name name of crawl
+ * @param float weight the crawl should ahve within group
+ * @param String keywords  words to add to search when using this crawl
+ */
+function addCrawl(i, ts, name, weight, keywords)
+{
+    var grp = groups[i]['components'];
+    var j = grp.length;
+    groups[i]['components'][j] = [ts, name, weight, keywords];
+    drawCrawl(i, j, ts, name, weight, keywords)
+}
+
+/*
+ * Draws a single crawl within a crawl group according to the passed parameters
+ *
+ * @param int i crawl group to draw to
+ * @param int j index of crawl that is being added
+ * @param int ts timestamp of crawl that is being drawn
+ * @param String name name of crawl
+ * @param float weight the crawl should ahve within group
+ *
+ */
+function drawCrawl(i, j, ts, name, weight, keywords)
+{
+    var tr =document.createElement("tr");
+    tr.id = i+"-"+j;
+    elt("mix-table-"+i).appendChild(tr);
+    tr.innerHTML +=
+        "<td>"+drawWeightSelect(i, j, weight)+"</td><td>"+name+
+        "</td><td><input type='hidden' name= \"mix[GROUPS]["+i+
+        "][COMPONENTS]["+j+"][CRAWL_TIMESTAMP]\"' value=\""+ts+"\" />"+
+        "<input title=\""+tl['editmix_add_query']+"\" "+
+        "name=\"mix[GROUPS]["+i+"][COMPONENTS]["+j+"][KEYWORDS]\" "+
+        "value=\""+ keywords+"\" class=\"widefield\"/></td><td><a href=\""+
+        "javascript:removeCrawl("+i+", "+j+");\">"+
+        tl['editmix_element_delete']+"</a></td>";
+}
+
+/*
+ * Deletes the jth crawl from the ith group in the current crawl mix
+ *
+ * @param int i group to delete crawl from
+ * @param int j index of the crawl within the group to delete
+ */
+function removeCrawl(i, j)
+{
+
+    var grp = groups[i]['components'];
+    var len = grp.length;
+    for( k = j + 1; k < len; k++) {
+        grp[k-1] = grp[k];
+    }
+    delete grp[len - 1];
+
+    redrawGroups();
+}
+
+
+/*
+ * Used to draw the select drop down to allow users to select a weighting of
+ * a given crawl within a crawl group
+ *
+ * @param int i which crawl group the crawl belongs to
+ * @param int j which crawl index within the group to draw this weight select
+ *      for
+ * @param int selected_weight the originally selected weight value
+ */
+function drawWeightSelect(i, j, selected_weight) {
+    var weights = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1,
+        2, 3, 4, 5, 6, 7, 8, 9, 10];
+    var select =
+        "<select name=\'mix[GROUPS]["+i+"][COMPONENTS]["+j+"][WEIGHT]\'>";
+    for ( wt in weights) {
+        if(weights[wt] == selected_weight) {
+            val = weights[wt] + "\' selected=\'selected";
+        } else {
+            val = weights[wt];
+        }
+        select += "<option value=\'"+val+"\'>" +
+            weights[wt]+"</option>";
+    }
+    select += "</select>";
+    return select;
+}
+
+/*
+ * Used to draw the select drop down to allow users to select a crawl to be
+ * added to a crawl group
+ *
+ * @param int i which crawl group to draw this for
+ */
+function drawCrawlSelect(i) {
+    select = "<select id=\'add-crawls-"+i+"\' name=\'add_crawls_"+i+"\'>";
+    for ( var crawl in c) {
+        val = c[crawl];
+        if(crawl == 0) {
+            val = "0\' selected=\'selected";
+        }
+        select += "<option value=\'"+crawl+"\'>" + c[crawl] + "</option>";
+    }
+    select += "</select>";
+    return select;
+}
+
+/*
+ * Used to draw the select drop down to allow users to select the number
+ * results a crawl group will be used for
+ *
+ * @param int i which crawl group this selection drop down is for
+ * @param int selected_num what number of results should be initially selected
+ */
+function drawNumResultSelect(i, selected_num) {
+    var num_results = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 100];
+
+    var select = "<select id=\'num-results-"+i+
+        "\' name=\'mix[GROUPS]["+i+"][RESULT_BOUND]\'>";
+    for ( nr in num_results) {
+        if(num_results[nr] == selected_num) {
+            val = num_results[nr] + "\' selected=\'selected";
+        } else {
+            val = num_results[nr];
+        }
+        select += "<option value=\'"+val+"\'>" +
+            num_results[nr]+"</option>";
+    }
+    select += "</select>";
+    return select;
+}
diff --git a/views/elements/editmix_element.php b/views/elements/editmix_element.php
index b8402049f..0bf4e23d0 100644
--- a/views/elements/editmix_element.php
+++ b/views/elements/editmix_element.php
@@ -66,7 +66,6 @@ class EditmixElement extends Element
         <input type="hidden" name="a" value="mixCrawls" />
         <input type="hidden" name="arg" value="editmix" />
         <input type="hidden" name="update" value="update" />
-        <input type="hidden" name="mix[COMPONENTS]" value="" />
         <input type="hidden" name="mix[MIX_TIMESTAMP]"
             value="<?php e($data['MIX']['MIX_TIMESTAMP']);?>" />
         <div class="topmargin"><label for="mix-name"><?php
@@ -77,33 +76,12 @@ class EditmixElement extends Element
                     class="widefield"/>
         </div>
         <h3><?php e(tl('mixcrawls_element_mix_components'))?></h3>
-         <table id="mix-table" class="mixestable">
-        <tr><th><?php e(tl('editcrawl_view_weight'));?></th>
-        <th><?php e(tl('editcrawl_view_name'));?></th>
-        <th><?php e(tl('editcrawl_view_actions'));?></th></tr>
-         <?php
-         foreach($data['MIX']['COMPONENTS'] as $component) {
-             $crawl_name = $data['available_crawls'][
-                $component['CRAWL_TIMESTAMP']];
-             e("<tr id='".$component['CRAWL_TIMESTAMP']
-                ."'><td>");
-            $this->view->optionsHelper->render(
-                "crawl-weight", "mix[COMPONENTS][".
-                $component['CRAWL_TIMESTAMP']."]",
-                $data['allowed_weights'], $component['WEIGHT']);
-             e("</td><td>".$crawl_name."</td>");
-             e("<td><a href='javascript:removeCrawl(".
-                $component['CRAWL_TIMESTAMP'].",\"".$crawl_name. "\" )' >".
-                tl('editcrawl_view_delete')."</a></td></tr>");
-             unset($data['available_crawls'][$component['CRAWL_TIMESTAMP']]);
-         }
-         ?>
-         </table>
-        <div class="topmargin"><label for="add-crawls"><?php
-            e(tl('crawloptions_element_add_crawls'))?></label><?php
-            $this->view->optionsHelper->render("add-crawls", "add_crawls",
-                $data['available_crawls'], 0);
-        ?></div>
+        <div>
+        [<a href='javascript:addGroup(1)'><?php
+                e(tl('mixcrawls_element_add_group')); ?></a>]
+        </div>
+        <div id="mix-tables" >
+        </div>
         <div class="center slightpad"><button class="buttonbox"
             type="submit"><?php
                 e(tl('mixcrawls_element_save_button')); ?></button></div>
diff --git a/views/elements/mixcrawls_element.php b/views/elements/mixcrawls_element.php
index 2c7a8f483..8e3d02926 100644
--- a/views/elements/mixcrawls_element.php
+++ b/views/elements/mixcrawls_element.php
@@ -88,13 +88,22 @@ class MixcrawlsElement extends Element
                 e("<small>".date("d M Y H:i:s", $mix['MIX_TIMESTAMP']).
                     "</small>"); ?></td>
             <td><?php
-                if(isset($mix['COMPONENTS']) && count($mix['COMPONENTS'])  > 0){
-                    $plus = "";
-                    foreach($mix['COMPONENTS'] as $component) {
-                        e($plus.$component['WEIGHT']." * (".
-                            $data['available_crawls'][
-                            $component['CRAWL_TIMESTAMP']].")");
-                        $plus = "<br /> + ";
+                if(isset($mix['GROUPS']) && count($mix['GROUPS'])  > 0){
+                    foreach($mix['GROUPS'] as $group_id => $group_data) {
+                        if(!isset($group_data['RESULT_BOUND']) ||
+                           !isset($group_data['COMPONENTS']) ||
+                           count($group_data['COMPONENTS']) == 0) continue;
+                        e(" #".$group_data['RESULT_BOUND']."[");
+                        $plus = "";
+                        foreach($group_data['COMPONENTS'] as $component){
+                            $crawl_timestamp = $component['CRAWL_TIMESTAMP'];
+                            e($plus.$component['WEIGHT']." * (".
+                                $data['available_crawls'][
+                                $crawl_timestamp]." + K:".
+                                $component['KEYWORDS'].")");
+                            $plus = "<br /> + ";
+                        }
+                        e("]<br />");
                     }
                 } else {
                     e(tl('mixcrawls_view_no_components'));
diff --git a/views/layouts/web_layout.php b/views/layouts/web_layout.php
index 49c32ff5c..64e6504c3 100755
--- a/views/layouts/web_layout.php
+++ b/views/layouts/web_layout.php
@@ -72,7 +72,7 @@ class WebLayout extends Layout
             <meta charset="utf-8" />
             <link rel="shortcut icon"   href="favicon.ico" />
             <link rel="stylesheet" type="text/css" href="css/search.css" />
-            <linl rel="search" type="application/opensearchdescription+xml"
+            <link rel="search" type="application/opensearchdescription+xml"
                 href="<?php e(QUEUE_SERVER."yioopbar.xml");?>"
                 title="Content search" />

@@ -100,6 +100,14 @@ class WebLayout extends Layout
                 <?php }
             ?>
             <script type="text/javascript" src="./scripts/basic.js" ></script>
+            <?php
+            if(isset($data['INCLUDE_SCRIPTS'])) {
+                foreach($data['INCLUDE_SCRIPTS'] as $script_name) {
+                    e('<script type="text/javascript" src="./scripts/'.
+                        $script_name.'.js" ></script>');
+                }
+            }
+            ?>
             <script type="text/javascript" >
             <?php
             if(isset($data['SCRIPT'])) {
@@ -107,6 +115,7 @@ class WebLayout extends Layout
             }
             ?>
             </script>
+
         </body>
     </html>
     <?php
ViewGit