// JavaScript Document

// common functions

var objMapDef = '';
var shadowpage = null;
var cookiesData = null;
var pagepopup = null;

function webStart(thisElem) {
  thisElem.onresize = webResize;
  cookiesData = restoreCookies();
  //flipFlashForMSIE();
  if (pagepopup) {
    if (!cookiesData["pagePopup"] || cookiesData["pagePopup"]!=1) {
      pagepopup.className = "";
    }
  }
  if (shadowpage) shadowPageMake();
}

function webResize() {
  if (shadowpage) shadowPageMake();
}

function storePopupCookies() {
  document.cookie = "pagePopup=1;";
}

function flipFlashForMSIE() {
  var objects = document.getElementsByTagName("object");
  for (i=0;i<objects.length;i++) {
    if (objects[i].id == 'flash_content') continue;
    if(objects[i].type=="video/x-ms-wmv") continue;
    objects[i].outerHTML = objects[i].outerHTML;
  }
  var objects = document.getElementsByTagName("embed");
  for (i=0;i<objects.length;i++) {
    if (objects[i].id == 'flash_content') continue;
    if(objects[i].type=="video/x-ms-wmv") continue;
    objects[i].outerHTML = objects[i].outerHTML;
  }
}

function shadowPageMake() {
  shadowpage.style.width = document.body.offsetWidth+'px';
  shadowpage.style.height = document.body.offsetHeight+'px';
}

function freeElemsRemover(parentElem) {
  var elems = parentElem.childNodes;
  if (parentElem.childNodes.length<2) return true;
  for (var i=0;i<elems.length;i++) {
    if (elems[i].nodeType == 3) {
      var removenode = parentElem.removeChild(elems[i]);
      freeElemsRemover(parentElem);
      break;
    } else {
      freeElemsRemover(elems[i]);
    }
  }
}

function returnFalse()
{
	return false;
}

function restoreCookies() {
  var temp1 = Array();
  var temp2 = Array();
  var cookiesData = Array();
  temp1 = document.cookie.split('; ');
  for (var i=0;i<temp1.length;i++) {
    temp2 = temp1[i].split('=');
    if (temp2[0] && temp2[1]) {
      cookiesData[temp2[0]] = temp2[1];
    }
  }
  return cookiesData;
}

// functions for list

function actionListMouseOver() {
  var actualelem = this.parentNode.parentNode;
  if (actualelem.className=='one') {
    actualelem.className = 'one-active';
  } else
  if (actualelem.className=='two') {
    actualelem.className = 'two-active';
  } else
  actualelem.className = 'active';
}

function actionListMouseOut() {
  var actualelem = this.parentNode.parentNode;
  if (actualelem.className=='one-active') {
    actualelem.className = 'one';
  } else
  if (actualelem.className=='two-active') {
    actualelem.className = 'two';
  } else
  actualelem.className = '';
}

function actionListGenMouseActions(parentElem) {
  actionListA = parentElem.getElementsByTagName('a');
  for (var i=0;i<actionListA.length;i++) {
    actionListA[i].onmouseover = actionListMouseOver;
    actionListA[i].onmouseout = actionListMouseOut;
  }
}

// functions for simulation of tags select

var imgPrevious = '<img src="'+REL_LINK+'images/arrow_left_off.gif" alt="" %%MOUSE%% />';
var imgNext = '<img src="'+REL_LINK+'images/arrow_right_off.gif" alt="" %%MOUSE%% />';
var linkSelect = 'images/select_arrow_off.gif';
var imgSelect = '<img src="'+REL_LINK+linkSelect+'" alt="" />';
var mouseAction = ' onmouseover="this.src=this.src.replace(\'_off\',\'_on\')" onmouseout="this.src=this.src.replace(\'_on\',\'_off\')"';

function generImgToList(parentElem)
{
	monthAct = parseInt(monthAct,10);
	yearAct = parseInt(yearAct,10);
	monthFirst = parseInt(monthFirst,10);
	yearFirst = parseInt(yearFirst,10);
	var elems = parentElem.childNodes;
	for (var i=0;i<elems.length;i++)
	{
		if(parentElem.innerHTML.indexOf('«')!=-1) // month
		{
			//parentElem.innerHTML = imgPrevious;
			var datum = new Date();
			var imgPreviousMonth = imgPrevious;
			if(yearFirst==yearAct && monthAct<=monthFirst)
			{
				parentElem.href = '#';
				parentElem.onclick = returnFalse;
				imgPreviousMonth = imgPrevious.replace(/%%MOUSE%%/g,'');
			}
			else
			{
				imgPreviousMonth = imgPrevious.replace(/%%MOUSE%%/g,mouseAction);
			}
			parentElem.innerHTML = imgPreviousMonth;
		}
		if(parentElem.innerHTML.indexOf('‹‹')!=-1) // year
		{
			var datum = new Date();
			var imgPreviousYear = imgPrevious;
			if(yearFirst==yearAct)
			{
				parentElem.href = '#';
				parentElem.onclick = returnFalse;
				imgPreviousYear = imgPrevious.replace(/%%MOUSE%%/g,'');
			}
			else
			{
				imgPreviousYear = imgPrevious.replace(/%%MOUSE%%/g,mouseAction);
			}
			parentElem.innerHTML = imgPreviousYear;
		}
		if(parentElem.innerHTML.indexOf('»')!=-1) //month
		{
			var datum = new Date();
			var imgNextMonth = imgNext;
			if(monthAct==(datum.getMonth()+1) && yearAct==datum.getYear())
			{
				parentElem.href = '#';
				parentElem.onclick = returnFalse;
				imgNextMonth = imgNext.replace(/%%MOUSE%%/g,'');
			}
			else
			{
				imgNextMonth = imgNext.replace(/%%MOUSE%%/g,mouseAction);
			}
			parentElem.innerHTML = imgNextMonth;
		}
		if(parentElem.innerHTML.indexOf('››')!=-1) // year
		{
			var datum = new Date();
			var imgNextYear = imgNext;
			if(yearAct==datum.getYear())
			{
				parentElem.href = '#';
				parentElem.onclick = returnFalse;
				imgNextYear = imgNext.replace(/%%MOUSE%%/g,'');
			}
			else
			{
				imgNextYear = imgNext.replace(/%%MOUSE%%/g,mouseAction);
			}
			parentElem.innerHTML = imgNextYear;
		}
	}
}

function simulSelectReplaceElems(parentElem) {
  var elems = parentElem.childNodes;
  if (parentElem.childNodes.length<2) return true;
  for (var i=0;i<elems.length;i++) {
  	if(elems[i].nodeName=="A")
  	{
  		generImgToList(elems[i]);
  	}
  	if(elems[i].nodeName=="SPAN")
  	{
  		if(elems[i].innerHTML.indexOf(linkSelect)==-1)
  		{
  			elems[i].innerHTML = imgSelect + elems[i].innerHTML;
  		}
  	}
    simulSelectReplaceElems(elems[i]);
  }
}

function simulSelectOn() {
	if (!this.firstChild.firstChild.src) {
		return false;
	}
  this.firstChild.firstChild.src = this.firstChild.firstChild.src.replace('_off','_on');
  var elems = this.getElementsByTagName('a');
  for (z=0;z<elems.length;z++) {
    elems[z].className = '';
  }
}
function simulSelectOff() {
	if (!this.firstChild.firstChild.src) {
		return false;
	}
  this.firstChild.firstChild.src = this.firstChild.firstChild.src.replace('_on','_off');
  var elems = this.getElementsByTagName('a');
  for (z=0;z<elems.length;z++) {
    elems[z].className = 'hidden';
  }
}
function simulSelectLinkTransform(elemFrom) {
  elemFrom.className = 'simul-select';
  elemFrom.onmouseover = simulSelectOn;
  elemFrom.onmouseout = simulSelectOff;
  var elemsInFrom = elemFrom.getElementsByTagName('a');
  for (z=0;z<elemsInFrom.length;z++) {
    elemsInFrom[z].className = 'hidden';
  }
}

// functions for organizacni struktura

function strukturaGener() {
  var elems = document.getElementById('struktura').getElementsByTagName('area');
  for (var i=0;i<elems.length;i++) {
    elems[i].onmouseover=strukturaOnMouseOver;
    elems[i].onmouseout=strukturaOnMouseOut;
    elems[i].onclick=strukturaOnMouseClick;
  }
  return true;
}

function strukturaOnMouseOver() {
  if (strukturaover.className.indexOf('-on')!=-1) return false;
  strukturaover.className = strukturaover.className.replace('-off','-on');
  var mycoords = this.coords.split(',');
  strukturaover.style.left = (mycoords[0]-4)+'px';
  strukturaover.style.top = (mycoords[1]-4)+'px';
  strukturaover.style.width = (mycoords[2]-mycoords[0]+1)+'px';
  strukturaover.style.height = (mycoords[3]-mycoords[1]+1)+'px';
  return true;
}

function strukturaOnMouseOut() {
  if (strukturaover.className.indexOf('-off')!=-1) return false;
  strukturaover.className = strukturaover.className.replace('-on','-off');
  return true;
}

function strukturaOnMouseClick() {
  location.href = this.href;
}

// functions for map in contacts

function Map(area,type,name)
{
	this.objMapArea = area;
	this.objMapType = type;
	this.instName = eval(name);
}

Map.prototype.contactmapAreaActionOn = function(pos) {
	var obj = this.objMapArea; 
  obj.firstChild.src = REL_LINK+'images_map/'+this.objMapType+'_'+pos+'_'+JAZYK+'.gif';
}

Map.prototype.contactmapAreaActionOff = function() {
	var obj = this.objMapArea;
  obj.firstChild.src = REL_LINK+'images_map/free.gif';
}

Map.prototype.contactmapListActionOn = function() {
	var obj = dejDefObject(this);
  obj.firstChild.src = REL_LINK+'images_map/'+this.ref+'_'+positionInChildren(this.parentNode)+'_'+JAZYK+'.gif';
}

Map.prototype.contactmapListActionOff = function() {
	var obj = dejDefObject(this);
  obj.firstChild.src = REL_LINK+'images_map/free.gif';
}

Map.prototype.contactmapListActionGener = function(elemFrom) { 
  var lines = elemFrom.getElementsByTagName('LI');
  for (z=0;z<lines.length;z++) {
    if (lines[z].firstChild.nodeName!='A') continue;
    lines[z].firstChild.onmouseover = this.contactmapListActionOn;
    lines[z].firstChild.onmouseout = this.contactmapListActionOff;
    lines[z].firstChild.ref = this.objMapType; 
  }
}

//

function dejDefObject(inst)
{
	var objNameId = inst.parentNode.parentNode.id.replace('list','');
	if (objNameId=='') {
    objNameId = inst.parentNode.parentNode.parentNode.parentNode.id.replace('list','');
  }
	var obj = document.getElementById(objNameId);
	return obj;
}

function positionInChildren(subitem) {
  var position = 1;
  var tempsubitem = subitem;
  while (tempsubitem.previousSibling) {
    position++;
    tempsubitem = tempsubitem.previousSibling;
  }
  if (subitem.value && subitem.value>0) { // if is defined attribute value in elements li
    position = subitem.value;
  }
  return position;
}

//

function winOpen(soub,w,h)
{
  var start=window.open(soub,'open','width='+ w +',height=' + h +',top=10,left=10');
	start.focus();
}

function strom_mouseOver(elem) {
  if (elem.className != 'active' && elem.parentNode.parentNode.className == 'tree-level-1') {
    elem.className = 'over';
  }
}

function strom_mouseOut(elem) {
  if (elem.className != 'active' && elem.parentNode.parentNode.className == 'tree-level-1') {
    elem.className = '';
  }
}

// functions for color replacing

function convertdectohex(number) {
  var t1 = Math.floor(number/16);
  var t2 = (number%16);
  var st1 = '';
  var st2 = '';
  if (t1>9) {
    switch (t1) {
      case 10: st1 = 'A'; break;
      case 11: st1 = 'B'; break;
      case 12: st1 = 'C'; break;
      case 13: st1 = 'D'; break;
      case 14: st1 = 'E'; break;
      case 15: st1 = 'F'; break;
    }
  } else {
    st1 = t1;
  }
  if (t2>9) {
    switch (t2) {
      case 10: st2 = 'A'; break;
      case 11: st2 = 'B'; break;
      case 12: st2 = 'C'; break;
      case 13: st2 = 'D'; break;
      case 14: st2 = 'E'; break;
      case 15: st2 = 'F'; break;
    }
  } else {
    st2 = t2;
  }
  var out1 = new String(st1);
  var out2 = new String(st2);
  var out = new String(out1+out2);
  return out;
}

function converthextodec(number) {
  var regnumber = '^[0-9]{1}$';
  var st1 = number.substr(0,1);
  var st2 = number.substr(1,1);
  var t1 = 0;
  var t2 = 0;
  if (st1.match(regnumber)) {
    t1 = 16*st1;
  } else {
    switch (st1) {
      case 'A': t1 = 10; break;
      case 'B': t1 = 11; break;
      case 'C': t1 = 12; break;
      case 'D': t1 = 13; break;
      case 'E': t1 = 14; break;
      case 'F': t1 = 15; break;
    }
    t1 = 16*t1;
  }
  if (st2.match(regnumber)) {
    t2 = 1*st2;
  } else {
    switch (st2) {
      case 'A': t2 = 10; break;
      case 'B': t2 = 11; break;
      case 'C': t2 = 12; break;
      case 'D': t2 = 13; break;
      case 'E': t2 = 14; break;
      case 'F': t2 = 15; break;
    }
    t2 = 1*t2;
  }
  return (t1+t2);
}

// functions for smallBlockSwap

function calculateColor(myobj) {
  var rgb = '#';
  var full = Array(0,0,0);
  for (var i=0;i<3;i++) {
    if (myobj.direction=='-') {
      if (myobj.colorActual[i]>myobj.color2[i]) {
        myobj.colorActual[i] = myobj.colorActual[i]-myobj.step;
      } else {
        full[i] = 1;
      }
    }
    if (myobj.direction=='+') {
      if (myobj.colorActual[i]<myobj.color1[i]) {
        myobj.colorActual[i] = myobj.colorActual[i]+myobj.step;
      } else {
        full[i] = 1;
      }
    }
    rgb += convertdectohex(myobj.colorActual[i]);
  }
  if (full[0]==1&&full[1]==1&&full[2]==1) {
    myobj.full = 1;
  }
  return rgb;
}

function smallBlockSwapFlipping(myobj) {
  var elemBlock = document.getElementById(myobj.elemName);
  if (!elemBlock) return false;
  elemBlock.style.color = calculateColor(myobj);
  if (myobj.full==1 && myobj.direction=='+') {
    myobj.full = 0;
    myobj.direction = '-';
    clearInterval(myobj.timer);
    myobj.timer = setInterval("smallBlockSwapFlippingStart("+myobj.name+")",myobj.wait);
  }
  if (myobj.full==1 && myobj.direction=='-') {
    myobj.full = 0;
    myobj.direction = '+';
    myobj.textActual++;
    if (myobj.textActual>=myobj.texts.length) {
      myobj.textActual = 0;
    }
    if (myobj.texts[myobj.textActual]) {
      elemBlock.innerHTML = myobj.texts[myobj.textActual];
    }
    clearInterval(myobj.timer);
    myobj.timer = setInterval("smallBlockSwapFlipping("+myobj.name+")",myobj.speed);
  }
}

function smallBlockSwapFlippingStart(myobj) {
  clearInterval(myobj.timer);
  myobj.timer = setInterval("smallBlockSwapFlipping("+myobj.name+")",myobj.speed);
  myobj.direction = '-';
}

//

// neni mozne pouzit - pri prepsani innerHTML se zrusi vlozene udalosti
/* function replaceTagsH(inelem) {
  var content = document.getElementById(inelem);
  content.innerHTML = content.innerHTML.replace(/(<\/H[2,3]>)/gi,'$1<div class="space-line"></div>');
} */

function searchElemRatioResize() {
  var topsearch = document.getElementById('topsearch');
  var elems = topsearch.childNodes;
  for (var i=0;i<elems.length;i++) {
    if (elems[i].className=='formtext') var input1 = elems[i];
    if (elems[i].className=='button') var input2 = elems[i];
  }
  input1.style.width = (181-input2.offsetWidth)+'px';
}

function nastavDatum(element,typ,dat,den,text,textElement)
{
	var obj = document.getElementById(element);
	var datFirst = document.getElementById(element).value;
	if(datFirst=='')
	{
		var date = new Date();
		var dgdTemp = date.getDate();
		datFirst = (dgdTemp<10?'0'+dgdTemp:dgdTemp) + '.' + parsujMesicZDatumu(date) + '.' + date.getFullYear();
	}
	var datum = '';
	switch(typ)
	{
		case 'rok' :
			var mesic = datFirst.substring(3,5);
			datum = den + '.' + mesic + '.' + dat;
			document.getElementById(textElement).innerHTML = text;
			break;
		case 'mesic' :
			var rok = datFirst.substring(6,10);
			datum = den + '.' + dat + '.' + rok;
			document.getElementById(textElement).innerHTML = text;
			break;
	}
	obj.value = datum;
}

function parsujMesicZDatumu(date)
{
	var mesic = date.getMonth();
	mesic++;
	mesic = (mesic<10?'0'+mesic:mesic);
	return mesic;
}

function parseEnglishToCzechDate(date)
{
	var day = date.substring(0,2);
	var month = date.substring(3,5);
	var year = date.substring(6,10);
	return year + '-' + month + '-' + day;
}

function porovnejDatum(elm1,elm2,errorText)
{
	var obj1 = document.getElementById(elm1).value;
	var obj2 = document.getElementById(elm2).value;
	
	if(obj1!='' && obj2!='')
	{
		var date1 = parseEnglishToCzechDate(obj1);
		var date2 = parseEnglishToCzechDate(obj2);
		if(date1>date2)
		{
			alert(errorText);
			return false;
		}
	}
	return true;
}
 
function clearElement()
{
	var elm = '';
	for(var ic=0;ic<arguments.length;ic++)
	{ 
		elm = document.getElementById(arguments[ic]);
		elm.value = '';
	}
}
