/* Obecnejsi funkce */
/* -------------------------------------------------------------------- */
/* obarveni vsech sudych a lichych radku jedne tabulky */
/* vlastne jen nastavi sude a liche radky, ostatni musi zaridit *.css */
function stripeTable(t) {
	var i,odd=true;
	for(i=0; i<t.rows.length; i++){
		t.rows[i].className += odd ? ' odd' : ' even';
		odd=!odd;
	}
}
//----------------------------------------------------------------------
/* obarveni vsech sudych a lichych radku vsech tabulek */
function stripeAllTables() {
	var t=document.getElementsByTagName('TABLE');
	for (var i=0; i<t.length; i++) stripeTable(t[i])
}
//----------------------------------------------------------------------
function getElement(Id){
  if(typeof(Id)!="string") return(Id);
  return(document.getElementById(Id));
}
//----------------------------------------------------------------------
function getChildElement(Id){
  var Elc,El=getElement(Id);
  Elc=El.children;
  if(!Elc) Elc=El.childNodes; //FireFox
  return(Elc);
}
//----------------------------------------------------------------------
function getParentElement(Id){
  var Elp,El=getElement(Id);
  Elp=El.parentElement;
  if(!Elp) Elp=El.parentNode; //FireFox
  return(Elp);
}
//----------------------------------------------------------------------
function getSrcElement(ev){ //vrati element, ktery vyvolal udalost ev
  var SrcEl;
  if(window.event) SrcEl=window.event.srcElement;
  else SrcEl=ev.target; //FireFox
  return(SrcEl);
}
//----------------------------------------------------------------------
function setClassElement(Id,name){
  var element=getElement(Id);
  if(element){ element.className=name;}
}
//----------------------------------------------------------------------
function setVisibility(Elem,vis,displayType){
  var El=getElement(Elem);
  //kvuli MSIE musime nastavit jeste display, protoze pokud neni
  //videt, tak MSIE stejne zobrazuje sirku prvku, ale ne jeho obsah
  //ovsem pozor, "inline" nemusi byt to spravne
  if(vis){
    El.style.visibility="visible";
    if(!displayType) El.style.display="block";
    else El.style.display=displayType;
  }
  else{ El.style.visibility="hidden"; El.style.display="none";}
}
//----------------------------------------------------------------------
function parseText(text){  /* vypusti vsechen text mezi <> */
  var s=text, i=0, j=1;
  if(!text) return("");
  while(i>=0 && j>i){
    i=s.indexOf("<");
    j=s.indexOf(">");
    if(i>=0 && j>i){ s=s.substring(0,i)+s.substring(j+1); }
  }
  return(s);
}
//----------------------------------------------------------------------
function detectBrowser(){
  var agent=navigator.userAgent.toLowerCase();
  this.major=parseInt(navigator.appVersion);
  this.minor=parseFloat(navigator.appVersion);
  this.op=(agent.indexOf('opera')!=-1);
  this.ns=((agent.indexOf('mozilla')!=-1) &&
    (agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1) &&
    (agent.indexOf('opera')==-1) && (agent.indexOf('webtv')==-1));
  this.ns2=(this.ns && (this.major==2));
  this.ns3=(this.ns && (this.major==3));
  this.ns4=(this.ns && (this.major==4));
  this.ns6=(this.ns && (this.major>=5));
  this.ie=(agent.indexOf("msie")!=-1);
  this.ie3=(this.ie && (this.major<4));
  this.ie4=(this.ie && (this.major==4) && (agent.indexOf("msie 5.0")==-1));
  this.ie5=(this.ie && (this.major==4) && (agent.indexOf("msie 5.0")!=-1));
  this.ieX=(this.ie && !this.ie3 && !this.ie4);
}
//----------------------------------------------------------------------
function showProperty(/*Id*/ element,text,str,dialog){
  //text - jmeno elementu, jen pro vypis, neumim jej zjistit
  //str  - zobrazi jen prvky, ktere obsahuji 'str' jako podretez (bez ohledu na velikost pismen)
  //dialog - (true/false) priznak vypisu do dialogu nebo do dalsiho okna browseru
  /* element=getElement(Id); */
  var el=element;
  var typ;
  //el=dialog;
  var s="Vlastnosti: "+text+" "+" (typ:"+typeof(el)+")\n\nHodnota="+el+"\n";
  var s1="",j=0,i=0,ind=0,hled;
  var a=new Array(),as=new Array();
  if(arguments.length<2) text="XXXXX";
  if(arguments.length>=3){
    hled=str.toUpperCase();
    s+="jen obsahujici: "+str+"\n";
  }
  if(arguments.length<4) dialog=true;
  ind=0;
  for(c in el){
    typ=typeof(el[c]);
    if(str){        //jen retezce, ktere obsahuji pozadovany
      s1=c.toUpperCase();
      if(s1.indexOf(hled)<0) continue;
    }

    a[i]="\t"+c+"(typ:"+typ /*+") (poradi v poli:"+i*/+")";
    if(typ!="undefined" && typ!="object" && typ!="function"){
      a[i]+=" ="+el[c];
    }
    i++;
  }
  /* vlozime vyrazny oddelovac mezi velkymi a malymi pismeny (zatridi se) */
  a[i]="\t______________________________";
  a.sort();           /* setridime pole, aby s v nem dalso hledat */
  /* spocitame pocet radku a pokud jich je moc, zobrazime to ve strance misto v dialogu */
  s1=s;
  for(j=0,i=0; i<a.length;i++){
    s1+="\t"+i+": "+a[i]+"\n";
    j++;
    if((j%35)==0 && j>0 && dialog){
      alert(s1);
      j=0;
      s1=s;
    }
  }
  if(dialog){
    if(s!=s1) alert(s1);
  }
  else{
    var w=open("","Vlastnosti JavaScriptoveho objektu","");
    w.document.write("<html><head><title>Vlastnosti objektu</title></head><body><pre>"
      +s+"</pre></body></html>");
    w.document.close();
  }
}
//----------------------------------------------------------------------
function displayStatusText(text){ //zobrazi text ve stavovem radku
  defaultStatus=text;                 // display it in the status line
}
//----------------------------------------------------------------------
var aaaa=1;
function posMouse(El){
  var d,b;
  if(!El && window.event){ El=window.event;}      //MSIE mouse event
  else if(!El && window.Event){ El=window.Event;} //Mozilla/FF
  else if(!El && event){ El=event;} //??
  /*
  displayStatusText("El.type="+El.type);
  if(El.type=="load"){
    displayStatusText("load="+aaaa);
    aaaa++;
    return;
  }
  */
  if(El.pageX && El.pageY){  //ostatni
    mouseX=El.pageX;
    mouseY=El.pageY;
  }
  else if(El.clientX && El.clientY){ //MSIE
    mouseX=El.clientX;
    mouseY=El.clientY;
    d=document;
    d=d.documentElement?d.documentElement:d.body;
    mouseX=El.clientX+d.scrollLeft;
    mouseY=El.clientY+d.scrollTop;
  }
  //displayStatusText("El="+El+"("+El.srcElement+"), El.pageX="+El.pageX+", El.clientX="+El.clientX+", X="+mouseX+", Y="+mouseY);
}
//----------------------------------------------------------------------


