Ajax Search Lite - Version 4.5.4

Version Description

  • Autocomplete and Keyword suggestions introduced
  • Keyboard navigation fixes
  • 3 new curvy styles
  • Animation and navigation fixes
Download this release

Release Info

Developer wpdreams
Plugin Icon 128x128 Ajax Search Lite
Version 4.5.4
Comparing to
See all releases

Code changes from version 4.5.1 to 4.5.4

ajax-search-lite.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Ajax Search Lite
4
  Plugin URI: http://wp-dreams.com
5
  Description: The lite version of the most powerful ajax powered search engine for WordPress.
6
- Version: 4.5.1
7
  Author: Ernest Marcinko
8
  Author URI: http://wp-dreams.com
9
  Text Domain: ajax-search-lite
@@ -19,8 +19,8 @@ define('ASL_INCLUDES_PATH', plugin_dir_path(__FILE__)."/includes/");
19
  define('ASL_TT_CACHE_PATH', plugin_dir_path(__FILE__)."/includes/cache/");
20
  define('ASL_DIR', 'ajax-search-lite');
21
  define('ASL_URL', plugin_dir_url(__FILE__));
22
- define('ASL_CURRENT_VERSION', 4510);
23
- define('ASL_CURR_VER_STRING', "4.5.1");
24
  define('ASL_DEBUG', 0);
25
 
26
  global $asl_admin_pages;
3
  Plugin Name: Ajax Search Lite
4
  Plugin URI: http://wp-dreams.com
5
  Description: The lite version of the most powerful ajax powered search engine for WordPress.
6
+ Version: 4.5.4
7
  Author: Ernest Marcinko
8
  Author URI: http://wp-dreams.com
9
  Text Domain: ajax-search-lite
19
  define('ASL_TT_CACHE_PATH', plugin_dir_path(__FILE__)."/includes/cache/");
20
  define('ASL_DIR', 'ajax-search-lite');
21
  define('ASL_URL', plugin_dir_url(__FILE__));
22
+ define('ASL_CURRENT_VERSION', 4540);
23
+ define('ASL_CURR_VER_STRING', "4.5.4");
24
  define('ASL_DEBUG', 0);
25
 
26
  global $asl_admin_pages;
backend/settings.php CHANGED
@@ -17,11 +17,18 @@ $_dk = 'asl_defaults';
17
  }(document, 'script', 'facebook-jssdk'));</script>
18
 
19
  <script>
20
- (function ($) {
21
- $(document).ready(function () {
22
- jQuery(jQuery('.tabs a')[0]).trigger('click');
23
  });
24
- }(jQuery));
 
 
 
 
 
 
 
25
  </script>
26
 
27
  <div id="wpdreams" class='wpdreams wrap'>
17
  }(document, 'script', 'facebook-jssdk'));</script>
18
 
19
  <script>
20
+ jQuery(function ($) {
21
+ $('.tabs a[tabid=1]').click(function () {
22
+ $('.tabs a[tabid=101]').click();
23
  });
24
+
25
+ $('.tabs a[tabid=4]').click(function () {
26
+ $('.tabs a[tabid=401]').click();
27
+ });
28
+
29
+ $('.tabs a[tabid=1]').trigger('click');
30
+
31
+ });
32
  </script>
33
 
34
  <div id="wpdreams" class='wpdreams wrap'>
backend/settings/default_options.php CHANGED
@@ -54,6 +54,14 @@ $options['asl_defaults']['orderby_def'] = array(
54
  );
55
  $options['asl_defaults']['orderby'] = 'post_date DESC';
56
 
 
 
 
 
 
 
 
 
57
  // General/Image
58
  $options['asl_defaults']['show_images'] = 1;
59
  $options['asl_defaults']['image_transparency'] = 1;
54
  );
55
  $options['asl_defaults']['orderby'] = 'post_date DESC';
56
 
57
+ // General/Autocomplete/KW suggestions
58
+ $options['asl_defaults']['autocomplete'] = 1;
59
+ $options['asl_defaults']['kw_suggestions'] = 1;
60
+ $options['asl_defaults']['kw_length'] = 60;
61
+ $options['asl_defaults']['kw_count'] = 10;
62
+ $options['asl_defaults']['kw_google_lang'] = "en";
63
+ $options['asl_defaults']['kw_exceptions'] = "";
64
+
65
  // General/Image
66
  $options['asl_defaults']['show_images'] = 1;
67
  $options['asl_defaults']['image_transparency'] = 1;
backend/tabs/instance/general/autocomplete.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="item"><?php
2
+ $o = new wpdreamsYesNo("autocomplete", "Turn on google search autocomplete?", setval_or_getoption($sd, 'autocomplete', $_dk));
3
+ $params[$o->getName()] = $o->getData();
4
+ ?>
5
+ <p class="descMsg">Autocomplete feature will try to help the user finish what is being typed into the search box.</p>
6
+ </div>
7
+ <div class="item"><?php
8
+ $o = new wpdreamsYesNo("kw_suggestions", "Turn on google search keyword suggestions?", setval_or_getoption($sd, 'kw_suggestions', $_dk));
9
+ $params[$o->getName()] = $o->getData();
10
+ ?>
11
+ <p class="descMsg">Keyword suggestions appear when no results match the keyword.</p>
12
+ </div>
13
+ <div class="item"><?php
14
+ $o = new wpdreamsTextSmall("kw_length", "Max. keyword length",
15
+ wpdreams_setval_or_getoption($sd, 'kw_length', $_dk));
16
+ $params[$o->getName()] = $o->getData();
17
+ ?>
18
+ <p class="descMsg">The length of each suggestion in characters. 30-60 is a good number to avoid too long suggestions.</p>
19
+ </div>
20
+ <div class="item"><?php
21
+ $o = new wpdreamsTextSmall("kw_count", "Max. keywords count",
22
+ wpdreams_setval_or_getoption($sd, 'kw_count', $_dk));
23
+ $params[$o->getName()] = $o->getData();
24
+ ?>
25
+ </div>
26
+ <div class="item"><?php
27
+ $o = new wpdreamsLanguageSelect("kw_google_lang", "Google suggestions language",
28
+ wpdreams_setval_or_getoption($sd, 'kw_google_lang', $_dk));
29
+ $params[$o->getName()] = $o->getData();
30
+ ?>
31
+ </div>
32
+ <div class="item">
33
+ <?php
34
+ $o = new wpdreamsTextarea("kw_exceptions", "Keyword exceptions (comma separated)", wpdreams_setval_or_getoption($sd, 'kw_exceptions', $_dk));
35
+ $params[$o->getName()] = $o->getData();
36
+ ?>
37
+ </div>
backend/tabs/instance/general/behavior.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="item">
2
+ <?php
3
+ $o = new wpdreamsYesNo("triggeronclick", __("Trigger search when clicking on search icon?", "ajax-search-lite"),
4
+ wpdreams_setval_or_getoption($sd, 'triggeronclick', $_dk));
5
+ $params[$o->getName()] = $o->getData();
6
+ ?>
7
+ </div>
8
+ <div class="item">
9
+ <?php
10
+ $o = new wpdreamsYesNo("trigger_on_facet_change", __("Trigger search on facet change?", "ajax-search-lite"),
11
+ wpdreams_setval_or_getoption($sd, 'trigger_on_facet_change', $_dk));
12
+ $params[$o->getName()] = $o->getData();
13
+ ?>
14
+ <p class="descMsg">Will trigger a search when the user clicks on a checkbox on the front-end.</p>
15
+ </div>
16
+ <div class="item">
17
+ <?php
18
+ $o = new wpdreamsYesNo("redirectonclick", __("Redirect to search results page when clicking on search icon?", "ajax-search-lite"),
19
+ wpdreams_setval_or_getoption($sd, 'redirectonclick', $_dk));
20
+ $params[$o->getName()] = $o->getData();
21
+ ?>
22
+ </div>
23
+ <div class="item">
24
+ <?php
25
+ $o = new wpdreamsYesNo("triggerontype", __("Trigger search when typing?", "ajax-search-lite"),
26
+ wpdreams_setval_or_getoption($sd, 'triggerontype', $_dk));
27
+ $params[$o->getName()] = $o->getData();
28
+ ?>
29
+ </div>
30
+ <div class="item">
31
+ <?php
32
+ $o = new wpdreamsTextSmall("charcount", __("Minimal character count to trigger search", "ajax-search-lite"),
33
+ wpdreams_setval_or_getoption($sd, 'charcount', $_dk), array(array("func" => "ctype_digit", "op" => "eq", "val" => true)));
34
+ $params[$o->getName()] = $o->getData();
35
+ ?>
36
+ </div>
37
+ <div class="item">
38
+ <?php
39
+ $o = new wpdreamsTextSmall("maxresults", __("Max. results", "ajax-search-lite"), wpdreams_setval_or_getoption($sd, 'maxresults', $_dk), array(array("func" => "ctype_digit", "op" => "eq", "val" => true)));
40
+ $params[$o->getName()] = $o->getData();
41
+ ?>
42
+ </div>
43
+ <div class="item">
44
+ <?php
45
+ $o = new wpdreamsYesNo("description_context", __("Display the description context?", "ajax-search-lite"),
46
+ wpdreams_setval_or_getoption($sd, 'description_context', $_dk));
47
+ $params[$o->getName()] = $o->getData();
48
+ ?>
49
+ <p class="descMsg"><?php __("Will display the description from around the search phrase, not from the beginning.", "ajax-search-lite"); ?></p>
50
+ </div>
51
+ <div class="item"><?php
52
+ $o = new wpdreamsTextSmall("itemscount", __("Results box viewport (in item numbers)", "ajax-search-lite"), wpdreams_setval_or_getoption($sd, 'itemscount', $_dk), array(array("func" => "ctype_digit", "op" => "eq", "val" => true)));
53
+ $params[$o->getName()] = $o->getData();
54
+ ?>
55
+ </div>
backend/tabs/instance/general/behaviour.php DELETED
@@ -1,13 +0,0 @@
1
- <div class="item">
2
- <?php
3
- $o = new wpdreamsYesNo("keywordsuggestions", "Keyword suggestions on no results?",
4
- wpdreams_setval_or_getoption($sd, 'keywordsuggestions', $_dk));
5
- $params[$o->getName()] = $o->getData();
6
- ?>
7
- </div>
8
- <div class="item"><?php
9
- $o = new wpdreamsLanguageSelect("keywordsuggestionslang", "Keyword suggestions language",
10
- wpdreams_setval_or_getoption($sd, 'keywordsuggestionslang', $_dk));
11
- $params[$o->getName()] = $o->getData();
12
- ?>
13
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/tabs/instance/general/sources.php CHANGED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $themes = array(
3
+ array('option'=>'Simple Red', 'value'=>'simple-red'),
4
+ array('option'=>'Simple Blue', 'value'=>'simple-blue'),
5
+ array('option'=>'Simple Grey', 'value'=>'simple-grey'),
6
+ array('option'=>'Classic Blue', 'value'=>'classic-blue'),
7
+ array('option'=>'Curvy Black', 'value'=>'curvy-black'),
8
+ array('option'=>'Curvy Red', 'value'=>'curvy-red'),
9
+ array('option'=>'Curvy Blue', 'value'=>'curvy-blue'),
10
+ array('option'=>'Underline White', 'value'=>'underline')
11
+ );
12
+ ?>
13
+ <div class="item">
14
+ <?php
15
+ $o = new wpdreamsCustomSelect("theme", __("Theme", "ajax-search-lite"), array(
16
+ 'selects'=>$themes,
17
+ 'value'=>wpdreams_setval_or_getoption($sd, 'theme', $_dk)
18
+ ));
19
+ $params[$o->getName()] = $o->getData();
20
+ ?>
21
+ </div>
22
+ <div class="item">
23
+ <?php
24
+ $o = new wpdreamsYesNo("searchinposts", __("Search in posts?", "ajax-search-lite"),
25
+ wpdreams_setval_or_getoption($sd, "searchinposts", $_dk));
26
+ $params[$o->getName()] = $o->getData();
27
+ ?>
28
+ </div>
29
+ <div class="item">
30
+ <?php
31
+ $o = new wpdreamsYesNo("searchinpages", __("Search in pages?", "ajax-search-lite"),
32
+ wpdreams_setval_or_getoption($sd, 'searchinpages', $_dk));
33
+ $params[$o->getName()] = $o->getData();
34
+ ?>
35
+ </div>
36
+ <div class="item"><?php
37
+ $o = new wpdreamsCustomPostTypes("customtypes", __("Search in custom post types", "ajax-search-lite"),
38
+ wpdreams_setval_or_getoption($sd, 'customtypes', $_dk));
39
+ $params[$o->getName()] = $o->getData();
40
+ $params['selected-'.$o->getName()] = $o->getSelected();
41
+ ?></div>
42
+ <div class="item">
43
+ <?php
44
+ $o = new wpdreamsYesNo("searchintitle", __("Search in title?", "ajax-search-lite"),
45
+ wpdreams_setval_or_getoption($sd, 'searchintitle', $_dk));
46
+ $params[$o->getName()] = $o->getData();
47
+ ?>
48
+ </div>
49
+ <div class="item">
50
+ <?php
51
+ $o = new wpdreamsYesNo("searchincontent", __("Search in content?", "ajax-search-lite"),
52
+ wpdreams_setval_or_getoption($sd, 'searchincontent', $_dk));
53
+ $params[$o->getName()] = $o->getData();
54
+ ?>
55
+ </div>
56
+ <div class="item">
57
+ <?php
58
+ $o = new wpdreamsYesNo("searchinexcerpt", __("Search in post excerpts?", "ajax-search-lite"),
59
+ wpdreams_setval_or_getoption($sd, 'searchinexcerpt', $_dk));
60
+ $params[$o->getName()] = $o->getData();
61
+ ?>
62
+ </div>
63
+ <div class="item"><?php
64
+ $o = new wpdreamsCustomFields("customfields", __("Search in custom fields", "ajax-search-lite"),
65
+ wpdreams_setval_or_getoption($sd, 'customfields', $_dk));
66
+ $params[$o->getName()] = $o->getData();
67
+ $params['selected-'.$o->getName()] = $o->getSelected();
68
+ ?>
69
+ </div>
70
+ <div class="item">
71
+ <?php
72
+ $o = new wpdreamsYesNo("exactonly", __("Show exact matches only?", "ajax-search-lite"),
73
+ wpdreams_setval_or_getoption($sd, 'exactonly', $_dk));
74
+ $params[$o->getName()] = $o->getData();
75
+ ?>
76
+ </div>
77
+ <div class="item">
78
+ <?php
79
+ $o = new wpdreamsYesNo("searchinterms", __("Search in terms? (categories, tags)", "ajax-search-lite"),
80
+ wpdreams_setval_or_getoption($sd, 'searchinterms', $_dk));
81
+ $params[$o->getName()] = $o->getData();
82
+ ?>
83
+ </div>
84
+ <div class="item"><?php
85
+ $o = new wpdreamsCustomSelect("orderby", __("Result ordering", "ajax-search-lite"),
86
+ array(
87
+ 'selects' => wpdreams_setval_or_getoption($sd, 'orderby_def', $_dk),
88
+ 'value' => wpdreams_setval_or_getoption($sd, 'orderby', $_dk)
89
+ ));
90
+ $params[$o->getName()] = $o->getData();
91
+ ?>
92
+ </div>
backend/tabs/instance/general_options.php CHANGED
@@ -1,145 +1,27 @@
1
- <?php
2
- $themes = array(
3
- array('option'=>'Simple Red', 'value'=>'simple-red'),
4
- array('option'=>'Simple Blue', 'value'=>'simple-blue'),
5
- array('option'=>'Simple Grey', 'value'=>'simple-grey'),
6
- array('option'=>'Classic Blue', 'value'=>'classic-blue'),
7
- array('option'=>'Underline White', 'value'=>'underline')
8
- );
9
- ?>
10
- <div class="item">
11
- <?php
12
- $o = new wpdreamsCustomSelect("theme", __("Theme", "ajax-search-lite"), array(
13
- 'selects'=>$themes,
14
- 'value'=>wpdreams_setval_or_getoption($sd, 'theme', $_dk)
15
- ));
16
- $params[$o->getName()] = $o->getData();
17
- ?>
18
- </div>
19
- <div class="item">
20
- <?php
21
- $o = new wpdreamsYesNo("searchinposts", __("Search in posts?", "ajax-search-lite"),
22
- wpdreams_setval_or_getoption($sd, "searchinposts", $_dk));
23
- $params[$o->getName()] = $o->getData();
24
- ?>
25
- </div>
26
- <div class="item">
27
- <?php
28
- $o = new wpdreamsYesNo("searchinpages", __("Search in pages?", "ajax-search-lite"),
29
- wpdreams_setval_or_getoption($sd, 'searchinpages', $_dk));
30
- $params[$o->getName()] = $o->getData();
31
- ?>
32
- </div>
33
- <div class="item"><?php
34
- $o = new wpdreamsCustomPostTypes("customtypes", __("Search in custom post types", "ajax-search-lite"),
35
- wpdreams_setval_or_getoption($sd, 'customtypes', $_dk));
36
- $params[$o->getName()] = $o->getData();
37
- $params['selected-'.$o->getName()] = $o->getSelected();
38
- ?></div>
39
- <div class="item">
40
- <?php
41
- $o = new wpdreamsYesNo("searchintitle", __("Search in title?", "ajax-search-lite"),
42
- wpdreams_setval_or_getoption($sd, 'searchintitle', $_dk));
43
- $params[$o->getName()] = $o->getData();
44
- ?>
45
- </div>
46
- <div class="item">
47
- <?php
48
- $o = new wpdreamsYesNo("searchincontent", __("Search in content?", "ajax-search-lite"),
49
- wpdreams_setval_or_getoption($sd, 'searchincontent', $_dk));
50
- $params[$o->getName()] = $o->getData();
51
- ?>
52
- </div>
53
- <div class="item">
54
- <?php
55
- $o = new wpdreamsYesNo("searchinexcerpt", __("Search in post excerpts?", "ajax-search-lite"),
56
- wpdreams_setval_or_getoption($sd, 'searchinexcerpt', $_dk));
57
- $params[$o->getName()] = $o->getData();
58
- ?>
59
- </div>
60
- <div class="item"><?php
61
- $o = new wpdreamsCustomFields("customfields", __("Search in custom fields", "ajax-search-lite"),
62
- wpdreams_setval_or_getoption($sd, 'customfields', $_dk));
63
- $params[$o->getName()] = $o->getData();
64
- $params['selected-'.$o->getName()] = $o->getSelected();
65
- ?>
66
- </div>
67
- <div class="item">
68
- <?php
69
- $o = new wpdreamsYesNo("exactonly", __("Show exact matches only?", "ajax-search-lite"),
70
- wpdreams_setval_or_getoption($sd, 'exactonly', $_dk));
71
- $params[$o->getName()] = $o->getData();
72
- ?>
73
- </div>
74
- <div class="item">
75
- <?php
76
- $o = new wpdreamsYesNo("searchinterms", __("Search in terms? (categories, tags)", "ajax-search-lite"),
77
- wpdreams_setval_or_getoption($sd, 'searchinterms', $_dk));
78
- $params[$o->getName()] = $o->getData();
79
- ?>
80
- </div>
81
- <div class="item"><?php
82
- $o = new wpdreamsCustomSelect("orderby", __("Result ordering", "ajax-search-lite"),
83
- array(
84
- 'selects' => wpdreams_setval_or_getoption($sd, 'orderby_def', $_dk),
85
- 'value' => wpdreams_setval_or_getoption($sd, 'orderby', $_dk)
86
- ));
87
- $params[$o->getName()] = $o->getData();
88
- ?></div>
89
- <div class="item">
90
- <?php
91
- $o = new wpdreamsYesNo("triggeronclick", __("Trigger search when clicking on search icon?", "ajax-search-lite"),
92
- wpdreams_setval_or_getoption($sd, 'triggeronclick', $_dk));
93
- $params[$o->getName()] = $o->getData();
94
- ?>
95
- </div>
96
- <div class="item">
97
- <?php
98
- $o = new wpdreamsYesNo("trigger_on_facet_change", __("Trigger search on facet change?", "ajax-search-lite"),
99
- wpdreams_setval_or_getoption($sd, 'trigger_on_facet_change', $_dk));
100
- $params[$o->getName()] = $o->getData();
101
- ?>
102
- <p class="descMsg">Will trigger a search when the user clicks on a checkbox on the front-end.</p>
103
- </div>
104
- <div class="item">
105
- <?php
106
- $o = new wpdreamsYesNo("redirectonclick", __("Redirect to search results page when clicking on search icon?", "ajax-search-lite"),
107
- wpdreams_setval_or_getoption($sd, 'redirectonclick', $_dk));
108
- $params[$o->getName()] = $o->getData();
109
- ?>
110
- </div>
111
- <div class="item">
112
- <?php
113
- $o = new wpdreamsYesNo("triggerontype", __("Trigger search when typing?", "ajax-search-lite"),
114
- wpdreams_setval_or_getoption($sd, 'triggerontype', $_dk));
115
- $params[$o->getName()] = $o->getData();
116
- ?>
117
- </div>
118
- <div class="item">
119
- <?php
120
- $o = new wpdreamsTextSmall("charcount", __("Minimal character count to trigger search", "ajax-search-lite"),
121
- wpdreams_setval_or_getoption($sd, 'charcount', $_dk), array(array("func" => "ctype_digit", "op" => "eq", "val" => true)));
122
- $params[$o->getName()] = $o->getData();
123
- ?>
124
- </div>
125
- <div class="item">
126
- <?php
127
- $o = new wpdreamsTextSmall("maxresults", __("Max. results", "ajax-search-lite"), wpdreams_setval_or_getoption($sd, 'maxresults', $_dk), array(array("func" => "ctype_digit", "op" => "eq", "val" => true)));
128
- $params[$o->getName()] = $o->getData();
129
- ?>
130
- </div>
131
- <div class="item">
132
- <?php
133
- $o = new wpdreamsYesNo("description_context", __("Display the description context?", "ajax-search-lite"),
134
- wpdreams_setval_or_getoption($sd, 'description_context', $_dk));
135
- $params[$o->getName()] = $o->getData();
136
- ?>
137
- <p class="descMsg"><?php __("Will display the description from around the search phrase, not from the beginning.", "ajax-search-lite"); ?></p>
138
- </div>
139
- <div class="item"><?php
140
- $o = new wpdreamsTextSmall("itemscount", __("Results box viewport (in item numbers)", "ajax-search-lite"), wpdreams_setval_or_getoption($sd, 'itemscount', $_dk), array(array("func" => "ctype_digit", "op" => "eq", "val" => true)));
141
- $params[$o->getName()] = $o->getData();
142
- ?>
143
  </div>
144
  <div class="item">
145
  <input type="hidden" name='asl_submit' value=1 />
1
+ <ul id="subtabs" class='tabs'>
2
+ <li><a tabid="101" class='subtheme current'>Sources</a></li>
3
+ <li><a tabid="102" class='subtheme'>Behavior</a></li>
4
+ <li><a tabid="103" class='subtheme'>Autocomplete & Suggestions</a></li>
5
+ </ul>
6
+ <div class='tabscontent'>
7
+ <div tabid="101">
8
+ <fieldset>
9
+ <legend>Sources</legend>
10
+ <?php include(ASL_PATH."backend/tabs/instance/general/sources.php"); ?>
11
+ </fieldset>
12
+ </div>
13
+ <div tabid="102">
14
+ <fieldset>
15
+ <legend>Behavior</legend>
16
+ <?php include(ASL_PATH."backend/tabs/instance/general/behavior.php"); ?>
17
+ </fieldset>
18
+ </div>
19
+ <div tabid="103">
20
+ <fieldset>
21
+ <legend>Autocomplete & Suggestions</legend>
22
+ <?php include(ASL_PATH."backend/tabs/instance/general/autocomplete.php"); ?>
23
+ </fieldset>
24
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  </div>
26
  <div class="item">
27
  <input type="hidden" name='asl_submit' value=1 />
backend/tabs/instance/layout_options.php CHANGED
@@ -1,15 +1,15 @@
1
  <ul id="subtabs" class='tabs'>
2
- <li><a tabid="201" class='subtheme current'><?php _e("Results layout", "ajax-search-lite"); ?></a></li>
3
- <li><a tabid="202" class='subtheme'><?php _e("Results Behaviour", "ajax-search-lite"); ?></a></li>
4
  </ul>
5
  <div class='tabscontent'>
6
- <div tabid="201">
7
  <fieldset>
8
  <legend><?php _e("Results layout", "ajax-search-lite"); ?></legend>
9
  <?php include(ASL_PATH."backend/tabs/instance/layout/results_layout.php"); ?>
10
  </fieldset>
11
  </div>
12
- <div tabid="202">
13
  <fieldset>
14
  <legend><?php _e("Results Behaviour", "ajax-search-lite"); ?></legend>
15
  <?php include(ASL_PATH."backend/tabs/instance/layout/results_behaviour.php"); ?>
1
  <ul id="subtabs" class='tabs'>
2
+ <li><a tabid="401" class='subtheme current'><?php _e("Results layout", "ajax-search-lite"); ?></a></li>
3
+ <li><a tabid="402" class='subtheme'><?php _e("Results Behaviour", "ajax-search-lite"); ?></a></li>
4
  </ul>
5
  <div class='tabscontent'>
6
+ <div tabid="401">
7
  <fieldset>
8
  <legend><?php _e("Results layout", "ajax-search-lite"); ?></legend>
9
  <?php include(ASL_PATH."backend/tabs/instance/layout/results_layout.php"); ?>
10
  </fieldset>
11
  </div>
12
+ <div tabid="402">
13
  <fieldset>
14
  <legend><?php _e("Results Behaviour", "ajax-search-lite"); ?></legend>
15
  <?php include(ASL_PATH."backend/tabs/instance/layout/results_behaviour.php"); ?>
css/style-curvy-black.css ADDED
@@ -0,0 +1,367 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ div[id*="ajaxsearchlite"] {
3
+ width: 100%;
4
+ height: auto;
5
+ border-radius: 5px;
6
+ background-color: rgb(255, 255, 255);
7
+ overflow: hidden;
8
+ border: 0px solid rgb(181, 181, 181);
9
+ border-radius: 0px 0px 0px 0px;
10
+ box-shadow: none;
11
+ }
12
+
13
+ div[id*="ajaxsearchlite"] .probox {
14
+ margin: 0px;
15
+ padding: 8px;
16
+ height: 28px;
17
+ background-color: rgb(255, 255, 255);
18
+ border: 2px solid rgb(30, 30, 30);
19
+ border-radius: 0px 0px 0px 0px;
20
+ box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
21
+ border-radius: 30px;
22
+ }
23
+
24
+ div[id*="ajaxsearchlite"] .probox .proinput {
25
+ font-weight: normal;
26
+ font-family: Open Sans;
27
+ color: rgb(0, 0, 0) !important;
28
+ font-size: 12px;
29
+ line-height: 15px;
30
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
+ }
32
+
33
+ div[id*="ajaxsearchlite"] .probox .proinput input {
34
+ font-weight: normal;
35
+ font-family: Open Sans;
36
+ color: rgb(0, 0, 0) !important;
37
+ font-size: 12px;
38
+ line-height: 28px !important;
39
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
+ border: 0;
41
+ box-shadow: none;
42
+ }
43
+
44
+ div[id*="ajaxsearchlite"].asl_msie .probox .proinput input {
45
+ line-height: 24px !important;
46
+ }
47
+
48
+ /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
49
+ div[id*="ajaxsearchlite"] .probox .proinput input::-webkit-input-placeholder {
50
+ font-weight: normal;
51
+ font-family: Open Sans;
52
+ color: rgba(0, 0, 0, 0.6) !important;
53
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
54
+ }
55
+
56
+ div[id*="ajaxsearchlite"] .probox .proinput input::-moz-placeholder {
57
+ font-weight: normal;
58
+ font-family: Open Sans;
59
+ color: rgba(0, 0, 0, 0.6) !important;
60
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
61
+ }
62
+
63
+ div[id*="ajaxsearchlite"] .probox .proinput input:-ms-input-placeholder {
64
+ font-weight: normal;
65
+ font-family: Open Sans;
66
+ color: rgba(0, 0, 0, 0.6) !important;
67
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
68
+ }
69
+
70
+ div[id*="ajaxsearchlite"] .probox .proinput input:-moz-placeholder {
71
+ font-weight: normal;
72
+ font-family: Open Sans;
73
+ color: rgba(0, 0, 0, 0.6) !important;
74
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
75
+ }
76
+
77
+ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
78
+ font-weight: normal;
79
+ font-family: Open Sans;
80
+ color: rgb(0, 0, 0);
81
+ font-size: 12px;
82
+ line-height: 15px;
83
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
84
+ }
85
+
86
+ div[id*="ajaxsearchlite"] .probox .proloading,
87
+ div[id*="ajaxsearchlite"] .probox .proclose,
88
+ div[id*="ajaxsearchlite"] .probox .promagnifier,
89
+ div[id*="ajaxsearchlite"] .probox .prosettings {
90
+ width: 28px;
91
+ height: 28px;
92
+ }
93
+
94
+ div[id*="ajaxsearchlite"] .probox .promagnifier .innericon svg {
95
+ fill: rgb(54, 54, 54);
96
+ }
97
+
98
+ div[id*="ajaxsearchlite"] .probox .proloading svg {
99
+ fill: rgb(0, 0, 0);
100
+ }
101
+
102
+ div[id*="ajaxsearchlite"] .probox .prosettings .innericon svg {
103
+ fill: rgb(54, 54, 54);
104
+ }
105
+
106
+ div[id*="ajaxsearchlite"] .probox .promagnifier {
107
+
108
+ width: 28px;
109
+ height: 28px;
110
+ background-image: -o-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
111
+ background-image: -ms-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
112
+ background-image: -webkit-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
113
+ background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
114
+ background-position: center center;
115
+ background-repeat: no-repeat;
116
+
117
+ border: 0px solid rgb(255, 255, 255);
118
+ border-radius: 0px 0px 0px 0px;
119
+ box-shadow: -1px 1px 0px 0px rgba(255, 255, 255, 0.64) inset;
120
+ cursor: pointer;
121
+ background-size: 100% 100%;
122
+
123
+ background-position: center center;
124
+ background-repeat: no-repeat;
125
+ cursor: pointer;
126
+ }
127
+
128
+ div[id*="ajaxsearchlite"] .probox div.prosettings {
129
+
130
+ width: 28px;
131
+ height: 28px;
132
+ background-image: -o-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
133
+ background-image: -ms-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
134
+ background-image: -webkit-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
135
+ background-image: linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
136
+ background-position: center center;
137
+ background-repeat: no-repeat;
138
+ float: right;
139
+ border: 0px solid rgb(255, 255, 255);
140
+ border-radius: 0px 0px 0px 0px;
141
+ box-shadow: 0px 1px 0px 0px rgba(255, 255, 255, 0.64) inset;
142
+ cursor: pointer;
143
+ background-size: 100% 100%;
144
+ order: 7;
145
+ -webkit-order: 7;
146
+ }
147
+
148
+ div[id*="ajaxsearchliteres"] {
149
+ position: absolute;
150
+ z-index: 1100;
151
+ }
152
+
153
+ div[id*="ajaxsearchliteres"].vertical {
154
+ padding: 4px;
155
+ background: rgb(255, 255, 255);
156
+ border-radius: 3px;
157
+ border: 0px solid rgb(181, 181, 181);
158
+ border-radius: 0px 0px 0px 0px;
159
+ box-shadow: 0px 0px 9px -7px #000000 inset;
160
+ visibility: hidden;
161
+ display: none;
162
+ }
163
+
164
+ div[id*="ajaxsearchliteres"] .results .nores .keyword {
165
+ padding: 0 6px;
166
+ cursor: pointer;
167
+ font-weight: normal;
168
+ font-family: Open Sans;
169
+ color: rgb(74, 74, 74);
170
+ font-size: 13px;
171
+ line-height: 13px;
172
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
173
+ font-weight: bold;
174
+ }
175
+
176
+ div[id*="ajaxsearchliteres"] .results .item {
177
+ height: auto;
178
+ background: rgb(255, 255, 255);
179
+ }
180
+
181
+ div[id*="ajaxsearchliteres"].vertical .results .item:after {
182
+ background: rgb(204, 204, 204);
183
+ }
184
+
185
+ div[id*="ajaxsearchliteres"] .results .item.hovered {
186
+ background: rgb(244, 244, 244);
187
+ }
188
+
189
+ div[id*="ajaxsearchliteres"] .results .item .asl_image {
190
+ width: 70px;
191
+ height: 70px;
192
+ }
193
+
194
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3,
195
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3 a {
196
+ margin: 0;
197
+ padding: 0;
198
+ line-height: inherit;
199
+ font-weight: normal;
200
+ font-family: Open Sans;
201
+ color: rgb(20, 104, 169);
202
+ font-size: 14px;
203
+ line-height: 22px;
204
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
205
+ }
206
+
207
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3 a:hover {
208
+ font-weight: normal;
209
+ font-family: Open Sans;
210
+ color: rgb(46, 107, 188);
211
+ font-size: 14px;
212
+ line-height: 20px;
213
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
214
+ }
215
+
216
+ div[id*="ajaxsearchliteres"] .results .item div.etc {
217
+ padding: 0;
218
+ line-height: 10px;
219
+ font-weight: bold;
220
+ font-family: Open Sans;
221
+ color: rgb(161, 161, 161);
222
+ font-size: 12px;
223
+ line-height: 13px;
224
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
225
+ }
226
+
227
+ div[id*="ajaxsearchliteres"] .results .item .etc .asl_author {
228
+ padding: 0;
229
+ font-weight: bold;
230
+ font-family: Open Sans;
231
+ color: rgb(161, 161, 161);
232
+ font-size: 12px;
233
+ line-height: 13px;
234
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
235
+ }
236
+
237
+ div[id*="ajaxsearchliteres"] .results .item .etc .asl_date {
238
+ margin: 0 0 0 10px;
239
+ padding: 0;
240
+ font-weight: normal;
241
+ font-family: Open Sans;
242
+ color: rgb(173, 173, 173);
243
+ font-size: 12px;
244
+ line-height: 15px;
245
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
246
+ }
247
+
248
+ div[id*="ajaxsearchliteres"] .results .item p.desc {
249
+ margin: 2px 0px;
250
+ padding: 0;
251
+ font-weight: normal;
252
+ font-family: Open Sans;
253
+ color: rgb(74, 74, 74);
254
+ font-size: 13px;
255
+ line-height: 13px;
256
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
257
+ }
258
+
259
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
260
+ background: #fff; /* rgba fallback */
261
+ background: rgba(255, 255, 255, 0.9);
262
+ filter: "alpha(opacity=90)";
263
+ -ms-filter: "alpha(opacity=90)"; /* old ie */
264
+ }
265
+
266
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
267
+ background: rgba(255, 255, 255, 0.95);
268
+ filter: "alpha(opacity=95)";
269
+ -ms-filter: "alpha(opacity=95)"; /* old ie */
270
+ }
271
+
272
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
273
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
274
+ background: rgba(255, 255, 255, 1);
275
+ filter: "alpha(opacity=100)";
276
+ -ms-filter: "alpha(opacity=100)"; /* old ie */
277
+ }
278
+
279
+ div[id*="ajaxsearchliteres"].horizontal .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
280
+ div[id*="ajaxsearchliteres"].horizontal .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
281
+ background: rgb(250, 250, 250);
282
+ filter: "alpha(opacity=100)";
283
+ -ms-filter: "alpha(opacity=100)"; /* old ie */
284
+ }
285
+
286
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_buttonDown:after {
287
+ border-color: rgba(136, 183, 213, 0);
288
+ border-top-color: rgb(62, 62, 62);
289
+ border-width: 6px;
290
+ left: 50%;
291
+ margin-left: -6px;
292
+ }
293
+
294
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_buttonUp:after {
295
+ border-color: rgba(136, 183, 213, 0);
296
+ border-bottom-color: rgb(62, 62, 62);
297
+ border-width: 6px;
298
+ left: 50%;
299
+ margin-left: -6px;
300
+ }
301
+
302
+ div[id*="ajaxsearchliteres"] span.highlighted {
303
+ font-weight: bold;
304
+ color: #d9312b;
305
+ background-color: #eee;
306
+ color: rgba(217, 49, 43, 1);
307
+ background-color: rgba(238, 238, 238, 1);
308
+ }
309
+
310
+ div[id*="ajaxsearchliteres"] p.showmore a {
311
+ border: 1px solid #EAEAEA;
312
+ }
313
+
314
+ div[id*='ajaxsearchliteres'].vertical .results .asl_spacer {
315
+ background: none repeat scroll 0 0 #D8D8D8;
316
+ display: block;
317
+ height: 1px;
318
+ width: 100%;
319
+ margin: 0;
320
+ padding: 0;
321
+ }
322
+
323
+ /* Search settings */
324
+
325
+ div[id*="ajaxsearchlitesettings"].searchsettings {
326
+ background: rgb(255, 255, 255);
327
+ box-shadow: 1px 1px 0px 1px rgb(30, 30, 30);
328
+ }
329
+
330
+ div[id*="ajaxsearchlitesettings"].searchsettings .label {
331
+ font-weight: bold;
332
+ font-family: Open Sans;
333
+ color: rgb(43, 43, 43);
334
+ font-size: 12px;
335
+ line-height: 15px;
336
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
337
+ }
338
+
339
+ div[id*="ajaxsearchlitesettings"].searchsettings .option label {
340
+ background-image: linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
341
+ background-image: -webkit-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
342
+ background-image: -moz-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
343
+ background-image: -o-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
344
+ background-image: -ms-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));;
345
+ }
346
+
347
+ div[id*="ajaxsearchlitesettings"].searchsettings .option label:after {
348
+ border: 3px solid rgb(255, 255, 255);
349
+ border-right: none;
350
+ border-top: none;
351
+ }
352
+
353
+ div[id*="ajaxsearchlitesettings"].searchsettings fieldset .categoryfilter {
354
+ max-height: 200px;
355
+ overflow: auto;
356
+ }
357
+
358
+ div[id*="ajaxsearchlitesettings"].searchsettings fieldset legend {
359
+ padding: 5px 0 0 10px;
360
+ margin: 0;
361
+ font-weight: normal;
362
+ font-family: Open Sans;
363
+ color: rgb(71, 71, 71);
364
+ font-size: 13px;
365
+ line-height: 15px;
366
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
367
+ }
css/style-curvy-blue.css ADDED
@@ -0,0 +1,367 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ div[id*="ajaxsearchlite"] {
3
+ width: 100%;
4
+ height: auto;
5
+ border-radius: 5px;
6
+ background-color: rgb(255, 255, 255);
7
+ overflow: hidden;
8
+ border: 0px solid rgb(181, 181, 181);
9
+ border-radius: 0px 0px 0px 0px;
10
+ box-shadow: none;
11
+ }
12
+
13
+ div[id*="ajaxsearchlite"] .probox {
14
+ margin: 0px;
15
+ padding: 8px;
16
+ height: 28px;
17
+ background-color: rgb(255, 255, 255);
18
+ border: 2px solid rgb(74, 137, 191);
19
+ border-radius: 0px 0px 0px 0px;
20
+ box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
21
+ border-radius: 30px;
22
+ }
23
+
24
+ div[id*="ajaxsearchlite"] .probox .proinput {
25
+ font-weight: normal;
26
+ font-family: Open Sans;
27
+ color: rgb(0, 0, 0) !important;
28
+ font-size: 12px;
29
+ line-height: 15px;
30
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
+ }
32
+
33
+ div[id*="ajaxsearchlite"] .probox .proinput input {
34
+ font-weight: normal;
35
+ font-family: Open Sans;
36
+ color: rgb(0, 0, 0) !important;
37
+ font-size: 12px;
38
+ line-height: 28px !important;
39
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
+ border: 0;
41
+ box-shadow: none;
42
+ }
43
+
44
+ div[id*="ajaxsearchlite"].asl_msie .probox .proinput input {
45
+ line-height: 24px !important;
46
+ }
47
+
48
+ /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
49
+ div[id*="ajaxsearchlite"] .probox .proinput input::-webkit-input-placeholder {
50
+ font-weight: normal;
51
+ font-family: Open Sans;
52
+ color: rgba(0, 0, 0, 0.6) !important;
53
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
54
+ }
55
+
56
+ div[id*="ajaxsearchlite"] .probox .proinput input::-moz-placeholder {
57
+ font-weight: normal;
58
+ font-family: Open Sans;
59
+ color: rgba(0, 0, 0, 0.6) !important;
60
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
61
+ }
62
+
63
+ div[id*="ajaxsearchlite"] .probox .proinput input:-ms-input-placeholder {
64
+ font-weight: normal;
65
+ font-family: Open Sans;
66
+ color: rgba(0, 0, 0, 0.6) !important;
67
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
68
+ }
69
+
70
+ div[id*="ajaxsearchlite"] .probox .proinput input:-moz-placeholder {
71
+ font-weight: normal;
72
+ font-family: Open Sans;
73
+ color: rgba(0, 0, 0, 0.6) !important;
74
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
75
+ }
76
+
77
+ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
78
+ font-weight: normal;
79
+ font-family: Open Sans;
80
+ color: rgb(0, 0, 0);
81
+ font-size: 12px;
82
+ line-height: 15px;
83
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
84
+ }
85
+
86
+ div[id*="ajaxsearchlite"] .probox .proloading,
87
+ div[id*="ajaxsearchlite"] .probox .proclose,
88
+ div[id*="ajaxsearchlite"] .probox .promagnifier,
89
+ div[id*="ajaxsearchlite"] .probox .prosettings {
90
+ width: 28px;
91
+ height: 28px;
92
+ }
93
+
94
+ div[id*="ajaxsearchlite"] .probox .promagnifier .innericon svg {
95
+ fill: rgb(74, 137, 191);
96
+ }
97
+
98
+ div[id*="ajaxsearchlite"] .probox .proloading svg {
99
+ fill: rgb(74, 137, 191);
100
+ }
101
+
102
+ div[id*="ajaxsearchlite"] .probox .prosettings .innericon svg {
103
+ fill: rgb(74, 137, 191);
104
+ }
105
+
106
+ div[id*="ajaxsearchlite"] .probox .promagnifier {
107
+
108
+ width: 28px;
109
+ height: 28px;
110
+ background-image: -o-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
111
+ background-image: -ms-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
112
+ background-image: -webkit-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
113
+ background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
114
+ background-position: center center;
115
+ background-repeat: no-repeat;
116
+
117
+ border: 0px solid rgb(255, 255, 255);
118
+ border-radius: 0px 0px 0px 0px;
119
+ box-shadow: -1px 1px 0px 0px rgba(255, 255, 255, 0.64) inset;
120
+ cursor: pointer;
121
+ background-size: 100% 100%;
122
+
123
+ background-position: center center;
124
+ background-repeat: no-repeat;
125
+ cursor: pointer;
126
+ }
127
+
128
+ div[id*="ajaxsearchlite"] .probox div.prosettings {
129
+
130
+ width: 28px;
131
+ height: 28px;
132
+ background-image: -o-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
133
+ background-image: -ms-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
134
+ background-image: -webkit-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
135
+ background-image: linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
136
+ background-position: center center;
137
+ background-repeat: no-repeat;
138
+ float: right;
139
+ border: 0px solid rgb(255, 255, 255);
140
+ border-radius: 0px 0px 0px 0px;
141
+ box-shadow: 0px 1px 0px 0px rgba(255, 255, 255, 0.64) inset;
142
+ cursor: pointer;
143
+ background-size: 100% 100%;
144
+ order: 7;
145
+ -webkit-order: 7;
146
+ }
147
+
148
+ div[id*="ajaxsearchliteres"] {
149
+ position: absolute;
150
+ z-index: 1100;
151
+ }
152
+
153
+ div[id*="ajaxsearchliteres"].vertical {
154
+ padding: 4px;
155
+ background: rgb(255, 255, 255);
156
+ border-radius: 3px;
157
+ border: 0px solid rgb(181, 181, 181);
158
+ border-radius: 0px 0px 0px 0px;
159
+ box-shadow: 0px 0px 9px -7px #000000 inset;
160
+ visibility: hidden;
161
+ display: none;
162
+ }
163
+
164
+ div[id*="ajaxsearchliteres"] .results .nores .keyword {
165
+ padding: 0 6px;
166
+ cursor: pointer;
167
+ font-weight: normal;
168
+ font-family: Open Sans;
169
+ color: rgb(74, 74, 74);
170
+ font-size: 13px;
171
+ line-height: 13px;
172
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
173
+ font-weight: bold;
174
+ }
175
+
176
+ div[id*="ajaxsearchliteres"] .results .item {
177
+ height: auto;
178
+ background: rgb(255, 255, 255);
179
+ }
180
+
181
+ div[id*="ajaxsearchliteres"].vertical .results .item:after {
182
+ background: rgb(204, 204, 204);
183
+ }
184
+
185
+ div[id*="ajaxsearchliteres"] .results .item.hovered {
186
+ background: rgb(244, 244, 244);
187
+ }
188
+
189
+ div[id*="ajaxsearchliteres"] .results .item .asl_image {
190
+ width: 70px;
191
+ height: 70px;
192
+ }
193
+
194
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3,
195
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3 a {
196
+ margin: 0;
197
+ padding: 0;
198
+ line-height: inherit;
199
+ font-weight: normal;
200
+ font-family: Open Sans;
201
+ color: rgb(20, 104, 169);
202
+ font-size: 14px;
203
+ line-height: 22px;
204
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
205
+ }
206
+
207
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3 a:hover {
208
+ font-weight: normal;
209
+ font-family: Open Sans;
210
+ color: rgb(46, 107, 188);
211
+ font-size: 14px;
212
+ line-height: 20px;
213
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
214
+ }
215
+
216
+ div[id*="ajaxsearchliteres"] .results .item div.etc {
217
+ padding: 0;
218
+ line-height: 10px;
219
+ font-weight: bold;
220
+ font-family: Open Sans;
221
+ color: rgb(161, 161, 161);
222
+ font-size: 12px;
223
+ line-height: 13px;
224
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
225
+ }
226
+
227
+ div[id*="ajaxsearchliteres"] .results .item .etc .asl_author {
228
+ padding: 0;
229
+ font-weight: bold;
230
+ font-family: Open Sans;
231
+ color: rgb(161, 161, 161);
232
+ font-size: 12px;
233
+ line-height: 13px;
234
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
235
+ }
236
+
237
+ div[id*="ajaxsearchliteres"] .results .item .etc .asl_date {
238
+ margin: 0 0 0 10px;
239
+ padding: 0;
240
+ font-weight: normal;
241
+ font-family: Open Sans;
242
+ color: rgb(173, 173, 173);
243
+ font-size: 12px;
244
+ line-height: 15px;
245
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
246
+ }
247
+
248
+ div[id*="ajaxsearchliteres"] .results .item p.desc {
249
+ margin: 2px 0px;
250
+ padding: 0;
251
+ font-weight: normal;
252
+ font-family: Open Sans;
253
+ color: rgb(74, 74, 74);
254
+ font-size: 13px;
255
+ line-height: 13px;
256
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
257
+ }
258
+
259
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
260
+ background: #fff; /* rgba fallback */
261
+ background: rgba(255, 255, 255, 0.9);
262
+ filter: "alpha(opacity=90)";
263
+ -ms-filter: "alpha(opacity=90)"; /* old ie */
264
+ }
265
+
266
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
267
+ background: rgba(255, 255, 255, 0.95);
268
+ filter: "alpha(opacity=95)";
269
+ -ms-filter: "alpha(opacity=95)"; /* old ie */
270
+ }
271
+
272
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
273
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
274
+ background: rgba(255, 255, 255, 1);
275
+ filter: "alpha(opacity=100)";
276
+ -ms-filter: "alpha(opacity=100)"; /* old ie */
277
+ }
278
+
279
+ div[id*="ajaxsearchliteres"].horizontal .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
280
+ div[id*="ajaxsearchliteres"].horizontal .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
281
+ background: rgb(250, 250, 250);
282
+ filter: "alpha(opacity=100)";
283
+ -ms-filter: "alpha(opacity=100)"; /* old ie */
284
+ }
285
+
286
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_buttonDown:after {
287
+ border-color: rgba(136, 183, 213, 0);
288
+ border-top-color: rgb(62, 62, 62);
289
+ border-width: 6px;
290
+ left: 50%;
291
+ margin-left: -6px;
292
+ }
293
+
294
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_buttonUp:after {
295
+ border-color: rgba(136, 183, 213, 0);
296
+ border-bottom-color: rgb(62, 62, 62);
297
+ border-width: 6px;
298
+ left: 50%;
299
+ margin-left: -6px;
300
+ }
301
+
302
+ div[id*="ajaxsearchliteres"] span.highlighted {
303
+ font-weight: bold;
304
+ color: #d9312b;
305
+ background-color: #eee;
306
+ color: rgba(217, 49, 43, 1);
307
+ background-color: rgba(238, 238, 238, 1);
308
+ }
309
+
310
+ div[id*="ajaxsearchliteres"] p.showmore a {
311
+ border: 1px solid #EAEAEA;
312
+ }
313
+
314
+ div[id*='ajaxsearchliteres'].vertical .results .asl_spacer {
315
+ background: none repeat scroll 0 0 #D8D8D8;
316
+ display: block;
317
+ height: 1px;
318
+ width: 100%;
319
+ margin: 0;
320
+ padding: 0;
321
+ }
322
+
323
+ /* Search settings */
324
+
325
+ div[id*="ajaxsearchlitesettings"].searchsettings {
326
+ background: rgb(255, 255, 255);
327
+ box-shadow: 1px 1px 0px 1px rgb(74, 137, 191);
328
+ }
329
+
330
+ div[id*="ajaxsearchlitesettings"].searchsettings .label {
331
+ font-weight: bold;
332
+ font-family: Open Sans;
333
+ color: rgb(43, 43, 43);
334
+ font-size: 12px;
335
+ line-height: 15px;
336
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
337
+ }
338
+
339
+ div[id*="ajaxsearchlitesettings"].searchsettings .option label {
340
+ background-image: linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
341
+ background-image: -webkit-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
342
+ background-image: -moz-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
343
+ background-image: -o-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
344
+ background-image: -ms-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));;
345
+ }
346
+
347
+ div[id*="ajaxsearchlitesettings"].searchsettings .option label:after {
348
+ border: 3px solid rgb(255, 255, 255);
349
+ border-right: none;
350
+ border-top: none;
351
+ }
352
+
353
+ div[id*="ajaxsearchlitesettings"].searchsettings fieldset .categoryfilter {
354
+ max-height: 200px;
355
+ overflow: auto;
356
+ }
357
+
358
+ div[id*="ajaxsearchlitesettings"].searchsettings fieldset legend {
359
+ padding: 5px 0 0 10px;
360
+ margin: 0;
361
+ font-weight: normal;
362
+ font-family: Open Sans;
363
+ color: rgb(71, 71, 71);
364
+ font-size: 13px;
365
+ line-height: 15px;
366
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
367
+ }
css/style-curvy-red.css ADDED
@@ -0,0 +1,367 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ div[id*="ajaxsearchlite"] {
3
+ width: 100%;
4
+ height: auto;
5
+ border-radius: 5px;
6
+ background-color: rgb(255, 255, 255);
7
+ overflow: hidden;
8
+ border: 0px solid rgb(181, 181, 181);
9
+ border-radius: 0px 0px 0px 0px;
10
+ box-shadow: none;
11
+ }
12
+
13
+ div[id*="ajaxsearchlite"] .probox {
14
+ margin: 0px;
15
+ padding: 8px;
16
+ height: 28px;
17
+ background-color: rgb(255, 255, 255);
18
+ border: 2px solid rgb(222, 100, 100);
19
+ border-radius: 0px 0px 0px 0px;
20
+ box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
21
+ border-radius: 30px;
22
+ }
23
+
24
+ div[id*="ajaxsearchlite"] .probox .proinput {
25
+ font-weight: normal;
26
+ font-family: Open Sans;
27
+ color: rgb(0, 0, 0) !important;
28
+ font-size: 12px;
29
+ line-height: 15px;
30
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
+ }
32
+
33
+ div[id*="ajaxsearchlite"] .probox .proinput input {
34
+ font-weight: normal;
35
+ font-family: Open Sans;
36
+ color: rgb(0, 0, 0) !important;
37
+ font-size: 12px;
38
+ line-height: 28px !important;
39
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
+ border: 0;
41
+ box-shadow: none;
42
+ }
43
+
44
+ div[id*="ajaxsearchlite"].asl_msie .probox .proinput input {
45
+ line-height: 24px !important;
46
+ }
47
+
48
+ /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
49
+ div[id*="ajaxsearchlite"] .probox .proinput input::-webkit-input-placeholder {
50
+ font-weight: normal;
51
+ font-family: Open Sans;
52
+ color: rgba(0, 0, 0, 0.6) !important;
53
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
54
+ }
55
+
56
+ div[id*="ajaxsearchlite"] .probox .proinput input::-moz-placeholder {
57
+ font-weight: normal;
58
+ font-family: Open Sans;
59
+ color: rgba(0, 0, 0, 0.6) !important;
60
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
61
+ }
62
+
63
+ div[id*="ajaxsearchlite"] .probox .proinput input:-ms-input-placeholder {
64
+ font-weight: normal;
65
+ font-family: Open Sans;
66
+ color: rgba(0, 0, 0, 0.6) !important;
67
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
68
+ }
69
+
70
+ div[id*="ajaxsearchlite"] .probox .proinput input:-moz-placeholder {
71
+ font-weight: normal;
72
+ font-family: Open Sans;
73
+ color: rgba(0, 0, 0, 0.6) !important;
74
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
75
+ }
76
+
77
+ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
78
+ font-weight: normal;
79
+ font-family: Open Sans;
80
+ color: rgb(0, 0, 0);
81
+ font-size: 12px;
82
+ line-height: 15px;
83
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
84
+ }
85
+
86
+ div[id*="ajaxsearchlite"] .probox .proloading,
87
+ div[id*="ajaxsearchlite"] .probox .proclose,
88
+ div[id*="ajaxsearchlite"] .probox .promagnifier,
89
+ div[id*="ajaxsearchlite"] .probox .prosettings {
90
+ width: 28px;
91
+ height: 28px;
92
+ }
93
+
94
+ div[id*="ajaxsearchlite"] .probox .promagnifier .innericon svg {
95
+ fill: rgb(222, 100, 100);
96
+ }
97
+
98
+ div[id*="ajaxsearchlite"] .probox .proloading svg {
99
+ fill: rgb(222, 100, 100);
100
+ }
101
+
102
+ div[id*="ajaxsearchlite"] .probox .prosettings .innericon svg {
103
+ fill: rgb(222, 100, 100);
104
+ }
105
+
106
+ div[id*="ajaxsearchlite"] .probox .promagnifier {
107
+
108
+ width: 28px;
109
+ height: 28px;
110
+ background-image: -o-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
111
+ background-image: -ms-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
112
+ background-image: -webkit-linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
113
+ background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
114
+ background-position: center center;
115
+ background-repeat: no-repeat;
116
+
117
+ border: 0px solid rgb(255, 255, 255);
118
+ border-radius: 0px 0px 0px 0px;
119
+ box-shadow: -1px 1px 0px 0px rgba(255, 255, 255, 0.64) inset;
120
+ cursor: pointer;
121
+ background-size: 100% 100%;
122
+
123
+ background-position: center center;
124
+ background-repeat: no-repeat;
125
+ cursor: pointer;
126
+ }
127
+
128
+ div[id*="ajaxsearchlite"] .probox div.prosettings {
129
+
130
+ width: 28px;
131
+ height: 28px;
132
+ background-image: -o-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
133
+ background-image: -ms-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
134
+ background-image: -webkit-linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
135
+ background-image: linear-gradient(175deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
136
+ background-position: center center;
137
+ background-repeat: no-repeat;
138
+ float: right;
139
+ border: 0px solid rgb(255, 255, 255);
140
+ border-radius: 0px 0px 0px 0px;
141
+ box-shadow: 0px 1px 0px 0px rgba(255, 255, 255, 0.64) inset;
142
+ cursor: pointer;
143
+ background-size: 100% 100%;
144
+ order: 7;
145
+ -webkit-order: 7;
146
+ }
147
+
148
+ div[id*="ajaxsearchliteres"] {
149
+ position: absolute;
150
+ z-index: 1100;
151
+ }
152
+
153
+ div[id*="ajaxsearchliteres"].vertical {
154
+ padding: 4px;
155
+ background: rgb(255, 255, 255);
156
+ border-radius: 3px;
157
+ border: 0px solid rgb(181, 181, 181);
158
+ border-radius: 0px 0px 0px 0px;
159
+ box-shadow: 0px 0px 9px -7px #000000 inset;
160
+ visibility: hidden;
161
+ display: none;
162
+ }
163
+
164
+ div[id*="ajaxsearchliteres"] .results .nores .keyword {
165
+ padding: 0 6px;
166
+ cursor: pointer;
167
+ font-weight: normal;
168
+ font-family: Open Sans;
169
+ color: rgb(74, 74, 74);
170
+ font-size: 13px;
171
+ line-height: 13px;
172
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
173
+ font-weight: bold;
174
+ }
175
+
176
+ div[id*="ajaxsearchliteres"] .results .item {
177
+ height: auto;
178
+ background: rgb(255, 255, 255);
179
+ }
180
+
181
+ div[id*="ajaxsearchliteres"].vertical .results .item:after {
182
+ background: rgb(204, 204, 204);
183
+ }
184
+
185
+ div[id*="ajaxsearchliteres"] .results .item.hovered {
186
+ background: rgb(244, 244, 244);
187
+ }
188
+
189
+ div[id*="ajaxsearchliteres"] .results .item .asl_image {
190
+ width: 70px;
191
+ height: 70px;
192
+ }
193
+
194
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3,
195
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3 a {
196
+ margin: 0;
197
+ padding: 0;
198
+ line-height: inherit;
199
+ font-weight: normal;
200
+ font-family: Open Sans;
201
+ color: rgb(20, 104, 169);
202
+ font-size: 14px;
203
+ line-height: 22px;
204
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
205
+ }
206
+
207
+ div[id*="ajaxsearchliteres"] .results .item .asl_content h3 a:hover {
208
+ font-weight: normal;
209
+ font-family: Open Sans;
210
+ color: rgb(46, 107, 188);
211
+ font-size: 14px;
212
+ line-height: 20px;
213
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
214
+ }
215
+
216
+ div[id*="ajaxsearchliteres"] .results .item div.etc {
217
+ padding: 0;
218
+ line-height: 10px;
219
+ font-weight: bold;
220
+ font-family: Open Sans;
221
+ color: rgb(161, 161, 161);
222
+ font-size: 12px;
223
+ line-height: 13px;
224
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
225
+ }
226
+
227
+ div[id*="ajaxsearchliteres"] .results .item .etc .asl_author {
228
+ padding: 0;
229
+ font-weight: bold;
230
+ font-family: Open Sans;
231
+ color: rgb(161, 161, 161);
232
+ font-size: 12px;
233
+ line-height: 13px;
234
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
235
+ }
236
+
237
+ div[id*="ajaxsearchliteres"] .results .item .etc .asl_date {
238
+ margin: 0 0 0 10px;
239
+ padding: 0;
240
+ font-weight: normal;
241
+ font-family: Open Sans;
242
+ color: rgb(173, 173, 173);
243
+ font-size: 12px;
244
+ line-height: 15px;
245
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
246
+ }
247
+
248
+ div[id*="ajaxsearchliteres"] .results .item p.desc {
249
+ margin: 2px 0px;
250
+ padding: 0;
251
+ font-weight: normal;
252
+ font-family: Open Sans;
253
+ color: rgb(74, 74, 74);
254
+ font-size: 13px;
255
+ line-height: 13px;
256
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
257
+ }
258
+
259
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
260
+ background: #fff; /* rgba fallback */
261
+ background: rgba(255, 255, 255, 0.9);
262
+ filter: "alpha(opacity=90)";
263
+ -ms-filter: "alpha(opacity=90)"; /* old ie */
264
+ }
265
+
266
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
267
+ background: rgba(255, 255, 255, 0.95);
268
+ filter: "alpha(opacity=95)";
269
+ -ms-filter: "alpha(opacity=95)"; /* old ie */
270
+ }
271
+
272
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
273
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
274
+ background: rgba(255, 255, 255, 1);
275
+ filter: "alpha(opacity=100)";
276
+ -ms-filter: "alpha(opacity=100)"; /* old ie */
277
+ }
278
+
279
+ div[id*="ajaxsearchliteres"].horizontal .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
280
+ div[id*="ajaxsearchliteres"].horizontal .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
281
+ background: rgb(250, 250, 250);
282
+ filter: "alpha(opacity=100)";
283
+ -ms-filter: "alpha(opacity=100)"; /* old ie */
284
+ }
285
+
286
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_buttonDown:after {
287
+ border-color: rgba(136, 183, 213, 0);
288
+ border-top-color: rgb(62, 62, 62);
289
+ border-width: 6px;
290
+ left: 50%;
291
+ margin-left: -6px;
292
+ }
293
+
294
+ div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_buttonUp:after {
295
+ border-color: rgba(136, 183, 213, 0);
296
+ border-bottom-color: rgb(62, 62, 62);
297
+ border-width: 6px;
298
+ left: 50%;
299
+ margin-left: -6px;
300
+ }
301
+
302
+ div[id*="ajaxsearchliteres"] span.highlighted {
303
+ font-weight: bold;
304
+ color: #d9312b;
305
+ background-color: #eee;
306
+ color: rgba(217, 49, 43, 1);
307
+ background-color: rgba(238, 238, 238, 1);
308
+ }
309
+
310
+ div[id*="ajaxsearchliteres"] p.showmore a {
311
+ border: 1px solid #EAEAEA;
312
+ }
313
+
314
+ div[id*='ajaxsearchliteres'].vertical .results .asl_spacer {
315
+ background: none repeat scroll 0 0 #D8D8D8;
316
+ display: block;
317
+ height: 1px;
318
+ width: 100%;
319
+ margin: 0;
320
+ padding: 0;
321
+ }
322
+
323
+ /* Search settings */
324
+
325
+ div[id*="ajaxsearchlitesettings"].searchsettings {
326
+ background: rgb(255, 255, 255);
327
+ box-shadow: 1px 1px 0px 1px rgb(222, 100, 100);
328
+ }
329
+
330
+ div[id*="ajaxsearchlitesettings"].searchsettings .label {
331
+ font-weight: bold;
332
+ font-family: Open Sans;
333
+ color: rgb(43, 43, 43);
334
+ font-size: 12px;
335
+ line-height: 15px;
336
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
337
+ }
338
+
339
+ div[id*="ajaxsearchlitesettings"].searchsettings .option label {
340
+ background-image: linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
341
+ background-image: -webkit-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
342
+ background-image: -moz-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
343
+ background-image: -o-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));
344
+ background-image: -ms-linear-gradient(180deg, rgb(34, 34, 34), rgb(69, 72, 77));;
345
+ }
346
+
347
+ div[id*="ajaxsearchlitesettings"].searchsettings .option label:after {
348
+ border: 3px solid rgb(255, 255, 255);
349
+ border-right: none;
350
+ border-top: none;
351
+ }
352
+
353
+ div[id*="ajaxsearchlitesettings"].searchsettings fieldset .categoryfilter {
354
+ max-height: 200px;
355
+ overflow: auto;
356
+ }
357
+
358
+ div[id*="ajaxsearchlitesettings"].searchsettings fieldset legend {
359
+ padding: 5px 0 0 10px;
360
+ margin: 0;
361
+ font-weight: normal;
362
+ font-family: Open Sans;
363
+ color: rgb(71, 71, 71);
364
+ font-size: 13px;
365
+ line-height: 15px;
366
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
367
+ }
css/style-simple-blue.css CHANGED
@@ -86,6 +86,8 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
86
  font-size: 12px;
87
  line-height: 15px;
88
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
 
 
89
  }
90
 
91
  div[id*="ajaxsearchlite"] .probox .proloading,
86
  font-size: 12px;
87
  line-height: 15px;
88
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
89
+ /* Must match box height */
90
+ margin-top: -34px !important;
91
  }
92
 
93
  div[id*="ajaxsearchlite"] .probox .proloading,
css/style-simple-grey.css CHANGED
@@ -87,6 +87,8 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
87
  font-size: 12px;
88
  line-height: 15px;
89
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
 
 
90
  }
91
 
92
  div[id*="ajaxsearchlite"] .probox .proloading,
87
  font-size: 12px;
88
  line-height: 15px;
89
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
90
+ /* Must match box height */
91
+ margin-top: -34px !important;
92
  }
93
 
94
  div[id*="ajaxsearchlite"] .probox .proloading,
css/style-simple-red.css CHANGED
@@ -50,6 +50,35 @@ div[id*="ajaxsearchlite"] .probox .proinput input {
50
  box-shadow: none;
51
  }
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
54
  font-weight: normal;
55
  font-family: Open Sans;
@@ -57,6 +86,8 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
57
  font-size: 12px;
58
  line-height: 15px;
59
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
 
 
60
  }
61
 
62
  div[id*="ajaxsearchlite"] .probox .proloading,
50
  box-shadow: none;
51
  }
52
 
53
+ /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
54
+ div[id*="ajaxsearchlite"] .probox .proinput input::-webkit-input-placeholder {
55
+ font-weight: normal;
56
+ font-family: Open Sans;
57
+ color: rgb(255, 255, 255) !important;
58
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
59
+ }
60
+
61
+ div[id*="ajaxsearchlite"] .probox .proinput input::-moz-placeholder {
62
+ font-weight: normal;
63
+ font-family: Open Sans;
64
+ color: rgb(255, 255, 255) !important;
65
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
66
+ }
67
+
68
+ div[id*="ajaxsearchlite"] .probox .proinput input:-ms-input-placeholder {
69
+ font-weight: normal;
70
+ font-family: Open Sans;
71
+ color: rgb(255, 255, 255) !important;
72
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
73
+ }
74
+
75
+ div[id*="ajaxsearchlite"] .probox .proinput input:-moz-placeholder {
76
+ font-weight: normal;
77
+ font-family: Open Sans;
78
+ color: rgb(255, 255, 255) !important;
79
+ text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
80
+ }
81
+
82
  div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
83
  font-weight: normal;
84
  font-family: Open Sans;
86
  font-size: 12px;
87
  line-height: 15px;
88
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
89
+ /* Must match box height */
90
+ margin-top: -34px !important;
91
  }
92
 
93
  div[id*="ajaxsearchlite"] .probox .proloading,
css/style.basic.css CHANGED
@@ -52,7 +52,7 @@ div[id*='ajaxsearchlite'] input[type="search"]::-webkit-search-results-decoratio
52
  }
53
 
54
  .hiddend {
55
- display: none;
56
  }
57
 
58
  div[id*='ajaxsearchlite'] textarea:focus,
@@ -115,13 +115,26 @@ div[id*='ajaxsearchlite'].asl_msie .probox .proinput input {
115
  }
116
 
117
  /* A fix for aggresive theme CSS rules */
118
- div[id*='ajaxsearchlite'] .proinput input {
119
  padding: 0 !important;
120
  margin: 0 !important;
121
  background: transparent !important;
122
  border: none !important;
123
  background-color: transparent !important;
124
  box-shadow: none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  }
126
 
127
  div[id*='ajaxsearchlite'] .probox .proinput input.autocomplete {
@@ -130,9 +143,15 @@ div[id*='ajaxsearchlite'] .probox .proinput input.autocomplete {
130
  width: 100%;
131
  box-shadow: none;
132
  margin: -1px;
 
133
  padding: 0;
134
  left: 0;
135
- display: none !important;
 
 
 
 
 
136
  }
137
 
138
  div[id*='ajaxsearchlite'] .probox .proinput.iepaddingfix {
@@ -397,6 +416,14 @@ div[id*="ajaxsearchliteres"] p.showmore a {
397
  text-align: center;
398
  }
399
 
 
 
 
 
 
 
 
 
400
  div[id*='ajaxsearchliteres'] .resdrg {
401
  height: auto;
402
  }
52
  }
53
 
54
  .hiddend {
55
+ display: none !important;
56
  }
57
 
58
  div[id*='ajaxsearchlite'] textarea:focus,
115
  }
116
 
117
  /* A fix for aggresive theme CSS rules */
118
+ div[id*='ajaxsearchlite'] .proinput input.orig {
119
  padding: 0 !important;
120
  margin: 0 !important;
121
  background: transparent !important;
122
  border: none !important;
123
  background-color: transparent !important;
124
  box-shadow: none !important;
125
+ z-index: 10;
126
+ position: relative;
127
+ }
128
+
129
+ /* A fix for aggresive theme CSS rules */
130
+ div[id*='ajaxsearchlite'] .proinput input.autocomplete {
131
+ padding: 0 !important;
132
+ margin: 0;
133
+ background: transparent !important;
134
+ border: none !important;
135
+ background-color: transparent !important;
136
+ box-shadow: none !important;
137
+ opacity: 0.2;
138
  }
139
 
140
  div[id*='ajaxsearchlite'] .probox .proinput input.autocomplete {
143
  width: 100%;
144
  box-shadow: none;
145
  margin: -1px;
146
+ margin-top: -28px !important;
147
  padding: 0;
148
  left: 0;
149
+ position: relative;
150
+ z-index: 9;
151
+ }
152
+
153
+ div[id*='ajaxsearchlite'].asl_msie .probox .proinput input.autocomplete {
154
+ margin-top: 0px !important;
155
  }
156
 
157
  div[id*='ajaxsearchlite'] .probox .proinput.iepaddingfix {
416
  text-align: center;
417
  }
418
 
419
+
420
+ .results .asl_nores .asl_keyword {
421
+ padding: 0 6px;
422
+ cursor: pointer;
423
+ font-weight: bold;
424
+ font-family: Open Sans;
425
+ }
426
+
427
  div[id*='ajaxsearchliteres'] .resdrg {
428
  height: auto;
429
  }
includes/suggest/google_suggest.class.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* Prevent direct access */
3
+ defined('ABSPATH') or die("You can't access this file directly.");
4
+
5
+ if (!class_exists('wpd_googleKeywordSuggest')) {
6
+ /**
7
+ * Google keyword suggestion class
8
+ *
9
+ * @class wpd_googleKeywordSuggest
10
+ * @version 1.2
11
+ * @package AjaxSearchPro/Classes
12
+ * @category Class
13
+ * @author Ernest Marcinko
14
+ */
15
+ class wpd_googleKeywordSuggest extends wpd_keywordSuggestAbstract {
16
+ function __construct( $args = array() ) {
17
+ $defaults = array(
18
+ 'maxCount' => 10,
19
+ 'maxCharsPerWord' => 25,
20
+ 'lang' => "en",
21
+ 'overrideUrl' => '',
22
+ 'match_start' => false
23
+ );
24
+ $args = wp_parse_args( $args, $defaults );
25
+
26
+ $this->maxCount = $args['maxCount'];
27
+ $this->maxCharsPerWord = $args['maxCharsPerWord'];
28
+ $this->lang = $args['lang'];
29
+ $this->matchStart = $args['match_start'];
30
+
31
+ if ($args['overrideUrl'] != '') {
32
+ $this->url = $args['overrideUrl'];
33
+ } else {
34
+ $this->url = 'http://suggestqueries.google.com/complete/search?output=toolbar&oe=utf-8&client=toolbar&hl=' . $this->lang . '&q=';
35
+ }
36
+ }
37
+
38
+
39
+ function getKeywords($q) {
40
+ $q = str_replace(' ', '+', $q);
41
+ $method = $this->can_get_file();
42
+ if ($method == false) {
43
+ return array('Error: The fopen url wrapper is not enabled on your server!');
44
+ }
45
+ $_content = $this->url_get_contents($this->url . $q, $method);
46
+ if ($_content == null || $_content == "") return array();
47
+ if (function_exists('mb_convert_encoding'))
48
+ $_content = mb_convert_encoding($_content, "UTF-8");
49
+ try {
50
+ $xml = simplexml_load_string($_content);
51
+ if ($xml == null || $xml === '') return array();
52
+ $json = json_encode($xml);
53
+ $array = json_decode($json, TRUE);
54
+ $res = array();
55
+ $keywords = array();
56
+ if (isset($array['CompleteSuggestion'])) {
57
+ foreach ($array['CompleteSuggestion'] as $k => $v) {
58
+ if (isset($v['suggestion']))
59
+ $keywords[] = $v['suggestion']['@attributes']['data'];
60
+ elseif (isset($v[0]))
61
+ $keywords[] = $v[0]['@attributes']['data'];
62
+ }
63
+ }
64
+ foreach ($keywords as $keyword) {
65
+ $t = strtolower($keyword);
66
+ if (
67
+ $t != $q &&
68
+ ('' != $str = wd_substr_at_word($t, $this->maxCharsPerWord))
69
+ ) {
70
+ if ($this->matchStart && strpos($t, $q) === 0)
71
+ $res[] = $str;
72
+ elseif (!$this->matchStart)
73
+ $res[] = $str;
74
+ }
75
+ }
76
+ $res = array_slice($res, 0, $this->maxCount);
77
+ if (count($res) > 0)
78
+ return $res;
79
+ else
80
+ return array();
81
+ } catch(Exception $e) {
82
+ return array();
83
+ }
84
+ }
85
+ }
86
+ }
87
+ ?>
includes/suggest/suggest-abstract.class.php ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* Prevent direct access */
3
+ defined('ABSPATH') or die("You can't access this file directly.");
4
+
5
+ /**
6
+ * A sample and parent class for keyword suggestion and autocomplete
7
+ */
8
+
9
+ if (!class_exists('wpd_keywordSuggestAbstract')) {
10
+ /**
11
+ * Statistics database keyword suggestions
12
+ *
13
+ * @class wpd_keywordSuggest
14
+ * @version 1.0
15
+ * @package AjaxSearchPro/Classes
16
+ * @category Class
17
+ * @author Ernest Marcinko
18
+ */
19
+ abstract class wpd_keywordSuggestAbstract {
20
+
21
+ protected $maxCount;
22
+
23
+ protected $maxCharsPerWord;
24
+
25
+ /**
26
+ * This should always return an array of keywords or an empty array
27
+ *
28
+ * @param string $q search keyword
29
+ * @return array() of keywords
30
+ */
31
+ abstract function getKeywords($q);
32
+
33
+ protected function can_get_file() {
34
+ if (function_exists('curl_init')){
35
+ return 1;
36
+ } else if (ini_get('allow_url_fopen')==true) {
37
+ return 2;
38
+ }
39
+ return false;
40
+ }
41
+
42
+ protected function url_get_contents($Url, $method) {
43
+ if ($method==2) {
44
+ return file_get_contents($Url);
45
+ } else if ($method==1) {
46
+ $ch = curl_init();
47
+ curl_setopt($ch, CURLOPT_URL, $Url);
48
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
49
+ $output = curl_exec($ch);
50
+ curl_close($ch);
51
+ return $output;
52
+ }
53
+ }
54
+
55
+ /**
56
+ * Performs a full escape
57
+ *
58
+ * @uses wd_mysql_escape_mimic()
59
+ * @param $string
60
+ * @return array|mixed
61
+ */
62
+ protected function escape( $string ) {
63
+ global $wpdb;
64
+
65
+ // recursively go through if it is an array
66
+ if ( is_array($string) ) {
67
+ foreach ($string as $k => $v) {
68
+ $string[$k] = $this->escape($v);
69
+ }
70
+ return $string;
71
+ }
72
+
73
+ if ( is_float( $string ) )
74
+ return $string;
75
+
76
+ // Escape for 4.0 >=
77
+ if ( method_exists( $wpdb, 'esc_like' ) )
78
+ return $wpdb->esc_like( $string );
79
+
80
+ // Escape support for WP < 4.0
81
+ if ( function_exists( 'like_escape' ) )
82
+ return like_escape($string);
83
+
84
+ // Okay, what? Not one function is present, use the one we have
85
+ return wd_mysql_escape_mimic($string);
86
+ }
87
+
88
+ }
89
+ }
includes/suggest/suggest-wrapper.class.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* Prevent direct access */
3
+ defined('ABSPATH') or die("You can't access this file directly.");
4
+
5
+ /**
6
+ * A wrappre class to use for keyword suggestion and autocomplete
7
+ */
8
+
9
+ if (!class_exists('wpd_keywordSuggest')) {
10
+ /**
11
+ * Keyword suggestion wrapper class
12
+ *
13
+ * @class wpd_keywordSuggest
14
+ * @version 1.0
15
+ * @package AjaxSearchPro/Classes
16
+ * @category Class
17
+ * @author Ernest Marcinko
18
+ */
19
+ class wpd_keywordSuggest {
20
+
21
+ private $suggest;
22
+
23
+ function __construct ($source, $args) {
24
+ $class = "wpd_". $source ."KeywordSuggest";
25
+ $this->suggest = new $class($args);
26
+ }
27
+
28
+ function getKeywords($q) {
29
+ return $this->suggest->getKeywords($q);
30
+ }
31
+
32
+ }
33
+ }
includes/suggest/suggest.inc.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Includes all files required for keyword suggestions
4
+ */
5
+
6
+ require_once(ASL_PATH . "/includes/suggest/suggest-abstract.class.php");
7
+ require_once(ASL_PATH . "/includes/suggest/google_suggest.class.php");
8
+ require_once(ASL_PATH . "/includes/suggest/suggest-wrapper.class.php");
includes/views/asl.shortcode.php CHANGED
@@ -306,7 +306,10 @@
306
  "scrollToResults": <?php echo w_isset_def($style['scroll_to_results'], 1); ?>,
307
  "resultareaclickable": <?php echo ((isset($style['resultareaclickable']) && $style['resultareaclickable']!="")?$style['resultareaclickable']:0); ?>,
308
  "defaultsearchtext": "<?php echo ((isset($style['defaultsearchtext']) && $style['defaultsearchtext']!="")?$style['defaultsearchtext']:""); ?>",
309
- "autocomplete": 0,
 
 
 
310
  "triggerontype": <?php echo ((isset($style['triggerontype']) && $style['triggerontype']!="")?$style['triggerontype']:1); ?>,
311
  "triggeronclick": <?php echo ((isset($style['triggeronclick']) && $style['triggeronclick']!="")?$style['triggeronclick']:1); ?>,
312
  "redirectonclick": <?php echo ((isset($style['redirectonclick']) && $style['redirectonclick']!="")?$style['redirectonclick']:0); ?>,
306
  "scrollToResults": <?php echo w_isset_def($style['scroll_to_results'], 1); ?>,
307
  "resultareaclickable": <?php echo ((isset($style['resultareaclickable']) && $style['resultareaclickable']!="")?$style['resultareaclickable']:0); ?>,
308
  "defaultsearchtext": "<?php echo ((isset($style['defaultsearchtext']) && $style['defaultsearchtext']!="")?$style['defaultsearchtext']:""); ?>",
309
+ "autocomplete": {
310
+ "enabled" : <?php echo w_isset_def($style['autocomplete'], 1); ?>,
311
+ "lang" : "<?php echo w_isset_def($style['kw_google_lang'], 'en'); ?>"
312
+ },
313
  "triggerontype": <?php echo ((isset($style['triggerontype']) && $style['triggerontype']!="")?$style['triggerontype']:1); ?>,
314
  "triggeronclick": <?php echo ((isset($style['triggeronclick']) && $style['triggeronclick']!="")?$style['triggeronclick']:1); ?>,
315
  "redirectonclick": <?php echo ((isset($style['redirectonclick']) && $style['redirectonclick']!="")?$style['redirectonclick']:0); ?>,
includes/views/keyword-suggestions.php CHANGED
@@ -23,7 +23,7 @@ defined('ABSPATH') or die("You can't access this file directly.");
23
  <div class="asl_nores">
24
 
25
  <span class="asl_nores_header"><?php echo $s_options['noresultstext'] . " " . $s_options['didyoumeantext']; ?></span>
26
-
27
  <?php foreach($s_keywords as $keyword): ?>
28
  <span class='asl_keyword'><?php echo $keyword; ?></span>
29
  <?php endforeach; ?>
23
  <div class="asl_nores">
24
 
25
  <span class="asl_nores_header"><?php echo $s_options['noresultstext'] . " " . $s_options['didyoumeantext']; ?></span>
26
+ <br />
27
  <?php foreach($s_keywords as $keyword): ?>
28
  <span class='asl_keyword'><?php echo $keyword; ?></span>
29
  <?php endforeach; ?>
includes/views/result.php CHANGED
@@ -48,7 +48,7 @@ defined('ABSPATH') or die("You can't access this file directly.");
48
 
49
 
50
 
51
- <h3><a href='<?php echo $r->link; ?>'>
52
  <?php echo $r->title; ?>
53
  <?php if ($s_options['resultareaclickable'] == 1): ?>
54
  <span class='overlap'></span>
48
 
49
 
50
 
51
+ <h3><a class="asl_res_url" href='<?php echo $r->link; ?>'>
52
  <?php echo $r->title; ?>
53
  <?php if ($s_options['resultareaclickable'] == 1): ?>
54
  <span class='overlap'></span>
js/nomin-scoped/jquery.ajaxsearchlite.js CHANGED
@@ -1,6 +1,7 @@
1
  (function(jQuery, $, window){
2
  /*! Ajax Search pro 2.0 js */
3
  (function ($) {
 
4
  var methods = {
5
 
6
  init: function (options, elem) {
@@ -9,7 +10,6 @@
9
  this.elem = elem;
10
  this.$elem = $(elem);
11
 
12
-
13
  $this.searching = false;
14
  $this.o = $.extend({}, options);
15
  $this.n = new Object();
@@ -83,7 +83,7 @@
83
  (parseInt(number, 10) < itemsPerPage * currentPage) &&
84
  (parseInt(number, 10) >= itemsPerPage * (currentPage - 1))
85
  );
86
- },
87
  };
88
 
89
  $this.disableMobileScroll = false;
@@ -308,24 +308,41 @@
308
  if (keycode == 40) {
309
  e.stopPropagation();
310
  e.preventDefault();
 
 
311
  if ($this.post != null) $this.post.abort();
312
  if ($('.item.hovered', $this.n.resultsDiv).length == 0) {
313
  $('.item', $this.n.resultsDiv).first().addClass('hovered');
314
- return;
 
315
  }
316
- $('.item.hovered', $this.n.resultsDiv).removeClass('hovered').next().addClass('hovered');
317
- $this.scroll.mCustomScrollbar("scrollTo", ".resdrg .item.hovered");
 
 
318
  }
319
  if (keycode == 38) {
320
  e.stopPropagation();
321
  e.preventDefault();
 
 
322
  if ($this.post != null) $this.post.abort();
323
  if ($('.item.hovered', $this.n.resultsDiv).length == 0) {
324
  $('.item', $this.n.resultsDiv).last().addClass('hovered');
325
- return;
 
326
  }
327
- $('.item.hovered', $this.n.resultsDiv).removeClass('hovered').prev().addClass('hovered');
328
- $this.scroll.mCustomScrollbar("scrollTo", ".resdrg .item.hovered");
 
 
 
 
 
 
 
 
 
329
  }
330
  }
331
  });
@@ -342,8 +359,9 @@
342
  } else if (e) {
343
  $this.keycode = e.which;
344
  $this.ktype = e.type;
345
- }
346
- if ($this.keycode == 40 || $this.keycode == 38) return;
 
347
  if ($(this).hasClass('orig') && $this.ktype == 'click') return;
348
  if ($this.o.redirectonclick == 1 && $this.ktype == 'click') {
349
  location.href = $this.o.homeurl + '?s=' + $this.n.text.val();
@@ -356,39 +374,10 @@
356
  clearTimeout(t);
357
  t = setTimeout(function () {
358
  $this.search();
359
- }, 400);
360
  });
361
  },
362
 
363
-
364
- initAutocompleteEvent: function () {
365
- var $this = this;
366
-
367
- var tt;
368
- if ($this.o.autocomplete == 1 && !is_touch_device()) {
369
- $this.n.text.keydown(function (e) {
370
- if (window.event) {
371
- $this.keycode = window.event.keyCode;
372
- $this.ktype = window.event.type;
373
- } else if (e) {
374
- $this.keycode = e.which;
375
- $this.ktype = e.type;
376
- }
377
-
378
- if ($this.keycode == 39) {
379
- $this.n.text.val($this.n.textAutocomplete.val());
380
- } else {
381
- clearTimeout(tt);
382
- if ($this.postAuto != null) $this.postAuto.abort();
383
- tt = setTimeout(function () {
384
- $this.autocomplete();
385
- tt = null;
386
- }, 30);
387
- }
388
- });
389
- }
390
- },
391
-
392
  initPagerEvent: function () {
393
  var $this = this;
394
  $this.n.resultsDiv.on('click', 'nav>a', function (e) {
@@ -482,7 +471,40 @@
482
  searchfor: function (phrase) {
483
  $(".proinput input", this).val(phrase).trigger("keyup");
484
  },
485
- autocomplete: function () {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
  var $this = this;
487
 
488
  var val = $this.n.text.val();
@@ -496,25 +518,33 @@
496
  } else {
497
  $this.n.textAutocomplete.val('');
498
  }
499
- var data = {
500
- action: 'ajaxsearchlite_autocomplete',
501
- asid: $this.o.id,
502
- sauto: $this.n.text.val()
503
- };
504
- $this.postAuto = $.post(ajaxsearchlite.ajaxurl, data, function (response) {
505
- if (response.length > 0) {
506
- var part1 = val;
507
- var part2 = response.substr(val.length);
508
- response = part1 + part2;
 
 
 
 
 
 
 
509
  }
510
- $this.n.textAutocomplete.val(response);
511
  });
512
  },
 
513
  search: function () {
514
  var $this = this;
515
 
516
  if ($this.searching && 0) return;
517
  if ($this.n.text.val().length < $this.o.charcount) return;
 
518
  $this.searching = true;
519
  $this.n.proloading.css({
520
  display: "block"
@@ -523,7 +553,7 @@
523
  display: "none"
524
  });
525
  $this.hideSettings();
526
- $this.hideResults();
527
  var data = {
528
  action: 'ajaxsearchlite_search',
529
  aslp: $this.n.text.val(),
@@ -546,6 +576,7 @@
546
  $this.n.text.val($(this).html());
547
  $('input.orig', $this.n.container).val($(this).html()).keydown();
548
  $('form', $this.n.container).trigger('submit', 'ajax');
 
549
  });
550
 
551
  $this.n.items = $('.item', $this.n.resultsDiv);
@@ -823,14 +854,23 @@
823
 
824
  showVerticalResults: function () {
825
  var $this = this;
 
 
 
 
 
 
 
826
  $this.n.resultsDiv.css({
827
  display: 'block',
828
  height: 'auto'
829
  });
830
  $this.scrolling(true);
 
831
  var top = $this.n.resultsDiv.position().top;
 
832
  $this.n.resultsDiv.css({
833
- "top": top - 100,
834
  opacity: 0,
835
  visibility: "visible"
836
  }).animate({
1
  (function(jQuery, $, window){
2
  /*! Ajax Search pro 2.0 js */
3
  (function ($) {
4
+
5
  var methods = {
6
 
7
  init: function (options, elem) {
10
  this.elem = elem;
11
  this.$elem = $(elem);
12
 
 
13
  $this.searching = false;
14
  $this.o = $.extend({}, options);
15
  $this.n = new Object();
83
  (parseInt(number, 10) < itemsPerPage * currentPage) &&
84
  (parseInt(number, 10) >= itemsPerPage * (currentPage - 1))
85
  );
86
+ }
87
  };
88
 
89
  $this.disableMobileScroll = false;
308
  if (keycode == 40) {
309
  e.stopPropagation();
310
  e.preventDefault();
311
+ $this.n.text.blur();
312
+
313
  if ($this.post != null) $this.post.abort();
314
  if ($('.item.hovered', $this.n.resultsDiv).length == 0) {
315
  $('.item', $this.n.resultsDiv).first().addClass('hovered');
316
+ } else {
317
+ $('.item.hovered', $this.n.resultsDiv).removeClass('hovered').next().next('.item').addClass('hovered');
318
  }
319
+ $this.scroll.mCustomScrollbar("scrollTo", ".resdrg .item.hovered",{
320
+ scrollInertia: 200,
321
+ callbacks: false
322
+ });
323
  }
324
  if (keycode == 38) {
325
  e.stopPropagation();
326
  e.preventDefault();
327
+ $this.n.text.blur();
328
+
329
  if ($this.post != null) $this.post.abort();
330
  if ($('.item.hovered', $this.n.resultsDiv).length == 0) {
331
  $('.item', $this.n.resultsDiv).last().addClass('hovered');
332
+ } else {
333
+ $('.item.hovered', $this.n.resultsDiv).removeClass('hovered').prev().prev('.item').addClass('hovered');
334
  }
335
+ $this.scroll.mCustomScrollbar("scrollTo", ".resdrg .item.hovered",{
336
+ scrollInertia: 200,
337
+ callbacks: false
338
+ });
339
+ }
340
+
341
+ // Trigger click on return key
342
+ if ( keycode == 13 && $('.item.hovered', $this.n.resultsDiv).length > 0 ) {
343
+ e.stopPropagation();
344
+ e.preventDefault();
345
+ $('.item.hovered a.asl_res_url', $this.n.resultsDiv).get(0).click();
346
  }
347
  }
348
  });
359
  } else if (e) {
360
  $this.keycode = e.which;
361
  $this.ktype = e.type;
362
+ }
363
+ // Ignore arrows
364
+ if ($this.keycode >= 37 && $this.keycode <= 40) return;
365
  if ($(this).hasClass('orig') && $this.ktype == 'click') return;
366
  if ($this.o.redirectonclick == 1 && $this.ktype == 'click') {
367
  location.href = $this.o.homeurl + '?s=' + $this.n.text.val();
374
  clearTimeout(t);
375
  t = setTimeout(function () {
376
  $this.search();
377
+ }, 300);
378
  });
379
  },
380
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
381
  initPagerEvent: function () {
382
  var $this = this;
383
  $this.n.resultsDiv.on('click', 'nav>a', function (e) {
471
  searchfor: function (phrase) {
472
  $(".proinput input", this).val(phrase).trigger("keyup");
473
  },
474
+
475
+ initAutocompleteEvent: function () {
476
+ var $this = this;
477
+ var tt;
478
+
479
+ if ($this.o.autocomplete.enabled == 1 && !is_touch_device()) {
480
+ $this.n.text.keyup(function (e) {
481
+ if (window.event) {
482
+ $this.keycode = window.event.keyCode;
483
+ $this.ktype = window.event.type;
484
+ } else if (e) {
485
+ $this.keycode = e.which;
486
+ $this.ktype = e.type;
487
+ }
488
+
489
+ var thekey = 39;
490
+ // Lets change the keykode if the direction is rtl
491
+ if ($('body').hasClass('rtl'))
492
+ thekey = 37;
493
+ if ($this.keycode == thekey && $this.n.textAutocomplete.val() != "") {
494
+ e.preventDefault();
495
+ $this.n.text.val($this.n.textAutocomplete.val());
496
+ if ($this.post != null) $this.post.abort();
497
+ $this.search();
498
+ } else {
499
+ if ($this.postAuto != null) $this.postAuto.abort();
500
+ $this.autocompleteGoogleOnly();
501
+ }
502
+ });
503
+ }
504
+ },
505
+
506
+ // If only google source is used, this is much faster..
507
+ autocompleteGoogleOnly: function () {
508
  var $this = this;
509
 
510
  var val = $this.n.text.val();
518
  } else {
519
  $this.n.textAutocomplete.val('');
520
  }
521
+
522
+ $.ajax({
523
+ url: 'https://clients1.google.com/complete/search',
524
+ dataType: 'jsonp',
525
+ data: {
526
+ q: val,
527
+ hl: $this.o.autocomplete.lang,
528
+ nolabels: 't',
529
+ client: 'hp',
530
+ ds: ''
531
+ },
532
+ success: function(data) {
533
+ if (data[1].length > 0) {
534
+ response = data[1][0][0].replace(/(<([^>]+)>)/ig,"");
535
+ response = response.substr(val.length);
536
+ $this.n.textAutocomplete.val(val + response);
537
+ }
538
  }
 
539
  });
540
  },
541
+
542
  search: function () {
543
  var $this = this;
544
 
545
  if ($this.searching && 0) return;
546
  if ($this.n.text.val().length < $this.o.charcount) return;
547
+
548
  $this.searching = true;
549
  $this.n.proloading.css({
550
  display: "block"
553
  display: "none"
554
  });
555
  $this.hideSettings();
556
+ //$this.hideResults();
557
  var data = {
558
  action: 'ajaxsearchlite_search',
559
  aslp: $this.n.text.val(),
576
  $this.n.text.val($(this).html());
577
  $('input.orig', $this.n.container).val($(this).html()).keydown();
578
  $('form', $this.n.container).trigger('submit', 'ajax');
579
+ $this.search();
580
  });
581
 
582
  $this.n.items = $('.item', $this.n.resultsDiv);
854
 
855
  showVerticalResults: function () {
856
  var $this = this;
857
+
858
+ var adjustTop = 100;
859
+
860
+ // Skip dropping animation if results are visible
861
+ if ($this.n.resultsDiv.css('display') == "block")
862
+ adjustTop = 0;
863
+
864
  $this.n.resultsDiv.css({
865
  display: 'block',
866
  height: 'auto'
867
  });
868
  $this.scrolling(true);
869
+
870
  var top = $this.n.resultsDiv.position().top;
871
+
872
  $this.n.resultsDiv.css({
873
+ "top": top - adjustTop,
874
  opacity: 0,
875
  visibility: "visible"
876
  }).animate({
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Ajax Search Lite ===
2
  Contributors: wpdreams
3
  Donate link: http://wp-dreams.com
4
- Tags: search, better wordpress search, search plugin, relevance search, widget, Post, ajax search, wp ajax search, custom fields search, better search, ajax search plugin, wp search, wp search plugin, relevant search plugin, wordpress search, live search, shortcode, google, woocommerce, woocommerce search, product, product search, custom search, ajax, suggest, autosuggest, autocomplete, search autocomplete, live, plugin, sidebar, product tag search, woocommerce tag search, WooCommerce Plugin, shop, search by sku, relevant search, highlight, term, image
5
  Requires at least: 3.5
6
  Tested up to: 4.3
7
- Stable tag: 4.5.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -12,7 +12,7 @@ A powerful ajax search engine for WordPress. Add a live search form to your site
12
 
13
  == Description ==
14
 
15
- Ajax Search Lite - is a live search plugin for WordPress. This responsive live search engine, which will boost your user experience by providing a user friendly ajax powered search form - an ajax live search. You can filter the results with the category and post type filter boxes as well.
16
 
17
  Very smooth animations with mobile device support and regular updates.
18
  Fine-tune the user experience by providing a powerful ajax search plugin to your visitors. It will rock your site! Supports custom post types and custom fields and more. Boost your site search engine with this custom built live search engine.
@@ -47,7 +47,7 @@ Homepage: [wp-dreams.com](http://wp-dreams.com)
47
 
48
  Pro version Demo: [Ajax Search Pro](http://demo.wp-dreams.com/?product=ajax_search_pro)
49
 
50
- **New In pro version 4.5.1 (2015.08.31):**
51
 
52
  * Frontend Demo: [Ajax Search Pro](http://demo.wp-dreams.com/?product=ajax_search_pro)
53
  * The search now can affect the default WordPress search results
@@ -84,7 +84,7 @@ is no image in post.
84
 
85
  = I added images to the post/page but I still cannot see them =
86
 
87
- Try to chmod to 777 the wp-content/plugins/ajax-search-lite/cache/ directory! All
88
  the image files will be stored there.
89
  Also, make sure, that the "furl open wrapper" is enabled on your server! In some cases
90
  this feature is disabled and you need to contact the server administrator to enable it for you.
@@ -108,6 +108,12 @@ and will let you know what to do.
108
 
109
  == Changelog ==
110
 
 
 
 
 
 
 
111
  = 4.5.1 =
112
  * Scripts are moved to the footer by default
113
  * Inline scripts removed, using JS files for initialization
1
  === Ajax Search Lite ===
2
  Contributors: wpdreams
3
  Donate link: http://wp-dreams.com
4
+ Tags: search, better wordpress search, search plugin, relevance search, widget, Post, ajax search, search filter, wp ajax search, custom fields search, better search, ajax search plugin, wp search, wp search plugin, filter, relevant search plugin, wordpress search, live search, shortcode, google, autocomplete, suggest, woocommerce, woocommerce search, product, product search, custom search, ajax, suggest, autosuggest, autocomplete, search autocomplete, live, plugin, sidebar, product tag search, woocommerce tag search, WooCommerce Plugin, shop, search by sku, relevant search, highlight, term, image
5
  Requires at least: 3.5
6
  Tested up to: 4.3
7
+ Stable tag: 4.5.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ Ajax Search Lite - is a live search plugin for WordPress. This responsive live search engine, which will boost your user experience by providing a user friendly ajax powered search form - an ajax live search. You can filter the results with the category and post type filter boxes as well. Google autocomplete and keyword suggestions also included.
16
 
17
  Very smooth animations with mobile device support and regular updates.
18
  Fine-tune the user experience by providing a powerful ajax search plugin to your visitors. It will rock your site! Supports custom post types and custom fields and more. Boost your site search engine with this custom built live search engine.
47
 
48
  Pro version Demo: [Ajax Search Pro](http://demo.wp-dreams.com/?product=ajax_search_pro)
49
 
50
+ **New In pro version 4.5.3 (2015.10.27):**
51
 
52
  * Frontend Demo: [Ajax Search Pro](http://demo.wp-dreams.com/?product=ajax_search_pro)
53
  * The search now can affect the default WordPress search results
84
 
85
  = I added images to the post/page but I still cannot see them =
86
 
87
+ Try to chmod to 775 the wp-content/plugins/ajax-search-lite/cache/ directory! All
88
  the image files will be stored there.
89
  Also, make sure, that the "furl open wrapper" is enabled on your server! In some cases
90
  this feature is disabled and you need to contact the server administrator to enable it for you.
108
 
109
  == Changelog ==
110
 
111
+ = 4.5.4 =
112
+ * Autocomplete and Keyword suggestions introduced
113
+ * Keyboard navigation fixes
114
+ * 3 new curvy styles
115
+ * Animation and navigation fixes
116
+
117
  = 4.5.1 =
118
  * Scripts are moved to the footer by default
119
  * Inline scripts removed, using JS files for initialization
search.php CHANGED
@@ -4,7 +4,7 @@ add_action('wp_ajax_ajaxsearchlite_search', 'ajaxsearchlite_search');
4
 
5
  require_once(ASL_PATH . "/includes/imagecache.class.php");
6
  require_once(ASL_PATH . "/includes/bfi_thumb.php");
7
- require_once(ASL_PATH . "/includes/suggest.class.php");
8
 
9
  require_once(ASL_PATH . "/includes/search.class.php");
10
  require_once(ASL_PATH . "/includes/search_content.class.php");
@@ -97,15 +97,37 @@ function ajaxsearchlite_search() {
97
  );
98
 
99
 
100
- /*if (count($results) <= 0) {
101
- $t = new keywordSuggest($search['data']['keywordsuggestionslang']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  $keywords = $t->getKeywords($s);
 
103
  if ($keywords != false) {
104
  $results['keywords'] = $keywords;
105
  $results['nores'] = 1;
106
  $results = apply_filters('asl_only_keyword_results', $results);
107
  }
108
- }*/
 
 
109
 
110
  $results = apply_filters('asl_results', $results);
111
 
4
 
5
  require_once(ASL_PATH . "/includes/imagecache.class.php");
6
  require_once(ASL_PATH . "/includes/bfi_thumb.php");
7
+ require_once(ASL_PATH . "/includes/suggest/suggest.inc.php");
8
 
9
  require_once(ASL_PATH . "/includes/search.class.php");
10
  require_once(ASL_PATH . "/includes/search_content.class.php");
97
  );
98
 
99
 
100
+ // Keyword suggestions
101
+ if ( count($results) <= 0 && w_isset_def($search['data']['kw_suggestions'], 1) == 1 ) {
102
+ $keywords = array();
103
+ $types = array();
104
+ $sd = $search['data'];
105
+
106
+ if ($sd['searchinposts'] == 1)
107
+ $types[] = "post";
108
+ if ($sd['searchinpages'] == 1)
109
+ $types[] = "page";
110
+ if (isset($sd['selected-customtypes']) && count($sd['selected-customtypes']) > 0)
111
+ $types = array_merge($types, $sd['selected-customtypes']);
112
+
113
+ $t = new wpd_keywordSuggest("google", array(
114
+ 'maxCount' => w_isset_def( $sd['kw_count'], 10 ),
115
+ 'maxCharsPerWord' => w_isset_def($sd['kw_length'], 60),
116
+ 'postTypes' => $types,
117
+ 'lang' => w_isset_def( $sd['kw_google_lang'], "en" ),
118
+ 'overrideUrl' => ''
119
+ ));
120
+
121
  $keywords = $t->getKeywords($s);
122
+
123
  if ($keywords != false) {
124
  $results['keywords'] = $keywords;
125
  $results['nores'] = 1;
126
  $results = apply_filters('asl_only_keyword_results', $results);
127
  }
128
+ } else if (count($results > 0)) {
129
+ $results = apply_filters('asl_only_non_keyword_results', $results);
130
+ }
131
 
132
  $results = apply_filters('asl_results', $results);
133