home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 March / Chip_2000-03_cd.bin / zkuste / Delphi / kolekce / d345 / varian / varianz_soubory / popup.js < prev    next >
Text File  |  2000-01-11  |  7KB  |  218 lines

  1. // -- Global Variables -- //
  2. var study = '882inta';
  3. var s_hostname = 'www.zdnet.com';
  4. var popup_page = '/include/ads/campaigns/pages/spnlinks/popup.html';
  5. var frequency = 5;
  6. var cookie_name = 'XNoPopup';
  7. var cookie_domain = '.zdnet.com';
  8. var cookie_date = 'Tue, 26-Sep-00 00:00:00 GMT';
  9. var width = 360;
  10. var height = 240;
  11. var cookie_path = '/';
  12.  
  13.  
  14. // -----------------------------------------------------/
  15. // -- quick function to pull out the referer          --/
  16. // -----------------------------------------------------/
  17. function get_referer() {
  18.     var referer = self.location.host+self.location.pathname+self.location.search;
  19.     return referer;
  20. }
  21.  
  22. // -----------------------------------------------------/
  23. // -- function to append to the query string          --/
  24. // -- checks to see if data has already been appended --/
  25. // -----------------------------------------------------/
  26. function append_url (url, append_name, append_string) {
  27.     var v = parseInt(navigator.appVersion.substring(0,1));
  28.     var append = new String();
  29.  
  30.     if (( v > 3) && ((append_string == null) || (append_string == 'null')) ){
  31.      append = append_name+'=';
  32.   }
  33.     else {
  34.       append = append_name+'='+escape(append_string);
  35.    }
  36.  
  37.     if (url.indexOf('?') == -1) {
  38.     url = url+'?'+append;
  39.     }
  40.     else {
  41.     url = url+'&'+append;
  42.     }
  43.     return url;
  44. }
  45.  
  46. // -----------------------------------------------------/
  47. // -- determines if popup window should go, intercepts
  48. // -----------------------------------------------------/
  49. function popup(url, freq, cname, domain, exp, w, h, path) {
  50.   var index;
  51.   var popup_url;
  52.   
  53.   if ((document.cookie.lastIndexOf(cname)==-1) &&
  54.       (Math.floor(7654321.0*Math.random())%freq==0))
  55.   {
  56.     set_cookie(cname, exp, domain, path);
  57.     var v = parseInt(navigator.appVersion.substring(0,1));
  58.  
  59.     // -- netscape 3.01 cleanup -- //
  60.     popup_url = append_url(url,'referer',get_referer());
  61.  
  62.  
  63.     if (is_domain(self.location.hostname)) {
  64.       popup_url = host_to_domain(self.location, popup_url);
  65.     }
  66.     else {
  67.       popup_url = domain_to_host(self.location, popup_url);
  68.     }
  69.  
  70.     var pw = window.open(popup_url,
  71.                         'thePopupWin', 'toolbar=no,location=no,' +
  72.                          'directories=no,status=no,scrollbars=yes,' +
  73.                  'menubar=no,width=' + w + ',height=' + h +
  74.                  ',dependent=yes');
  75.     if ((pw != null) &&
  76.     !((navigator.userAgent.indexOf('MSIE') != -1) && (v < 3)))
  77.       pw.opener = self;
  78.  
  79.     // -- do the following for:  netscape, IE except for IE4-- /
  80.     if ( (v >= 3) && 
  81.     (((navigator.userAgent.indexOf('MSIE') != -1) && v != 4) || 
  82.     !(navigator.userAgent.indexOf('MSIE') != -1) ) )
  83.       pw.focus();
  84.   }
  85. }
  86.  
  87. // -----------------------------------------------------//
  88. // -- change popup url from xyz.com to www.xyz.com
  89. // -----------------------------------------------------//
  90. function host_to_domain(url, popup_page) {
  91.    var redirect;
  92.    var newpath;
  93.  
  94.    if (popup_page.indexOf('/') == 0) {
  95.      redirect = url.protocol+'//'+s_hostname+popup_page; 
  96.    }
  97.    else {
  98.      if (popup_page.indexOf('http') == 0) {
  99.        redirect = popup_page; 
  100.      }
  101.      else {
  102.        if (url.pathname.lastIndexOf('/') != -1){
  103.      newpath = url.pathname.substring(0, url.pathname.lastIndexOf('/')+1);
  104.        }
  105.        redirect = url.protocol+'//'+s_hostname+newpath+popup_page; 
  106.      }
  107.    }
  108.    return(redirect);
  109. }
  110.  
  111. // -----------------------------------------------------//
  112. // -- change popup url from www.xyz.com to xyz.com
  113. // -----------------------------------------------------//
  114. function domain_to_host(url, popup_page) { //go from www.a.com to a.com
  115.    var redirect;
  116.    var newpath;
  117.  
  118.    s_hostname = url.host.substring(url.host.indexOf('.')+1, url.host.length);
  119.  
  120.    if (popup_page.indexOf('/') == 0) {
  121.      redirect = url.protocol+'//'+s_hostname+popup_page; 
  122.    }
  123.    else {
  124.      if (popup_page.indexOf('http') == 0) {
  125.        redirect = popup_page; 
  126.      }
  127.      else {
  128.        if (url.pathname.lastIndexOf('/') != -1){
  129.      newpath = url.pathname.substring(0, url.pathname.lastIndexOf('/')+1);
  130.        }
  131.        redirect = url.protocol+'//'+s_hostname+newpath+popup_page; 
  132.      }
  133.    }
  134.    return(redirect);
  135. }
  136.  
  137. // -----------------------------------------------------//
  138. // -- close popup window
  139. // -----------------------------------------------------//
  140. function go_away() {
  141.   window.close();
  142. }
  143.  
  144. // -----------------------------------------------------//
  145. // -- open new window with survey, close popup window
  146. // -----------------------------------------------------//
  147. function jump_to_survey(url) {
  148.   var v = parseInt(navigator.appVersion.substring(0,1));
  149.   var pw = window.open(url + self.location.search, 'theSurveyWin',
  150.                        'toolbar=no,location=no,directories=no,' +
  151.                        'status=no,scrollbars=yes,menubar=yes');
  152.   window.close();
  153. }
  154.  
  155. // -----------------------------------------------------//
  156. // -- get the value of a var from the query string
  157. // -----------------------------------------------------//
  158. function get_search_val(url, name) {
  159.   var value = url.substring(url.indexOf(name)+name.length+1,url.length);
  160.   var v = parseInt(navigator.appVersion.substring(0,1));
  161.  
  162.   if (url.indexOf(name) == -1){
  163.     return 'null';
  164.   }
  165.  
  166.   if (v == 3) {
  167.     if (value == null) {
  168.       return 'null';
  169.     }
  170.   }
  171.   else {
  172.     if (value == false) {
  173.       return 'null';
  174.     }
  175.   }
  176.  
  177.   if (value.indexOf('&') == -1) {
  178.     return unescape(value);
  179.   }
  180.   else {
  181.     value = value.substring(0, value.indexOf('&'));
  182.     return unescape(value);
  183.   }
  184. }
  185.  
  186. // -----------------------------------------------------//
  187. // -- set a cookie
  188. // -----------------------------------------------------//
  189. function set_cookie (cname, cexpires, cdomain, cpath) {
  190.   document.cookie = cname + '=true; expires=' + cexpires + '; path=/;' +
  191.     ((cdomain != null) ? (' domain=' + cdomain) : '');
  192. }
  193.  
  194. // -----------------------------------------------------//
  195. // -- show count image, according to study
  196. // -----------------------------------------------------//
  197. function count_image () {
  198.   document.write("<IMG SRC='http://survey.cyberdialogue.com" +
  199.                  "/webqnr/engine/count.gif?client=" + study +
  200.                  "' WIDTH=1 HEIGHT=1>");
  201. }
  202.  
  203. // -----------------------------------------------------//
  204. // -- determine if hostname is domainmame or not
  205. // -----------------------------------------------------//
  206. function is_domain(url_hostname){
  207.   var value = url_hostname.substring(
  208.     url_hostname.indexOf('.')+1,
  209.     url_hostname.length).indexOf('.');
  210.  
  211.     if (value == -1) {
  212.     return 1;
  213.     }
  214.     else {
  215.     return 0;
  216.     }
  217. }
  218.