function Evnt(nam) {
  this.createdEventArray = new Array();
  /* zachytavam udalost */
  this.getEvent = function() {
    e = arguments[0];
    e = e ? e : window.event;
    return e;
  };

  /* zjistuji cil udalosti */
  this.getTarget = function(e) {
    e = window[nam].getEvent(e);
    if (!e.currentTarget) {
        e.currentTarget = e.srcElement;
    }
    return e.currentTarget;
  };

  /* zavesuj spracovani udalosti */
  this.addEvent = function(elm,eventType,fn,set){
    if(arguments[4]){
      var num = window[nam].createdEventArray.length;
      window[nam].createdEventArray[num] = {trg:elm, typ:eventType, action:fn, bool:set};
    }
    if (document.addEventListener) {
      if (window.opera && (elm == window)){
        elm = document;
      }
      elm.addEventListener(eventType,fn,set);
    } else if (document.attachEvent) {
      elm.attachEvent('on'+eventType,fn);
    }
  };

  this.clearEvents = function(){
    for(var i = 0; i < window[nam].createdEventArray.length; i++){
      try{
          dom.removeEvent(window[nam].createdEventArray[i].trg,window[nam].createdEventArray[i].typ,window[nam].createdEventArray[i].action,window[nam].createdEventArray[i].bool);
      } catch(e){
      }
      window[nam].createdEventArray[i] = null;
    }
    window[nam].createdEventArray = null;
  };

  /* rusim zpracovani udalosti  */
  this.removeEvent = function(elm,eventType,fn,set){
    if (document.removeEventListener) {
      if (window.opera && (elm == window)){
        elm = document;
      }
      elm.removeEventListener(eventType,fn,set);
    } else if (document.detachEvent) {
      elm.detachEvent('on'+eventType,fn);
    }
  };

  /* zabranuji prostupovani udalosti stromem dokumentu */
  this.stopEvent = function(e) {
    var e = window[nam].getEvent(e);

    /* clicktracker pro IE */
    if((browser.klient == 'ie') && (typeof(clickTracker) != 'undefined') && (e.type == 'click')){
      clickTracker.logger();
    }

    if (e.stopPropagation){
      e.stopPropagation();
    } else {
      e.cancelBubble= true;
    }
  };

  /* rusim pripadnou defaultni reakci prohlizece na udalost */
  this.cancelDef = function(e){
    e = window[nam].getEvent(e);
    if(e.preventDefault) {
      e.preventDefault();
    } else {
      e.returnValue = false;
    }
  };
};

function gE(o) { return document.getElementById(o); };
function cE(o) { return document.createElement(o); };

function getSelectValue(id)
{
  var opts = gE(id).options;
  var val;
  
  for(i = 0;i < opts.length;i++) {
    if(opts[i].selected == true) {
      val = opts[i].getAttribute('value');
    }
  }
  
  return val;
}

function getElementsByClassName(oElm, strTagName, strClassName){
  var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  strClassName = strClassName.replace(/\-/g, "\\-");
  var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  var oElement;
  for(var i=0; i<arrElements.length; i++){
    oElement = arrElements[i];
    if(oRegExp.test(oElement.className)){
      arrReturnElements.push(oElement);
    }
  }
  return (arrReturnElements)
}


var dom = new Evnt('dom');
var classStr;

if(navigator.appName == "Microsoft Internet Explorer") {
  classStr = 'class';
}
else {
  classStr = 'class';
}
