var content;
var errorCounter = 0;
var text = new Array();
var data = new Array();

for(i=0;i<15;i++)
{
	text[i] = "text nebyl prelozen";
}

var formularAve = true;
var kalendarAve = false;

var additionalIndexAve = 0;

/*pridano pro AVE kvuli jinemu typu kalendaru*/
//var kalendarAve = false;

/******** konstanty ktere musi byt dodane zvenku*********/
/*limitPokoje =10;

limitDeti = 10;
limitOsob = 100;
var text = new Array();
FillTranslate('Počet dospělých',0);
FillTranslate('Počet dětí',1);
FillTranslate('Datum narození',3);
FillTranslate('Pokoj',4);
FillTranslate('Zvýrazněná hodnota musí být číslo!',5);
FillTranslate('Zvýrazněná hodnota musí být platné datum!',6);
FillTranslate('Při odesílání formuláře bylo nalezeno [count] chyb',7);
FillTranslate('Je treba vybrat jednu z moznosti',8);
FillTranslate('Zvýrazněná hodnota musí být zadána',9);
zobrazitKalendar = true;
formularAve = true;
ikona = "<xsl:value-of select='/webiface/@ProjectPath'/>images/calendar.gif"
ikonaBila = "<xsl:value-of select='/webiface/@ProjectPath'/>images/calendar.gif"
*/


function CheckEmail(idForm, id, warning)
{
   var el = document.getElementById(id);//najdeme text box
   if (el != null)
   {
	var text = el.value;
	if (window.RegExp)
	{
		re = new RegExp("^[^@]+@[^.]+\..+$");
		if (!re.test(text))
		{
    		alert(warning);
			el.focus();
			return false;
		}
	}
   }
    //{@emailError}
    return true;
}

function OpenMyWin(link,winName, param)
{
	var myTWin = window.myTWin;
	var retValue=true;
	
	_ulink=1;
	
	if (myTWin!=null && !myTWin.closed)
	{
		myTWin.focus();
		myTWin.location.href=__myUtmLinker(link.href);
	}
	else
	{
		myTWin=window.open(__myUtmLinker(link.href),winName, param);
		if (myTWin==null || typeof(myTWin)=="undefined")
		{
			retValue=false;
		}
		else
		{
			link.target=winName;
			myTWin.focus();
		}
	}
	
	return retValue;
}

function __myUtmLinker(l,h) {
  if (!_ulink) return;
  var p,k,a="-",b="-",c="-",x="-",z="-",v="-";
  var dc=_ubd.cookie;
  if (!l || l=="") return;
  var iq = l.indexOf("?");
  var ih = l.indexOf("#");
  if (dc) {
   a=_uES(_uGC(dc,"__utma="+_udh,";"));
   b=_uES(_uGC(dc,"__utmb="+_udh,";"));
   c=_uES(_uGC(dc,"__utmc="+_udh,";"));
   x=_uES(_uGC(dc,"__utmx="+_udh,";"));
   z=_uES(_uGC(dc,"__utmz="+_udh,";"));
   v=_uES(_uGC(dc,"__utmv="+_udh,";"));
   k=(_uHash(a+b+c+x+z+v)*1)+(_udh*1);
 
p="__utma="+a+"&__utmb="+b+"&__utmc="+c+"&__utmx="+x+"&__utmz="+z+"&__utmv="+v+"&__utmk="+k;
  }
  if (p) {
   if (h && ih>-1) return;
   if (h) { myLink=l+"#"+p; }
   else {
    if (iq==-1 && ih==-1) myLink=l+"?"+p;
    else if (ih==-1) myLink=l+"&"+p;
    else if (iq==-1) myLink=l.substring(0,ih-1)+"?"+p+l.substring(ih);
    else myLink=l.substring(0,ih-1)+"&"+p+l.substring(ih);
   }
  } else { myLink=l; }

  return myLink;
}

function PridejHiddenPrvky(nazevPrvku, nazevElementu)
{
	element = document.getElementById(nazevElementu);
	element.innerHTML = "<input type='hidden' name='" + nazevPrvku + "' value='1'>";
}

function ShowWaitingWindow()
{
	if (document.getElementById("waitingwindow") != null)
	{
		document.getElementById("waitingwindow").style.visibility = "visible";
	}
}

function FillTranslate(str,index)
{
	if(text == null)
		text = new Array();
	text[index] = str;
}

function GenerateBaby(babyTable, countElem)
{
	limitPokoje = 5;
    limitDeti = 10;
    limitOsob = 100;
    
    content = babyTable;
 
	var htmlString="";   
    //var count= countElem.value;
    var count = countElem;
    //radek = data[0];
    //count = radek[1];
    //count = data[0][1];
    //data[i][1]
    
	if(count>limitPokoje)
	{
		count = limitPokoje; //omezime na limitPokoje pokoju
		countElem.value = count;
	}
	
	SaveValues();
	DeleteFromValue(count);
	
	htmlString += "<table>";
	for(i=1;i<=count;i++)
	{
		if ((i % 2) == 1) {
			htmlString += "<tr class='col" + ((((i-1)/2) % 2)+1) + "'>";
		}
		
		// telo - td
		htmlString += "<td class=\"age-child\">";
		htmlString += "<label for=\"dchildborn1-" + i + "\">Nar. ditete " + i + "</label>";
		htmlString += "</td>";
		
		htmlString += "<td class=\"format-input\">";
		htmlString += "<input type=\"text\" name=\"dchildborn1-" + i + "\" value=\"dd.mm.yyyy\" class=\"format-arrive center\" id=\"dchildborn1-" + i + "\" />";
		htmlString += "</td>";
			
		htmlString += "<td class=\"format-kalendar\">";
		htmlString += "<img src='" + ikona + "' alt='Calendar' id='dchildborn1-" + i + "-button' title='calendar' class='kalendar' height='16' width='19'>";
		htmlString += "<script type=\"text/javascript\">";
		htmlString += "Calendar.setup({";
		htmlString += "inputField     :    \"dchildborn1-" + i + "\",";
		htmlString += "ifFormat       :    \"%d.%m.%Y\",";
		htmlString += "button         :    \"dchildborn1-" + i + "-button\",";
		htmlString += "align          :    \"Br\",";
		htmlString += "singleClick    :    true";
		htmlString += "});";
		htmlString += "</script>";
		htmlString += "</td>";
			
		if ((i % 2) == 1) {
			if (i == count) {
				htmlString += "<td></td> <td></td> <td></td> </tr>";
			}
		} else {
			htmlString += "</tr>";
		}
		
		/*htmlString += "<tr class='col" + (i % 2) + "'>";
		htmlString += ""
		htmlString += "</tr>"
	
		htmlString += "<div class='item' id='p"+i+"'><h3>"+text[4]+" #"+i+"</h3><label class='head' for='numberofpax"+i+"'>"+text[0]+"</label>";
		htmlString += "<input  onblur='CheckValue(\"numberofpax"+i+"\",\"number\")'  class='textovepole' name='numberofpax"+i+"' id='numberofpax"+i+"' maxlength='"+limitOsob.toString().length+"' size='"+limitOsob.toString().length+"' type='text' value='";
		htmlString += ((data[i]==null) || (data[i][0]==null))?"":data[i][0];
		htmlString += "'><label class='head' for='numberofchild"+i+"'>"+text[1]+"</label>";
		htmlString += "<input id='numberofchild"+i+"' class='textovepole'  onblur='CheckValue(\"numberofchild"+i+"\",\"number\");GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\"),"+i+")'  name='numberofchild"+i+"' type='text' value='";
		htmlString += ((data[i]==null) || (data[i][1]==null))?"":data[i][1];
		htmlString += "' maxlength='"+limitDeti.toString().length+"' size='"+limitDeti.toString().length+"'>";
		//htmlString += " <input type='button' class='tlacitko' value='"+text[2]+"' onClick='GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\").value,"+i+")'>";
		htmlString += "<div class='dateitem' id='kid"+i+"'></div>";
		htmlString += "</div>";*/
	}
	htmlString += "</table>";

	//content = document.getElementById('baby');
	content.innerHTML = htmlString;
}

// funkce pro AVE, aby generoval Pokoje
function GeneratePokoje(pokojeTable, countElem)
{
	limitPokoje = 5;
    limitDeti = 10;
    limitOsob = 100;
    
    content = pokojeTable;
 
	var htmlString="";   
    var count= countElem.value;
    
	if(count>limitPokoje)
	{
		count = limitPokoje; //omezime na limitPokoje pokoju
		countElem.value = count;
	}
	
	SaveValues();
	DeleteFromValue(count);
	for(i=1;i<=count;i++)
	{
		htmlString += "<div class='item' id='p"+i+"'><h3>"+text[4]+" #"+i+"</h3><label class='head' for='numberofpax"+i+"'>"+text[0]+"</label>";
		htmlString += "<input  onblur='CheckValue(\"numberofpax"+i+"\",\"number\")'  class='textovepole' name='numberofpax"+i+"' id='numberofpax"+i+"' maxlength='"+limitOsob.toString().length+"' size='"+limitOsob.toString().length+"' type='text' value='";
		htmlString += ((data[i]==null) || (data[i][0]==null))?"":data[i][0];
		htmlString += "'><label class='head' for='numberofchild"+i+"'>"+text[1]+"</label>";
		htmlString += "<input id='numberofchild"+i+"' class='textovepole'  onblur='CheckValue(\"numberofchild"+i+"\",\"number\");GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\"),"+i+")'  name='numberofchild"+i+"' type='text' value='";
		htmlString += ((data[i]==null) || (data[i][1]==null))?"":data[i][1];
		htmlString += "' maxlength='"+limitDeti.toString().length+"' size='"+limitDeti.toString().length+"'>";
		//htmlString += " <input type='button' class='tlacitko' value='"+text[2]+"' onClick='GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\").value,"+i+")'>";
		htmlString += "<div class='dateitem' id='kid"+i+"'></div>";
		htmlString += "</div>";
	}

	//content.innerHTML = htmlString;
}

//vygeneruje [count] radku formulare]
function Generate(countElem)
{
	if (formularAve) {
		GenerateAve(countElem);
		return;
	}
			
    limitPokoje = 5;
    limitDeti = 10;
    limitOsob = 100;
		var count= countElem.value;
		content = document.getElementById('contentR');//najdeme element pro zobrazeni obssahu
		var htmlString="";	
		if(count>limitPokoje)
		{
			count = limitPokoje; //omezime na limitPokoje pokoju
			countElem.value = count;
		}
		SaveValues();
		DeleteFromValue(count);
		for(i=1;i<=count;i++)
		{
			htmlString += "<div class='item' id='p"+i+"'><h3>"+text[4]+" #"+i+"</h3><label class='head' for='numberofpax"+i+"'>"+text[0]+"</label>";
			htmlString += "<input  onblur='CheckValue(\"numberofpax"+i+"\",\"number\")'  class='textovepole' name='numberofpax"+i+"' id='numberofpax"+i+"' maxlength='"+limitOsob.toString().length+"' size='"+limitOsob.toString().length+"' type='text' value='";
			htmlString += ((data[i]==null) || (data[i][0]==null))?"":data[i][0];
			htmlString += "'><label class='head' for='numberofchild"+i+"'>"+text[1]+"</label>";
			htmlString += "<input id='numberofchild"+i+"' class='textovepole'  onblur='CheckValue(\"numberofchild"+i+"\",\"number\");GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\"),"+i+")'  name='numberofchild"+i+"' type='text' value='";
			htmlString += ((data[i]==null) || (data[i][1]==null))?"":data[i][1];
			htmlString += "' maxlength='"+limitDeti.toString().length+"' size='"+limitDeti.toString().length+"'>";
			//htmlString += " <input type='button' class='tlacitko' value='"+text[2]+"' onClick='GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\").value,"+i+")'>";
			htmlString += "<div class='dateitem' id='kid"+i+"'></div>";
			htmlString += "</div>";			
		}

		content.innerHTML = htmlString;	
		GenerateKids(count);
	
}

//vygeneruje [count] radku formulare]
function GenerateAve(countElem)
{
    limitPokoje = 5;
    limitDeti = 10;
    limitOsob = 100;
    
	var count= countElem.value;
	
	//cast pro pokoje
	contentPokoje = document.getElementById('pokoje');//najdeme element pro zobrazeni obssahu
	var htmlStringPokoje="";
	
	//cast pro deti
	//contentDeti = document.getElementById('deti');//najdeme element pro zobrazeni obssahu
	//var htmlStringDeti="";
	
	if(count>limitPokoje)
	{
		count = limitPokoje; //omezime na limitPokoje pokoju
		countElem.value = count;
	}
	
	SaveValues();
	DeleteFromValue(count);
	
	htmlStringPokoje += "<table id='rooms'>";
	
	var colIndex = 0;
	for(i=1;i<=count;i++)
	{
		/*
		htmlStringPokoje += "<div class='item' id='p"+i+"'><h3>"+text[4]+" #"+i+"</h3><label class='head' for='numberofpax"+i+"'>"+text[0]+"</label>";
		htmlStringPokoje += "<input  onblur='CheckValue(\"numberofpax"+i+"\",\"number\")'  class='textovepole' name='numberofpax"+i+"' id='numberofpax"+i+"' maxlength='"+limitOsob.toString().length+"' size='"+limitOsob.toString().length+"' type='text' value='";
		htmlStringPokoje += ((data[i]==null) || (data[i][0]==null))?"":data[i][0];
		htmlStringPokoje += "'><label class='head' for='numberofchild"+i+"'>"+text[1]+"</label>";
		htmlStringPokoje += "<input id='numberofchild"+i+"' class='textovepole'  onblur='CheckValue(\"numberofchild"+i+"\",\"number\");GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\"),"+i+")'  name='numberofchild"+i+"' type='text' value='";
		htmlStringPokoje += ((data[i]==null) || (data[i][1]==null))?"":data[i][1];
		htmlStringPokoje += "' maxlength='"+limitDeti.toString().length+"' size='"+limitDeti.toString().length+"'>";
		//htmlStringPokoje += " <input type='button' class='tlacitko' value='"+text[2]+"' onClick='GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\").value,"+i+")'>";
		htmlStringDeti += "<div class='dateitem' id='kid"+i+"'></div>";
		htmlStringPokoje += "</div>";
		*/
		
		colIndex = ((i + 1) % 2) + 1;
		
		//nadpis pro pokoj
		htmlStringPokoje += "<tr class='col" + (additionalIndexAve == 1 ? 2:1) + "' id='p"+i+"'>";
		htmlStringPokoje += "<td colspan='2' class='titulek'>\n<label>"+text[4]+" #"+i+"</label>\n</td>\n";
		htmlStringPokoje += "<td class='format-kalendar'>\n</td>\n";
		
		//pocet dospelych v pokoji
		htmlStringPokoje += "<td class='age-childr'>\n<label for='numberofpax"+i+"'>"+text[0]+"</label>\n</td>\n";
		htmlStringPokoje += "<td class='format-input'>\n";
		htmlStringPokoje += "<input  onblur='CheckValue(\"numberofpax"+i+"\",\"number\")'  class='format-arrive center' name='numberofpax"+i+"' id='numberofpax"+i+"' maxlength='"+limitOsob.toString().length+"' size='"+limitOsob.toString().length+"' type='text' value='";
		htmlStringPokoje += ((data[i]==null) || (data[i][0]==null))?"":data[i][0];
		htmlStringPokoje += "'>\n</td>\n<td>\n<img src='"+ikonaBila+"' alt='Calendar' title='Calendar' class='kalendar neviditelne' height='16' width='19'>\n</td>\n";
		
		//ukonceni radku tabulky a zacatek dalsi
		htmlStringPokoje += "</tr>\n<tr class='col" + (additionalIndexAve == 1 ? 1:2) + "'>\n";
		htmlStringPokoje += "<td colspan='2' class='titulek'>\n</td>\n<td class='format-kalendar'>\n";
		
		//pocet deti v pokoji
		htmlStringPokoje += "<td class='age-childr'>\n<label for='numberofchild"+i+"'>"+text[1]+"</label>\n</td>\n";
		htmlStringPokoje += "<td class='format-input'>\n<input id='numberofchild"+i+"' class='format-arrive center'  onblur='CheckValue(\"numberofchild"+i+"\",\"number\");GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\"),"+i+")'  name='numberofchild"+i+"' type='text' value='";
		htmlStringPokoje += ((data[i]==null) || (data[i][1]==null))?"":data[i][1];
		htmlStringPokoje += "' maxlength='"+limitDeti.toString().length+"' size='"+limitDeti.toString().length+"'>";
		htmlStringPokoje += "\n</td>\n<td>\n<img src='"+ikonaBila+"' alt='Calendar' title='Calendar' class='kalendar neviditelne' height='16' width='19'>\n</td>\n";
		
		//konec radku
		htmlStringPokoje += "</tr>\n";
	}
	//zakonceni tabulky
	htmlStringPokoje += "</table>";
	
	//misto pro deti
	//htmlStringDeti += "<div class='dateitem' id='kid'></div>";

	//ulozit vysledne HTML kody
	contentPokoje.innerHTML = htmlStringPokoje;	
	//contentDeti.innerHTML = htmlStringDeti;
	
	//vygenerovat kod pro deti v pokojich
	GenerateKids(count);
	
}

//vygeneruje [count] radku formulare]
function GenerateUpresneni(countElem)
{
		var count= countElem.value;
		
		content = document.getElementById('contentVyhledavani');//najdeme element pro zobrazeni obssahu
		var htmlString="";	
		if(count>limitPokoje)
		{
			count = limitPokoje; //omezime na limitPokoje pokoju
			countElem.value = count;
		}

		SaveValues();
		DeleteFromValue(count);
		for(i=1;i<=count;i++)
		{
			htmlString += "<div class='item' id='p"+i+"'><h3>"+text[4]+" #"+i+"</h3><div class='itembox'><label class='head' for='numberofpax"+i+"'>"+text[0]+"</label>";
			htmlString += "<input  onblur='CheckValue(\"numberofpax"+i+"\",\"number\")' style='width:30px'  class='textovepole' name='numberofpax"+i+"' id='numberofpax"+i+"' maxlength='"+limitOsob.toString().length+"' size='"+limitOsob.toString().length+"' type='text' value='";
			htmlString += ((data[i]==null) || (data[i][0]==null))?"":data[i][0];
			htmlString += "'></div><div class='itembox'><label class='head' for='numberofchild"+i+"'>"+text[1]+"</label>";
			htmlString += "<input id='numberofchild"+i+"' class='textovepole'  style='width:30px'  onblur='CheckValue(\"numberofchild"+i+"\",\"number\");GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\"),"+i+")'  name='numberofchild"+i+"' type='text' value='";
			htmlString += ((data[i]==null) || (data[i][1]==null))?"":data[i][1];
			htmlString += "' maxlength='"+limitDeti.toString().length+"' size='"+limitDeti.toString().length+"'>";
			//htmlString += " <input type='button' class='tlacitko' value='"+text[2]+"' onClick='GenerateKidsFirst(document.getElementById(\"numberofchild"+i+"\").value,"+i+")'>";
			htmlString += "</div><div class='dateitem' id='kid"+i+"'></div>";
			htmlString += "</div>";			
		}

		content.innerHTML = htmlString;	
		GenerateKids(count);
	
}



//Vygeneruje pro radek [i] [count] datumu narozeni deti
function GenerateKidsFirst(countElem,i)
{
		var count= countElem.value;
		
		if(count>limitDeti)
			{
			 count = limitDeti; //omezime na 99 deti	
			 countElem.value = count;
			}
		
		SaveValues();
		DeleteFromValueKids(count,i);
		GenerateDateRows(count,i,"kid"+i);											
}
//Vygeneruje [count] radku datumu narozeni deti
function GenerateKids(count)
{
	if(count>limitDeti) count = limitDeti; //omezime na 99 deti
	var i;	
	for(i=1;i<data.length;i++)
	{	
		DeleteFromValueKids(count,i);	
		if (data[i] != null && data[i][1] != null) {
			if (formularAve) {
				GenerateDateRowsAve(data[i][1],i,"deti");
			} else {
				GenerateDateRows(data[i][1],i,"kid"+i);
			}
		}
	}	
}
//vygeneruje [rowsCount] radku, vlozenych do [i]-teho 
//radku a zobrazi vygenerovany obsah v elementu s [id]
function GenerateDateRows(rowsCount,i,id)
{
	var htmlString="";
	if(rowsCount != null){
		if(rowsCount>limitDeti) rowsCount = limitDeti; //omezime na [rowsCount] deti
		for(j=1;j<=rowsCount;j++)
		{
			htmlString += "<div class='item'><label class='head' for='dchildborn"+i+"-"+j+"'>"+text[3]+" "+"#"+j+"</label><input size='10' ";
			// nepouzivat blur, pokud se pouzivaji kalendare AVE
			if(!kalendarAve) {
				htmlString += "onblur='CheckValue(\"dchildborn"+i+"-"+j+"\",\"borndate\")'";
			}
			htmlString += "  maxlength='10' class='textovepole'  name='dchildborn"+i+"-"+j+"' id='dchildborn"+i+"-"+j+"' type='text' ";
			if(data[i] != null)
			{
				if(data[i][2] != null)
				{//pokud existuje pole s hodnotami, vypiseme je
					if(data[i][2].length > 0)
					{
						htmlString += (data[i][2][j] == null)?"":"value='"+data[i][2][j]+"' ";
					}
				}
			}	
			htmlString += ">";
			if(kalendarAve) {
				htmlString += " <img src="+ikona+"  alt=\"Calendar\" id=\"f_trigger_dchildborn"+i+"-"+j+"\" title=\"calendar\" class=\"kalendar\" height=\"16\" width=\"19\">";
				/*htmlString += "\n<script type=\"text/javascript\">";
				htmlString += "\n\tCalendar.setup({"
				htmlString += "inputField: \"dchildborn"+i+"-"+j+"\", "
				htmlString += "ifFormat: \"%d.%m.%Y\", "
				htmlString += "button: \"f_trigger_dchildborn"+i+"-"+j+"\", "
				htmlString += "align: \"Br\", "
				htmlString += "singleClick: true"
				htmlString += "});"
				htmlString += "</script>";*/
				/*Calendar.setup({
					inputField: "dchildborn"+i+"-"+j+"",
					ifFormat: "%d.%m.%Y",
					button: "f_trigger_dchildborn"+i+"-"+j+"",
					align: "Br",
					singleClick:true
				});*/
			} else if(zobrazitKalendar) {
				htmlString += " <img src='"+ikona+"' class='img_calendar' alt='Date' onclick='popUpCalendar(this, document.getElementById(\"dchildborn"+i+"-"+j+"\"), \"dd.mm.yyyy\");'>";
			}
			htmlString += "</div>";
		}
	}

	elem = document.getElementById(id);
	if (elem != null)
	{
		if(rowsCount ==0)
		{
			elem.innerHTML = "";
		}
		if(htmlString.length>0)
		{
			elem.innerHTML = htmlString;
			// je treba zavolat vsechny nastaveni kalendaru, ktere jsou genericky pridavany
			if(kalendarAve) {
				if(rowsCount != null){
					for(j=1;j<=rowsCount;j++) {
						Calendar.setup({
							inputField: "dchildborn"+i+"-"+j+"",
							ifFormat: "%d.%m.%Y",
							button: "f_trigger_dchildborn"+i+"-"+j+"",
							align: "Br",
							singleClick:true
						});
					}
				}
			}
		}
	}
	
}
//vygeneruje [rowsCount] radku, vlozenych do [i]-teho 
//radku a zobrazi vygenerovany obsah v elementu s [id]
//pridano pro AVE - generovani tabulky deti
function GenerateDateRowsAve(rowsCount,i,id)
{
	var htmlString="";
	if(rowsCount != null){
		if(rowsCount>limitDeti) rowsCount = limitDeti; //omezime na [rowsCount] deti
		htmlString += "<table id='baby'>\n";
		for(j=1;j<=rowsCount;j++)
		{
			/*---generovani deti pro ave---*/
			if ((j % 2) == 1) {
				htmlString += "<tr class='col" + ((((j + 2 * additionalIndexAve - 1)/2) % 2) + 1) + "'>";
			}
		
			// telo - td
			htmlString += "<td class='age-child'>\n<label for='dchildborn"+i+"-"+j+"'>"+text[3]+" "+"#"+j+"</label>\n</td>\n<td class='format-input'>\n<input ";
			
			// nepouzivat blur, pokud se pouzivaji kalendare AVE
			if(!kalendarAve) {
				htmlString += "onblur='CheckValue(\"dchildborn"+i+"-"+j+"\",\"borndate\")'";
			}
			htmlString += " maxlength='10' class='format-arrive center' name='dchildborn"+i+"-"+j+"' id='dchildborn"+i+"-"+j+"' type='text' ";
			if(data[i] != null)
			{
				if(data[i][2] != null)
				{//pokud existuje pole s hodnotami, vypiseme je
					if(data[i][2].length > 0)
					{
						htmlString += ((data[i][2][j] == null) ? "" : "value='"+data[i][2][j]+"' ");
					}
				}
			}	
			htmlString += ">\n</td>\n";
			if(kalendarAve) {
				htmlString += "<td class='format-kalendar'>\n<img src="+ikona+" alt='Calendar' id='f_trigger_dchildborn"+i+"-"+j+"' title='calendar' class='kalendar' height='16' width='19'>\n</td>\n";
			}
			htmlString += "</td>";
			
			if ((j % 2) == 1) {
				if (j == rowsCount) {
					htmlString += "<td></td> <td></td> <td></td> </tr>";
				}
			} else {
				htmlString += "</tr>";
			}
		
			/*---odsud dal jsou bludy---*/
		
			/*
			htmlString += "<div class='item'><label class='head' for='dchildborn"+i+"-"+j+"'>"+text[3]+" "+"#"+j+"</label><input size='10' ";
			// nepouzivat blur, pokud se pouzivaji kalendare AVE
			if(!kalendarAve) {
				htmlString += "onblur='CheckValue(\"dchildborn"+i+"-"+j+"\",\"borndate\")'";
			}
			htmlString += "  maxlength='10' class='textovepole'  name='dchildborn"+i+"-"+j+"' id='dchildborn"+i+"-"+j+"' type='text' ";
			if(data[i] != null)
			{
				if(data[i][2] != null)
				{//pokud existuje pole s hodnotami, vypiseme je
					if(data[i][2].length > 0)
					{
						htmlString += (data[i][2][j] == null)?"":"value='"+data[i][2][j]+"' ";
					}
				}
			}	
			htmlString += ">";
			if(kalendarAve) {
				htmlString += "<td>\n<img src="+ikona+"  alt=\"Calendar\" id=\"f_trigger_dchildborn"+i+"-"+j+"\" title=\"calendar\" class=\"kalendar\" height=\"16\" width=\"19\">\n</td>\n";
			}
			htmlString += "</div>";
			*/
		}
		htmlString += "</table>\n";
	}

	elem = document.getElementById(id);
	if (elem != null)
	{
		if(rowsCount ==0)
		{
			elem.innerHTML = "";
		}
		if(htmlString.length>0)
		{
			elem.innerHTML = htmlString;
			// je treba zavolat vsechny nastaveni kalendaru, ktere jsou genericky pridavany
			if(kalendarAve) {
				if(rowsCount != null){
					for(j=1;j<=rowsCount;j++) {
						Calendar.setup({
							inputField: "dchildborn"+i+"-"+j+"",
							ifFormat: "%d.%m.%Y",
							button: "f_trigger_dchildborn"+i+"-"+j+"",
							align: "Br",
							singleClick:true
						});
					}
				}
			}
		}
	}
	
}
//Smaze vsechny radky v poli s indexem vetsim nez range
function DeleteFromValue(range)
{
	range++;	
	for(i=range;i<data.length;i++)
	{
		data[i] = null;
	}
}
//Smaze vsechny radky v poli s datumy narozeni s indexem vetsim nez range
function DeleteFromValueKids(range,i)
{
	range++;
	if(data[i] != null)
	 if([i][2]!= null)
		for(j=range;j<data[i][2].length;i++)	
			data[i][2][j] = null;	
}

//ulozi data do pole, prvni pole odpovida poctu radku, druhe, do nej vlozene 
//obahuje Pocet osob, pocet deti a pole s datumy narozeni deti
function SaveValues()
{	
	var i;
	if (content == null || content.childNodes == null) {
		return;
	}
	
	for(i=1;i<=content.childNodes.length;i++)
	{				
		/*uzly = content.childNodes[i-1];*/
		
		pocetPokoju = document.getElementById("numberofpax"+i);
		pocetDeti = document.getElementById("numberofchild"+i);
		if (pocetPokoju != null||pocetDeti != null)
		{
			radek = new Array(3);
			data[i] = radek;
			data[i][0] = pocetPokoju.value;
			data[i][1] = pocetDeti.value;
			if(pocetDeti.value>0)
			{//pokud je zadan pocet deti
				var j;
				data[i][2] = new Array();
				for (j=1;j<=pocetDeti.value;j++)
				{//projdeme vsechny elementy se jmenem d[i][j]
					datum = document.getElementById("dchildborn"+i+"-"+j);
					if(datum != null) data[i][2][j] = datum.value;
				}
			}
		}		
	}	
}


///vraci objekt popisujici datum - format vstupu dd.mm.yyyy - netestuje chybu neexistence 
function GetDate(date)
{
		///vytahne den
		var day = parseInt(date.substring(0,date.indexOf(".")),10);				
		
		date = date.substring(date.indexOf(".")+1);
		///vytahne mesic
		var month = parseInt(date.substring(0,date.indexOf(".")),10);		
			
		date = date.substring(date.indexOf(".")+1);
		///vytahne rok
		var year = parseInt(date,10);
		///vrati objekt datum
		return new Date(year, month-1, day);
}


///funkce otestuje parametr na datum a do datum do prida +1 den
function CheckValueAndAddDayDateTo(idFrom, idTo)
{
	///nejdrive otestuje hodnotu datumu od		
	if (CheckValue(idFrom,'date'))
	{	///najde datum od
		var el = document.getElementById(idFrom);//najdeme text box
		///pokud neexistuje chyba
		if (el == null)
			return false;

		///najde datum do
		var elTo = document.getElementById(idTo);//najdeme text box
		///neexistuje datum do - chyba
		if (elTo == null)
			return false;

		///vrati objekt data z hodnot
		var datum = GetDate(Trim(el.value));

		if (IsDate(Trim(elTo.value)))
		{
			///vrati objekt data z hodnot
			var datumDo = GetDate(Trim(elTo.value));
			if (datumDo > datum && datumDo > new Date())
				return true;			
		}

		///k datumu prida +1 den
		datum.setDate(datum.getDate()+1);
			
		///vrati datum dd.mm.yyyy
		elTo.value = datum.getDate()+"."+(datum.getMonth()+1)+"."+datum.getFullYear();	
		
		///vse je ok
		return true;
	}
	return false;
}

//funkce zkontroluje spravnost hodnoty v texboxu zadanem pomoci id podle datoveho typu
function CheckValue(id,dateType)
{
	var el = document.getElementById(id);//najdeme text box
	if(el!=null)
	{
		el.value = Trim(el.value);
		var isGood = false;
		
		switch (dateType)		
		{
			case "number":
				isGood = IsNumber_EmtyString(el.value);
			break;
			case "date":
				isGood = IsDate(el.value);break;
			break;
			case "borndate":
				isGood = IsBornDate(el.value);
			break;

		}
		if(isGood)
		{
			RemoveErrorIndication(id);
			if(dateType == "number" && el.value!="")
			{//retezec zacinajici cislem JAVASCRIPT prevede na cislo, cehoz vyuzijeme a v texboxu na tohle cislo hodnotu prepiseme			
				el.value = parseInt(el.value,10);
			}
			return true;		
		}
		else
		{	
			ShowErrorIndication(id);
			switch (dateType)		
			{// a zobrazime prislusnou chybovou hlasku 
				case "number":
					alert(text[5]);
				break;
				case "date":
					alert(text[6]);
				break;
				case "borndate":
					alert(text[10]);
				break;
			}				
			return false;		
		}
	}
}
//zobrazi cervenou hvezdicku za elementem ID
function ShowErrorIndication(id,uniqueId)
{
	if(uniqueId == null) uniqueId = "";
	var el = document.getElementById(id);//najdeme text box
	var elParent = el.parentNode;	//a jeho rodice
	// pokud neni hodnota spravne, pokusime se najit element s hvezdickou
	var err = document.getElementById("error-"+id+uniqueId);
	if(err == null)
	{	//pokud neexistuje, vytvorime ho
		var warning = document.createElement("div");
		with (warning)
		{				
			innerHTML = "*";
			style.color = "red";
			style.display = "inline";
		}
		warning.id = "error-"+id+uniqueId;
		//a vlozime ho za element s id
		elParent.insertBefore(warning,el.nextSibling);
		errorCounter++;
	}
}
//smaze cervenou hvezdicku za elementem ID
function RemoveErrorIndication(id,uniqueId)
{
	if(uniqueId == null) uniqueId = "";
	var el = document.getElementById(id);//najdeme text box
	var elParent = el.parentNode;
	var err = document.getElementById("error-"+id+uniqueId);//pokud je kontrola v poradku, pokusime se najit prislusny div s hvezdickou
	if(err != null)
	{// a smazeme ho
		elParent.removeChild(err);
		errorCounter--;
	}
}

//kontrola na cislo, v prazdny retezec Nevraci chybu
function IsNumber_EmtyString(num)
{
	if(num == "") return true;
	else return IsNumber(num);
}
//funkce vraci true pokud je num cislo, prazdy retezec se povazuje za chybu
function IsNumber(num)
{
	var x = parseInt(num,10);
	if(isNaN(x)) return false;
	if (x == 0 && (x != 0)) return false;
	else return true;	
}
//kontrola na datum, v prazdny retezec Nevraci chybu
function IsDate_EmtyString(date)
{
	if(date == "") return true;
	else
		return IsDate(date);
}
//funkce odstrani na zacatku a na konci mezery
function Trim(string)
{
	if(string.length == 0) return "";
	if(string.indexOf(" ")==0) return Trim(string.substring(1));	
	if(string.lastIndexOf(" ")==(string.length-1)) return Trim(string.substring(0,string.length-1));		
	return string;		
}

///zkontroluje datum pro datum narozeni - musi byt mensi nez dnesek vcetne
function IsBornDate(date)
{
	if (!IsDate(date))
		return false;
	
	
///vytahne den
		var day = parseInt(date.substring(0,date.indexOf(".")),10);				
		
		date = date.substring(date.indexOf(".")+1);
		///vytahne mesic
		var month = parseInt(date.substring(0,date.indexOf(".")),10);		
			
		date = date.substring(date.indexOf(".")+1);
		///vytahne rok
		var year = parseInt(date,10);
		///vrati objekt datum
		var d = new Date(year, month-1, day);
		if (d <= new Date())
			return true;
		else
			return false;
}


//zkontroluje datum - format a zda je mensi nez 31 a mesic mensi nez 12
function IsDate(date)
{
	 var pat ="([0-9]){1,2}\.([0-9]){1,2}\.([0-9]){4}";//vytvorime regulrni vyraz pro datum
	 if (!date.match(pat)) return false;	 //pokud nevyhovy, koncime
	 else
	 {
		
		var day = parseInt(date.substring(0,date.indexOf(".")),10);				
		
		date = date.substring(date.indexOf(".")+1);
		
		var month = parseInt(date.substring(0,date.indexOf(".")),10);		
		
		if(month > 12 || month<1)
			return false;
				
		date = date.substring(date.indexOf(".")+1);
		
		var year = parseInt(date,10);
		if(year > 2100 || year < 1950) return false;	
		
		var arrDaysInMonths;		
			
		//pokud je rok prestupný
			
		if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
			arrDaysInMonths = new Array(31,29,31,30,31,30,31,31,30,31,30,31);	
		else
			arrDaysInMonths = new Array(31,28,31,30,31,30,31,31,30,31,30,31);	
		
		
		if(day > arrDaysInMonths[month-1] || day<1) return false;
		return true;					
	 }	 	
}
//smaze pole data
function SmazData()
{
	data = null;
}
//kontroluje zda pole s datumy zacina na indexu 1, 
//pokud pole zacina od nuly, posune ho na index 1
function CtrlDatum(arDatum)
{
	if (arDatum[0]!=null)
	{
		var i;
		for(i=arDatum.length;i>0;i--)
		{
			arDatum[i] = arDatum[i-1]
		}
		arDatum[0]=null;
	}	
	return arDatum;
}
//prida radek dat do pole data
//promenna arDatum musi byt pole datumu
function PridejData(osoby,deti,arDatum)
{	
	var nextIndex = data.length;
	if(nextIndex == null) nextIndex = 1;
	if(nextIndex == 0) nextIndex = 1;
	arDatum = CtrlDatum(arDatum);
	radek = new Array(3);
	radek[0] = osoby;
	radek[1] = deti;
	radek[2] = arDatum;
	data[nextIndex]= radek;
}

function wb_startWaitWindow()
{	
	if (document.getElementById("waitingwindow") != null)	
	{
			///funkce z popcalendar - vsude kde je vyhledavani je i popcalendar
			//hideElement( 'SELECT', document );
			document.getElementById("waitingwindow").style.visibility = "visible";
	}
}

//odesle formular pokud v nem neni zadna chyba
function SendForm(idForm)
{	
	if(errorCounter==0)
	{	
		var	frm = document.getElementById(idForm);

		frm.submit();	//pokud neni chyba odesleme form

		wb_startWaitWindow();
		
		return true;
	}
	
	return false;
	/*else
	{	//jinak zobrazime chybovou hlasku a nahradime text [count] pocetm chyb
		alert(text[7].replace(/\[count\]/g,errorCounter.toString()));
	}*/
}

///funckce umoznuje na zaklade parametru zmenit hodnotu formularoveho prvku, aktualne vyuzivana
///pri kliknuti tlacitka hledat na upresnujicim formulari, abych vedel co bylo vybrany
///arrCombo - pole dropdownlistu - kde vybrane id nesmi byt < 1
function CheckFormAndChangeValue(idForm,arrNumberData,arrDateData,arrMinOneFromN,arrAllReq, arrCombo, minOneFromCombos, idHiddenSpecify, value)
{
	var el = document.getElementById(idHiddenSpecify);
	
	if (el != null)
	{
		el.value = value;
	}
	
	CheckForm(idForm,arrNumberData,arrDateData,arrMinOneFromN,arrAllReq, arrCombo, minOneFromCombos);
}

//zkontroluje formular  s temito podminkami
// arrNumberData musi obsahovat validni cisla nebo prazdny retezec
// arrDateData musi obsahovat validni datumy nebo prazdny retezec
// arrMinOneFromN musi obsahovat alespon jeden neprazdny retezec
//arrAllReq - vsechny textbooxy musi obsahovat neprazdny retezec
///arrCombo - pole dropdownlistu - kde vybrane id nesmi byt < 1
function CheckForm(idForm,arrNumberData,arrDateData,arrMinOneFromN,arrAllReq, arrCombo, minOneFromCombos)
{
	for(i=0;i<arrNumberData.length;i++)
	{
		CheckValue(arrNumberData[i],"number");
	}
	
	
	for(i=0;i<arrDateData.length;i++)
	{
		CheckValue(arrDateData[i],"date");
	}
	
	
	if(!(arrMinOneFromN == null || arrMinOneFromN.length == 0))
	{
		var counter = 0;
		//pole OneFromN obsahuje pole ID prvku, 
		//neprazdny string musi obsahovat alespon jeden input
		for(i=0;i<arrMinOneFromN.length;i++)
		{		
			var e = document.getElementById(arrMinOneFromN[i]);
			if(Trim(e.value)!=="") counter++;				
		}	
		
		if(counter == 0)
		{	
			//pokud neni vyplneno alespon jedno pole	
			for(i=0;i<arrMinOneFromN.length;i++)
			{//rozvitime na vsech indikaci
				ShowErrorIndication(arrMinOneFromN[i],"OneFromN");
			}
			alert(text[8]);				
		}
		else
		{	
			for(i=0;i<arrMinOneFromN.length;i++)
			{
				RemoveErrorIndication(arrMinOneFromN[i],"OneFromN");
			}
		}
	}
	
	
	if(!(arrAllReq == null || arrAllReq.length == 0))
	{	
		var counter = 0;		
		for(i=0;i<arrAllReq.length;i++)
		{
			var e = document.getElementById(arrAllReq[i]);
			if(e == null || Trim(e.value)!=="") counter++;				
		}	
	
		for(i=0;i<arrAllReq.length;i++)
		{//smazeme vsechny indikace chyby
			if (document.getElementById(arrAllReq[i]) != null)
			{
				RemoveErrorIndication(arrAllReq[i],"AllReq");
			}
		}
		//a rozvitime je kde je treba	
		if(counter != arrAllReq.length)
		{	//pokud nejsou vyplneny vsechny textboxy
			for(i=0;i<arrAllReq.length;i++)
			{//rozvitime na vsech nevyplnenych indikaci
				var e = document.getElementById(arrAllReq[i]);
				if(Trim(e.value)=="") ShowErrorIndication(arrAllReq[i],"AllReq");
			}
			alert(text[9]);				
		}
	}

	
	if(!(arrCombo == null || arrCombo.length == 0))
	{	
		var counter = 0;		
		var nullCounter	= 0;
		for(i=0;i<arrCombo.length;i++)
		{
			var e = document.getElementById(arrCombo[i]);
			if(e!= null && Trim(e.value)!=="0") counter++;				
			if (e == null)	
			{
				nullCounter++;		
			}
		}	
	
		for(i=0;i<arrCombo.length;i++)
		{//smazeme vsechny indikace chyby
			if (document.getElementById(arrCombo[i]) != null)
			{
				RemoveErrorIndication(arrCombo[i],"Combo");
			}
		}
		//a rozvitime je kde je treba	
		if((counter+nullCounter) != arrCombo.length)
		{	//pokud nejsou vyplneny vsechny textboxy
			for(i=0;i<arrCombo.length;i++)
			{//rozvitime na vsech nevyplnenych indikaci
				var e = document.getElementById(arrCombo[i]);
				if(Trim(e.value)=="0") ShowErrorIndication(arrCombo[i],"Combo");
			}
			alert(text[8]);				
		}
	}
	
	if(!(minOneFromCombos == null || minOneFromCombos.length == 0))
	{
		var counter = 0;		
		var nullCounter	= 0;
		for(i=0;i<minOneFromCombos.length;i++)
		{
			var e = document.getElementById(minOneFromCombos[i]);
			if(e!= null && Trim(e.value)!=="0") counter++;				
			if (e == null)	
			{
				nullCounter++;		
			}
		}	
	
		for(i=0;i<minOneFromCombos.length;i++)
		{//smazeme vsechny indikace chyby
			if (document.getElementById(minOneFromCombos[i]) != null)
			{
				RemoveErrorIndication(minOneFromCombos[i],"Combo");
			}
		}
		//a rozvitime je kde je treba	
		if(nullCounter != minOneFromCombos.length && (counter) == 0)
		{	//pokud nejsou vyplneny vsechny textboxy
			for(i=0;i<minOneFromCombos.length;i++)
			{//rozvitime na vsech nevyplnenych indikaci
				var e = document.getElementById(minOneFromCombos[i]);
				if(e != null && Trim(e.value)=="0") ShowErrorIndication(minOneFromCombos[i],"Combo");
			}
			alert(text[8]);				
		}
	}

	return SendForm(idForm);
}


