var kulateRohy = {

  /*
   * Spuštění zaoblování.
   */
  zaoblit: function()
  {
    if (!kulateRohy.niftyCheck())
      return;
    
    var pozadi = "#D5DBD8";
    
    kulateRohy.rounded("H1", pozadi, "#C50E1F", "left,right", "2");
    kulateRohy.rounded("div.roundedRed", pozadi, "#C50E1F", "left,right", "2");
    kulateRohy.rounded("div.roundedWhite", pozadi, "#FFFFFF", "left,right", "2");
    kulateRohy.rounded("div.roundedGrey", pozadi, "#002F3E", "left,right", "2");
    
    kulateRohy.rounded("div.roundedTBWhite", pozadi, "#FFFFFF", "top,bottom", "2");
  }
  ,

  /*
   * Kontrola, zda se může zaoblovat.
   */
  niftyCheck: function()
  {
    if(!document.getElementById || !document.createElement)
      return(false);
    var b = navigator.userAgent.toLowerCase();
    
    this.ie = (b.match("msie") ? true : false); 
    
    if ((b.indexOf("msie 5") > 0 && b.indexOf("opera") == -1) || (b.indexOf("msie 6") > 0))
      return(false);
    
    return(true);
  }
  ,
  
  /*
   * Zajistí přidání divů, které vytvoří zaoblení, do elementu, který se má zaoblit.
   */
  rounded: function(selector, bk, color, where, size)
  {
    var ow;
    var i;
    var height;
    var v = this.getElementsBySelector(selector);
    var l = v.length;
    
    for(i = 0; i < l; i++)
    { 
      height = v[i].offsetHeight;
      size = (height >= 15 ? "2" : "1");
      //if (this.ie && (where.match("left") || where.match("right")))
      var ow = v[i].offsetWidth + 4; /* + parseInt(size) * 2;*/
        
    
      if (where.match("top"))
        this.addRoundItem(v[i], bk, color, "top", size);
      if (where.match("bottom"))
        this.addRoundItem(v[i], bk, color, "bottom", size);
      if (where.match("left"))
        this.addRoundItem(v[i], bk, color, "left", size, height);
      if (where.match("right"))
        this.addRoundItem(v[i], bk, color, "right", size, height);
        
      if (where.match("left") || where.match("right")) // zvetsi se sirka o 4px kvuli IE a lepe to vypada
      {
        v[i].style.width = ow + "px";
        if (this.ie)
          this.addFrakkingItems(v[i], size);
      }
    }
  }
  ,

  /*
   * Přidá další divy, které opraví levý a pravý dolní roh v IE7.
   */
  addFrakkingItems: function(el, size)
  {
    if (size == 1)
    {
      var x = document.createElement("b");
      x.className = "rleft1_frakkingIE";
      el.appendChild(x);
      
      var x = document.createElement("b");
      x.className = "rright1_frakkingIE";
      el.appendChild(x);
    }
  
    if (size == 2)
    {
	    var x = document.createElement("b");
	    x.className = "rleft2_frakkingIE1";
	    el.appendChild(x);
	    
	    var x = document.createElement("b");
	    x.className = "rleft2_frakkingIE2";
	    el.appendChild(x);
	    
	    var x = document.createElement("b");
	    x.className = "rright2_frakkingIE1";
	    el.appendChild(x);
    }
  }
  ,
  
  /*
   * Přidá jeden div, který vytváří zaoblování.
   */
  addRoundItem: function(el, bk, color, position, size, height)
  {
    var i;
    var d = document.createElement("b");
    var cn;
    var lim = parseInt(size);
    
    cn = "r" + position + size; 
    d.className = "r" + position;
    d.style.backgroundColor = bk;
    
    for(i = 1; i<= lim; i++)
    {
      var x = document.createElement("b");
      
      x.className = cn + i;
      x.style.backgroundColor = color;

      if (height && position.match("left"))
        x.style.height = (height - (lim+1 - i)*2).toString() + "px";
      if (height && position.match("right"))
        x.style.height = (height - i*2).toString() + "px";
      
      d.appendChild(x);
    }
    
    if (position == "bottom")
      el.appendChild(d,el.firstChild);
    else
      el.insertBefore(d,el.firstChild);
  }
  ,

  /*
   * Hledá všechny elementy dle zadaného kritéria (viz nápovědy u ifů).
   */
  getElementsBySelector: function(selector)
  {
    var i;
    var s = [];
    var selid = "";
    var selclass = "";
    var tag = selector;
    var objlist = [];
    
    if (selector.indexOf(" ") > 0) //descendant selector like "tag#id tag"
    { 
      s = selector.split(" ");
      var fs = s[0].split("#");
      if(fs.length == 1) return(objlist);
      return(document.getElementById(fs[1]).getElementsByTagName(s[1]));
    }
    
    if (selector.indexOf("#")>0) //id selector like "tag#id"
    { 
      s = selector.split("#");
      tag = s[0];
      selid = s[1];
    }
    
    if (selid != "")
    {
      objlist.push(document.getElementById(selid));
      return(objlist);
    }
    
    if (selector.indexOf(".") > 0) //class selector like "tag.class"
    {  
      s = selector.split(".");
      tag = s[0];
      selclass = s[1];
    }
    
    var v = document.getElementsByTagName(tag);  // tag selector like "tag"
    
    if(selclass == "")
      return(v);
        
    for (i = 0; i < v.length; i++)
    {
      if(v[i].className.match(selclass))
      {
        objlist.push(v[i]);
      }
    }
    
    return(objlist);
  }

}