// JavaScript Document

function validateFormOnSubmit(theForm) {
var reason = "";
  reason += validateEmpty(theForm.denumire_firma,'Introduceti denumirea unitatii de cazare');
  reason += validateEmpty(theForm.select6,'Alegeti tipul unitatii de cazare');
  reason += validateEmpty(theForm.persoana_contact,'Introduceti numele persoanei de contact');
  reason += validateEmpty(theForm.functie,'Introduceti functia persoanei de contact');
  reason += validatePhone(theForm.telefon);
  reason += validateEmpty(theForm.adresa,'Introduceti adresa unitatii de cazare');
  reason += validatePostalCode(theForm.cod_postal,'Introduceti codul postal');
  reason += validateEmpty(theForm.judet,'Introduceti judetul in care este situata unitatea de cazare');
  reason += validateEmpty(theForm.oras,'Introduceti orasul in care este situata unitatea de cazare');
  reason += validateEmpty(theForm.country,'Introduceti tara in care este situata unitatea de cazare');
  reason += validateEmail(theForm.emailopt,'de contact');
  reason += validateEmpty(theForm.nume_firma,'Introduceti denumirea firmei');
  reason += validateEmpty(theForm.sediu_address,'Introduceti adresa sediului');
  reason += validateEmpty(theForm.cui,'Introduceti Codul Unic de Inregistrare sau CNP');
  //reason += validateEmpty(theForm.nrc,'Introduceti numarul de inregistrare de la Oficiul Registrului Comertului');
  reason += validateEmail(theForm.email,'de utilizator'); 
  reason += validatePassword(theForm.pass1);
  reason += validatePassword(theForm.pass2);
  reason += validateEmpty(theForm.user_code,'Introduceti codul de validare'); 
  reason += validateCheckBox(theForm.termen);
  
  var i = theForm.counter.value;
  if (i == 2) {
	reason += validateEmpty(theForm.persoana_contact1,'Introduceti numele celei de-a doua persoana de contact');
  	reason += validateEmpty(theForm.functie1,'Introduceti functia celei de-a doua persoana de contact');
  	reason += validatePhone(theForm.telefon1);
  }
  if (i == 3) {
	reason += validateEmpty(theForm.persoana_contact1,'Introduceti numele celei de-a doua persoana de contact');
  	reason += validateEmpty(theForm.functie1,'Introduceti functia celei de-a doua persoana de contact');
  	reason += validatePhone(theForm.telefon1);
	reason += validateEmpty(theForm.persoana_contact2,'Introduceti numele celei de-a treia persoana de contact');
	reason += validateEmpty(theForm.functie2,'Introduceti functia celei de-a treia persoana de contact');
	reason += validatePhone(theForm.telefon2);
  }
      
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}


function validateAgencyRegister(theForm) {
var reason = "";
  reason += validateEmpty(theForm.denumire_agentie,'Introduceti denumirea agentiei de turism');
  reason += validateEmail(theForm.emailContact,'de contact');
  reason += validatePhone(theForm.telefon);
  reason += validateEmpty(theForm.adresa,'Introduceti adresa agentiei de turism');
  reason += validatePostalCode(theForm.cod_postal,'Introduceti codul postal');
  reason += validateEmpty(theForm.judet,'Alegeti judetul in care este situata agentia de turism');
  reason += validateEmpty(theForm.oras,'Alegeti orasul in care este situata agentia de turism');
  reason += validateEmpty(theForm.Country,'Introduceti tara in care este situata agentia de turism');
  reason += validateEmpty(theForm.nume_agency,'Introduceti denumirea societatii');
  reason += validateEmpty(theForm.sediu_address,'Introduceti adresa sediului');
  reason += validateEmpty(theForm.cui,'Introduceti Codul Unic de Inregistrare sau CNP');
  reason += validateEmail(theForm.email,'de utilizator'); 
  reason += validatePassword(theForm.pass1);
  reason += validatePassword(theForm.pass2);
  reason += validateEmpty(theForm.user_code,'Introduceti codul de validare'); 
      
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateDateAgencyAuth(theForm) {
var reason = "";
  reason += validateEmail(theForm.email,'de utilizator'); 
      
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateDateAgencies(theForm) {
var reason = "";
  reason += validateEmpty(theForm.denumire_agentie,'Introduceti denumirea agentiei de turism');
  reason += validateEmail(theForm.emailContact,'de contact');
  reason += validatePhone(theForm.telefon);
  reason += validateEmpty(theForm.nume_agency,'Introduceti denumirea societatii');
  reason += validateEmpty(theForm.sediu_address,'Introduceti adresa sediului');
  reason += validateEmpty(theForm.cui,'Introduceti Codul Unic de Inregistrare sau CNP');
      
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateDateGeneraleAgency(theForm) {
var reason = "";
  reason += validateEmpty(theForm.adresa,'Introduceti adresa agentiei de turism');
  reason += validatePostalCode(theForm.cod_postal,'Introduceti codul postal');
  reason += validateEmpty(theForm.judet,'Alegeti judetul in care este situata agentia de turism');
  reason += validateEmpty(theForm.oras,'Alegeti orasul in care este situata agentia de turism');
  reason += validateEmpty(theForm.Country,'Introduceti tara in care este situata agentia de turism');
      
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateFormOnSubmit2(theForm) {
var reason = "";
  reason += validateNumber(theForm.numar_camere,'Numarul de camere');
  reason += validateNumber(theForm.numar_persoane,'Numarul maxim de persoane');
  
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateFormOnSubmit3(theForm) {
  var reason = "";
  cc = theForm.camcounter.value;
  
  var i = 1;
  while (i <= cc){
  for(x=0; x<theForm.elements.length; x++){
	      if (theForm.elements[x].name == 'numar_camere_tip'+[i]){ 
			reason += validateNumber(theForm.elements[x],'Numarul camerelor '+[i]+' de acest tip');
		  }
		  if (theForm.elements[x].name == 'counter'+[i]){ 
		  	var periodcounter = theForm.elements[x].value;
		  	//alert('periodcounter'+[i]+': '+ periodcounter)
	 	 }
		  if (theForm.elements[x].name == 'perioada_opt'+[i]){ 
		  	var sel = theForm.elements[x].value;
			//alert('select'+[i]+': '+sel)
		  }
		  
		  if (sel == 1) {
			  if (theForm.elements[x].name == 'pret_c_unic'+[i]){ 
		  		reason += validateNumber(theForm.elements[x],'Pretul '+[i]);
		 	  }
		  } else if (sel == 2) {
			for(cp=1; cp<(periodcounter+1); cp++){
				if (theForm.elements[x].name == 'pret_c_perioada'+[i]+[cp]){ 
		  			reason += validateNumber(theForm.elements[x],'Pretul '+[i]);
					//alert('pret1: '+theForm.elements[x].name)
		 	  	}
				if (theForm.elements[x].name == 'date_start'+[i]+[cp]){ 
		  			reason += validateNumber(theForm.elements[x],'Data de inceput '+[i]);
					//alert('pret2: '+theForm.elements[x].name)
		 	  	}
				if (theForm.elements[x].name == 'date_end'+[i]+[cp]){ 
		  			reason += validateNumber(theForm.elements[x],'Data de sfarsit '+[i]);
					//alert('pret3: '+theForm.elements[x].name)
		 	  	} 
			}
		  }
	  }
	  i++;
  }

  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateDateGenerale(theForm) {
var reason = "";
  reason += validateEmpty(theForm.adresa,'Introduceti adresa unitatii de cazare');
  reason += validatePostalCode(theForm.cod_postal,'Introduceti codul postal');
  reason += validateEmpty(theForm.judet,'Introduceti judetul in care este situata unitatea de cazare');
  reason += validateEmpty(theForm.oras,'Introduceti orasul in care este situata unitatea de cazare');
  reason += validateEmpty(theForm.country,'Introduceti tara in care este situata unitatea de cazare');
  reason += validateEmail(theForm.emailopt,'de contact');
  reason += validateEmpty(theForm.nume_firma,'Introduceti denumirea firmei');
  reason += validateEmpty(theForm.sediu_address,'Introduceti adresa sediului');
  reason += validateEmpty(theForm.cui,'Introduceti Codul Unic de Inregistrare sau CNP');
      
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateUnitateCazare(theForm) {
var reason = "";
  reason += validateEmpty(theForm.denumire_firma,'Introduceti denumirea unitatii de cazare');
  reason += validateEmpty(theForm.select6,'Alegeti tipul unitatii de cazare');
  reason += validateEmpty(theForm.persoana_contact,'Introduceti numele persoanei de contact');
      
  var i = theForm.counter.value;
  if (i == 2) {
	reason += validateEmpty(theForm.persoana_contact1,'Introduceti numele celei de-a doua persoana de contact');
  	reason += validateEmpty(theForm.functie1,'Introduceti functia celei de-a doua persoana de contact');
  	reason += validatePhone(theForm.telefon1);
  }
  if (i == 3) {
	reason += validateEmpty(theForm.persoana_contact1,'Introduceti celei de-a doua persoana de contact');
  	reason += validateEmpty(theForm.functie1,'Introduceti functia celei de-a doua persoana de contact');
  	reason += validatePhone(theForm.telefon1);
	reason += validateEmpty(theForm.persoana_contact2,'Introduceti numele celei de-a treia persoana de contact');
	reason += validateEmpty(theForm.functie2,'Introduceti functia celei de-a treia persoana de contact');
	reason += validatePhone(theForm.telefon2);
  }
  
  reason += validateNumber(theForm.numar_camere,'Numarul de camere');
  reason += validateNumber(theForm.numar_persoane,'Numarul maxim de persoane');
  
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateCamereAdmin(theForm) {
	var reason = "";
  	cc = theForm.camcounter.value;
	var i = 1;
	
 while (i <= cc){
  	for(x=0; x<theForm.elements.length; x++){
		if (theForm.elements[x].name == 'numar_camere_tip'+[i]){ 
			reason += validateNumber(theForm.elements[x],'Numarul camerelor '+[i]+' de acest tip');
		}
	}
	  i++;
  }
  
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateCamereEditare(theForm) {
	var reason = "";
	
	for(x=0; x<theForm.elements.length; x++){
		if (theForm.elements[x].name == 'numar_camere_tip'){ 
			reason += validateNumber(theForm.elements[x],'Numarul camerelor de acest tip');
		}
	}
  
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateTarifeCamere(theForm) {
	var reason = "";
	var m = document.getElementById('m').value;
	//alert(m);
	var i = 1;
while (i <= m){
  for(x=0; x<theForm.elements.length; x++){
	  	
		//alert('i: '+i)
		if (theForm.elements[x].name == 'counter'+[i]){ 
		  	var periodcounter = theForm.elements[x].value;
		  	//alert('periodcounter'+[i]+': '+ periodcounter)
	 	 }
		  if (theForm.elements[x].name == 'perioada_opt'+[i]){ 
		  	var sel = theForm.elements[x].value;
			//alert('select'+[i]+': '+sel)
		  }
		  
		  if (sel == 1) {
			  if (theForm.elements[x].name == 'pret_c_unic'+[i]){ 
		  		reason += validateNumber(theForm.elements[x],'Pretul '+[i]);
		 	  }
		  } else if (sel == 2) {
			for(cp=1; cp<(periodcounter+1); cp++){
				if (theForm.elements[x].name == 'pret_c_perioada'+[i]+[cp]){ 
		  			reason += validateNumber(theForm.elements[x],'Pretul la perioada '+[cp]);
					//alert('pret1: '+theForm.elements[x].name)
		 	  	}
				if (theForm.elements[x].name == 'date_start'+[i]+[cp]){ 
		  			reason += validateNumber(theForm.elements[x],'Data de inceput la perioada '+[cp]);
					//alert('pret2: '+theForm.elements[x].name)
		 	  	}
				if (theForm.elements[x].name == 'date_end'+[i]+[cp]){ 
		  			reason += validateNumber(theForm.elements[x],'Data de sfarsit la perioada '+[cp]);
					//alert('pret3: '+theForm.elements[x].name)
		 	  	} 
			}
		  }
	  }
	  i++;
}
  
  if (reason != "") {
    alert("Va rugam sa va asigurati ca ati completat toate datele:\n\n" + reason);
    return false;
  } else {
	theForm.submit();
  }
return false;
}

function validateEmpty(fld,msg) {
    var error = "";
  
    if (fld.value.length == 0) {
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = msg+".\n"
    } else {
        fld.style.background = '#FFFFFF';
    }
    return error;   
}

function validatePostalCode(fld, msg) { 
	var error = "";
	
	if ( (isNaN(fld.value)) || (fld.value.length != 6)) { 
		fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = msg+".\n"
	} else {
		fld.style.background = '#FFFFFF';
	}
	return error;   
}

function validateUsername(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = "You didn't enter a username.\n";
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = "The username is the wrong length.\n";
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = "The username contains illegal characters.\n";
    } else {
        fld.style.background = '#FFFFFF';
    } 
    return error;
}

function validatePassword(fld) {
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers 
 
    if (fld.value == "") {
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = "Nu ati introdus parola.\n";
    } else if ((fld.value.length < 6) || (fld.value.length > 25)) {
        error = "Parola nu are lungimea corecta. \n";
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else if (illegalChars.test(fld.value)) {
        error = "Parola contine caractere nepermise.\n";
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) {
        error = "Parola trebuie sa contina cel putin un numar.\n";
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else {
        fld.style.background = '#FFFFFF';
    }
   return error;
}  

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
} 

function validateEmail(fld,msg) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") {
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = "Nu ati introdus e-mailul "+msg+".\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = "Va rugam introduceti o adresa de e-mail "+msg+" valida.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
        error = "Adresa de e-mail "+msg+" contine caractere ilegale.\n";
    } else {
        fld.style.background = '#FFFFFF';
    }
    return error;
}

function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');     

   if (fld.value == "") {
        error = "Introduceti numarul de telefon.\n";
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else if (isNaN(parseInt(stripped))) {
        error = "Numarul de telefon contine caractere nepermise.\n";
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else if (!(stripped.length == 10)) {
        error = "Numarul de telefon nu are lungimea corecta. Va rugam introduceti numarul de telefon in format 0XXXXXXXXX\n";
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else {
        fld.style.background = '#FFFFFF';
    }
    return error;
}

function validateNumber(fld,msg) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');     

   if (fld.value == "") {
        error = "Introduceti "+msg+".\n";
        fld.style.background = '#CC0000';		
		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else if (isNaN(parseInt(stripped))) {
        error = msg+" contine caractere nepermise.\n";
        fld.style.background = '#CC0000';		
		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
    } else {
        fld.style.background = '#FFFFFF';
    }
    return error;
}

function validateCheckBox(fld) {
	var error = "";
	if (fld.checked == false)
		{
		error = "Pentru a trece la pasul urmator trebuie sa fiti de acord cu Termenii si Conditiile acestui portal.\n";
        fld.style.background = '#CC0000';		fld.style.color = '#FFFFFF';
		fld.style.border = '#666666 1px solid';
	} else {
        fld.style.background = '#FFFFFF';
    }
	return error;
}