//*************************************************************//
function newWindow(url)
{
	windowRef = window.open(url,"nove","");
	wasOpen = false;
	if (typeof(windowRef) == "object")
	{
		wasOpen = true;
	}
	return wasOpen;
}	

//****************************************************//
function otevri_okno(obrazek, popisek)
{
	var win=window.open("","nazev","width=600,height=750,menubar=no,toolbar=no,scrollbar=yes");
	win.document.write("<html><head><title>Detail</title>");
   win.document.write('<link href="'+window_func_style_path+'" type="text/css" rel="stylesheet" /></head>');
	win.document.write("<body style='font-family: Verdana;' class='new-window'><table width='100%' height='100%'><tr><td style='font-size: 11px;' valign='middle' align='center'><a href='javascript:window.close()'><img style='margin-bottom: 5px;' src='"+obrazek+"' border='0' /></a>");
   if (popisek) {
      win.document.write('<br />'+popisek);      
   }
	win.document.write("</td></tr></table></body></html>");
   win.document.close();
   win.focus();
}

/****************************************************************/

var module_over_picture = true;

var op_temp_variable = null;
var op_capability = false;
var op_after_init = false;

function op_init()
{
  var browser_name = navigator.appName;
  var browser_version = parseInt(navigator.appVersion);

  op_capability = true;
/*    (browser_name.indexOf("Netscape")>=0 && browser_version>=3) ||
    (browser_name.indexOf("Internet Explorer")>=0 && browser_version>=4);*/
    op_after_init = true;
}

function op_is_capability()
{
  if (!op_after_init)
    op_init();
  return op_capability;  
}

function op_register (id_name, normal_src, over_src, down_src)
{
  if (!op_after_init)
    op_init();

  if (op_capability)
  {
    if (over_src == null)   over_src = normal_src;
    if (down_src == null)   down_src = over_src;

    op_temp_variable = new Array
      (id_name, true, new Image(), new Image(), new Image());
    op_temp_variable[2].src = normal_src;
    op_temp_variable[3].src = over_src;
    op_temp_variable[4].src = down_src;
    eval ("op_item_" + id_name + " = op_temp_variable");
  }
}

function op_set_normal (id_name)
{
  if (op_capability)
  {
    var reg_item = eval ("op_item_" + id_name);
    if (reg_item[1]){
      var el = document.getElementById(id_name);
    el.src = reg_item[2].src;}
  }
}
    
function op_set_over (id_name)
{
  if (op_capability)
  {
    var reg_item = eval ("op_item_"+id_name);
    if (reg_item[1])
    	{
        var el = document.getElementById(id_name);
	el.src = reg_item[3].src;
	}
  }
}

function op_set_down (id_name)
{
  if (op_capability)
  {
    var reg_item = eval ("op_item_" + id_name);
    if (reg_item[1])
      {
      var el = document.getElementById(id_name);       
      el.src = reg_item[4].src;      
      }
  }
}

function op_lock (id_name)
{
  if (op_capability)
    eval("op_item_"+id_name)[1] = false;
}

function op_unlock (id_name)
{
  if (op_capability)
    eval("op_item_"+id_name)[1] = true;
}
/*********************************************************************/
function DateSelector(form_input, id_name, lang){

   this.mesice = new Array('Leden',
                            'Únor',
                            'Březen',
                            'Duben',
                            'Květen',
                            'Červen',
                            'Červenec',
                            'Srpen',
                            'Září',
                            'Říjen',
                            'Listopad',
                            'Prosinec');
   this.dny = new Array('Po',
                        'Út',
                        'St',
                        'Čt',
                        'Pá',
                        'So',
                        'Ne');

  if (lang == 'en') {
     this.mesice = new Array('January',
                              'February',
                              'March',
                              'April',
                              'May',
                              'June',
                              'July',
                              'August',
                              'September',
                              'October',
                              'November',
                              'December');
     this.dny = new Array('Mo',
                          'Tu',
                          'We',
                          'Th',
                          'Fr',
                          'Sa',
                          'Su');  
  }
  if (lang == 'de') {
     this.mesice = new Array('Januar',
                              'Februar',
                              'März',
                              'April',
                              'Mai',
                              'Juni',
                              'Juli',
                              'August',
                              'September',
                              'Oktober',
                              'November',
                              'Dezember');
     this.dny = new Array('Mo',
                          'Di',
                          'Mi',
                          'Do',
                          'Fr',
                          'Sa',
                          'So');  
  }
  this.lang = lang;
  this.id_name = id_name;
  this.form_input = document.getElementById(form_input);
  this.mesic = 0;
  this.rok = 0;

  // ikonka
  date_sel_pic = document.createElement('img');
  date_sel_pic.src = date_sel_img.src;
  date_sel_pic.className = "date-sel-image";
  date_sel_pic.style.verticalAlign = 'text-bottom';
  if (lang == 'cz') {
    date_sel_pic.alt = 'výběr data z kalendáře';
    date_sel_pic.title = 'výběr data z kalendáře';
  }
  else if (lang == 'en') {
    date_sel_pic.alt = 'select date from calendar';
    date_sel_pic.title = 'select date from calendar';
  }
  else if (lang == 'de') {
    date_sel_pic.alt = 'Kalendar';
    date_sel_pic.title = 'Kalendar';
  }
  date_sel_pic.date_selector = this.id_name;
  date_sel_pic.onclick = this.popupDateSelector;

  // vykreslime ikonku
  this.form_input.parentNode.appendChild(date_sel_pic);  
   
  // div obalujici kalendar
  var dateSelectorDiv = document.createElement('div');
  dateSelectorDiv.className = "date-sel-div";
  dateSelectorDiv.style.display = 'none';
  dateSelectorDiv.id = "date_sel_div"+this.id_name;
  
  // vlozime div do stranky
  obj = document.getElementsByTagName('body')[0];
  obj.insertBefore(dateSelectorDiv, obj.firstChild);
 
  this.date_selector_div = document.getElementById("date_sel_div"+this.id_name);
 
  // vykresli tabulku
  this.updateTable();  
}

DateSelector.prototype.popupDateSelector = function() {
  obj = eval(this.date_selector);
  parent_obj = document.getElementsByTagName('body')[0]; 
  obj.date_selector_div.style.zIndex = '100';
  obj.date_selector_div.style.left = parseInt(get_x_offset(this)-get_x_offset(parent_obj)+21)+'px';
  obj.date_selector_div.style.top = parseInt(get_y_offset(this)+10)+'px';
  // zobrazime
  obj.date_selector_div.style.display = (obj.date_selector_div.style.display == 'block') ? 'none' : 'block'; 
}

DateSelector.prototype.insertIntoForm = function(den){
  this.form_input.value = den + '.' + (parseInt(this.mesic)+1) + '.' + this.rok;
  this.date_selector_div.style.display = 'none';
}

DateSelector.prototype.updateTable = function(rok, mesic){

   // neni zadan mesic nebo rok
   if (typeof(rok) == 'undefined' || typeof(mesic) == 'undefined') {
      // prevezmeme z inputu
      date_regexp = /^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/;
      if(this.form_input.value != '' && date_regexp.test(this.form_input.value)) {
         parts = date_regexp.exec(this.form_input.value);
         rok = parts[3];
         mesic = parts[2]-1;
      }
      // nebo vyplnime soucasne datum
      else { 
         new_date = new Date();
         rok = new_date.getFullYear();
         mesic = new_date.getMonth();
      }
   } 

   // dnesni datum - pro zvyrazneni bunky s dnesnim datem
   dnes_date = new Date();
   dnes_mesic = dnes_date.getMonth();
   dnes_rok = dnes_date.getFullYear();
   dnes_den = dnes_date.getDate();

   this.mesic = mesic;
   this.rok = rok;
   
   output = '';  
   // krizek pro zavreni
   close_title = 'zavřít';
   if (this.lang == 'de') close_title = 'schliessen';
   if (this.lang == 'en') close_title = 'close';
   output += '<a title="'+close_title+'" class="close-button" onmouseover="this.className=\'close-button-over\'" onmouseout="this.className=\'close-button\'" onclick="'+this.id_name+'.date_selector_div.style.display = \'none\';">×</a>';

   // horni vyber
   output += '<span class="topselect">';
   // vyber mesice
   output += '<select style="display: inline;" size="1" onchange="'+this.id_name+'.updateTable('+this.rok+',parseInt(this.value))">';
   for(i = 0; i < this.mesice.length; i++) {
     output += '<option value="'+i+'"';
     if (i == this.mesic) output += ' selected="selected"';
     output += '>'+this.mesice[i]+'</option>';
   }
   output += '</select>';
   // vyber roku
   output += '<span onmouseover="this.className=\'date-year-over\'" onmouseout="this.className=\'date-year\'" class="date-year" onclick="'+this.id_name+'.updateTable('+(this.rok-1)+','+this.mesic+')">&lt;</span><span class="year-text">&nbsp;'+this.rok+'&nbsp;</span><span class="date-year" onmouseover="this.className=\'date-year-over\'" onmouseout="this.className=\'date-year\'"  onclick="'+this.id_name+'.updateTable('+(parseInt(this.rok)+1)+','+this.mesic+')">&gt;</span>';
   output += '</span>';

   // kalendar - tabulka   
   output += '<table><tr>';
   
   // nazvy dni
   for(i = 0; i < this.dny.length; i++){
   	output += '<th>' + this.dny[i] + '</th>';
   }
   output += '</tr>';
   
   den_offset = new Date(rok, mesic, 1).getDay();
   if (den_offset == 0) den_offset = 7; // nedele
   den_outset = new Date(rok, mesic+1, 0).getDate();
      
   den_tyden = 0;	
   for(i = 1; i < den_offset; i++){
   	output += '<td onmouseover="this.style.cursor=\'default\'">&nbsp;</td>';
   	den_tyden++;
   }
   
   for(i = 1; i <= den_outset; i++){
      if (den_tyden == 7) { // nedele
   		   output += '</tr><tr>';
   			den_tyden = 0;
   	}
   	den_tyden++;
      // dnesni den zvyraznime
   	td_class = (dnes_rok == rok && dnes_mesic == mesic && dnes_den == i) ? 'date-today' : '';
      output += '<td class="'+td_class+'" onmouseover="this.className=\'date-over\'" onmouseout="this.className=\''+td_class+'\'" onclick="'+this.id_name+'.insertIntoForm('+i+')">'+i+'</td>';
   }
   
   for(i = den_tyden; i < 7; i++) {
      output += '<td onmouseover="this.style.cursor=\'default\'">&nbsp;</td>';
   }
   output += '</tr></table>';

   // dole primy vyber dnesniho dne
   output += '<span class="date-direct" onmouseover="this.className=\'date-direct-over\'" onmouseout="this.className=\'date-direct\'"  onclick="'+this.id_name+'.rok = '+dnes_rok+'; '+this.id_name+'.mesic = '+dnes_mesic+'; '+this.id_name+'.updateTable('+dnes_rok+','+dnes_mesic+'); '+this.id_name+'.insertIntoForm('+dnes_den+')">'+dnes_den+'.'+(dnes_mesic+1)+'.'+dnes_rok+'</span>';
   this.date_selector_div.innerHTML = output;  
}

function get_x_offset(obj){
  var x = 0;
  if(obj.offsetParent){
    while(obj.offsetParent){
      x += obj.offsetLeft;
      obj=obj.offsetParent;
    }
  }
  else if(obj.x) x += obj.x;
  return parseInt(x);
}

function get_y_offset(obj){
  var y =0;
  if(obj.offsetParent){
    while(obj.offsetParent){
      y +=obj.offsetTop
      obj=obj.offsetParent;
    }
  }
 else if(obj.y) y += obj.y;
  return parseInt(y);
}
