//**********  slouzi k urceni pozice mysi
var IE = document.all?true:false
// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE);
// Set-up to use getMouseXY function onMouseMove
document.onmousemove= getMouseXY;
// Temporary variables to hold mouse x-y pos.s
var tempX = 0;
var tempY = 0;
// Main function to retrieve mouse x-y pos.s
function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.documentElement.scrollLeft;
    tempY = event.clientY + document.documentElement.scrollTop;
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX;
    tempY = e.pageY;
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0};
  if (tempY < 0){tempY = 0};  
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  return true;
}


var cDate=new Date();
var cYear=cDate.getFullYear();
var cMonth=cDate.getMonth();
var cDay=cDate.getDate();
var elementN;


//najde x-ovou pozici elementu
function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }
//najde y-ovou pozici elementu
function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

//vypisu kalendar                
function setCalendar(dt) {
  cYear=dt.getFullYear();
  cMonth=dt.getMonth();
  cDay=dt.getDate();
  firstDay = dt.getDay();
  for(i = 1; i < 43 ; i++) {
    document.getElementById("calendar_td"+i).innerHTML="";
    document.getElementById("calendar_td"+i).className = '';
  }  
  if (firstDay==0)
    firstDay +=7;
  dayspermonth = getDaysPerMonth(cMonth);
  tyden = firstDay - 1;
  for(i = 1; i < dayspermonth+1; i++){
    i1=(i<10)? "0"+i : i;
    pom = i+firstDay-1;
    tyden++; 
    document.getElementById("calendar_td"+pom).innerHTML=i1;
    if (tyden<6) document.getElementById("calendar_td"+pom).className = 'normal';
    else {
      document.getElementById("calendar_td"+pom).className = 'weekend';
      if (tyden==7) tyden = 0;
    } 
    if (day == i) document.getElementById("calendar_td"+pom).className = 'dnes';  
  }
  for(i = pom+1; i < 43; i++) {
    //document.getElementById("td"+i).style.display = 'none;';
  }
  document.getElementById("calendar_month_from").selectedIndex=cMonth; //nastavim mesic v selektu
  document.getElementById("calendar_year_from").selectedIndex=cYear-parseInt(document.getElementById("calendar_year_from").options[0].text);
}

//prevedu rok ze selektu na spravny tvar (template)              
function setNYear(y) {
  cYear=parseInt(document.getElementById("calendar_year_from").options[0].text)+y;
  setCalendar(new Date(cYear,cMonth,1));
}

//prevedu mesic ze selektu na spravny tvar (mesic beze zmeny)  (template)         
function setNMonth(m) {
  cMonth=m;
  setCalendar(new Date(cYear,cMonth,1));
}

//kolik dni je ve kterem mesici          
function getDaysPerMonth(m){
  daysArray=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  days=daysArray[m];
  if (m==1){
    if((cYear% 4) == 0) {
      if(((cYear% 100) == 0) && (cYear% 400) != 0)
        days = 28;
      else
        days = 29;
    }
  }
  return days;
}

var day=1;
// nastavim pocatecni nastaveni kalendare a zobrazim
function setElementCal(el, setx, sety, el2) {
  //alert('hoj');
  elementN = el;
  var datum = document.getElementById(elementN).value.split(".");
  if (datum[1]>=1 && datum[1]<=12 && datum[2]>=parseInt(document.getElementById("calendar_year_from").options[0].text) && datum[2]<=parseInt(document.getElementById("calendar_year_from").options[document.getElementById("calendar_year_from").options.length-1].text) ) {
    if (datum[0]>=1 && datum[0]<=getDaysPerMonth(datum[1]-1)) day=datum[0];
    else day=getDaysPerMonth(datum[1]-1);
    setCalendar(new Date(datum[2],datum[1]-1,1));
    
  }  
  else {
    datum = new Date();
    day = datum.getDate();
    pomMonth = datum.getMonth();
    pomYear = datum.getFullYear();
    setCalendar(new Date(pomYear,pomMonth,1));
  }  
  if (el2) {
    document.getElementById('calendar_div').style.display='block';
    calendar = document.getElementById("calendar_div");
    maxX = findPosX(el2)+el2.offsetWidth+setx+calendar.offsetWidth;
    maxY = findPosY(el2)+sety+calendar.offsetHeight;
    if (maxX>document.documentElement.clientWidth+document.documentElement.scrollLeft) {
      calendar.style.left = findPosX(el2) - setx-calendar.offsetWidth+"px";
    } else
    {
      calendar.style.left = findPosX(el2) + el2.offsetWidth+setx+"px";
      //alert(findPosX(el2)+' '+tempX+' '+calendar.style.left);
    }
    if (maxY>document.documentElement.clientHeight+document.documentElement.scrollTop) {
      calendar.style.top =  findPosY(el2)- calendar.offsetHeight+ el2.offsetWidth-sety+"px";
    } else
    {
      calendar.style.top =  findPosY(el2)+sety+"px";
    }
    //calendar.style.left = findPosX(el2) + el2.offsetWidth+setx+"px";
    //calendar.style.top =  findPosY(el2)+sety+"px";
  }
  else
  {
    //ie7
    if (IE && window.XMLHttpRequest && !window.opera) {
      document.getElementById("calendar_div").style.left = (tempX+(setx)+document.documentElement.scrollLeft)+"px";
      document.getElementById("calendar_div").style.top = (tempY+(sety)+document.documentElement.scrollTop)+"px";
    }
    else
    {//mozilla, ie6, ..
      document.getElementById("calendar_div").style.left = (tempX+(setx))+"px";
      document.getElementById("calendar_div").style.top = (tempY+(sety))+"px";
    }  
  }
}
function calendar_odesli(day) {
  mM= ((cMonth+1)<10)? "0"+(cMonth+1) : (cMonth+1);
  if (day!="") {
    document.getElementById(elementN).value=day+'.'+(mM)+'.'+cYear;
    document.getElementById("calendar_div").style.display = "none";
  }
}

