
/* -----------------------------------------------------------------------------
    @AUTHOR:  Zdenek Benak, zdenek.benak@centrum.cz
    @YEAR:    2007
    @PROJECT: MAppEngine 3.0
    @FILE:    modules/stats/stats-web.js
    @DESCR:   skript pro sber statistik
   -------------------------------------------------------------------------- */

// ---------------------------------- functions --------------------------------

  function Stats_UrlEncode(str)
  {
    var hex_tab = "0123456789ABCDEF", result = "", ascii_tab = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ";
    for (var i=0; i<str.length; i++)
    {
      var chr = str.charAt(i), ord = ascii_tab.indexOf(chr)+32;
      if (ord==32) result += "+";
      else if  (((ord>47)&&(ord<58))||((ord>64)&&(ord<91))||((ord>95)&&(ord<122))||(chr==".")||(chr=="/")) result += chr; else result += "%"+hex_tab.charAt(Math.floor(ord/16))+hex_tab.charAt(ord%16);
    }
    return result;
  }

  function Stats_GetParam(param_name,default_value,search_str)
  {
    search_str = self.top.document.location.search.substr(1).replace("%20", " ");
    params = search_str.split("&");
    for (i=0;i<params.length;i++)
    {
      p = params[i].split("=");
      if (p.length>=2)
      {
        if (p[0]==param_name)
        {
          pstr = p[1];
          for (i=2;i<p.length;i++) pstr += ("="+p[i]);
          return pstr;
        }
      }
    }
    return default_value;
  }

// ---------------------------------- init vars --------------------------------

    var stats_page_url;
    var stats_page_title;

    web_folder    = web_root_web;
    stats_script  = "http://"+server_host;
    stats_script += web_root_web.charAt(0)=="/"?"":"/";
    stats_script += web_root_web;
    stats_script += web_root_web.charAt(web_root_web.length-1)=="/"?"":"/";
    stats_script += "modules/stats/stats_wpage_collect.php";

  // sber dat o uzivateli
    Md  = document;
    Mnv = navigator;
    Mrn = Math.random();
    ref = self.top.document.referrer;
    if (ref == "") ref = Stats_GetParam("referrer_str","");
    Ms  = screen;
    Mn  = (Mnv.appName.substring(0,2)=="Mi")?0:1
    rd  = (Mn==0)?Ms.colorDepth:Ms.pixelDepth;
    rw  = Ms.width;
    rh  = Ms.height;
    
  // url a popis stranky
    if (!stats_page_url)
    {
      loc = document.location.toString();
      //strip args
      pos = loc.indexOf("?");
      loc = (pos==-1)?loc:loc.substring(0,pos);
      //strip http://
      pos = loc.indexOf("http://");
      loc = (pos==-1)?loc:loc.substring(pos+7);
      //strip server adres
      pos = loc.indexOf("/");
      loc = (pos==-1)?loc:loc.substring(pos+1);
      stats_page_url = loc;
    }
    
    if (!stats_page_title)
    {
      stats_page_title = Md.title;
    }

  // encode params
    stats_page_url   = Stats_UrlEncode(stats_page_url);
    stats_page_title = Stats_UrlEncode(stats_page_title);
    
// -------- sestaveni kompletniho url skriptu pro ulozeni statistiky -----------

    src_str = stats_script + "?page_url="+stats_page_url+"&page_title="+stats_page_title+"&ref="+ref+"&rd="+rd+"&rw="+rw+"&rh="+rh+"&mrn="+Mrn;

// ----------------------------- zavolani scriptu ------------------------------

    stats_img = new Image();
//    stats_img.src = src_str;

// --------------------------------- pro debug ---------------------------------

    //alert(src_str);
    //window.open(src_str,"","");




// ------------------------ funkce pro pocitani statistiky ---------------------

    function CountStats(page_id, page_description, web_id)
    {

      Mrn = Math.random();

      //page_id = page_id.replace("#","[HASH]");
      src_str  = stats_script + "?page_url="+Stats_UrlEncode(page_id)+"&page_title="+Stats_UrlEncode(page_description)+"&web_id="+web_id;
      src_str += "&ref="+ref+"&rd="+rd+"&rw="+rw+"&rh="+rh+"&mrn="+Mrn;

      //alert(page_id);
      /*
      if (Stats_GetParam("d","")=="1")
      {
        window.open(src_str,"","");
      //  alert((new_session=="true"?"1":"0"));
      }
      */


      stats_img.src = src_str;
     // window.open(src_str,"","");
    }

