// JavaScript Document
function checkOrderForm(form, lang)
{
  // Mandatory fields
  var mandatory = 
    new Array('cnt_name', 'cnt_firm', 'cnt_ico', 'cnt_icdph', 'cnt_street', 'cnt_city', 'cnt_country', 'cnt_deliv_email', 'trans_to', 'trans_from', 'trans_page_count', 'trans_deadline_day', 'trans_deadline_hour', 'trans_attachment1');

  var mandatoryNameSK = 
    new Array('Meno a priezvisko', 'Názov spoločnosti', 'IČO', 'IČ DPH', 'Ulica', 'Mesto + PSČ', 'Krajina', 'Dodací e-mail', 'Preložiť z jazyka', 'Preložiť do jazyka', 'Počet strán', 'Preklad dodať do: dátum', 'Preklad dodať do: čas', 'Príloha');
  var mandatoryNameEN = 
    new Array('Name and Surname', 'Company Name', 'ID No.', 'VAT ID No.', 'Street', 'Postal Code + City', 'Country', 'Delivery e-mail', 'Translate from (language)', 'Translate to (language)', 'Number of pages', 'Send the translation on: date', 'Send the translation on: time', 'Attachment');
  var mandatoryNameDE = 
	new Array('Vor- und Nachname', 'Name der Gesellschaft', 'Firmennummer', 'USt,-Identifikationsnummer', 'Straße + Haus-Nr.', 'Stadt + PLZ', 'Land', 'Liefer-E-Mail-Adresse', 'Übersetzung aus der Sprache', 'Übersetzung in die Sprache', 'Seitenzahl', 'Übersetzung bis: Lieferdatum', 'Übersetzung bis: Lieferzeit', 'Anhang');

  var ok = true;
  
  var msg = '';
  if ( lang == 'sk')
    msg = 'Nezadali ste nasledovné položky:\n';
  else if ( lang == 'en' )
    msg = 'Please provide the following information:\n';
  else if ( lang == 'de' )
    msg = 'Sie haben die folgenden Daten nicht eingegeben:\n';

  for ( var i=0; i<mandatory.length; i++ )
  {
      var element = document.getElementsByName(mandatory[i]);
      if ( element[0].value == '' )
      {
        var fieldName = ''; 
        if ( lang == 'sk')
          fieldName = mandatoryNameSK[i];
        else if ( lang == 'en' )
          fieldName = mandatoryNameEN[i];
        else if ( lang == 'de' )
          fieldName = mandatoryNameDE[i];

        msg += ' ' + fieldName + '\n';
        ok = false;
      }
  }
   
	if ( !ok )
	{
		alert(msg);
		return false;
	}

  // At least one field from a group is mandatory 
  var mandatoryGroup = 
    new Array(['cnt_phone', 'cnt_email']);

  var mandatoryGroupNamesSK = 
    new Array(['Telefón', 'Kontaktný e-mail']);
  var mandatoryGroupNamesEN = 
    new Array(['Telephone', 'E-mail (Contact)']);
  var mandatoryGroupNamesDE = 
    new Array(['Rufnummer', 'E-Mail-Adresse']);

  ok = true;

  var msg = '';
  if ( lang == 'sk')
    msg = 'Zadajte aspoň jednu z položiek:\n';
  else if ( lang == 'en' )
    msg = 'Please fill at least one of the following fields:\n';
  else if ( lang == 'de' )
    msg = 'Bitte mindestens eine der Angaben eingeben:\n';

  for ( var i=0; i<mandatoryGroup.length; i++ )
  {
    var mergedElements = '';
    for ( j=0; j<mandatoryGroup[i].length; j++ )
      mergedElements += (document.getElementsByName(mandatoryGroup[i][j]))[0].value;

    if ( mergedElements == '' )
    { 
      ok = false;
      
      for ( k=0; k<mandatoryGroup[i].length; k++ )
      {
        var fieldName = ''; 
        if ( lang == 'sk')
          fieldName = mandatoryGroupNamesSK[i][k];
        else if ( lang == 'en' )
          fieldName = mandatoryGroupNamesEN[i][k];
        else if ( lang == 'de' )
          fieldName = mandatoryGroupNamesDE[i][k];
      
        msg += ' ' + fieldName;
        if ( k != mandatoryGroup[i].length-1 )
          msg += ' &';
      }
      msg += '\n';
    }
  }

	if ( !ok )
	{
		alert(msg);
		return false;
	}
   
  // Checkboxes ...
  var checkBoxGroup = 
    new Array(['trans_format[]', 'trans_format_other']);

  var checkBoxGroupNamesSK = 
    new Array(['Formát dokumentu', 'Iný formát dokumentu']);
  var checkBoxGroupNamesEN = 
    new Array(['Document format', 'Other document format']);
  var checkBoxGroupNamesDE = 
    new Array(['Dokumentformat', 'Anderes Dokumentformat']);

  var bChecked = false;
  var checks = document.getElementsByName(checkBoxGroup[0][0]);
  for ( i=0; i<checks.length; i++ )
    if ( checks[i].checked )
      bChecked = true;
  
  if ( !bChecked && document.getElementsByName(checkBoxGroup[0][1])[0].value == '' )
  {
    var msg = '';
    if ( lang == 'sk')
    {
      msg = 'Zadajte aspoň jednu z položiek:\n';
      msg += checkBoxGroupNamesSK[0][0] + ' & ' + checkBoxGroupNamesSK[0][1] + '\n';
    }
    else if ( lang == 'en' )
    {
      msg = 'Please fill at least one of the following fields:\n';
      msg += checkBoxGroupNamesEN[0][0] + ' & ' + checkBoxGroupNamesEN[0][1] + '\n';
    }
    else if ( lang == 'de' )
    {
      msg = 'Bitte mindestens eine der Angaben eingeben:\n';
      msg += checkBoxGroupNamesDE[0][0] + ' & ' + checkBoxGroupNamesDE[0][1] + '\n';
    }
  
    alert(msg);
    
    return false;
  }

  // Do data have sense ?
	var email  = form.cnt_email.value;
	var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if ( email != "" )
		if ( !emailFilter.test(email) )
		{
      var msg = ''; 
      if ( lang == 'sk')
        msg = 'E-mail adresa (kontakt) nie je platná!';
      else if ( lang == 'en' )
        msg = 'E-mail address (contact) is not valid!';
      else if ( lang == 'de' )
		msg = 'Die E-Mail-Adresse ist nicht gültig!';
		
			alert(msg);
			return false;
		}

	email = form.cnt_deliv_email.value;
	if ( email != "" )
		if ( !emailFilter.test(email) )
		{
      var msg = ''; 
      if ( lang == 'sk')
        msg = 'E-mail adresa (dodacia) nie je platná!';
      else if ( lang == 'en' )
        msg = 'E-mail address (delivery) is not valid!';
      else if ( lang == 'de' )
		msg = 'Die Liefer-E-Mail-Adresse ist nicht gültig!';

			alert(msg);
			return false;
		}
	
	var datum = form.trans_deadline_day.value;
	var dateFilter = /^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/;
	if ( datum != "" )
		if( !dateFilter.test(datum) )
		{
      var msg = ''; 
      if ( lang == 'sk')
        msg = "Preklad mi dodajte dňa =>\nDátum nie je platný!\nZadajte v tvare \'dd.mm.rrrr\'.";
      else if ( lang == 'en' )
        msg = "Please send the translation on: =>\nDate is not valid!\nUse \'dd.mm.yyyy\' format.";
      else if ( lang == 'de' )
		msg = "Die Übersetzung bitte am folgenden Tag an mich liefern =>\nDas Datum ist nicht gültig!\nGeben Sie das Datum bitte im Format \'TT.MM.JJJJ\' ein.";

			alert(msg);
			return false;
		}

	var cas = form.trans_deadline_hour.value;
	var timeFilter = /^[0-9]{1,2}\:[0-9]{2}$/;
	if ( cas != "" )
		if( !timeFilter.test(cas) )
		{
      var msg = ''; 
      if ( lang == 'sk')
        msg = "Preklad mi dodajte dňa =>\nČas nie je platný!\nZadajte v tvare \'hh:mm\'.";
      else if ( lang == 'en' )
        msg = "Please send the translation on: =>\nTime is not valid!\nUse \'hh:mm\' format.";
      else if ( lang == 'de' )
		msg = "Die Übersetzung bitte am folgenden Tag an mich liefern =>\nDie Zeit ist nicht gültig!\nGeben Sie die Zeit bitte im Format \'SS:MM\' ein.";

			alert(msg);
			return false;
		}

	var vopelement = document.getElementsByName('vop');
	if ( !vopelement[0].checked )
	{
		var msg = ''; 
		if ( lang == 'sk')
			msg = "Prosím potvrďte, že súhlasíte s obchodnými podmienkami.";
		else if ( lang == 'en' )
			msg = "Please, confirm that you agree with Business Terms and Conditions.";
		else if ( lang == 'de' )
			msg = "Bitte bestätigen Sie, daß Sie mit den Allgemeinen Geschäftsbedingungen einverstanden sind.";

		alert(msg);
		return false;
	}
	
	return true;
}

// Application form (only in SK language)
function checkAppForm(form, lang)
{
  // Mandatory fields
    var mandatory = 
    new Array('cnt_name', 'cnt_age', 'cnt_address', 'cnt_phone', 'cnt_email', 'trans_to',
    	'trans_from', 'interpt_to', 'interpt_from', 'trans_np_week', 'edu_lang', 
 			'edu_other', 'trans_attachment');

  var mandatoryName = 
    new Array('Meno a priezvisko', 'Vek', 'Adresa', 'Telefón/mobil', 'E-mail', 'Prekladám do jazykov', 
    	'Prekladám z jazykov', 'Tlmočím do jazykov', 'Tlmočím z jazykov', 
    	'Počet NS za týždeň', 'Najvyššie dosiahnuté vzdelanie (jazykové)', 'Najvyššie dosiahnuté vzdelanie (iné)', 
    	'Príloha');
  var mandatoryNameEN = 
    new Array('Full name', 'Age', 'Address', 'Phone/mobile', 'E-mail', 'I provide translations into', 
    	'I provide translations from', 'I interpret into', 'I interpret from', 
    	'Number of pages per week', 'Highest achieved education (linguistic)', 'Highest achieved education (non-linguistic)', 
    	'Attachment');
  var mandatoryNameDE = 
    new Array('Vor- und Nachname', 'Alter', 'Adresse', 'Festnetz-/Mobiltelefon', 'E-Mail-Adresse', 'Ich übersetze in folgende Sprachen', 
		'Ich übersetze aus den Sprachen', 'Ich dolmetsche in die Sprachen', 'Ich dolmetsche aus den Sprachen', 
    	'Anzahl der Normseiten pro Woche', 'Höchste erreichte Bildungsstufe (sprachliche Bildung)', 'Höchste erreichte Bildungsstufe (sonstige Bildung)', 
    	'Anhang');

  var ok = true;
  
  var msg = 'Nezadali ste nasledovné položky:\n';
  for ( var i=0; i<mandatory.length; i++ )
  {
      var element = document.getElementsByName(mandatory[i]);
      if ( element[0].value == '' )
      {
		var fieldName = '';
		if (lang == 'sk')
		{
			fieldName = mandatoryName[i];
		}
		else if ( lang == 'en' )
		{
			msg = 'Please provide the following information:\n';
			fieldName = mandatoryNameEN[i];
		}
		else if ( lang == 'de' )
		{
			msg = 'Sie haben die folgenden Daten nicht eingegeben:\n';
			fieldName = mandatoryNameDE[i];
		}
		
        msg += ' ' + fieldName + '\n';
        ok = false;
      }
  }
   
	if ( !ok )
	{
		alert(msg);
		return false;
	}

	// Checkboxes and radio buttons
	var mandatoryChkRadio =
		new Array('trans_work_ability[]', 'equ_pc', 'equ_other_pc', 
			'equ_email', 'equ_other_email', 
			'equ_scan', 'equ_print','equ_fax', 'know_graphics', 'know_trados', 
			'know_webdesign', 'authentification');

	var mandatoryChkRadioName =
		new Array('Kedy môžem prekladať', 'Mám vlastný počítač', 'Mám iný prístup k počítaču', 
			'Mám stály prístup na e-mail', 'Mám iný prístup na e-mail',
 			'Mám scanner', 'Mám tlačiareň', 'Mám fax', 'Ovládam grafiku', 'Aktívne pracujem v TRADOSe', 
 			'Viem vytvárať internetové stránky', 'Potvrďte, že ste údaje vyplnili pravdivo');

	var mandatoryChkRadioNameEN =
		new Array('When I\'m available?', 'I have my own computer', 'I have access to a computer', 
			'I have permanent access to e-mail', 'I have other access to e-mail',
 			'I have a scanner', 'I have a printer', 'I have a fax machine', 'I can work with graphic design', 'I actively work with TRADOS', 
 			'I can create websites', 'Please confirm, that the information provided on this form is true');

	var mandatoryChkRadioNameDE =
		new Array('Wann kann ich übersetzen?', 'Ich habe meinen eigenen Rechner', 'Ich habe Zugang zu einem anderen Rechner', 
			'Ich habe permanenten Zugang zu meinen E-Mails', 'Ich habe einen anderen Zugang zu meinen E-Mails',
 			'Ich habe einen Scanner', 'Ich habe einen Drucker', 'Ich habe ein Faxgerät', 'Ich beherrsche Grafikprogramme', 'Ich habe Erfahrung mit TRADOS', 
 			'Ich kann Websites erstellen', 'Bestätigen Sie bitte, dass Sie die Angaben wahrheitsgemäß gemacht haben');

  msg = 'Nezadali ste nasledovné položky:\n';
  for ( var i=0; i<mandatoryChkRadio.length; i++ )
  {
  		var bPartChecked = false;
      var checks = document.getElementsByName(mandatoryChkRadio[i]);
		  for ( j=0; j<checks.length; j++ )
				if ( checks[j].checked )
					bPartChecked = true;
      
      if ( !bPartChecked )
      {
		var fieldName = '';
		if ( lang == 'sk' )
		{
			fieldName = mandatoryChkRadioName[i];
		}
		else if ( lang = 'en' )
		{
			msg = 'Please provide the following information:\n';
			fieldName = mandatoryChkRadioNameEN[i];
		}
		else if ( lang = 'de' )
		{
			msg = 'Sie haben die folgenden Daten nicht eingegeben:\n';
			fieldName = mandatoryChkRadioNameDE[i];
		}
		
        msg += ' ' + fieldName + '\n';
        ok = false;
      }
  }
   
	if ( !ok )
	{
		alert(msg);
		return false;
	}
  
  // At least one field from a group is mandatory 
	if ( form.curr_study.value != '' && form.curr_year.value == '' )
	{
		var alertTxt = '';
		if ( lang == 'sk' )
			alertTxt = 'Zadajte aj ročník štúdia!';
		else if ( lang == 'en' )
			alertTxt = 'Please enter the year of your studies as well!';
		else if ( lang == 'de' )
			alertTxt = 'Bitte auch das Studienjahr angeben!';
		
		alert(alertTxt);
		return false;
	}
	
	var bFirmChecked = false;
	var bHasFirm = false;
  var checks = document.getElementsByName('curr_firm');
  for ( j=0; j<checks.length; j++ )
	{
		if ( checks[j].checked )
			bFirmChecked = true;

		if ( checks[j].checked && checks[j].value == 'áno' )
			bHasFirm = true;
	}
	
	if ( bHasFirm && (form.curr_ico.value == '' || form.curr_dic.value == '') )
	{
		var alertTxt = '';
		if ( lang == 'sk' )
			alertTxt = 'Zadajte aj IČO a DIČ!';
		else if ( lang == 'en' )
			alertTxt = 'Please indicate your Company Registration Number and your Tax Identification Number!';
		else if ( lang == 'de' )
			alertTxt = 'Bitte auch die Steuernummer und die USt,-Identifikationsnummer angeben!';

		alert(alertTxt);
		return false;
	}
	if ( !bFirmChecked )
	{
		var alertTxt = '';
		if ( lang == 'sk' )
			alertTxt = 'Nezadali ste položku:\n Mám živnosť/firmu';
		else if ( lang == 'en' )
			alertTxt = 'You have not entered the following information:\n I am self-employed/I own a company';
		else if ( lang == 'de' )
			alertTxt = 'Sie haben Folgendes nicht angegeben:\n Ich bin ein Freiberufler/Ich habe eine Firma';

		alert(alertTxt);
		return false;
	}

	var bGotTransDomain = false;
  var checks = document.getElementsByName('trans_domain[]');
  for ( j=0; j<checks.length; j++ )
		if ( checks[j].checked && checks[j].value != 'iné' )
			bGotTransDomain = true;
	
	if ( !bGotTransDomain && form.trans_domain_other.value == '')
	{
		var alertTxt = '';
		if ( lang == 'sk' )
			alertTxt = 'Zadajte v ktorej oblasti prekladáte!';
		else if ( lang == 'en' )
			alertTxt = 'Please indicate your field of specialisation!';
		else if ( lang == 'de' )
			alertTxt = 'Geben Sie bitte an, in welchem Bereich Sie übersetzen!';

		alert(alertTxt);
		return false;
	}

	var bGotMotherTongue = false;
  var checks = document.getElementsByName('trans_mother_tongue');
  for ( j=0; j<checks.length; j++ )
		if ( checks[j].checked && checks[j].value != 'iný' )
			bGotMotherTongue = true;

	if ( !bGotMotherTongue && form.trans_mother_tongue_other.value == '' )
	{
		var alertTxt = '';
		if ( lang == 'sk' )
			alertTxt = 'Nezadali ste Váš materiský jazyk!';
		else if ( lang == 'en' )
			alertTxt = 'You have not indicated your mother tongue!';
		else if ( lang == 'de' )
			alertTxt = 'Sie haben Ihre Muttersprache nicht angegeben!';

		alert(alertTxt);
		return false;
	}

	// Do data have sense ?	var email  = form.cnt_email.value;
	var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if ( email != "" )
		if ( !emailFilter.test(email) )
		{
			if ( lang == 'sk' )
				msg = 'E-mailová adresa nie je platná!';
			else if ( lang == 'en' )
				msg = 'The e-mail address is not valid!';
			else if ( lang == 'de' ) 				
				msg = 'Die E-Mail-Adresse ist nicht gültig!';			
		
			alert(msg);
			return false;
		}

	var age = form.cnt_age.value;
	var ageFilter = /^[0-9]{2}$/;
	if ( age != "" )
		if( !ageFilter.test(age) )
		{
			if ( lang == 'sk' )
				msg = "Vek '" + age + "' nie je platný!\nZadajte dvojciferné číslo!";
			else if ( lang == 'en' )
				msg = "The age '" + age + "' is not valid!\nPlease insert a double-digit number!";
			else if ( lang == 'de' ) 				
				msg = "Das Alter '" + age + "' ist nicht gültig!\nBitte eine zweistellige Zahl angeben!";

			alert(msg);
			return false;
		}

	var np = form.trans_np_week.value;
	var npFilter = /^[0-9]{1,}$/;
	if ( np != "" )
		if( !npFilter.test(np) )
		{
			if ( lang == 'sk' )
				msg = "Dokážem preložiť '" + np + "' stránok za týždeň. Číslo nie je platné!";
			else if ( lang == 'en' )
				msg = "I am able to translate '" + np + "' pages per week => The number is not valid!";
			else if ( lang == 'de' ) 				
				msg = "Ich kann '" + np + "' Seiten pro Woche übersetzen. Die Zahl ist nicht gültig!";
				
			alert(msg);
			return false;
		}

	return true;
}


function stopRKey(evt) 
{
	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

	if ( evt.keyCode==13 && node.type=="text" )  
	{
		return false;
	}
  
}

document.onkeypress = stopRKey;
