// thanks to quirksmode.org for the cookie functions

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else
    var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(";");
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == " ")
      c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0)
      return c.substring(nameEQ.length, c.length);
  }
  return null;
}

function eraseCookie(name) {
  createCookie(name, "", -1);
}

/************************************************/

function restoreHide(aId, aClickShow, aClickHide, aDefault) {
  var val = readCookie(aId);
  if (val == null) {
    val = (aDefault) ? "0" : "1";
    createCookie(aId, val, 365);
  }
  var style = (val != "1") ? "none" : "";
  var nstyle = (style == "none") ? "" : "none";
  if (aId && document.getElementById(aId))
    document.getElementById(aId).style.display = style;
  if (aClickShow && document.getElementById(aClickShow))
    document.getElementById(aClickShow).style.display = nstyle;
  if (aClickHide && document.getElementById(aClickHide))
    document.getElementById(aClickHide).style.display = style;
}

function toggleHide(aId, aClickShow, aClickHide) {
  var val = readCookie(aId);
  if (val == null || val != "1")
    createCookie(aId, "1", 365);
  else
    createCookie(aId, "0", 365);
  restoreHide(aId, aClickShow, aClickHide);
}

function showhide(self, aId, aShowTxt, aHideTxt) {
  var elem;
  if (aId && document.getElementById(aId))
    elem = document.getElementById(aId);
  if (elem.style.display == "none") {
    elem.style.display = "";
    self.innerHTML = aHideTxt;
  } else {
    elem.style.display = "none";
    self.innerHTML = aShowTxt;
  }
  return false;
}

/************************************************/

function scx_count_old(aReferer, aUrl, aTitle) {
  var scx_width=screen.width;
  var scx_referer = ""+aReferer;
  // var scx_referer = parent.document.referrer;
  var scx_title = "";
  var scx_url = "";
  var scx_unique = 0;
  var scx_returning = 0;
  var scx_returns = 0;
  var scx_agent = navigator.appName+' '+navigator.appVersion;
  var scx_base_dir;
  var scx_error=0;
  var scx_remove=0;
  var scx_http_url="http";
  var scx_link_back_start = "";
  var scx_link_back_end = "";
  var scx_security_code = "";


  if(window.sc_https) {
    if(scx_https==1) {
      scx_doc_loc = ''+document.location;
      myRE = new RegExp("^https", "i")
      if(scx_doc_loc.match(myRE)) {
        scx_http_url = "https";
      }
      else {
        scx_http_url = "http";
      }
    }
    else
      scx_http_url = "http";
  }


  if (window.sc_partition) {
    var scx_counter = sc_partition+1;
    scx_base_dir = scx_http_url+"://c"+scx_counter+".statcounter.com/";
  }
  else {
    scx_base_dir = scx_http_url+"://c1.statcounter.com/";
    var scx_partition=0;
  }


  if(window.sc_text)
    scx_base_dir += "text.php?";
  else
    scx_base_dir += "t.php?";


  if(window.sc_project) {
    scx_base_dir += "sc_project="+sc_project;
    if(sc_project=="610695")
      scx_remove=1;
  }
  else if(window.usr) {
    scx_base_dir += "usr="+usr;
  }
  else {
    scx_error = 1;
  }


  if(window.sc_remove_link) {
    scx_link_back_start = "";
    scx_link_back_end = "";
  }
  else {
    scx_link_back_start = "<a href=\"http://www.StatCounter.com\" target=\"_blank\">";
    scx_link_back_end = "<\/a>";
  }

  scx_date = new Date();
  scx_time = scx_date.getTime();
  scx_agent = scx_agent.toUpperCase();

  scx_time_difference = 60*60*1000;

  scx_title = ""+aTitle;
  scx_url = ""+aUrl;
  scx_referer = scx_referer.substring(0, 150);
  scx_title = scx_title.substring(0, 150);
  scx_url = scx_url.substring(0, 150);
  scx_referer = escape(scx_referer);
  scx_title = escape(scx_title);
  scx_url = escape(scx_url);

  if (window.sc_security) {
    scx_security_code = sc_security;
  }

  var scx_tracking_url = scx_base_dir+"&resolution="+scx_width+"&camefrom="+scx_referer+"&u="+scx_url+"&t="+scx_title+"&java=1&security="+scx_security_code+"&sc_random="+Math.random();

  // if no usr or project set then display visibile

  // if usr=="someuser" then display visibile

  if(scx_error==1) {
    document.writeln("Code corrupted. Insert fresh copy.");
  }
  else if(scx_remove==1) {
    document.writeln("<b>StatCounter cannot track a high volume website like yours for free. This was stated several times during the sign up process. Please remove the code ASAP.</b>");
  }
  //else if(scx_partition==1) {
  // down at the moment
  //}
  else {
    var scx_img = new Image();
    //alert(scx_tracking_url.replace(/&/g, "&\n"));
    scx_img.src = scx_tracking_url;
  }
}

/*new-version*/

var sc_script_num = 0;
var clickstat_done = 0;

function scx_count(aReferer, aUrl, aTitle) {
var sc_project = 1596154;
var sc_security = "b022d978"; 
var sc_text = 0;  // no text mode
var sc_remove_link = 1;
var sc_click_stat = 250;  // or 1
var sc_exit_link_detect; // or regexp??
var sc_local; // = "http://devbase.homelinux.org:5071/";
var sc_https = 0;  // no secure statcounter connection

var sc_width = screen.width;
var sc_height = screen.height;
var sc_referer;
if (aReferer) {
  sc_referer = "" + aReferer;
}
else {
  sc_referer = "" + document.referrer;
  try {
    sc_referer = "" + parent.document.referrer
  }catch(ex) {
    sc_referer = "" + document.referrer
  }
}
var sc_unique = 0;
var sc_returning = 0;
var sc_returns = 0;
var sc_error = 0;
var sc_remove = 0;
var sc_cls = -1;
var sc_inv = 1;   // invisible!
var sc_os = "";
var sc_title = "";
var sc_url = "";
var sc_base_dir = "";
var sc_click_dir = "";
var sc_link_back_start = "";
var sc_link_back_end = "";
var sc_security_code = "";
var sc_http_url = "http";
var sc_host = "statcounter.com";
if(sc_click_stat) {
  sc_cls = sc_click_stat
}
if(sc_https) {
  if(sc_https == 1) {
    sc_doc_loc = "" + document.location;
    myRE = new RegExp("^https", "i");
    if(sc_doc_loc.match(myRE)) {
      sc_http_url = "https"
    }
  }
}
if(sc_local) {
  sc_base_dir = sc_local
}else {
  if(sc_cls == -1) {
    sc_cls = 1
  }
  sc_base_dir = sc_http_url + "://c." + sc_host + "/"
}
sc_click_dir = sc_base_dir;
if(sc_text) {
  sc_base_dir += "text.php?"
}else {
  sc_base_dir += "t.php?"
}
if(sc_project) {
  sc_base_dir += "sc_project=" + sc_project
}else {
  if(sc_usr) {
    sc_base_dir += "usr=" + sc_usr
  }else {
    sc_error = 1
  }
}
if(sc_remove_link) {
  sc_link_back_start = "";
  sc_link_back_end = ""
}else {
  sc_link_back_start = '<a class="statcounter" href="http://www.' + sc_host + '" target="_blank">';
  sc_link_back_end = "</a>"
}
sc_date = new Date;
sc_time = sc_date.getTime();
sc_time_difference = 36E5;
sc_title = aTitle ? "" + aTitle : "" + document.title;
sc_url   = aUrl   ? "" + aUrl   : "" + document.location;
sc_referer = sc_referer.substring(0, 600);
sc_title = sc_title.substring(0, 300);
sc_url = sc_url.substring(0, 300);
sc_referer = escape(sc_referer);
if(encodeURIComponent) {
  sc_title = encodeURIComponent(sc_title)
}else {
  sc_title = escape(sc_title)
}
sc_url = escape(sc_url);
if(sc_security) {
  sc_security_code = sc_security
}
if(sc_script_num) {
  sc_script_num++
}else {
  var sc_script_num = 1
}
var sc_tracking_url = sc_base_dir + "&resolution=" + sc_width + "&h=" + sc_height + "&camefrom=" + sc_referer + "&u=" + sc_url + "&t=" + sc_title + "&java=1&security=" + sc_security_code + "&sc_random=" + Math.random() + "&sc_snum=" + sc_script_num;
var sc_clstr = '<span class="statcounter">';
var sc_cltext = '" alt="StatCounter - Free Web Tracker and Counter" border="0">';
var sc_strout = sc_clstr + sc_link_back_start + '<img src="' + sc_tracking_url + sc_cltext + sc_link_back_end + "</span>";
if(sc_error == 1) {
  document.writeln("Code corrupted. Insert fresh copy.")
}else {
  if(sc_remove == 1) {
  }else {
    if(sc_inv == 1) {
      if(window.sc_call) {
        sc_call++
      }else {
        sc_call = 1
      }
      eval("var sc_img" + sc_call + " = new Image();sc_img" + sc_call + '.src = "' + sc_tracking_url + '&invisible=1"')
    }else {
      if(sc_text) {
        document.writeln("<scr" + 'ipt language="JavaScript"' + " src=" + sc_tracking_url + "&text=" + sc_text + "></scr" + "ipt>")
      }else {
        document.writeln(sc_strout)
      }
    }
  }
}
if(sc_cls > 0) {
  if(clickstat_done != 1) {
    var clickstat_done = 1;
    var clickstat_project = sc_project;
    var clickstat_security = sc_security_code;
    var dlext = "7z|aac|avi|bb|csv|doc|docx|exe|flv|gif|gz|jpe?g|js|ly|mp(3|4|e?g)|mov|ogg|patch|pdf|phps|png|ppt|rar|sit|tar|tgz|torrent|txt|widget|wma|wmv|xls|xlsx|xml|zip";
    if(typeof window.sc_download_type == "string") {
      dlext = window.sc_download_type
    }
    var ltype = "https?|ftp|telnet|ssh|ssl|mailto";
    var second = "ac|co|gov|ltd|me|mod|net|nic|nhs|org|plc|police|sch|com";
    var dl = new RegExp("\\.(" + dlext + ")$", "i");
    var lnk = new RegExp("^(" + ltype + "):", "i");
    var domsec = new RegExp("^(" + second + ")$", "i");
    var host_name = location.host.replace(/^www\./i, "");
    var host_splitted = host_name.split(".");
    var domain = host_splitted.pop();
    var host_split = host_splitted.pop();
    if(domsec.test(host_split)) {
      domain = host_split + "." + domain;
      host_split = host_splitted.pop()
    }
    domain = host_split + "." + domain;
    var lnklocal_mask = "^https?://(.*)(" + domain + "|webcache.googleusercontent.com)";
    var lnklocal = new RegExp(lnklocal_mask, "i");
    if(document.getElementsByTagName) {
      var anchors = document.getElementsByTagName("a");
      //alert(anchors.length);
      for(var i = 0;i < anchors.length;i++) {
        var anchor = anchors[i];

        /*
        //var oldevhdl = anchor.onclick;
        //anchor.onclick = function(e) {
        var oldevhdl = anchor.onmousedown;
        anchor.onmousedown = function(e) {
          var res = true;
          if (typeof oldevhdl == 'function') {
            res = oldevhdl(e);
          }
          var targ;
          if (!e) e = window.event;
          if (e.target) targ = e.target;
          else if (e.srcElement) targ = e.srcElement;
          if (targ.nodeType == 3) // defeat Safari bug
            targ = targ.parentNode;
          sc_clickstat_call(targ, sc_click_dir);
          return res;
        }
        */
        if(anchor.onmousedown) {
          var original_click = anchor.onmousedown;
          var s = original_click.toString().split("\n").join(" ");
          var bs = s.indexOf("{");
          var head = s.substr(0, bs);
          var ps = head.indexOf("(");
          var pe = head.indexOf(")");
          var params = head.substring(ps + 1, pe);
          var plist = params.split(",");
          var body = s.substr(bs + 1, s.length - bs - 2);
          var insert = "sc_clickstat_call(this,'" + sc_click_dir + "');";
          var final_body = insert + body;
          var ev_head = "new Function (";
          var ev_params = "";
          var ev_sep = "";
          for(var sc_i = 0;sc_i < plist.length;sc_i++) {
            ev_params = ev_sep + "'" + plist[sc_i] + "'";
            ev_sep = ","
          }
          if(ev_sep == ",") {
            ev_params += ","
          }
          var ev_foot = "final_body);";
          var ev_final = ev_head + ev_params + ev_foot;
          anchor.onmousedown = eval(ev_final)
        }else {
          anchor.onmousedown = new Function("event", "sc_clickstat_call(this,'" + sc_click_dir + "');return true;")
        }
      }
    }
    function sc_none() {
      return
    }
    function sc_delay() {
      if(sc_click_stat) {
        var d = sc_click_stat
      }else {
        var d = 250
      }
      var n = new Date;
      var t = n.getTime() + d;
      while(n.getTime() < t) {
        var n = new Date
      }
    }
    function sc_clickstat_call(adata, sc_click_dir) {
      if(adata) {
        var clickmode = 0;
        if(lnk.test(adata)) {
          if(lnklocal.test(adata)) {
            if(dl.test(adata)) {
              clickmode = 1
            }else {
              if(window.sc_exit_link_detect && (new RegExp(sc_exit_link_detect, "i")).test(adata)) {
                clickmode = 2
              }else {
                if(sc_cls == 2) {
                  clickmode = 2
                }
              }
            }
          }else {
            clickmode = 2
          }
        }
        if(clickmode != 0) {
          var sc_link = escape(adata);
          var title = sc_title;
          if(adata.hasAttribute("title")) {
            if(encodeURIComponent) {
              title = encodeURIComponent(adata.getAttribute("title"))
            }else {
              title = escape(adata.getAttribute("title"))
            }
          }
          if(sc_link.length > 0) {
            var sc_req = sc_click_dir + "click.gif?sc_project=" + clickstat_project + "&security=" + clickstat_security + "&c=" + sc_link + "&m=" + clickmode + "&u=" + sc_url + "&t=" + title + "&rand=" + Math.random();
            var sc_req_image = new Image;
            sc_req_image.onload = sc_none;
            sc_req_image.src = sc_req;
            sc_delay()
          }
        }
      }
    }
    var sc_gsyn_pattern = "googlesyndication.com|ypn-js.overture.com|ypn-js.ysm.yahoo.com|googleads.g.doubleclick.net";
    var sc_gsyn_pattern2 = "^aswift_[0-9]+$";
    var sc_px;
    var sc_py;
    function sc_adsense_click(sc_data) {
      if(sc_data.src.match(sc_gsyn_pattern)) {
        var sc_link = escape(sc_data.src)
      }else {
        var sc_link = escape("Google Adsense " + sc_data.width + "x" + sc_data.height)
      }
      var i = new Image;
      var sc_req = sc_click_dir + "click.gif?sc_project=" + clickstat_project + "&security=" + clickstat_security + "&c=" + sc_link + "&m=2&u=" + sc_url + "&t=" + sc_title + "&rand=" + Math.random();
      i.src = sc_req;
      sc_delay()
    }
    function sc_adsense_init() {
      if(document.all && typeof window.opera == "undefined") {
        var el = document.getElementsByTagName("iframe");
        for(var i = 0;i < el.length;i++) {
          if(el[i].src.match(sc_gsyn_pattern) || el[i].id.match(sc_gsyn_pattern2)) {
            el[i].onfocus = function() {
              sc_adsense_click(this)
            }
          }
        }
      }else {
        if(typeof window.addEventListener != "undefined") {
          window.addEventListener("unload", sc_exitpage, false);
          window.addEventListener("mousemove", sc_getmouse, true)
        }
      }
    }
    if(typeof window.addEventListener != "undefined") {
      window.addEventListener("load", sc_adsense_init, false)
    }else {
      if(typeof document.addEventListener != "undefined") {
        document.addEventListener("load", sc_adsense_init, false)
      }else {
        if(typeof window.attachEvent != "undefined") {
          window.attachEvent("onload", sc_adsense_init)
        }else {
          if(typeof window.onload == "function") {
            var sc_existing = onload;
            window.onload = function() {
              sc_existing();
              sc_adsense_init()
            }
          }else {
            window.onload = sc_adsense_init
          }
        }
      }
    }
    function sc_getmouse(e) {
      if(typeof e.pageX == "number") {
        sc_px = e.pageX;
        sc_py = e.pageY
      }else {
        if(typeof e.clientX == "number") {
          sc_px = e.clientX;
          sc_py = e.clientY;
          if(document.body && (document.body.scrollLeft || document.body.scrollTop)) {
            sc_px += document.body.scrollLeft;
            sc_py += document.body.scrollTop
          }else {
            if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
              sc_px += document.documentElement.scrollLeft;
              sc_py += document.documentElement.scrollTop
            }
          }
        }
      }
    }
    function sc_findy(obj) {
      var y = 0;
      while(obj) {
        y += obj.offsetTop;
        obj = obj.offsetParent
      }
      return y
    }
    function sc_findx(obj) {
      var x = 0;
      while(obj) {
        x += obj.offsetLeft;
        obj = obj.offsetParent
      }
      return x
    }
    function sc_exitpage(e) {
      ad = document.getElementsByTagName("iframe");
      if(typeof sc_px == "undefined") {
        return
      }
      for(var i = 0;i < ad.length;i++) {
        var adLeft = sc_findx(ad[i]);
        var adTop = sc_findy(ad[i]);
        var adW = parseInt(adLeft, 10) + parseInt(ad[i].width, 10) + 15;
        var adH = parseInt(adTop, 10) + parseInt(ad[i].height, 10) + 10;
        var inFrameX = sc_px > adLeft - 10 && sc_px < adW;
        var inFrameY = sc_py > adTop - 10 && sc_py < adH;
        if(inFrameY && inFrameX) {
          if(ad[i].src.match(sc_gsyn_pattern) || ad[i].id.match(sc_gsyn_pattern2)) {
            sc_adsense_click(ad[i])
          }
        }
      }
    }
  }
}
}
window['scx_count'] = scx_count;

/************************************************/
var cntparam;

function xpi_install(aObj) {
  var url = aObj.href;  
  var param1 = {
    "temp": { URL: url,
              IconURL: aObj.getAttribute("iconURL"),
              toString: function () { return this.URL; }
    }
  };
  var params = new Object();
  tit = aObj.getAttribute("title");
  params[tit] = param1["temp"];
  if (InstallTrigger) {
    InstallTrigger.install(params, doneFn);
    cntparam = [ document.location, url, tit ];
    //if (!InstallTrigger.updateEnabled())
    //  scx_count(document.location, url + "-INSTALL_DISABLED", tit);
  }
  else {
    //scx_count(document.location, url + "-NO_INSTALLER", tit);
    return true;
  }
  return false;
}


function doneFn ( name , result ){
  if (result) {
    var res = "ERROR"+result;
    var errors = {
      "-202": "ACCESS_DENIED",
      "-210": "USER_CANCELLED",
      "-215": "READ_ONLY",
      "-219": "INVALID_PATH_ERR",
      "-223": "UNINSTALL_FAILED",
      "-227": "INSTALL_CANCELLED",
      "-228": "DOWNLOAD_ERROR",
      "-230": "ALREADY_EXISTS",
      "-235": "INSUFFICIENT_DISK_SPACE",
      "-239": "CHROME_REGISTRY_ERROR",
      "-299": "OUT_OF_MEMORY",
      "999":  "REBOOT_NEEDED" };
    if ((""+result) in errors)
      res = errors[""+result];
    //scx_count(cntparam[0], cntparam[1] + "-"+res, cntparam[2]);
  }
  //else
  //  scx_count(cntparam[0], cntparam[1], cntparam[2]);
}
// Error codes: see http://lxr.mozilla.org/seamonkey/source/xpinstall/src/nsInstall.h#165

/************************************************/

function item_download(aObj) {
  var url = aObj.href;  
  var tit = aObj.getAttribute("title");
  //var func = function() { scx_count(document.location, url, tit); };
  //setTimeout(func, 100);
  return true;
}

/************************************************/

function switchPage() {
  var url = document.location.href.replace(/\/$/, "/index.html");
  var lang;
  url = url.replace(/\/([#\?])/, "/index.html$1");
  
  var getparam = url.match(/\?.*\blang=(en|de)\b/);
  if (getparam) {
    lang = getparam[1];
    createCookie("language", lang, 365);
  }
  else {
    lang = readCookie("language");
    if (!lang) {
      if (navigator.language.indexOf("de") > -1)
        lang = "de";
      else
        lang = "en";
      createCookie("language", lang, 365);
    }
  }
  if ((lang == "de") && (url.match(/_en\.html?/)))
    document.location.href = url.replace(/_en(\.html?)/, "$1");
  else if ((lang == "en") && (!url.match(/_en\.html?/)))
    document.location.href = url.replace(/(\.html?)/, "_en$1");
}


function switchLang(aLang) {
  createCookie("language", aLang, 365);
  var url = document.location.href.replace(/\/$/, "/index.html");
  url = url.replace(/\/([#\?])/, "/index.html$1");
  url = url.replace(/lang=\w+&?/, "");
  if ((aLang == "de") && (url.match(/_en\.html?/)))
    document.location.href = url.replace(/_en(\.html?)/, "$1");
  else if ((aLang == "en") && (!url.match(/_en\.html?/)))
    document.location.href = url.replace(/(\.html?)/, "_en$1");
  return false;
}

/************************************************/

function openImageWin(aImg) {
  if (!aImg) return;
  var now = new Date();
  var windowname = String(Date.parse(now));
  var windowtitle = aImg.src.match(/[^\/]+$/);
  var w = aImg.width+20;
  var h = aImg.height+20;
  var par = "width="+w+",height="+h+",toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes";
  var newwin = window.open(aImg.src, "win"+windowname, par);
  newwin.document.writeln('<html><head><title>' + windowtitle[0] + '</title></head><body bgcolor="black"><center>');
  newwin.document.writeln('<img src="' + aImg.src + '" title="' + windowtitle[0] + '" alt="' + windowtitle[0] + '">');
  newwin.document.writeln('</center></body></html>');
  newwin.document.close();
}

/************************************************/

//scx_count(document.referrer, document.location, document.title);
//switchPage();

