/*<script language="javascript" type="text/javascript">*/
/* =============== functie trimitere val on catre campul hidden ===================== */
function hiddenFormValue()
{
	document.fRezervOnline.onTrimit.value='on';
	
}
/* =============================== end =============================================== */

/* =============== functie validare camp din form ===================== */
function validateField(field,alerttxt)
{
with (field)
{
  if (value==null||value=="")
  {
  alert(alerttxt);return false;
  }
  else
  {
  return true;
  }
}
}
/* =============================== end ================================ */

/*================================ functie validare numar ==============================*/
function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
/* ======================================= end ===================================================*/

/* ======================================= validZi() - functie care valideaza ziua ===================================================*/
function validZi(thiszi, alerttxt)
{
	with(thiszi)
	{
		
		if( value>31 || value<=0 || value==null || value=="" || value.length!=2)
		{
			alert(alerttxt);
			return false;
		}
		else
		{
			return true;	
		}
	}
}
/* ======================================= end ===================================================*/

/* ======================================= validLuna() - functie care valideaza luna ===================================================*/
function validLuna(thisluna, alerttxt)
{
	with(thisluna)
	{
		
		if( value>12 || value<=0 || value==null || value=="" || value.length!=2)
		{
			alert(alerttxt);
			return false;
		}
		else
		{
			return true;	
		}
	}
}
/* ======================================= end ===================================================*/

/* ======================================= validAn() - functie care valideaza anul ===================================*/
function validAn(thisan, alerttxt)
{
	with(thisan)
	{
		
		if( value<=0 || value==null || value=="" || value.length!=4 )
		{
			alert(alerttxt);
			return false;
		}
		else
		{
			return true;	
		}
	}
}
/* ======================================= end ===================================================*/
/* ============================================== valid email adress =============================================== */
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID!")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID!")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID!")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID!")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID!")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID!")
		    return false
		 }

 		 return true					
	}
	
function validEmail()
{
	var emailID=document.fRezervOnline.email;
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID!")
		//emailID.focus()
		return false
		
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		//emailID.focus()
		return false
	}
	//return true
}

/* ================================================== END ==========================================================*/
/* =============== functie validare form =============================== */
function validateForm(thisform)
{
with (thisform)
{
/*if ( validZi(ziSosire, 'Pentr Ziua sosirii introduceti o valoare intre 01 si 31')==false)
  {ziSosire.focus();return false;}*/
  
/*if ( validLuna(lunaSosire, 'Pentr luna sosirii introduceti o valoare intre 01 si 12')==false)
  {lunaSosire.focus();return false;}*/
  
/*if ( validAn(anSosire, 'Pentr anul sosirii introduceti o valoare valida')==false)
  {anSosire.focus();return false;}*/

if (validateField(nume,"Trebuie introdus un nume!")==false)
  {nume.focus();return false;}
 
if (validateField(telefon,"Trebuie introdus un nr de telefon!")==false)
  {telefon.focus();return false;}
  
}
//validare adresa email
/*if (validEmail()==false)
  {document.fRezervOnline.email.focus();return false;}*/	

//END
hiddenFormValue(); //apelez functia pt a seta value=on la campul hidden 'onTrimit din form'
thisform.submit(); //submitez formul
}
/* =============================== end ================================ */

/* ================================================== functie nrNopti() ======================================= */

function calculeazaNopti(zs, zp, ls, lp, as, ap)
{
	var datas = new Date(as, (ls-1), zs);
	var datap = new Date(ap, (lp-1), zp);
	// milisecunde / zi ?
	var milisecundeZi=1000*60*60*24;
	var x = Math.ceil((datap.getTime()-datas.getTime())/(milisecundeZi));
	
	if ( x < 32 )
	{ 
		//document.fRezervOnline.nrNopti[x].selected = true; //era pt select, pastrat numai pt referinta
		document.fRezervOnline.nrNopti.value=x; //este pe input text
	}
	else 
	{ 
		//document.fRezervOnline.nrNopti[32].selected = true; //este pt select, pastrat numai pt referinta
		document.fRezervOnline.nrNopti.value="Mai mult de 31 nopti"; //este pe input text
		//Pt mai mult de 31 nopti va rugam sa ne contactati
	}
}
/* ================================================== END ======================================= */
function calculData(zi, luna, an, sp, nrZile)
{	
	zi = Math.ceil(zi) + nrZile;
	var rezultDate = new Date(an, luna, zi);
	zr = rezultDate.getDate();
	lr = rezultDate.getMonth();
	ar = rezultDate.getFullYear();
	
	fillDate(sp, zr, lr, ar);
		
}

function setToday(sp)
{
	var today = new Date();
	zs = today.getDate();
	ls = today.getMonth();
	as = today.getFullYear();

	fillDate(sp, zs, ls, as);
	
}

function fillDate(sp, zi, luna, an)
{	
	// convertim zi, luna, an la string, deoarece facem o verificare charAt pe ele, si daca sunt numere da eroare
	zi=zi.toString();
	luna=luna.toString();
	an=an.toString();
	if (zi <10 && zi.charAt(0) != '0') { zi = '0' + zi; }
	if (luna <10 && luna.charAt(0) != '0') { luna = '0' + luna; }
	
	var data=zi + "/" + luna + "/" + an;
	if (sp=='sosire') 
	{	
		//document.fRezervOnline.ziSosire[zi].selected = true;
		document.fRezervOnline.dataSosire.value = data;

	}
	
	if (sp=='plecare') 
	{
		document.fRezervOnline.dataPlecare.value = data;
	}
}

/* ========================= fillDataPlecare - completeaza dataPlecare cu NrNopti introduse ======================================= */
function fillDataPlecare()
{
	var nrNopti = document.fRezervOnline.nrNopti.value;
	var milisecNrNopti = 1000*3600*24*nrNopti; //calcul nrNopti in milisecunde
	
//extragere valori din form pt dataSosire
	
	var dataSplitSosire=document.fRezervOnline.dataSosire.value.split("/");
	var ziSosire=dataSplitSosire[0];
	var lunaSosire=dataSplitSosire[1];
	var anSosire=dataSplitSosire[2];

	var dataSosire = new Date(anSosire, lunaSosire, ziSosire); //transformarea in milisecunde pt dataSosire
	var dataPlecare1 = Math.ceil( dataSosire.getTime() + milisecNrNopti ); //calculare data plecare in milisecunde (dataSosire+nrNopti)
//recompunere data plecare
	var dataPlecare2 = new Date(dataPlecare1);
	var ziPlecare = dataPlecare2.getDate(); //ziPlecare
	var lunaPlecare = dataPlecare2.getMonth(); //lunaPlecare
	var anPlecare = dataPlecare2.getFullYear(); //anPlecare
	
//setare dataPlecare pt introducere in form
	fillDate('plecare', ziPlecare, lunaPlecare, anPlecare);
	
}
/* ========================= END	 ======================================= */

/* ============================================== validareNrNopti ================================================ */
function validateNrNopti()
{	
//extragere valori din form pt dataSosire
	
	var dataSplitSosire=document.fRezervOnline.dataSosire.value.split("/");
	var dataSplitPlecare=document.fRezervOnline.dataPlecare.value.split("/");
	
	var ziSosire=dataSplitSosire[0];
	var lunaSosire=dataSplitSosire[1];
	var anSosire=dataSplitSosire[2];
	
	var ziPlecare=dataSplitPlecare[0];
	var lunaPlecare=dataSplitPlecare[1];
	var anPlecare=dataSplitPlecare[2];
	
	var dataSosire = new Date(anSosire, (lunaSosire), ziSosire);
	var dataPlecare = new Date(anPlecare, (lunaPlecare), ziPlecare);
	
	if ( dataSosire.getTime() == dataPlecare.getTime() )
	{
		alert ("Diferenta intre sosire si plecare trebuie sa fie de minim o zi!");
		calculData(ziSosire, lunaSosire, anSosire, "plecare", 1);
		document.fRezervOnline.nrNopti.value=1;
	}


	if (dataPlecare > dataSosire) 
	{	
		//alert("Datele sunt in regula, modificam nr. nopti");
		calculeazaNopti(ziSosire,ziPlecare,lunaSosire,lunaPlecare,anSosire,anPlecare);
		
	}
	
	if ( dataPlecare < dataSosire ) 
	{ 
		alert("Data sosire trebuie sa fie anterioara datei de plecare ???????? !"); 
		fillDate("plecare", ziSosire, lunaSosire, anSosire);
		//calculData(ziSosire, lunaSosire, anSosire, "plecare", 1);
		document.fRezervOnline.nrNopti.value="";
	}	
			
}
/* =================================================== END =================================================== */

/* ======================================= functie cvare seteaza valoarea initiala a datei de plecare =============================*/
//valoarea pt data de plecare la incarcarea paginii (face zi curenta +1)
function initialDataPlecare() 
{
	var milisecNrNopti = 1000*3600*24; //calcul milisecunde/zi
	//extragere valori din form pt dataSosire
	var today = new Date();
	ziSosire = today.getDate();
	lunaSosire = today.getMonth();
	anSosire = today.getFullYear();
	
	var dataSosire = new Date(anSosire, lunaSosire, ziSosire); //transformarea in milisecunde pt dataSosire
	var dataPlecare1 = Math.ceil( dataSosire.getTime() + milisecNrNopti ); //calculare data plecare in milisecunde (dataSosire+nrNopti)
//recompunere data plecare
	var dataPlecare2 = new Date(dataPlecare1);
	var x = dataPlecare2.getDate(); //ziPlecare
	var y = dataPlecare2.getMonth(); //lunaPlecare
	var z = dataPlecare2.getFullYear(); //anPlecare
	
	document.fRezervOnline.ziPlecare[(x-1)].selected = true;
	document.fRezervOnline.lunaPlecare[y].selected = true;	
	//document.fRezervOnline.anPlecare[z].selected = true;
	document.fRezervOnline.anPlecare.value = z;		
}
/* ======================================= END functie cvare seteaza valoarea initiala a datei de plecare =============================*/
/* ----------------------------- deschidere popup -------------------------*/
function openWindow(linkUrl)
{
	var rezwindow = window.open(linkUrl, "Rezervare", "height=750, width=640, top=10, left=300, menubar=0, scrollbars=1, resizable=1");
	rezwindow.focus();
}
/*--------------------- -------------END----------------------------------*/

/*</script>*/