Fix: Uglier but supported by Chrome
[wolnelektury.git] / apps / wolnelektury_core / static / js / widget.js
index 2d9a42b..f9cf53e 100644 (file)
@@ -10,18 +10,18 @@ var body        = document.getElementsByTagName('body')
 var stylesheet = document.createElement('link');
 var stylesheetJQUI = document.createElement('linl');
 
 var stylesheet = document.createElement('link');
 var stylesheetJQUI = document.createElement('linl');
 
-var host = 'localhost:8000'; //'www.wolnelektury.pl';
+var host = 'wolnelektury.pl';
 
 /* set attributes of created elements */
 stylesheet.setAttribute('type', 'text/css');
 stylesheet.setAttribute('rel', 'stylesheet');
 
 /* set attributes of created elements */
 stylesheet.setAttribute('type', 'text/css');
 stylesheet.setAttribute('rel', 'stylesheet');
-stylesheet.setAttribute('href', 'http://'+host+'/static/css/widget.css');
+stylesheet.setAttribute('href', '//'+host+'/static/css/widget.css');
 stylesheetJQUI.setAttribute('type', 'text/css');
 stylesheetJQUI.setAttribute('rel', 'stylesheet');
 stylesheetJQUI.setAttribute('type', 'text/css');
 stylesheetJQUI.setAttribute('rel', 'stylesheet');
-stylesheetJQUI.setAttribute('href', 'http://'+host+'/static/css/ui-lightness/jquery-ui-1.8.16.custom.css');
-linkLogo.setAttribute('href', 'http://'+host);
-logo.setAttribute('src', 'http://'+host+'/static/img/logo-bez.png');
-form.setAttribute('action', 'http://'+host+'/szukaj/');
+stylesheetJQUI.setAttribute('href', '//'+host+'/static/css/ui-lightness/jquery-ui-1.8.16.custom.css');
+linkLogo.setAttribute('href', '//'+host);
+logo.setAttribute('src', '//'+host+'/static/img/logo-bez.png');
+form.setAttribute('action', '//'+host+'/szukaj/');
 form.setAttribute('method', 'get');
 form.setAttribute('accept-charset', 'utf-8');
 form.setAttribute('id', 'wl-form');
 form.setAttribute('method', 'get');
 form.setAttribute('accept-charset', 'utf-8');
 form.setAttribute('id', 'wl-form');
@@ -30,31 +30,51 @@ inputText.setAttribute('title', 'tytul, autor, motyw/temat, epoka, rodzaj, gatun
 inputText.setAttribute('value', '');
 inputText.setAttribute('name', 'q');
 inputText.setAttribute('id', 'id_qq');
 inputText.setAttribute('value', '');
 inputText.setAttribute('name', 'q');
 inputText.setAttribute('id', 'id_qq');
-inputText.setAttribute('data-source', 'http://'+host+'/szukaj/hint');
+inputText.setAttribute('data-source', '//'+host+'/szukaj/hint/');
 /*inputText.setAttribute('size', '13');*/
 inputSubmit.setAttribute('type', 'image');
 /*inputText.setAttribute('size', '13');*/
 inputSubmit.setAttribute('type', 'image');
-inputSubmit.setAttribute('src', 'http://'+host+'/static/img/search.png');
+inputSubmit.setAttribute('src', '//'+host+'/static/img/search.png');
 /* inputSubmit.setAttribute('style', 'position:relative; top:5px; margin-left:5px');*/
 
 /* import jquery and autocomplete */
 var scriptJ = document.createElement('script');
 scriptJ.setAttribute('type', 'text/javascript');
 /* inputSubmit.setAttribute('style', 'position:relative; top:5px; margin-left:5px');*/
 
 /* import jquery and autocomplete */
 var scriptJ = document.createElement('script');
 scriptJ.setAttribute('type', 'text/javascript');
-scriptJ.setAttribute('src', 'http://'+host+'/static/js/jquery.js');
+scriptJ.setAttribute('src', '//'+host+'/static/js/jquery.js');
 
 var scriptUI = document.createElement('script');
 scriptUI.setAttribute('type', 'text/javascript');
 
 var scriptUI = document.createElement('script');
 scriptUI.setAttribute('type', 'text/javascript');
-scriptUI.setAttribute('src', 'http://'+host+'/static/js/jquery-ui-1.8.2.custom.min.js');
+scriptUI.setAttribute('src', '//'+host+'/static/js/jquery-ui-1.8.2.custom.min.js');
 scriptUI.setAttribute('id', 'wl-jquery-ui-script')
 
 var scriptSearch = document.createElement('script');
 scriptSearch.setAttribute('type', 'text/javascript');
 scriptUI.setAttribute('id', 'wl-jquery-ui-script')
 
 var scriptSearch = document.createElement('script');
 scriptSearch.setAttribute('type', 'text/javascript');
-scriptSearch.setAttribute('src', 'http://'+host+'/static/js/search.js');
+scriptSearch.setAttribute('src', '//'+host+'/static/js/search.js');
 scriptSearch.setAttribute('id', 'wl-search-script')
 
 scriptSearch.setAttribute('id', 'wl-search-script')
 
-
 body[0].appendChild(scriptJ);
 body[0].appendChild(scriptJ);
-body[0].appendChild(scriptUI);
-body[0].appendChild(scriptSearch);
+scriptJ.onload = function() { body[0].appendChild(scriptUI); };
+scriptJ.onreadystatechange = function() { if (scriptJ.readyState == 'complete') { scriptJ.onload(); } };
+
+scriptUI.onload = function() { body[0].appendChild(scriptSearch); };
+scriptUI.onreadystatechange = function() { if (scriptUI.readyState == 'complete') { scriptUI.onload(); } };
+
+scriptSearch.onload = function() {
+       var s = $('#id_qq');
+        var url = s.attr('data-source');
+        s.search({source: 
+                        function(req, cb) {
+                        $.ajax({url: url,
+                                dataType: "jsonp",
+                                data: { term: req.term },
+                                type: "GET",
+                                success: function(data) { cb(data); },
+                                error: function() { cb([]); }
+                    });
+                        },
+            dataType: "jsonp",
+            host: "//"+host});
+}
+scriptSearch.onreadystatechange = function() { if (scriptSearch.readyState == 'complete') { scriptSearch.onload(); } };
 
 /* append elements to widget */
 widget.appendChild(stylesheet);
 
 /* append elements to widget */
 widget.appendChild(stylesheet);
@@ -83,18 +103,5 @@ if(widget.getAttribute('width') == '140'){
     widget.style.width = "140px";
 }
 
     widget.style.width = "140px";
 }
 
-var wl_loaded_scripts = {};
 
 
-function wl_initialize_after_load(just_loaded) {
-    wl_loaded_scripts[just_loaded] = true;
-    if (wl_loaded_scripts.jquery 
-       && wl_loaded_scripts.ui 
-       && wl_loaded_scripts.search) {
-       var s = $('#id_qq');
-       s.search({source: s.attr('data-source')});
-    }
-}
 
 
-scriptJ.onload = function() { wl_initialize_after_load('jquery'); };
-scriptUI.onload = function() { wl_initialize_after_load('ui'); };
-scriptSearch.onload = function() { wl_initialize_after_load('search'); };