//kontrola, zda neni vybran infant bez sveho travellera
function checkInfant(formName, cislo, psgType) {
  var checkbox, select;
  var passengerType = new Array();
  passengerType[1]="Dospělí";
  passengerType[2]="Mládežník";
  passengerType[3]="Dítě";
  passengerType[4]="Senior";
  
  checkbox = eval("document.forms['" + formName + "'].INF" + cislo);
  select = eval("document.forms['" + formName + "']." + psgType);
  if(checkbox.checked && select.options[select.selectedIndex].value == 0) {
  	 alert("Není zvolen cestující " + passengerType[cislo]);
  	 checkbox.checked = false;
  }
}

// funkce scitajici pocet infantu u jednotlivych cestujicich
function infantSum() {
  var INFCOUNT = 0;
  if(document.forms["inputdata"].INF1.checked) {
  INFCOUNT = INFCOUNT + document.forms["inputdata"].INF1.value*1;
  }
  if(document.forms["inputdata"].INF2.checked) {
  INFCOUNT = INFCOUNT + document.forms["inputdata"].INF2.value*1;
  }
  if(document.forms["inputdata"].INF4.checked) {
  INFCOUNT = INFCOUNT + document.forms["inputdata"].INF4.value*1;
  }
  document.forms["inputdata"].INFCOUNT.value = INFCOUNT;
}

// zmeni promene formulare pred odeslanim pro novou verzi systemu
function varNameChanger() {
  //typ letenky
  var typLet = document.getElementsByName('journey');
      for (i=0; i<typLet.length; i++) {
        if (typLet[i].checked)
           JOURNEY_TYPE = typLet[i].value;     
      }    

    if (JOURNEY_TYPE == 'roundTrip') {
    JOURNEY_TYPE = "RT";
    }
    else if (JOURNEY_TYPE == 'oneway') {
    JOURNEY_TYPE = "OW";
    }
    else if (JOURNEY_TYPE == 'other') {
    JOURNEY_TYPE = "OJ";
    }
  document.forms["inputdata"].JOURNEY_TYPE.value = JOURNEY_TYPE;

  //typ odlet_0
  var DEP_0 = document.getElementById('from1').value;
  document.forms["inputdata"].DEP_0.value = DEP_0;

  //typ odlet_1
  var DEP_1 = document.getElementById('from2').value;
  document.forms["inputdata"].DEP_1.value = DEP_1;

  //typ prilet_0
  var ARR_0 = document.getElementById('to1').value;
  document.forms["inputdata"].ARR_0.value = ARR_0;

  //typ prilet_1
  var ARR_1 = document.getElementById('to2').value;
  document.forms["inputdata"].ARR_1.value = ARR_1;

  //typ den odletu
  var DAY_0 = document.forms["inputdata"].depDay.value;
  document.forms["inputdata"].DAY_0.value = DAY_0;

  //typ den priletu
  var DAY_1 = document.forms["inputdata"].arrDay.value;
  document.forms["inputdata"].DAY_1.value = DAY_1;

  //typ mesic odletu
  var MONTH_0 = document.forms["inputdata"].depMonth.value;
  document.forms["inputdata"].MONTH_0.value = MONTH_0;

  //typ mesic priletu
  var MONTH_1 = document.forms["inputdata"].arrMonth.value;
  document.forms["inputdata"].MONTH_1.value = MONTH_1;

  //typ mesic odletu
  var YEAR_0 = document.forms["inputdata"].depYear.value;
  document.forms["inputdata"].YEAR_0.value = YEAR_0;

  //typ mesic priletu
  var YEAR_1 = document.forms["inputdata"].arrYear.value;
  document.forms["inputdata"].YEAR_1.value = YEAR_1;

  //typ preferovana aerolinie
  var AIRLINES = document.forms["inputdata"].airlines.value;
    if (AIRLINES == "") {
    document.getElementById("air").name="fail";
    }
    else {
    document.forms["inputdata"].AIRLINES.value = AIRLINES; 
    }    

  // time preference odlet
  var TIME_PREF_0 = document.forms["inputdata"].depTime.value;
    if (TIME_PREF_0 == "") {
    TIME_PREF_0 = "any_time";
    }
    else if (TIME_PREF_0 == 9) {
    TIME_PREF_0 = "morning";
    }
    else if (TIME_PREF_0 == 12) {
    TIME_PREF_0 = "afternoon";
    }
    else if (TIME_PREF_0 == 18) {
    TIME_PREF_0 = "evening";
    }
    else {
    TIME_PREF_0 = TIME_PREF_0.replace(/:00/,"");
      if (TIME_PREF_0.substr(0, 1) == "0") {
          TIME_PREF_0 = TIME_PREF_0.replace(/0/,"");
      }
    }
  document.forms["inputdata"].TIME_PREF_0.value = TIME_PREF_0;

  // time preference navrat
  var TIME_PREF_1 = document.forms["inputdata"].retTime.value;
    if (TIME_PREF_1 == "") {
    TIME_PREF_1 = "any_time";
    }
    else if (TIME_PREF_1 == 9) {
    TIME_PREF_1 = "morning";
    }
    else if (TIME_PREF_1 == 12) {
    TIME_PREF_1 = "afternoon";
    }
    else if (TIME_PREF_1 == 18) {
    TIME_PREF_1 = "evening";
    }
    else {
    TIME_PREF_1 = TIME_PREF_1.replace(/:00/,"");
      if (TIME_PREF_1.substr(0, 1) == "0") {
          TIME_PREF_1 = TIME_PREF_1.replace(/0/,"");
      }
    }
  document.forms["inputdata"].TIME_PREF_1.value = TIME_PREF_1;
// pricer preference
  var PRICER_PREF = document.forms["inputdata"].pref.value;
      if (PRICER_PREF == "onpYC") {
        PRICER_PREF = "ONP_7";
        document.forms["inputdata"].CABIN_PREF.value = "YC";
      }
      if (PRICER_PREF == "onpC") {
        PRICER_PREF = "ONP_7";
        document.forms["inputdata"].CABIN_PREF.value = "C";
       }
      if (PRICER_PREF == "avbYC") {
        PRICER_PREF = "AVB";
        document.forms["inputdata"].CABIN_PREF.value = "YC";
     }
      if (PRICER_PREF == "avbC") {
        PRICER_PREF = "AVB";
        document.forms["inputdata"].CABIN_PREF.value = "C";
      }
      if (PRICER_PREF == "mpYC") {
        PRICER_PREF = "MSP";
        document.forms["inputdata"].CABIN_PREF.value = "YC";
      }
      if (PRICER_PREF == "mpC") {
        PRICER_PREF = "MSP";
        document.forms["inputdata"].CABIN_PREF.value = "C";
    }
  document.forms["inputdata"].PRICER_PREF.value = PRICER_PREF;

// propojeno na funkci infantSum vracejici pocet infantu do promene v hidden inputu
  infantSum();
}

function datesLimits(formName) {
  if(searchMode == 'off-line') return true;
  var Ctrl = document.forms[formName];
  var field = null;
  var dnes = getServerNow(); //new Date();
  var odlet  = getWholeDate(Ctrl.depMonth.options[Ctrl.depMonth.selectedIndex].value,Ctrl.depDay.value);
  var prilet = getWholeDate(Ctrl.arrMonth.options[Ctrl.arrMonth.selectedIndex].value,Ctrl.arrDay.value);
  var posledniDen = getServerNow(); //new Date();
  var odletStr, priletStr;
  var both = (typeOfFlight == 'roundTrip' || typeOfFlight == 'other') ? true : false;

  posledniDen.setTime(Date.UTC(dnes.getFullYear(), dnes.getMonth(), dnes.getDate(), 0, 0, 0) + (331*24*60*60*1000));

  if( odlet > posledniDen) { field = Ctrl.depDay; Message = "Datum odletu může být voleno maximálně na 331 dní dopředu!"; }
  else if( prilet > posledniDen) { field = Ctrl.arrDay; Message = "Datum návratu může být voleno maximálně na 331 dní dopředu!"; }
  else if( both && (odlet > prilet)) { field = Ctrl.depDay; Message = "Datum příletu nesmí být před datem odletu!"; }
  else {
    return true;
  }
  
  if(Message.length)
    alert(Message);
  if(field != null) {
    field.focus();
    field.select();
  }
  return false;
}

function validDates(formName) {
  if(searchMode == 'off-line') return true;
  var Ctrl = document.forms[formName];
  var Message, field;
  var day1value = Ctrl.depDay.value;
  var month1value = Ctrl.depMonth.options[Ctrl.depMonth.selectedIndex].value;
  var day2value = Ctrl.arrDay.value;
  var month2value = Ctrl.arrMonth.options[Ctrl.arrMonth.selectedIndex].value;
  var both = (typeOfFlight == 'roundTrip' || typeOfFlight == 'other') ? true : false;
  
  var year1 = guessYear(day1value, month1value);
  var year2 = guessYear(day2value, month2value);

  if(month1value < 1 || month1value > 12) {field = Ctrl.depMonth; Message = "Chybně zadán měsíc odletu!"; }
  else if(both && (month2value < 1 || month2value > 12)) {field = Ctrl.arrMonth; Message = "Chybně zadán měsíc návratu!"; }
  else if(day1value < 1 || day1value > DayEnd(month1value,year1)) {field = Ctrl.depDay; Message = "Chybně zadán den odletu!"; }
  else if(both && (day2value < 1 || day2value > DayEnd(month2value,year2))) {field = Ctrl.arrDay; Message = "Chybně zadán den návratu!"; }
  else return true;

  if(Message.length)
    alert(Message);
  if(field != null) {
    field.focus();
//    field.select();
  }
  return false;
}

//kontrola datumu odletu a priletu
function checkDates(formName) {
  if(searchMode == 'off-line') return true;
  var Ctrl = document.forms[formName];
  var day1 = Ctrl.depDay;
  var month1 = Ctrl.depMonth;
  var day2 = Ctrl.arrDay;
  var month2 = Ctrl.arrMonth;
  var Message = '';
  var field = null;
  var both = (typeOfFlight == 'roundTrip' || typeOfFlight == 'other') ? true : false;
  
  if(day1 && !checkDay(day1.value)) {
    Message = "Chybně zadán den odletu!"; field = day1;
  }
  else if(month1 && !checkDay(month1.options[month1.selectedIndex].value)) {
    Message = "Chybně zadán měsíc odletu!"; field = month1;
  }
  else if(both && day2 && !checkDay(day2.value)) {
    Message = "Chybně zadán den návratu!";  field = day2;
  }
  else if(both && month2 && !checkDay(month2.options[month2.selectedIndex].value)) {
    Message = "Chybně zadán měsíc návratu!";  field = month2;
  }
  else return true;
  
  if(Message.length)
    alert(Message);
  if(field != null) {
    field.focus();
    field.select();
  }
  return false;
}

//kontrola destinaci
function checkDestination(formName) {
  var Ctrl = document.forms[formName];
  var from1 = Ctrl.from1;
  var to1 = Ctrl.to1;
  var from2 = Ctrl.from2;
  var to2 = Ctrl.to2;
  var journey = Ctrl.journey;
  var Message = '';
  var field = null;

  for(var k = 0; k < journey.length; k++) {
	if((journey[k].value == 'roundTrip' || journey[k].value == 'oneway') && journey[k].checked)
		from2 = to2 = null;
  }
  
  if(from1 && from1.type == 'text' && from1.value.length < 3) {
    Message = "Chybně zadána destinace Odkud!";  field = from1;
  }
  else if(to1 && to1.type == 'text' && to1.value.length < 3) {
    Message = "Chybně zadána destinace Kam!";  field = to1;
  }
  else if(from2 && from2.type == 'text' && from2.value.length < 3) {
    Message = "Chybně zadána destinace Odkud 2!"; field = from2;
  }
  else if(to2 && to2.type == 'text' && to2.value.length < 3) {
    Message = "Chybně zadána destinace Kam 2!"; field = to2;
  }
  else if(from1 && to1 != null && (from1.value == to1.value) ) {
    Message = "Musí být rozdílná volba odletu Odkud a Kam!"; field = from2;
  }
  else if(from1 && from1.type == 'select-one' && to1 != null && to1.type == 'select-one' && 
          from1.options[from1.selectedIndex].value == to1.options[to1.selectedIndex].value) {
    Message = "Musí být rozdílná volba odletu Odkud a Kam!"; field = from1;
  }
  else if(from2 && to2 && (from2.value == to2.value)) {
    Message = "Musí být rozdílná volba návratu Odkud a Kam!"; field = from2;
  }
  else return true;

  if(Message.length)
    alert(Message);
  if(field != null) {
    field.focus();
    field.select();
  }
  return false;
}

function checkInputData(formName)
{
//	var ok = true;
//	if (document.formName.depDay.value == 'den' || document.formName.depDay.value == '')
//	{
//		alert('Prosím vyplňte den odletu');
//		document.formName.depDay.focus();
//		ok = false;
//	}
//	if (document.formName.depMonth.value == '')
//	{
//		alert('Prosím vyplňte měsíc odletu');
//		document.formName.depMonth.focus();
//		ok = false;
//	}
//	if (document.formName.journey.value != 'oneway!)
//	{
//		if (document.formName.arrDay.value == 'den' || document.formName.arrDay.value == '')
//		{
//			alert('Prosím vyplňte den příletu');
//			document.formName.arrDay.focus();
//			ok = false;
//		}
//		if (document.formName.arrMonth.value == '')
//		{
//			alert('Prosím vyplňte měsíc příletu');
//			document.formName.arrMonth.focus();
//			ok = false;
//		}
//	}
//	alert(ok);
	return (!checkDestination(formName) || !checkDates(formName) || !validDates(formName) || !datesLimits(formName) || !ok) ? false : true;
}

function checkInputDates(formName) {
	return (!checkDates(formName) || !validDates(formName) || !datesLimits(formName)) ? false : true;
}

/***********************************************/

function directFlights(arr, total, status, start, end)
{
	var size = 0;
	for(var m = 0; m < arr.length; m++) {
		if(!arr[m]) continue;
		//iterateSwitch(arr[m][0], status, (status && !arr[m][1]) ? arr[m][2] : start, end);
		iterateSwitch(arr[m][0], status, 0, 0);	//first row
		iterateSwitch(arr[m][0], status, (status && !arr[m][1]) ? arr[m][2] : start, end); //other rows
		size++;
	}
	var	elm = document.getElementById('jsMessage');
	if(elm) {
		var message = "Podmínce nevyhovuje žádný let z aktuálně zobrazených nabídek. Pro filtrování nad všemi nabídkami použijte odkazy v horní tabulce s cenami.";
		elm.innerHTML = (!status && (size == total)) ? "<div class=\"errormessage\">" + message + "</div>" : '';
	}
}

function checkCalendars()
{
	var day0 = document.getElementsByName('day0');
	var day1 = document.getElementsByName('day1');
	var date0 = '';
	var date1 = '';
	var odlet, prilet;
	var Message = '';
	
	//alert(day0.length + " " + day1.length);
	
	if(day0 && day0.length) {
		for(var k = 0; k < day0.length; k++) {
			if(day0[k].checked)
				date0 = day0[k].value;
		}
		if(!date0.length) {
			Message = "Zvolte datum odletu!";
		}
		else if(day1 && day1.length) {
			for(var k = 0; k < day1.length; k++) {
				if(day1[k].checked)
					date1 = day1[k].value;			
			}						
			if(!date1.length) {
				Message = "Zvolte datum návratu!";
			}
			else {
  				odlet  = new Date(parseInt(date0.substr(0, 4), 10), parseInt(date0.substr(5, 2), 10) - 1, parseInt(date0.substr(8, 2), 10), 0, 0, 0);
			    prilet = new Date(parseInt(date1.substr(0, 4), 10), parseInt(date1.substr(5, 2), 10) - 1, parseInt(date1.substr(8, 2), 10), 0, 0, 0);
			    if(odlet && prilet && (prilet < odlet))
					Message = "Datum příletu nesmí být před datem odletu!";
				else
					return true;
			}
		}
		else
			return true;
	}

	if(Message.length)
		alert(Message);
	return false;	
}

function checkSpecOff()
{
	var salePoint = document.getElementsByName('salePoint');	
	var Message = '';

	if(!checkCalendars()) {
		;
	}
	else if(salePoint[0].options && !salePoint[0].options[salePoint[0].selectedIndex].value.length) {
		Message = "Zvolte místo prodeje!";
	}
	else
		return true;
		
	if(Message.length)
		alert(Message);
	return false;
}

/***********************************************/

//kontrola passengers - PNR
function checkPNR(formName) {
  var Ctrl = document.forms[formName];
  var field = null;
  var message = '';
  var titleValue = '';
  var kk;
  var delivery = getRadio(formName, "delivery");
  
  for(var k = 0; k < 10; k++) {
  	 kk = k + 1;
     eval("var exists = Ctrl.firstname"+k+";");
     if(!exists) break;
     
     eval("var title = Ctrl.title"+k+";");
     eval("var firstname = Ctrl.firstname"+k+".value;");
     eval("var surname = Ctrl.surname"+k+".value;");
     eval("var ff_prog_1 = (Ctrl.ff_prog_1"+k+") ? Ctrl.ff_prog_1"+k+".options[Ctrl.ff_prog_1"+k+".selectedIndex].value : null;");
     eval("var ff_num_1 = (Ctrl.ff_num_1"+k+") ? Ctrl.ff_num_1"+k+".value : null");
     eval("var ff_prog_2 = (Ctrl.ff_prog_2"+k+") ? Ctrl.ff_prog_2"+k+".options[Ctrl.ff_prog_2"+k+".selectedIndex].value : null;");
     eval("var ff_num_2 = (Ctrl.ff_num_2"+k+") ? Ctrl.ff_num_2"+k+".value : null");
     eval("var ff_prog_3 = (Ctrl.ff_prog_3"+k+") ? Ctrl.ff_prog_3"+k+".options[Ctrl.ff_prog_3"+k+".selectedIndex].value : null;");
     eval("var ff_num_3 = (Ctrl.ff_num_3"+k+") ? Ctrl.ff_num_3"+k+".value : null");     
     eval("var infant = Ctrl.iFirstname"+k+";");
     eval("var isBirthDate = Ctrl.day"+k+";");
     eval("var foidType = (Ctrl.identificationType"+k+") ? Ctrl.identificationType"+k+".options[Ctrl.identificationType"+k+".selectedIndex].value : null;");
     eval("var foidValue = (Ctrl.identification"+k+") ? Ctrl.identification"+k+".value : null;");

     if(isBirthDate) {
       eval("var day = Ctrl.day"+k+".options[Ctrl.day"+k+".selectedIndex].value;");
       eval("var month = Ctrl.month"+k+".options[Ctrl.month"+k+".selectedIndex].value;");
       eval("var year = Ctrl.year"+k+".options[Ctrl.year"+k+".selectedIndex].value;");
     }
     //kontrola vybrani titulu
     var choosenTitle = false;
     if(!title) choosenTitle = true;
     else if(title.length) {
       for(var z=0; z < title.length; z++) {
         if(title[z].checked == 1) {
       	   choosenTitle = true;
       	   titleValue = title[z].value;
       	   break;
         }
       }
     }
     
     if(!choosenTitle) {
       message = 'Prosím, vyberte oslovení pro cestujícího č. ' + kk;
       eval("field = Ctrl.title"+k+"[0];");
       break;     	
     }
     else if(!firstname.length || (firstname.search(regNames) == -1)) {
       if(!firstname.length)
          message = 'Prosím, zadejte jméno u cestujícího č. ' + kk;
       else
          message = 'Jméno u cestujícího č. ' + kk + ' obsahuje nepovolené znaky';
       eval("field = Ctrl.firstname"+k+";");
       break;
     }
     else if(!surname.length || (surname.search(regSurnames) == -1)) {
       if(!surname.length)
          message = 'Prosím, zadejte příjmení u cestujícího č. ' + kk;
       else
          message = 'Příjmení u cestujícího č. ' + kk + ' je neplatné nebo obsahuje některé nepovolené znaky';
       eval("field = Ctrl.surname"+k+";");
       break;
     }
     else if(!fullnameLength(surname, firstname, titleValue)) {
       message = 'Prosím, zkraťte jméno nebo příjmení u cestujícího č. ' + kk;
       eval("field = Ctrl.firstname"+k+";");
       break;
     }
     else if(isBirthDate && (day > DayEnd(month,year) ) ) {
       message = 'U cestujícího č. ' + kk + ' je chybně zadáno datum narození';
       eval("field = Ctrl.day"+k+";");
       break;
     }
     else if(isBirthDate && seniors[k] && !checkBirthDates(day, month, year, 60, 101)) {
       message = 'Cestující č. '+ kk + ' není starší než 60 let a současně mladší 101 let!';
       eval("field = Ctrl.day"+k+";");
       break;     
     }
     else if(isBirthDate && youths[k] && !checkBirthDates(day, month, year, 12, 25)) {
       message = 'Cestující č. '+ kk + ' není starší než 12 a současně mladší 25 let!';
       eval("field = Ctrl.day"+k+";");
       break;     
     }
     else if(isBirthDate && children[k] && !checkBirthDates(day, month, year, 2, 12)) {
       message = 'Cestující č. '+ kk + ' není starší než 2 roky a současně mladší 12 let!';
       eval("field = Ctrl.day"+k+";");
       break;     
     }
     else if(ff_prog_1 != null && ff_prog_1.length && !ff_num_1.length) {
       message = 'Prosím, zadejte číslo Vaší FF karty #1!';
       eval("field = Ctrl.ff_num_1"+k+";");
       break;
     }
     else if(ff_prog_1 != null && !ff_prog_1.length && ff_num_1.length) {
       message = 'Prosím, vyberte jeden z FF programů, který koresponduje s Vaší kartou #1!';
       eval("field = Ctrl.ff_prog_1"+k+";");
       break;
     }
     else if(ff_prog_1 != null && ff_num_1.length && (ff_num_1.search(regFFcard) == -1) ) {
       message = 'Chybně zadáno číslo Vaší FF karty #1!';
       eval("field = Ctrl.ff_num_1"+k+";");
       break;
     }
     else if(ff_prog_2 != null && ff_prog_2.length && !ff_num_2.length) {
       message = 'Prosím, zadejte číslo Vaší FF karty #2!';
       eval("field = Ctrl.ff_num_2"+k+";");
       break;
     }
     else if(ff_prog_2 != null && !ff_prog_2.length && ff_num_2.length) {
       message = 'Prosím, vyberte jeden z FF programů, který koresponduje s Vaší kartou #2!';
       eval("field = Ctrl.ff_prog_2"+k+";");
       break;
     }
     else if(ff_prog_2 != null && ff_num_2.length && (ff_num_2.search(regFFcard) == -1) ) {
       message = 'Chybně zadáno číslo Vaší FF karty #2!';
       eval("field = Ctrl.ff_num_2"+k+";");
       break;
     }
     else if(ff_prog_3 != null && ff_prog_3.length && !ff_num_3.length) {
       message = 'Prosím, zadejte číslo Vaší FF karty #3!';
       eval("field = Ctrl.ff_num_3"+k+";");
       break;
     }     
     else if(ff_prog_3 != null && !ff_prog_3.length && ff_num_3.length) {
       message = 'Prosím, vyberte jeden z FF programů, který koresponduje s Vaší kartou #3!';
       eval("field = Ctrl.ff_prog_3"+k+";");
       break;
     }
     else if(ff_prog_3 != null && ff_num_3.length && (ff_num_3.search(regFFcard) == -1) ) {
       message = 'Chybně zadáno číslo Vaší FF karty #3!';
       eval("field = Ctrl.ff_num_3"+k+";");
       break;
     }
     else if(delivery == 'ETK' && foidType != null && !foidType.length) {
       message = 'Prosím, vyberte způsob identifikace cestujícího ' + kk + ' v rámci elektronické letenky!';
       eval("field = Ctrl.identificationType"+k+";");
       break;
     }
     else if(delivery == 'ETK' && foidType != null && foidType != 'CL' && !foidValue.length) {
       message = 'Prosím, zadejte hodnotu identifikace cestujícího ' + kk + ' v rámci elektronické letenky!';
       eval("field = Ctrl.identification"+k+";");
       break; 
     }
     
     if(infant) { //kontrola polozek pro Infanty
       eval("var iFirstname = Ctrl.iFirstname"+k+".value;");
       eval("var iSurname = Ctrl.iSurname"+k+".value;");
       eval("var iDay = Ctrl.iDay"+k+".options[Ctrl.iDay"+k+".selectedIndex].value;");
       eval("var iMonth = Ctrl.iMonth"+k+".options[Ctrl.iMonth"+k+".selectedIndex].value;");
       eval("var iYear = Ctrl.iYear"+k+".options[Ctrl.iYear"+k+".selectedIndex].value;");
       
       if(!iFirstname.length || (iFirstname.search(regInfNames) == -1)) {
          if(!iFirstname.length)
            message = 'Prosím, zadejte jméno dítěte do 2 let u cestujícího č. ' + kk  + ' (bez mezer)';
          else
            message = 'Jméno dítěte do 2 let u cestujícího č. ' + kk  + ' obsahuje nepovolené znaky';
          eval("field = Ctrl.iFirstname"+k+";");
          break;
       }
       else if(!iSurname.length || (iSurname.search(regInfSurnames) == -1)) {
          if(!iSurname.length)
       	    message = 'Prosím, zadejte příjmení dítěte do 2 let u cestujícího č. ' + kk + ' (bez mezer)';
       	  else
       	    message = 'Příjmení dítěte do 2 let u cestujícího č. ' + kk  + ' je neplatné nebo obsahuje některé nepovolené znaky';
          eval("field = Ctrl.iSurname"+k+";");
          break;
       }
       else if(!fullnameLength(iSurname, iFirstname, "")) {
          message = 'Prosím, zkraťte jméno nebo příjmení dítěte do 2 let u cestujícího č. ' + kk;
          eval("field = Ctrl.iFirstname"+k+";");
          break;
       }
       else if(iDay > DayEnd(iMonth,iYear)) {
       	  message = 'Chybně zadáno datum narození dítěte do 2 let u cestujícího č. '+ kk;
          eval("field = Ctrl.iDay"+k+";");
          break;
       }
       else if(!checkBirthDates(iDay, iMonth, iYear, 0, 2)) {
       	  message = 'Dítě u cestujícího č. ' + kk + ' není v den odletu mladší 2 let!';
          eval("field = Ctrl.iDay"+k+";");
          break;
       }
     }
  }
  if(!message.length) { 
  	var checkAddress = deliveryType(formName);
    trim(Ctrl.email);
	trim(Ctrl.phone1);
	trim(Ctrl.phone2);
    //kontrola sekce kontakt
	if(delivery == 'ETK' && !Ctrl.email.value.length) {
	   message = 'Pro elektronický tiketing je třeba zadat emailovou adresu jako kontaktní údaj!';
       field = Ctrl.email;
	}
    else if(!Ctrl.phone1.value.length && !Ctrl.phone2.value.length && !Ctrl.email.value.length) {
       message = 'Prosím zadejte Tel. 1, Tel. 2 nebo E-mail!';
       field = Ctrl.phone1;
    }
    else if(Ctrl.phone1.value.length && Ctrl.phone1.value.search(regContact) == -1 ) {
       message = 'Chybně zadán Telefon 1!';
       field = Ctrl.phone1;
    }
    else if(Ctrl.phone2.value.length && Ctrl.phone2.value.search(regContact) == -1 ) {
       message = 'Chybně zadán Telefon 2!';
       field = Ctrl.phone2;
    }
    else if(Ctrl.email.value.length && Ctrl.email.value.search(regemail) == -1) {
       message = 'Chybně zadán E-mail!';
       field = Ctrl.email;
    }
    else if(compulsoryPhone && compulsoryPhone == 1 && !Ctrl.phone1.value.length && !Ctrl.phone2.value.length) {
       message = 'Prosím zadejte Tel. 1 nebo Tel. 2!';
       field = Ctrl.phone1;           
    }
    else if(compulsoryEmail && compulsoryEmail == 1 && !Ctrl.email.value.length) {
       message = 'Prosím zadejte E-mail!';
       field = Ctrl.email;           
    }
    //kontrola sekce zpusob doruceni
    else if(Ctrl.delivery && !delivery) {
		message = 'Prosím, vyberte způsob doručení!';    
    }
	else if(Ctrl.delivery && !deliveryOffice(formName)) {
		if(delivery == 'TBM' || delivery == 'TBC')
			message = 'Prosím, vyberte místo vystavení!';
		else
			message = 'Prosím, vyberte místo doručení!';
	}	    
    //kontrola sekce postovni adresa
    else if(checkAddress) {
	    if(Ctrl.aname && (!Ctrl.aname.value.length || Ctrl.aname.value.search(regSurnames) == - 1)) {
	       if(!Ctrl.aname.value.length)
	          message = 'Vyplňte prosím jméno v adrese doručení!';
	       else
	          message = 'Jméno v adrese doručení obsahuje nepovolené znaky!';
	       field = Ctrl.aname;    	
	    }
	    else if(Ctrl.astreet && (!Ctrl.astreet.value.length || Ctrl.astreet.value.search(regContact) == -1) ) {
	       if(!Ctrl.astreet.value.length)
	          message = 'Vyplňte prosím ulici v adrese doručení!';
	       else
	          message = 'Ulice v adrese doručení obsahuje nepovolené znaky!';
	       field = Ctrl.astreet;
	    }
	     else if(Ctrl.atown && (!Ctrl.atown.value.length || Ctrl.atown.value.search(regContact) == -1) ) {
	       if(!Ctrl.atown.value.length)
	          message = 'Vyplňte prosím položku město v adrese doručení!';
	       else
	          message = 'Město v adrese doručení obsahuje nepovolené znaky!';
	       field = Ctrl.atown;
	    }
	    else if(Ctrl.azip && (!Ctrl.azip.value.length || Ctrl.azip.value.search(regContact) == -1) ) {
	       if(!Ctrl.azip.value.length)
	          message = 'Vyplňte prosím položku PSČ v adrese doručení!';
	       else
	          message = 'PSČ v adrese doručení obsahuje nepovolené znaky!';
	       field = Ctrl.azip;
	    }
	    /*
	    else if(Ctrl.acountry && !Ctrl.acountry.options[Ctrl.acountry.selectedIndex].value) {
	       message = 'Prosím, vyberte zemi v adrese doručení!';
	       field = Ctrl.state;
	    }
	    */
	    else if(Ctrl.acountry && (!Ctrl.acountry.value.length || Ctrl.acountry.value.search(regContact) == -1)) {
	       if(!Ctrl.acountry.value.length)
			   message = 'Prosím, vyplňte zemi v adrese doručení!';
		   else
		   	   message = 'Země v adrese doručení obsahuje nepovolené znaky!';
	       field = Ctrl.acountry;
	    }
    }
  }

  if(message.length)
    alert(message);
  else
    return true;
  if(field != null) {
    field.focus();
    if(field.type == 'text')
      field.select();
  }
  return false;
}

/***********************************************/

//kontrola - Credit card
function checkCC() {
  var Ctrl = document.forms['creditform'];
  var field = null;
  var message = '';
  var checkPayment = paymentType('creditform');
    
  Ctrl.creditNumber.value = removeSeparator(Ctrl.creditNumber.value);
  if(checkPayment) {
      //kontrola sekce kreditni karta	
      if(Ctrl.cardHolder && Ctrl.cardHolder.type == 'text' && (!Ctrl.cardHolder.value.length || Ctrl.cardHolder.value.search(regSurnames) == -1) ) {
         if(!Ctrl.cardHolder.value.length)
            message = 'Prosím, zadejte jméno a příjmení majitele platební karty!';
         else
            message = 'Jméno nebo příjmení majitele platební karty je neplatné nebo obsahuje některé nepovolené znaky!';
         field = Ctrl.cardHolder;
      }
      else if(!Ctrl.creditType.options[Ctrl.creditType.selectedIndex].value.length) {
         message = 'Prosím, vyberte druh platební karty!';
         field = Ctrl.creditType;
      }
      else if(!Ctrl.creditNumber.value.length || !check_CCnumber(Ctrl.creditNumber.value,Ctrl.creditType.options[Ctrl.creditType.selectedIndex].value)) {
         message = 'Chybně zadáno číslo platební karty!';
         field = Ctrl.creditNumber;
      }
      else if(!notExpired(Ctrl.exp_month.options[Ctrl.exp_month.selectedIndex].value, Ctrl.exp_year.options[Ctrl.exp_year.selectedIndex].value)) {
         message = 'Pozor, skončila Vám doba platnosti kreditní karty!';
         field = Ctrl.exp_month;
      }
      else if(Ctrl.billingAddress1 && (!Ctrl.billingAddress1.value.length || Ctrl.billingAddress1.value.search(regContact) == -1) ) {
         if(!Ctrl.billingAddress1.value.length)
            message = 'Nevyplněna adresa držitele platební karty evidované u vydávající banky!';
         else
            message = 'Adresa držitele platební karty evidované u vydávající banky obsahuje nepovolené znaky!';
         field = Ctrl.billingAddress1;
      }
      else if(Ctrl.billingAddress2 && (Ctrl.billingAddress2.value.length && Ctrl.billingAddress2.value.search(regContact) == -1) ) {
         message = 'Druhý řádek adresy držitele platební karty evidované u vydávající banky obsahuje nepovolené znaky!';
         field = Ctrl.billingAddress2;
      }
      else if(Ctrl.billingCity && (!Ctrl.billingCity.value.length || Ctrl.billingCity.value.search(regContact) == -1) ) {
         if(!Ctrl.billingCity.value.length)
            message = 'Nevyplněno město v adrese držitele platební karty evidované u vydávající banky!';
         else
            message = 'Město v adrese držitele platební karty evidované u vydávající banky obsahuje nepovolené znaky!';
         field = Ctrl.billingCity;
      }
      else if(Ctrl.billingZIP && (!Ctrl.billingZIP.value.length || Ctrl.billingZIP.value.search(regContact) == -1) ) {
         if(!Ctrl.billingZIP.value.length)
            message = 'Nevyplěno PSČ v adrese držitele platební karty evidované u vydávající banky!';
         else
            message = 'PSČ v adrese držitele platební karty evidované u vydávající banky obsahuje nepovolené znaky!';
         field = Ctrl.billingZIP;
      }
      else if(!Ctrl.billingCountry.options[Ctrl.billingCountry.selectedIndex].value.length) {
         message = 'Prosím, vyberte zemi v adrese držitele platební karty evidované u vydávající banky!';
         field = Ctrl.billingCountry;
      }
      else if(Ctrl.billingCountry.options[Ctrl.billingCountry.selectedIndex].value == 'US' && 
              !Ctrl.billingState.options[Ctrl.billingState.selectedIndex].value) {
         message = 'Prosím, vyberte stát v USA!';
         field = Ctrl.billingState;
      }
  }
  if(!message.length && Ctrl.agree && !Ctrl.agree.checked) {
     message = "Pro pokračování prosím označte, že souhlasíte s podmínkami";
     field = Ctrl.agree;
  }
    
  if(!message.length) return true;

  alert(message);
  if(field != null) {
    field.focus();
    if(field.type == 'text')
      field.select();
  }
  return false; 
}

/***********************************************/

function checkLogin(formName)
{
	var Ctrl = document.forms[formName];
	var message = '';
	
	if(!Ctrl.login.value.length) {
		message = 'Vyplňte prosím položku login';
		field = Ctrl.login;
	}
	else if(!Ctrl.password.value.length) {
		message = 'Vyplňte prosím položku heslo';
		field = Ctrl.password;	
	}
	
    if(!message.length) return true;
    alert(message);
    if(field != null) {
      field.focus();
      if(field.type == 'text')
        field.select();
    }
	return false; 	
}

/***********************************************/

function checkRule(formName)
{
	var message = '';
	if(!getRadio(formName, 'rule')) {
		message = "Vyberte pravidlo z nalezených tarifních podmínek";
		alert(message);
		return false;
	}
	return true;
}

/***********************************************/
function checkFare(formName)
{
	var val = getRadio(formName, 'fareId');
	if(!val || !val.length) {
		alert("Nebyla vybrána žádná nabídka");
		return false;
	}
	return true;
}
/***********************************************/

