onload = init;

function init() {

 if ( document.all ) { dynamizeByClassName('ul','menu','li'); }

 addCSSborders('rounded');

}

/*
* add CSS borders
* prida do elementu daneho classu spoustu divu na ostylovani
*/
function addCSSborders(whichClass) {
 var elemsToBorderize = getElementsByClassName(document, 'div', whichClass);
 if ( elemsToBorderize.length !=0 ) {
  for (var i=0; i<elemsToBorderize.length; i++) {
   tmp = '<div class="roundedT"><div class="roundedR"><div class="roundedB"><div class="roundedL"><div class="roundedTL"><div class="roundedTR"><div class="roundedBR"><div class="roundedBL"><div class="spacer upper">&nbsp;<\/div>';
   tmp += elemsToBorderize[i].innerHTML;
   tmp += '<div class="spacer below">&nbsp;<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>';
   elemsToBorderize[i].innerHTML = tmp;
  }
 }
}

/*
* dynamize By Class Name
* prida danym elementum udalosti
* (uzito pro menu)
*/
function dynamizeByClassName(elTag,elClass,concEls) {
 var oElm = document; //.getElementById('header');
 var els = getElementsByClassName(oElm,elTag,elClass);
 for ( var i=0; i<els.length; i++ ) {
  lis = els[i].getElementsByTagName(concEls);
  for ( var j=0; j<lis.length; j++ ) {
   addEvent( lis[j], 'mouseover', showChildUl );
   addEvent( lis[j], 'mouseout', hideChildUl );
  }
 }
}
function showChildUl() {
 childUl = this.getElementsByTagName('ul')[0];
 if ( childUl ) {
  childUl.style.display = 'block';
  childUl.style.visibility = 'visible';
 }
}
function hideChildUl() {
 childUl = this.getElementsByTagName('ul')[0];
 if ( childUl ) {
  childUl.style.display = 'none';
  childUl.style.visibility = 'hidden';
 }
}


/*
* addEvent - Written by John Resig
* http://ejohn.org/projects/flexible-javascript-events/
* addEvent( document.getElementById('foo'), 'click', doSomething );
*/
function addEvent( obj, type, fn ) {
 if ( obj.attachEvent ) {
  obj['e'+type+fn] = fn;
  obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
  obj.attachEvent( 'on'+type, obj[type+fn] );
 } else {
  obj.addEventListener( type, fn, false );
 }
}
function removeEvent( obj, type, fn ) {
 if ( obj.detachEvent ) {
  obj.detachEvent( 'on'+type, obj[type+fn] );
  obj[type+fn] = null;
 } else {
  obj.removeEventListener( type, fn, false );
 }
}

/*
* getElementsByClassName - Written by Jonathan Snook,
* http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
*/
function getElementsByClassName(oElm, strTagName, oClassNames){
 var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
 var arrReturnElements = new Array();
 var arrRegExpClassNames = new Array();
 if(typeof oClassNames == "object"){
  for(var i=0; i<oClassNames.length; i++){
   arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
  }
 }
 else{
  arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
 }
 var oElement;
 var bMatchesAll;
 for(var j=0; j<arrElements.length; j++){
  oElement = arrElements[j];
  bMatchesAll = true;
  for(var k=0; k<arrRegExpClassNames.length; k++){
   if(!arrRegExpClassNames[k].test(oElement.className)){
    bMatchesAll = false;
    break;
   }
  }
  if(bMatchesAll){
   arrReturnElements.push(oElement);
  }
 }
 return (arrReturnElements)
}

